dsh-edit-resend:在 DSH 中編輯已發送消息並重新發送

前言

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 用於執行 editrerollretry 操作。

適用場景與注意

適合需要在 DSH Web 端反覆調整某一輪輸入或輸出的開發者。常見場景包括:

  • 發送後發現用戶輸入有誤,希望直接改後重發;
  • 對某次回覆不滿意,希望重生成;
  • 想基於某個歷史回合重新跑後續流程;
  • 希望修改後側邊欄仍只保留一個對話。

注意以下幾點:

  1. 插件以當前 dsh 進程權限運行;
  2. 安裝前應檢查源碼與許可證;
  3. 不原地改寫會話事件,歷史保持 append-only;
  4. 不聯動恢復工作區文件或外部命令副作用;
  5. 不修改 DSH 引擎或官方 UI 包;
  6. 版本元數據存儲在 DSH_HOME/storages/dsh-edit-resend/versions.json
  7. 不往會話日誌寫自定義事件類型,以避免 SessionFormatUnsupportedError

鏈接

GitHub 倉庫:

https://github.com/mbj733/dsh-edit-resend

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜