dsh-thinking-lang:在 DSH 里指定智能体思考语言

前言

DeepSeek Harness(DSH)把系统提示、工具说明和会话策略拆成可插拔的模块。界面语言和模型「内部推理用什么语言写」往往是两回事:界面可以是英文,但你希望链式思考、规划步骤用简体中文;或者团队统一用 English 做 reasoning,避免和繁体资料混用。

宿主自带的语言设置管的是 UI,不会单独约束模型思考段。社区插件 dsh-thinking-lang(维护者 aymidasing,MIT)在 设置 → 通用 增加「思考语言」,并通过 system prompt 的两处注入把选择传给模型。下面介绍它的能力、安装方式和使用时要注意的点。

这是什么

dsh-thinking-lang 是面向 DeepSeek Harness(dsh-desk) 的客户端类插件:在设置里选「自动 / 简体中文 / 繁體中文 / English」,决定智能体内部推理与规划使用的语言。

README 说明:项目代码与文档在人工指导下由 DeepSeek 生成,不是 DSH 官方组件、未经官方审核;插件以当前 dsh 进程权限运行,安装前请自行阅读源码与许可证。

核心功能

设置项

插件在 设置 → 通用 中、宿主语言项下方新增一行「思考语言」,整行只有一个下拉框:

配置项 取值 作用
思考语言 自动 / 简体中文 / 繁體中文 / English 内部推理与规划所用的语言

「自动」如何判定

选「自动」时,按顺序取第一个能映射到语言目录的来源:

  1. 操作系统语言:POSIX 的 LC_ALL / LC_MESSAGES / LANG;Windows 上若为空,则用 Intl.DateTimeFormat().resolvedOptions().locale
  2. DSH 界面语言:设置服务 locale 命名空间的 preference
  3. 兜底:硬编码 zh-CN

标签经 BCP-47 清洗后交给 Intl.Locale 解析;中文简繁由文字(CLDR maximize())区分,例如 zh-TW/zh-HK 为繁體,zh-CN/zh-SG 为简体。在下拉里显式选择某一语言时,该选择优先于上述三级。

示例(来自 README):

系统 界面 结果
zh-CN en-US 简体中文
en-US zh-CN English
fr-FR(目录无对应项) en-US English
取不到 取不到 简体中文

提示词注入

一份规则被拆成两段,注入位置不同、求值时机不同:

systemPrompt.section systemPrompt.context
求值时机 每会话组装一次 每次模型调用重新求值
顺序 order: 1(紧跟 persona 之后) order: -10(其它每步注入块之前)

具体英文句式由 src/core.ts 的 sectionText / contextText 生成;公开文档不转载注入原文,改行为需改源码后 npm run build。

直接后果:

  1. 切换思考语言:已有会话的下一轮即可通过 context 生效,无需重启。
  2. section 里的语言名:需新会话组装后才更新;同一会话中途改语言,context 会变,section 要等下次组装。

语言约束对新会话完全生效;仅改设置本身在已有会话下一轮即可反映到 context。

Token 与缓存

用 DeepSeek V3 词表实测,section 约 28–29 token(每会话一次),context 约 15–16 token(每轮一次);换语言对单轮 token 影响很小。

需注意:改思考语言会改变 system prompt 靠前段落,DeepSeek 上下文缓存要求从第 0 个 token 起前缀完全一致;section 位置靠前,改语言后从该行往后的前缀视为未命中缓存,该轮成本显著高于命中(README 引用官方定价说明约 50 倍差价)。切换后新前缀会重新被缓存,实用上建议选定语言后少在中途频繁切换。

安装与启用

安装前完全退出 DSH 桌面端;--profile desktop 对应的 profile 须已初始化且未被占用。装完重启 GUI。

官方 Release 安装(版本 1.0.1):

dsh plugin --profile desktop add https://github.com/aymidasing/dsh-thinking-lang/releases/download/v1.0.1/dsh-thinking-lang-1.0.1.tgz

同一 URL 也可在设置里的插件管理器中粘贴。不要使用 github: 源安装:pnpm 11 默认会拦截依赖的 prepare 构建,易出现 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED;Release 附件已是构建成品。

更新:换用新版本附件 URL 重装;依赖以 URL 记录,pnpm update 无效。

卸载(同样需完全退出桌面端):

dsh plugin --profile desktop remove dsh-thinking-lang

卸载后设置中的「思考语言」行消失,相关提示词不再注入。

典型用法

  1. 安装并重启 GUI。
  2. 打开 设置 → 通用,在语言相关项下方找到 思考语言。
  3. 按需选择 自动、简体中文、繁體中文 或 English。
  4. 新开会话可让 section 与 context 一致;在已有会话中改选项,下一轮起 context 即跟随(section 仍建议新会话)。

插件没有聊天命令;切换仅通过设置页。需要 /thinking-language 类命令需自行扩展(README 提到可参考 dsh-thinking-language 的实现)。

适用场景与注意

适合:希望思考链与界面语言解耦;在简繁英三种推理语言间固定策略;依赖「自动」跟随 OS 或 DSH 界面语言的用户。

限制(README 已列):

  • 仅支持上述三种思考语言;增删需改 src/core.ts 的 CATALOGUE 及客户端文案。
  • section / 设置行的 order 绑住宿主分段表与 @deepseek-ai/dsh-client-locale 的语言行顺序;宿主大版本调整时维护者可能需改插件常量。
  • auto 依赖运行时 locale 探测;极端环境可能落到兜底 zh-CN。

安全与信任:社区目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系;安装第三方插件前请审查 仓库源码 与 MIT 许可证。

结尾

dsh-thinking-lang 用一行设置把「模型内部用什么语言推理」从 UI 语言里拆出来,并通过 section + context 双注入兼顾会话级权威与每轮即时更新。若你已在用 DSH 0.2.0-rc.2 及以上桌面端,可按 Release 命令安装,在通用设置里选定思考语言后再评估缓存与成本习惯。

  • 目录页:https://www.skillhub.cn/plugins/aymidasing/dsh-thinking-lang
  • GitHub:https://github.com/aymidasing/dsh-thinking-lang
羽毛球分组比赛记分
小程序二维码

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

Xiaoye