前言¶
在 DeepSeek Harness(DSH)里跑 Agent 时,「思考」行往往是一大段英文或混合语言的长文。界面语言若是中文,逐段对照原文会拖慢阅读;官方也提供思考内容翻译能力,但自定义翻译后端、单独配置翻译模型等需求,单靠默认能力不一定够。下面介绍社区插件 dsh-cot-translator-plus:在官方思考翻译插件基础上二次开发,展开思考行后按段落翻译,并支持任意 HTTP 翻译站点模板与模型翻译两条路由。
这是什么¶
dsh-cot-translator-plus 由维护者 Sodapopper-pixel 发布,分类为联网工具。它解决的是:用户展开 DSH 中已完成的「思考」段落时,把内容翻译成界面语言或你指定的语言;流式尚未结束的尾部仍保留原文,避免半句话被送出去翻译。
与官方 @deepseek-ai/dsh-experimental-cot-translation-bundle 的关系在 README 中写得很清楚:基于官方插件二次开发;两者同时启用时,本插件以更高优先级覆盖官方条目,停用本插件即回到官方实现。
- 目录页:https://www.skillhub.cn/plugins/Sodapopper-pixel/dsh-cot-translator-plus
- 源码与文档:https://github.com/Sodapopper-pixel/dsh-cot-translator-plus
- 许可证:MIT
社区插件目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系;DSH 生态本身是「一切皆插件」的思路,安装前建议自行查看源码与许可证。
核心功能¶
逐段翻译与工具栏¶
翻译按空行切段,每段一次请求;流式生成中的最后一段等段落完成后再翻。展开思考行后,工具栏提供:
- 查看原文 / 查看译文
- 当前展开区临时切换翻译服务
- 「重新生成翻译」:绕过缓存重新请求,旧译文在新结果到达前仍可见
站点路由(HTTP 模板)¶
用 JSON 描述任意 HTTP 翻译接口:endpoint、请求体、请求头、响应取值路径等。预置 bing 与 google 两个免密钥站点;与预置 id 同名可覆盖,或设 disabled: true 移除。README 给出 DeepL 等完整字段说明与示例。
模型路由(LLM)¶
两条来源可选:
- DSH 已注册提供商:复用 Harness 里已接入的提供商与凭据,经
ctx.llm发起一次性纯文本请求(无 Agent 历史、无工具)。 - 自定义 OpenAI 兼容提供商:仅保存在本插件设置里,不写入 Harness 全局提供商配置;可填基址、密钥、可选请求头,「拉取模型」可读
{baseUrl}/models。
系统提示词可编辑,默认内置英文指令(含 {{source}}、{{target}} 占位);清空保存表示不发送系统提示词。未命中缓存的 LLM 翻译均会产生模型调用费用。
缓存、失败与 API¶
成功译文写入 ~/.dsh/cot-translator/cache.json(上限 2000 条、保留文本 32 MB);设置保存在 ~/.dsh/cot-translator/settings.json。失败时保留原文并显示「重试」,不静默切换服务;诊断信息不含原文。Host 侧路由挂在 Connection 共享的 /api 通道上(如 /api/cot-translator/translate 等),与 README「Host 路由」表一致。
移动端¶
宽度 ≤ 767px 时工具栏改为窄屏布局:去掉思考行缩进、服务下拉占满一行、控件高度 28px,避免被外层折叠框裁切;展开思考行时就地翻译。
安装与启用¶
安装前 README 建议备份 profile 的 package.json、pnpm-lock.yaml、cordis.patch.yml 与 profile 配置。官方安装命令如下(面向 web profile):
dsh plugin --profile web add github:Sodapopper-pixel/dsh-cot-translator-plus
客户端 bundle 随 profile 客户端清单发布,刷新页面即生效;Host 模块在激活时载入,若你改动了 lib/*.js,需要重启 Host。
典型用法¶
- 安装并刷新 Web 客户端后,在对话中展开任意思考行,工具栏会出现服务下拉与「查看原文」。
- 打开 插件 → 已安装插件 → dsh-cot-translator-plus,配置默认服务、目标语言、单次文本上限、缓存条数、超时、LLM 路由、站点 JSON,可用「试译」验证。
- 目标语言设为
auto时跟随界面语言;也可直接写zh、en、ja等语言代码。 - 需要 DeepL 等付费 API 时,在站点 JSON 数组中追加条目(README 提供 DeepL 示例),在
headers中填入密钥。 - 想用本地或小模型时,在设置里添加自定义 OpenAI 兼容提供商,选模型后把默认服务切到对应 LLM 项。
适用场景与注意¶
适合谁:经常阅读英文(或其它语言)思考正文、又希望界面语言统一的 DSH Web 用户;需要 Bing/Google 免密钥快速试译,或要把段落送到 DeepL、自建 HTTP 接口、Harness 已有 LLM、插件内自定义端点的人。
务必知晓:
- 展开的思考内容会发送到你选择的翻译服务,可能含私有代码或对话细节;站点与自定义提供商请求均由 Host 进程发出,配置的端点可达 Host 能访问的地址。
apiKey与站点请求头以明文存于~/.dsh/cot-translator/settings.json,对已鉴权浏览器会回显。- 折叠状态下的思考摘要仍显示原文,翻译从展开开始;桌面 Electron(IPC 桥)未在 README 中验证,按 Web 端设计。
- 插件以当前 dsh 进程权限运行:安装与启用前请阅读仓库源码与 MIT 许可证,确认端点与密钥策略可接受。
- 未内置代理或自动重试;匿名 Google 端点在部分网络下不可达时会进入失败分支(原文 + 重试)。
结尾¶
dsh-cot-translator-plus 把「展开思考 → 逐段翻译 → 站点或 LLM 可配 → 缓存与重试可见」串成一条可落地的路径;若你已在用 DSH 官方思考翻译,可先并行安装对比,再决定是否长期以本插件为默认。
- SkillHub 目录:https://www.skillhub.cn/plugins/Sodapopper-pixel/dsh-cot-translator-plus
- GitHub:https://github.com/Sodapopper-pixel/dsh-cot-translator-plus