dsh-zh-think:让 DSH agent 用简体中文推理与回复

前言

DeepSeek Harness(DSH)默认系统提示词是英文,模型在内部推理(thinking)时往往也用英文。对中文用户来说,思考链不可读,就很难核对 agent 的判断依据。有人会把 personaPrefix 改成中文要求,但那会覆盖整段 system-prompt 配置,且插在最前面会让前缀缓存整体失效。下面介绍维护者 oicty 发布的追加式插件 dsh-zh-think:在 system prompt 末尾注册一个 section,不改既有配置行,专门约束「内部推理与面向用户的回复都用简体中文」。

这是什么

dsh-zh-think 是 DSH 生态里的 npm 插件包(仓库 oicty/dsh-zh-think)。它在 apply() 中通过 ctx.systemPrompt.section() 追加一段固定说明,不修改其他插件或用户已有的 system-prompt 行。许可证为 MIT,要求 Node.js >=20。

README 写明:本项目为独立实现,未提交插件市场收录;与 liangzz1998/dsh-thinking-language 功能有重叠,后者支持思考语言与回复语言分开配置,需要更完整语言方案时可优先考虑那个项目。

社区目录页:https://www.skillhub.cn/plugins/oicty/dsh-zh-think(SkillHub 为社区站点,与 DeepSeek / 幻方无官方从属关系)。

工作原理与和改 personaPrefix 的差别

插件注册名为 plugin:zh-think 的 section,order 取 10300——高于现有 DEPLOYMENT_PERSONA_SUFFIX = 10200,因此排在所有既有 section 之后:已有会话的提示词前缀可尽量保留,只有尾部 section 会参与更新。

注销逻辑交给 root.effect():卸载插件或热重载插件代码时,section 会被移除,不在配置里留手工块。

改 personaPrefix dsh-zh-think
改动性质 覆盖整段 config insert: 追加一行
缓存 前缀缓存易整体失效 追加在最后,前缀更易保住
GUI 设置面板 可能被整文件覆盖 挂载信息在 package.json,不受此类覆盖影响
卸载 需手工删配置 移除依赖后由 root.effect() 注销

安装与启用

先把 desktop 换成你实际使用的 profile 名(例如 web)。安装后必须重启 DSH;原因是 section() 在 apply() 里注册,DSH 对配置的热重载不会重新执行插件 apply()。

从 npm 安装(README 标注已发布 0.1.0):

dsh plugin --profile desktop add dsh-zh-think

或指定 GitHub 源:

dsh plugin --profile desktop add github:oicty/dsh-zh-think

安装前应自行查看仓库源码与 MIT 许可证;插件随当前 DSH 进程权限运行,与其它 DSH 插件相同。

配置与改文案

在 profile 的插件列表里可为 dsh-zh-think 增加可选字段:

- id: dsh-zh-think
  name: dsh-zh-think
  config:
    enabled: true          # false 则不注册 section
    instruction: '……'      # 覆盖默认的中文要求文本
    order: 10300           # 覆盖 section 排序位置

改 enabled、instruction、order 等属于插件逻辑或配置块变更时,按 README 说明一般需要重启后生效。

若只想改提示文案、不想动 YAML,可编辑 $DSH_HOME/zh-think.txt,写入完整替代文本。保存后下一个请求即生效,无需重启。原因是 section 的 text 注册为函数,每次装配提示词都会重新求值。

文案优先级(高到低):

  1. config.instruction — 随配置文件热重载
  2. $DSH_HOME/zh-think.txt — 每次请求重新读取
  3. 插件内置默认

删除 zh-think.txt 会回退到内置默认。自定义文案中不要使用 {{ 和 }},否则会被当作变量插值,未知变量可能导致装配报错。

临时关闭

三种方式,优先级从高到低;均需重启后生效:

方式 操作
配置 config: { enabled: false }
环境变量 DSH_ZH_THINK_OFF=1
标记文件 在 $DSH_HOME 下放空文件 zh-think.off

关闭时插件仍会装载,只是不注册 section。删掉标记文件并重启即可恢复。

适用场景与限制

适合谁: 已在用 DSH、希望 thinking 与用户可见回复都变成简体中文、又不想动 personaPrefix 或前缀缓存的开发者。

需要知道的限制:

  • 中文推理不节省 token,有时甚至更占 token;插件解决的是可读性,压成本应通过 reasoningEffort 等其它手段。
  • section 为固定文本,不按会话切换语言;多语言需自行扩展(例如按 AssembleContext 动态返回)。
  • 只约束 system prompt 下的推理与回复语言,不改变工具输出、日志、代码的原始语言。

结尾

dsh-zh-think 用追加 section、order: 10300 的方式,在尽量不破坏前缀缓存的前提下,让 agent 用简体中文做内部推理和回复;配置、zh-think.txt 与三种关闭方式覆盖了常见运维需求。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye