DeepSeek Harness (DSH) 目前沒有內置方式來編輯上一條消息或重試失敗的回合(例如網絡錯誤中斷)。locietta/dsh-rewind-retry 插件通過添加 Retry、Edit prompt 和 Continue 操作來解決這個問題,其核心實現方式是“分叉”會話。
插件簡介¶
這是 Locietta 維護的一個 DeepSeek Harness (DSH) 插件,爲 Web / 桌面聊天 UI 中已結束的回合添加了 Retry、Edit prompt 和 Continue 操作。
核心功能¶
插件通過分叉會話來實現對歷史的修改和重試:
- Retry:對每個由用戶提示產生的已結束回合,在提示前分叉會話並重新發送相同的提示。
- Edit:在同一邊界分叉會話,將舊提示放入編輯器以便修改。
- Continue:僅在最新回合失敗或無回覆時生效,在同一會話中發送“Continue from where you left off”,保留已做的工作。
安裝與啓用¶
DSH 的插件管理器直接從 GitHub 安裝 bundles,無需 npm 包。
在 DSH 代理中執行以下命令:
Install the plugin bundle github:Locietta/dsh-rewind-retry#v0.1.0
安裝後無需重啓 DSH,刷新頁面即可看到按鈕。
更新與卸載¶
- 更新:移除舊 bundle 並安裝新 tag,例如在代理中輸入
reinstall github:Locietta/dsh-rewind-retry#<new tag>。 - 卸載:進入 Settings → Plugins,找到
@local/dsh-rewind-retry並移除。
工作原理¶
DSH 的會話日誌是追加的,“回溯”本質上是一次分叉。插件調用 Host 的 session.fork 並指定精確的 atSeq 邊界,原會話保留爲分支。
- Idle prompt:切在提示入站前,保留回合間的設置變更(如模型、權限模式)。
- Queued prompt:切在上一回合結束後,確保隊列中的舊提示不會在分叉會話中優先執行。
需要注意的是,回溯僅影響對話歷史,磁盤上的文件修改在回溯後保持原樣。
侷限與注意事項¶
- 附件限制:Retry 僅支持文本,若原提示包含圖片或文件,需手動重新添加。
- UI 位置:操作按鈕顯示在回合末尾(因爲 DSH 的用戶消息氣泡沒有擴展插槽)。
- 可回溯回合:僅限你手動發起的回合。由 goal rounds、schedules 或 subagent notices 發起的回合不支持 Retry 和 Edit。
- 依賴版本:當前已測試 DSH 0.1.7-rc.1。插件會防禦性地讀取 Client 內部(聊天快照和會話事件窗口),未來 DSH 版本可能需要更新。