在 DeepSeek Harness (DSH) 的智能體開發流程中,調整歷史提示詞或回滾項目文件往往需要手動編輯或繁瑣的會話操作。dsh-rewind 插件旨在解決這一痛點,提供類似 OpenChamber 的實時回退體驗,並支持在回退點繼續對話時自動回滾項目文件。
插件介紹¶
dsh-rewind 是一個 DeepSeek Harness (DSH) 插件,基於 Da-Mie/dsh-rewind 修改而來。它利用 DSH 原生的 fork、archive 和 append-only 會話日誌能力,結合插件自建的項目快照機制,實現了無感的時間線回退與文件狀態恢復。
核心功能¶
-
時間線對話框
- 快捷鍵
Alt + T打開時間線對話框。 - 支持搜索用戶消息,點擊後自動滾動定位。
- 在時間線中直接點擊行內的
↩圖標進行回退。
- 快捷鍵
-
行內回退
- 用戶消息行:點擊
↩回退到該條消息。 - 助手回覆行:點擊
↩回退到該回復之後。
- 用戶消息行:點擊
-
回退模式選擇
- 點擊
↩後會彈出選擇窗口,可指定回退方式:- 只回退對話:回退對話上下文,後續發送新提示詞不會回滾文件。
- 回退修改的內容:回退對話,且後續發送新提示詞時會觸發項目文件回滾。
- 點擊
-
無感後臺切換
- 點擊回退後,界面立即顯示“已回退 N 條消息”停靠條,被回退的提示詞文本會自動填入原輸入欄(可直接修改)。
- 會話的 fork、預載和切換操作在後臺完成,用戶感知不到卡頓。
- 提供逐條
[恢復到此]或[恢復全部]的選項。
-
零閃爍發送
- 在回退態下,在輸入欄回車發送,對話直接繼續,不做任何額外的會話切換。
- 文件回滾與舊會話歸檔在後臺異步進行,不影響當前的對話流。
安裝與配置¶
安裝¶
DSH 支持自動安裝,將倉庫鏈接發給 DSH 即可:
請安裝這個插件:https://github.com/ddll8023/dsh-rewind
DSH 會讀取倉庫中的安裝指引文檔,自動完成克隆、建立鏈接、註冊和重啓流程。
手動安裝(備選)¶
如果需要手動操作,請遵循以下步驟:
- 克隆倉庫到穩定目錄,例如
E:\AI_apps\DSH\DSH_WorkFile\plugins\dsh-rewind。 - 在
$env:USERPROFILE\.dsh\profiles\node_modules下建立 junction 指向包目錄。 - 在
profiles\web\package.json的dependencies中添加"dsh-rewind": "link:<包路徑>",並在dsh.profile.bundles中追加"dsh-rewind"。 - 重啓 DSH 桌面應用後端,並刷新瀏覽器加載
lib/client.js。
配置¶
插件支持通過 cordis.yml 配置。作爲 apply 的第二個參數傳入:
enabled: true
# 可選:覆蓋默認的排除目錄列表(如 node_modules/.git 等)
excludes:
- node_modules
- .git
機制與限制¶
- 回退邊界:只能回退到已完成的 turn 邊界。不能回退到仍在進行(尚未
turn/end)的回合內。回退到第一條消息會新建一個空會話分支。 - 長會話處理:fork 需要在宿主側重放前綴事件日誌,成本隨會話長度增長。點擊回退時界面會立即顯示“處理中”並回填提示詞,真正的會話切換在後臺完成。
- 文件回滾:文件回滾在發送新提示詞後異步進行,通常快於 Agent 首次寫文件,但不與首條回覆嚴格同步。
- 原會話管理:原會話在發送新提示詞後才歸檔(側邊欄隱藏,磁盤數據保留以便恢復)。
適用場景¶
- 需要在長時間對話中頻繁調整歷史提示詞的場景。
- 需要回滾項目文件到特定歷史狀態並繼續開發的場景。
- 習慣 OpenChamber 風格時間線交互的用戶。
該插件以當前 DSH 進程權限運行,安裝前建議檢查源碼與許可證。