前言¶
在 DeepSeek Harness(DSH)裏跑長對話時,常見需求並不是「重來一整段」,而是改某一條用戶話、刪掉一條跑偏的助手回覆,或從中間某一輪分叉出新會話。日誌裏往往還留着原文,如果只改界面、不改模型上下文,下一輪請求仍然會帶上舊內容。
dsh-chat-editor-plus 是社區插件,面向 DSH 桌面端,在會話裏提供消息編輯面板:支持顯示層調整、通過核心消息投影改寫/刪除上下文,以及從指定輪次分叉。本倉庫由 rumengyihua 維護,歸類爲客戶端插件;上游來自 WZZNNE/DSH-CyberWorkStation 中的 plugins/dsh-chat-editor(MIT),針對 DSH 桌面 0.2.x 做了適配,包名與路由帶 -plus,可與原版並存。
這是什麼¶
一句話:DeepSeek Harness 消息編輯器——對任意一條消息做改寫、刪除、摺疊,或從任意一輪之前分叉會話。
- 倉庫:rumengyihua/dsh-chat-editor-plus
- 目錄頁:skillhub.cn 插件條目
- 許可證:MIT(
package.json版本 0.2.5) - 運行時聲明:
engines.dsh爲>=0.2.1-rc.2 <0.3.0(安裝與啓動時由插件管理器校驗)
社區目錄站點與 DeepSeek / 幻方無官方從屬關係;安裝前建議自行閱讀源碼與 LICENSE。插件在當前 DSH 進程權限下運行,改寫/刪除會改變模型實際收到的上下文,操作前需理解各模式差異。
核心功能¶
入口與列表¶
- 會話頭部 ✎ 按鈕打開消息面板,列出整段會話(用戶、助手、注入上下文、工具結果、壓縮摘要)。
- 每條已完成的助手消息旁有內聯 ✎,可直接定位到該條。
三種操作模式¶
按你的目標選模式,不要混用含義:
| 模式 | 作用 |
|---|---|
| 顯示(display) | 只改你看到的界面;日誌與模型上下文不變。記錄寫在 $DSH_HOME/chat-edits.json。 |
| 上下文(context) | 改模型真正收到的內容:用戶/助手/工具結果改寫與刪除走核心消息投影(registerMessageProjection + plugin:chat-editor-plus/rewrite),deriveMessages() 看到新文本;刪除則整條從上下文中消失,無佔位符、無「用戶更正了回覆」類前綴。助手改寫時文本塊原位替換,thinking 默認保留,也可在面板裏改思考文本。 |
| 分叉(fork) | 在該輪之前複製會話(ctx.agents.create({ seed }) 與工作區掛接),可選把編輯文本作爲分叉後第一條消息。 |
工具結果也可改:面板裏對工具結果行點「改」走上下文投影,只替換內容塊,toolCallId / source 與配對關係不變,模型會把改後文本當作工具原始返回。
摺疊隻影響顯示,點擊可展開。
相對原版的桌面端適配要點¶
原版 dsh-chat-editor 面向 CyberWorkStation;本 fork 主要變化包括:用 useChat 讀會話節點、DOM 錨點優先 data-chat-node-key、助手/用戶改寫與刪除改用消息投影、思考文本可在面板修改且界面與模型側同步、可與原版 -plus 並存等。完整對照見倉庫 README「與原版的差異」表格。
安裝與啓用¶
DSH 桌面端通常不把 dsh CLI 放在系統 PATH,需用安裝目錄自帶的 CLI。README 給出的 Windows 示例如下(將本地路徑換成你實際放置倉庫的目錄):
# 把本倉庫放到任意目錄,例如 D:\workplace\dsh-chat-editor-plus
D:\dsh\resources\runtime\cli\bin\dsh.cmd plugin --profile desktop add file:D:\workplace\dsh-chat-editor-plus
也可在應用內打開插件管理器,用本地路徑安裝。裝完後會自動登記進 ~/.dsh/profiles/desktop/package.json 的 dsh.profile.bundles(本包聲明瞭 dsh.bundle.patch)。重啓桌面端後,會話頭部應出現 ✎。
若運行時版本不在 engines.dsh 範圍內,安裝或啓動會被拒絕;可按 README 說明用 dsh plugin allow-version <package@version> --dsh-version <runtime> --accept-risk 逐版本豁免(需自行承擔風險)。
典型用法¶
下面是可以直接對照界面操作的流程,無需額外配置文件。
- 只收拾界面、不動模型:在面板選 顯示,改文案或摺疊某條;適合排版閱讀,不影響下一輪請求。
- 糾正已發送內容並繼續對話:等 agent 空閒(未在生成),選 上下文,改寫用戶/助手/工具結果或刪除整條;再發送新消息,模型側上下文已是投影后的版本。上下文模式在生成中會返回 409;子代理會話只讀。
- 從某輪嘗試新分支:選 分叉,指定輪次;需要時可把當前編輯框內容作爲分叉會話第一條消息(依賴可選 peer
@deepseek-ai/dsh-llm等,缺失時相關能力可能返回 503)。 - 改助手思考:編輯助手消息時使用面板中的「思考」輸入框,只替換 reasoning 塊文本;摺疊摘要與展開正文會同步顯示新文本。
改寫記錄在日誌中可再通過編輯改回以撤銷;刪除在面板無撤銷按鈕(模型側已移除,日誌仍保留原文)。
適用場景與注意¶
適合誰:在 DSH 桌面 0.2.1-rc.2 及以上、0.3.0 以下 做智能體或長對話調試的開發者。README 寫明在 0.2.1-rc.2(Windows x64,profile desktop) 實測;0.2.2 及以上尚未驗證。
版本與 API:早於 0.2.1-rc.2 的核心缺少 registerMessageProjection / appendPluginRecord 時,上下文改寫/刪除會退化爲舊 surface 行爲,與本插件設計不符。投影契約若隨核心變化,插件需同步適配。
已知限制(使用前必讀):
- 改的是「模型看到的那份」,不會自動清理其他消息裏的引用;例如刪除一輪後,另一條助手消息的 thinking 仍可能寫着被刪內容。
- thinking 只能改已有 reasoning 塊文本,不能增刪塊結構;只發起工具調用、無正文的助手步驟只能改思考,不能補 text 塊。
- token meter 仍按原文計費;壓縮摘要按投影后文本。
- 運行中卸載插件時,已用投影的活躍會話可能在下次請求前報 projection 被移除;重啓可恢復打開會話,但改寫/刪除效果會消失。要長期保留效果,應保持插件安裝。
必需依賴包括 @deepseek-ai/dsh-home-paths、@deepseek-ai/dsh-session;fork 首條消息與 token 估算等依賴可選包,缺失時對應功能受限。
結尾¶
dsh-chat-editor-plus 把 CyberWorkStation 側的消息編輯能力接到 DSH 桌面 0.2.x,用顯示 / 上下文 / 分叉三種模式區分「只看」與「真改上下文」,並支持工具結果與思考文本的投影改寫。安裝走桌面 CLI 或插件管理器的本地路徑,注意 engines.dsh 與空閒態下的上下文編輯。