前言¶
在 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