前言¶
在 DeepSeek Harness(DSH)里和 Agent 协作时,模型往往在工具调用之间用英文写一段过程叙述——例如读取文件前那句 “Let me check…”。官方「思考过程和翻译」插件只覆盖 Reasoning(思考) 内容,不处理这些普通的英文工作说明。界面仍是英文时,阅读成本会落在过程叙述上,而不是最终答案。
下面介绍社区插件 dsh-execution-narration(维护者 101011001101Q,分类:联网工具):把 Agent 的英文过程叙述在聊天界面里原位译成简体中文,并复用 DSH 内置的 ctx.translator 服务。可与官方思考翻译插件同时启用,各管一块。
这是什么¶
- 名称:执行过程叙述机器翻译(包名
dsh-execution-narration,当前版本 1.0.1,MIT 许可) - 仓库:GitHub — 101011001101Q/dsh-execution-narration
- 目录页:SkillHub 插件页
- 做的事:自动或手动把
assistant-step里属于「过程叙述」的英文text译成简体中文,不改最终回答、用户消息、工具记录、Reasoning 分组,也不改 Session 里的模型上下文。
翻译范围与判定方式¶
过程叙述和最终回答在 DSH 里同属 assistant-step 的 text 块,没有独立事件类型可区分。本插件用渲染期结构信号 turnProcess.spec.answerStep 做保守排除:
| 会翻译 | 不翻译 |
|---|---|
| Agent 英文过程叙述、计划与阶段性总结 | 最终回答 |
| 读文件 / 分析代码前后的自然语言说明 | Reasoning(官方思考翻译插件负责) |
| 完整英文段落 | 用户消息、工具记录、运行状态、系统提示 |
| 文件路径、命令、代码块、技术标识符 | |
| 已是中文的内容 |
判定依据是结构信号,而不是英文句式。具体规则包括:
data.step === answerStep→ 视为最终回答,不自动翻译;data.status === 'running'→ 仍在生成,可能是最终回答,不自动翻译;groupPart === 'reasoning'→ 推理分组,交给官方插件;turnProcess.spec == null→ 无结构信号时不自动翻译,仅保留单条「翻译本段」手动入口。
每个步骤(含最终回答与流式步骤)都提供 「翻译本段」,由用户显式触发;插件不静默扩大范围。
交互与设置¶
交互
- 译文原位替换原文:不新增消息、不加卡片;字号、间距与 Markdown 排版保持不变。
- 查看原文 / 查看译文 可切换,切换不重复请求翻译服务。
- 翻译进行中保留原文,避免闪烁;失败或超时仍显示英文,并提供 重试;不影响 Agent 执行。
- 关闭自动翻译后,单条「翻译本段」仍可用。
设置(插件详情页,经 DSH configEditor 持久化)
- 启用 / 禁用自动翻译
- 翻译服务:Bing(默认,免费、无需 API Key)或 Google
- 目标语言:
zh(默认)或auto(跟随界面语言) - 恢复默认、试译一句以检查连通性
隐私:待译文本会发往第三方翻译服务(默认 Microsoft Bing 匿名端点),可能包含项目代码、文件内容或其他私有信息。不适合外发的会话请在设置里关闭自动翻译。
安装与启用¶
插件以当前 DSH 进程的权限运行;安装前建议自行查看仓库源码与 MIT 许可证。DSH 生态以「一切皆插件」为方向;SkillHub 为社区目录站点,与 DeepSeek / 幻方无官方从属关系。
- 在终端执行官方安装命令(将
<profile>换成你的 DSH profile):
dsh plugin --profile <profile> add dsh-execution-narration
- 也可通过插件管理器的
install_bundle指向本地目录安装。 - 重启 DSH 以加载 Host 侧;浏览器侧可热重载。
- 打开 插件 → 已安装 → 执行过程叙述机器翻译 配置自动翻译与服务选项。
package.json 要求 Node ^22.19.0 || >=24.0.0。
典型用法¶
日常开发中无需额外命令:装好并开启自动翻译后,Agent 在工具链之间的英文过程说明会在界面生成完成后按段落译成简体中文;最终回答保持原语言(自动路径下不译)。
若某轮对话结构信号不完整(例如流式中尚未确定 answerStep),自动翻译会保守跳过,你仍可对单段点 「翻译本段」。关闭自动翻译后,可完全依赖手动入口,适合含敏感代码的会话。
与官方「思考过程和翻译」一并启用时:Reasoning 仍由官方插件处理,本插件只补过程叙述空白。
实现要点(便于排障)¶
- 复用
ctx.translator:由内置dsh-experimental-cot-translation-bundle提供;本插件运行时ctx.get('translator')软取,服务缺失时显示原文。 - 包裹内置
assistant-step渲染器:不重复注册第二个assistant-stepentry(会与内置子槽冲突),只替换text块再以React.createElement(Original, props)委托,官方思考翻译仍可共存。 - 流式与性能:按空行分段并在
maxTextChars处硬切;缓存、单飞去重、120 ms 防抖、并发上限 3、15 s 超时;卸载或切会话即 abort。 - 代码保护:围栏代码、行内代码、URL、路径、
@scope/pkg在请求前换成 ASCII 占位符;响应缺占位符则整段回退英文。 - 不改上游:不改 Session 消息、模型上下文、工具参数或执行结果。译文与原文会以
plugin:translator/request/plugin:translator/result写入本机 session 文件(明文,与同 session 其他内容一致),用于「再次打开不重复请求」。
已知限制与适用场景¶
适合:习惯英文 Agent 叙述、希望过程说明中文化,且可接受文本经 Bing/Google 出站的用户;需要与官方 Reasoning 翻译叠用时。
注意:
answerStep为渲染期信号,流式或无最终回答的 turn 可能为null,自动翻译会暂停。- 与其它同样替换内置
assistant-stepentry 的插件可能冲突(官方思考翻译不碰该 entry)。 - DSH 升级若改动
node.data.blocks、turnProcess、groupPart等,本插件可能需要同步更新。 - 匿名端点的可用性、限速与质量不受本插件控制;资料记载部分网络下 Google 易超时,故默认 Bing。
结尾¶
dsh-execution-narration 填补「过程叙述」与「思考 / 最终回答」之间的翻译空白:原位、可切换、可手动,并复用官方翻译服务。需要安装与设置说明时,以仓库 README 为准。
- 目录页:https://www.skillhub.cn/plugins/101011001101Q/dsh-execution-narration
- GitHub:https://github.com/101011001101Q/dsh-execution-narration