切换智能体思考过程(推理/链式思考)的语言:支持简体中文、英文、俄语、法语、德语、西班牙语、日语、韩语等,或跟随系统界面语言(自动)。新增「设置 → 通用」中的思考语言选择行、系统提示词注入(每次组装提示词时求值,新会话生效)与 /thinking-language 命令。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:qingmomo233/dsh-thinking-language
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
🌐 简体中文 | English
dsh-thinking-language
一个 DeepSeek Harness 插件,用于切换智能体思考过程(推理 / 链式思考)的语言。 支持中文(简/繁)、英文、俄语、法语、德语、西班牙语、阿拉伯语、葡萄牙语、日语, 也可选择「跟随系统(自动)」——让思考语言跟随系统界面语言。
功能
- 独立设置页 — 设置 → 思考语言 是一个独立页面,页内只有一行:左侧标题与说明, 右侧一个选择列表(选择 pill + 下拉菜单),与内置「语言」「权限预设」行同款。
- 系统提示词注入 — 选择语言后,插件会向系统提示词注入一条指令,要求模型用该语言 书写内部推理过程。选择「跟随系统(自动)」时,指令使用系统界面语言 (设置 → 通用 → 语言,缺省中文)。指令在每次组装提示词时求值,因此对新建会话 生效;已有会话继续使用其已组装的提示词。
设置存储于标准用户设置文档的 thinking-language 命名空间,重启后仍保留。
注意:该设置只影响模型的内部思考/链式思考,不会改变给用户的最终回答语言。
支持的语言
auto(跟随系统) · zh-CN 简体中文 · zh-TW 繁體中文 · en English ·
ru Русский · fr Français · de Deutsch · es Español · ar العربية ·
pt Português · ja 日本語
「自动」按系统语言标签逐级匹配:精确 id → 地区变体 → 语言代码。因此 en-US → 英文、
ja → 日语、de-AT → 德语;中文按字体/地区判定:zh、zh-Hans、zh-CN → 简体,
zh-Hant、zh-TW、zh-HK、zh-MO → 繁体。无法识别的语言回退到英文
(与界面语言插件的兜底一致)。
安装
插件要装进你实际在用的那个 Harness 主目录(用 DSH_HOME / DSH_PROFILE 确认)。
命令行(从 GitHub 安装,推荐):
dsh plugin --profile web add github:qingmomo233/dsh-thinking-language
也可装本地源码目录:dsh plugin --profile web add <插件目录>(pnpm 在配置目录下解析,
请给出插件目录本身)。
桌面版: 用应用内的插件市场安装,只接受 github:owner/repo[#sha]。
桌面版主目录由应用自己管理,dsh --profile … 会被拒绝
(profile "desktop" is managed exclusively by the Electron application)。
装完必须重启 Harness(桌面版完全退出后重新打开)。客户端模块图是在渲染页面时
写进 index.html 的,只刷新页面不会把新插件送进已经打开的页面。
不显示时先看日志里有没有
skipping profile bundle: 包名残留旧名(v1.1 起由dsh-plugin-thinking-language改为dsh-thinking-language) 会被整包跳过,先dsh plugin --profile web remove dsh-plugin-thinking-language再装;peerDependencies与 dsh 版本不匹配(^0.1.0-rc.6这类不匹配 0.2.x)同样会 被跳过,日志会写is incompatible with dsh …。
关于设置暴露补丁(仅极旧版本需要)
DSH 0.2.6 起,服务端会向浏览器暴露全部已注册的设置命名空间;0.2.9 起
dsh-host-apiproxy 已被移除。因此当前版本无需任何补丁。
只有在 DSH ≤ 0.2.3(dsh-host-apiproxy@0.1.0-rc.5)这类仍使用硬编码白名单
WEB_SETTINGS_NAMESPACES 的旧版本上,才需要把 thinking-language 加入白名单,
否则设置页能显示但无法保存(浏览器收到 settings-not-exposed)。脚本会先检测白名单是否存在:
node scripts/patch-apiproxy.mjs # 预演:只检测并报告,不修改任何文件
node scripts/patch-apiproxy.mjs --write # 确认需要后再写入(会先备份 .dsh-thinking-language.bak)
使用方法
- 打开设置(齿轮图标)→ 左侧导航中的思考语言。
- 在该页选择语言(选择「跟随系统(自动)」即使用系统界面语言)。
- 开启新会话——其思考过程将使用所选语言书写。
兼容性
插件在以下方向做过兼容性处理,缺少某个服务或依赖时降级而不是整体失效:
| 场景 | 行为 |
|---|---|
Harness 没有 systemPrompt |
设置命名空间仍可用 |
Harness 不支持该设置通道(没有 settings 服务 / 拒绝注册) |
记录一次警告,提示词功能照常 |
Harness 无设置通道(configForms / settingsScope) |
跳过设置页并在启动后记录一次警告 |
Harness 未提供 locale 服务 |
设置页使用内置文案(lang.auto 等)而非崩溃 |
| Harness 未提供平台 UI primitives 模块 | 回退到原生下拉,设置页照常显示 |
describe() 不可用或 schema 结构不同 |
选择列表回退到内置语言表 |
| 设置文档被手工改坏(非对象、非字符串) | 视为 auto,不抛错,也不覆盖用户数据 |
| 系统语言标签无法识别 | 回退英文(与界面语言插件兜底一致) |
宿主端与浏览器端共享同一份语言目录:设置页的候选项由宿主注册的 schema 推导
(每个枚举值附带 简体中文 形式的母语名标签,与原来的显示一致),浏览器端只保留一份
兜底副本,smoke-test.mjs 会在两者不一致时失败。
实现结构
| 部分 | 文件 | 作用 |
|---|---|---|
| 纯逻辑核心 | lib/languages.js |
语言目录、系统语言标签匹配、指令与提醒文案(无 cordis / 无浏览器依赖,可直接单测) |
| 服务端入口 | lib/index.js |
注册 thinking-language 设置命名空间与 app:thinking-language 系统提示词小节(顺序 85) |
| 浏览器端 | lib/client.js |
向 settings.section 槽注册独立的「思考语言」设置页;通过客户端设置作用域读写同一命名空间 |
| Bundle 补丁 | cordis.patch.yml |
把插件行插入组合后的配置树 |
| 测试 | smoke-test.mjs |
宿主注册、语言匹配矩阵、读写句柄兼容、浏览器 bundle 漂移与降级路径、UI 文案锁定 |
pnpm install # 安装测试依赖(@deepseek-ai/cordis、@deepseek-ai/schemastery)
npm test # smoke-test.mjs + cordis-check.mjs
两端共享 thinking-language 命名空间,任一处修改都会同步到另一处。
链接
同类插件
Minglink/dsh-infinite-gen-4★ 2713
DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
ranxianglei/billion-context★ 1102
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
liangmianya/dsh-synapse★ 519
DeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
Nwflower/dsh-chat-import★ 229
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
Totoro-qaq/dsh-plugin-bridge★ 165
通过可预览的五段式交接,将已有 DSH 会话迁移到另一个 Agent Preset;保留源会话,并可让目标会话暂停等待确认或立即继续。
Anionex/dsh-turn-rewind★ 133
对话回退:基于持久 Change Ledger 回滚会话与工作区状态。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。