dsh-think-chinese
DSH plugin: force the model thinking chain (reasoning) to always be written in Chinese
- Stars
- 0
- Language
- JavaScript
- Created
- Oct 14, 2026
- Updated
- Oct 14, 2026
Introduction
dsh-think-chinese
让 DeepSeek Harness 中模型的思考链(reasoning / thinking)始终用中文输出的插件。
它是一个 bundle 插件(host 侧,零运行时依赖),只做一件事: 向 DSH 的系统提示词注册一条「思考链语言」段落。
## 思考链语言
你的思考链(reasoning / thinking 内部推理过程)必须始终使用中文书写。
不要用英文思考:即使读到的是英文代码、英文报错或英文文档,推理也一律用中文表达。
代码、标识符、命令、文件路径、API 名称、专有名词与必要的原文引用保持原样,不要翻译。
思考链里用中文给出判断与取舍的理由,直接说结论,不要复述这段语言要求。
DSH 每一个模型步(step)都会重新组装系统提示词,因此该段落:
- 对已有会话的下一次请求即生效,无需重置会话;
- 对新建会话、子代理以及 workflow 内的子代理同样生效(全局作用域);
- 与模型和供应商无关:DeepSeek 的
reasoning_content与 Anthropic 的 extended thinking 读取的是同一份系统提示词。
为什么用系统提示词,而不是改写输出
DSH 的思考链是模型自己生成的推理流(agent/assistant-stream 的 reasoning 帧)。
在浏览器侧做「翻译式改写」既不可靠,也会破坏流式增量。唯一能让模型用中文思考的位置是
提示词层,因此本插件挂在 ctx.systemPrompt.section() 上。
安装
三种方式任选一种。--profile 后填目标 profile 名(桌面应用为 desktop,命令行 web 为 web)。
1) 从 GitHub 安装
dsh plugin --profile web add github:Hielo19/dsh-think-chinese
# 也可以锁定到指定 tag 或 commit
dsh plugin --profile web add github:Hielo19/dsh-think-chinese#v1.0.0
2) 从本地目录安装(适用于开发调试)
dsh plugin --profile web add link:/绝对路径/dsh-think-chinese
也可以直接用 Harness 内置的 plugin_manager 工具安装该目录。
3) 从 tarball 安装(无需保留源码目录)
# 直接使用 Releases 中的附件
dsh plugin --profile web add https://github.com/Hielo19/dsh-think-chinese/releases/download/v1.0.0/dsh-think-chinese-1.0.0.tgz
# 或先下载,再安装本地文件
dsh plugin --profile web add /路径/dsh-think-chinese-1.0.0.tgz
三种方式的效果一致:dsh plugin add 会把包写入 profile 的 dependencies,
将带 dsh.bundle 声明的包追加到 dsh.profile.bundles,再由 bundle 的
cordis.patch.yml 把插件行插入组合树。
不需要构建步骤:本包不含
prepare/postinstall,lib/index.js是手写的纯 ESM, 安装后即可运行。因此以 git 方式安装时,无需在 profile 的pnpm-workspace.yaml中 添加allowBuilds。
安装生效后,Harness 的系统提示词中会出现 ## 思考链语言 这一段。
配置
注意:本插件刻意不导出 Config(原因见「实现要点」),因此它不会出现在
设置 → 插件页的配置表单中(cordis_inspect 会将其报为 status: absent)。
修改配置请编辑 YAML,DSH 会重读 profile 的 patch 层;若未生效,重启应用即可重新装载。
配置可写在 bundle 自带的 cordis.patch.yml,也可写在 profile 自己的 cordis.patch.yml
(用户层优先级更高,可覆盖 bundle 层):
- id: dsh-think-chinese
name: dsh-think-chinese
config:
enabled: true # 总开关,false 时完全不注入
language: 中文 # 目标语言名,会写入提示词文案
scope: reasoning # reasoning | reply | all
extraInstruction: '' # 追加要求,例如术语表
scope 的取值含义:
| 取值 | 效果 |
|---|---|
reasoning | 只强制思考链使用中文,正文保持原样(默认) |
all | 思考链与正文均使用中文 |
reply | 只强制正文使用中文 |
extraInstruction 会作为段落最后一部分追加,适合放置「术语统一译法」这类要求。
验证
npm test # 等价于 node scripts/verify.mjs
离线验证(不启动 DSH、不调用模型)覆盖 11 项:段落名与排序位、配置归一化对畸形输入的
健壮性、三档 scope 的文案、enabled: false 时不注册、systemPrompt 缺失时优雅降级、
以及 disposer 对段落的精确回收。
在线验证:安装到 desktop profile 后,实际运行实例的系统提示词中出现了
## 思考链语言 段落,随后的推理过程转为中文输出。
验证脚本只使用 Node 内置的 node:assert/strict,因此 CI 无需执行 npm install。
实现要点
- 不 import 任何
@deepseek-ai/*:Config也刻意不导出(Cordis 仅在插件导出Config时才调用Config['~standard'].validate),配置归一化自行实现。 因此本插件在 profile 中零依赖、零 peer,不会被 DSH 的版本兼容检查拦下。 - 段落排序位为 850:位于
dsh-system-prompt的SECTION_ORDERS中策略段 (PLAN_POLICY500 /TEAM_POLICY600 /PTC_ONLY800)与工具段(TOOL_BASH1000 起) 之间,既紧跟既有行为准则,又排在所有工具文档之前。 - 段落名为
plugin:think-chinese:同一层内段落重名会抛错;带命名空间后, agent preset 可以用同名段落整体覆盖措辞。 - 由
ctx.effect回收:HMR 重载或plugin remove时段落会被自动摘除, 不会残留为无效的系统提示词。
成本提示
新增系统提示词段落会使提示词前缀缓存(prefix cache)失效一次,此后趋于稳定;
每一步会多出该段落的 token(约 100 token 量级)。如需完全关闭,把 enabled 设为 false。
维护
发版流程、打包与 Release 附件上传见 MAINTAINING.md。
License
MIT