前言¶
DSH 的插件化方向讓 Web 端會話界面可以擴展。對智能體開發者來說,消息發送後想回頭修改某一句輸入、某一段思考或某一次回覆時,通常只能繼續追問或新開對話。
dsh-edit-resend 解決的是這個問題:在消息已發送之後原位編輯並重新發送,也可以停止進行中的回覆、重生成最後一條已落定回覆,或重試 Timeline 中的任意歷史回合。
這是什麼¶
dsh-edit-resend 是 DeepSeek Harness(DSH)插件,由 mbj733 維護,許可證爲 MIT。
它面向 web profile,提供以下能力:
- 停止並編輯重發;
- 重生成最後一條已落定回覆;
- 在 Timeline 中重試任意歷史回合;
- 以單對話模式保留修改後的會話體驗。
單對話模式下,修改後舊版本自動歸檔,標題不變,側邊欄始終只保留一個對話。
核心功能¶
停止並編輯重發¶
回覆進行中可以停止。修改後從該消息重新生成,不產生重複消息,舊版本自動歸檔。
失敗可見¶
編輯框與標題欄會顯示失敗原因,不會靜默無反應。
編輯已落定消息¶
可編輯內容包括:
- 用戶文本;
- 助手思考(reasoning);
- 助手回覆(response)。
重生成¶
用原輸入重新生成最後一條已落定回覆。
重試任意回合¶
在 Timeline 中選擇任意歷史回合重跑。
級聯策略¶
支持兩種策略:
truncate:默認策略,截斷後續內容;preserve:保留後續用戶輸入,依次重跑。
安裝與啓用¶
安裝命令:
dsh plugin --profile web add dsh-edit-resend
本地開發時使用符號鏈接安裝:
dsh plugin --profile web add -w link:/path/to/dsh-edit-resend
安裝後重啓 dsh:
dsh web
插件需重啓 dsh 後生效。
本地構建¶
如果從源碼構建,先安裝依賴:
npm install
再執行構建:
npm run build
構建會生成:
index.mjs:Host 插件;client.js:Browser 插件。
主要接口¶
插件提供以下 HTTP 接口:
GET /edit-resend?sessionId=
POST /edit-resend
其中:
GET /edit-resend?sessionId=用於獲取時間線投影;POST /edit-resend用於執行edit、reroll、retry操作。
適用場景與注意¶
適合需要在 DSH Web 端反覆調整某一輪輸入或輸出的開發者。常見場景包括:
- 發送後發現用戶輸入有誤,希望直接改後重發;
- 對某次回覆不滿意,希望重生成;
- 想基於某個歷史回合重新跑後續流程;
- 希望修改後側邊欄仍只保留一個對話。
注意以下幾點:
- 插件以當前 dsh 進程權限運行;
- 安裝前應檢查源碼與許可證;
- 不原地改寫會話事件,歷史保持 append-only;
- 不聯動恢復工作區文件或外部命令副作用;
- 不修改 DSH 引擎或官方 UI 包;
- 版本元數據存儲在
DSH_HOME/storages/dsh-edit-resend/versions.json; - 不往會話日誌寫自定義事件類型,以避免
SessionFormatUnsupportedError。
鏈接¶
GitHub 倉庫:
https://github.com/mbj733/dsh-edit-resend