2026年10月19日,DeepSeek Harness(DSH)的插件生態愈發成熟。智能體在本地工作區進行文件編輯時,一旦出錯,回滾操作往往依賴於手動 Git 操作,成本較高。dsh-time-machine 旨在爲 DSH Web 工作區提供一個即時的“撤銷”功能。
dsh-time-machine 是一個由 icyaaaww 維護的插件,核心功能是保存智能體每一次工作區變更的快照,並提供可視化的回滾能力。
核心功能¶
該插件提供以下能力:
* 自動快照:自動爲每一次對話輪次創建檢查點,這些檢查點在進程重啓後依然存在。
* 可視化回滾:提供 Diff 預覽,支持選中特定文件進行恢復。系統會檢測後續編輯,防止衝突覆蓋。
* 恢復中斷:支持撤銷恢復操作本身,以及恢復因中斷而失敗的回滾。
* 非侵入式通知:恢復文件後,通過持久化收件箱通知智能體,不重寫聊天曆史。
* 零模型調用:快照查看和撤銷操作不需要調用大模型。
* 多語言 UI:提供中文和英文的 Web 界面。
安裝與啓用¶
該插件依賴以下運行環境:
* DSH 版本:0.2.1-alpha.1
* Cordis 版本:4.0.5-alpha.1
* Node.js:24+
* Git
安裝步驟如下:
- 從 Releases 下載
dsh-time-machine-0.1.0.tgz到本地絕對路徑。 - 在 Web Profile 下執行安裝命令:
dsh plugin --profile web add /absolute/path/dsh-time-machine-0.1.0.tgz
- 安裝後重啓 Web 主機(Desktop 環境請使用自帶的插件管理)。
典型用法¶
插件支持命令行指令和圖形界面兩種操作方式。
命令行指令:
* /time_machine:查看當前會話的時間線。
* /time_machine preview <id>:查看指定輪次的變更預覽。
* /time_machine undo <preview-token>:基於預覽令牌執行撤銷。
* /time_machine name <id> <label>:爲檢查點命名。
* /time_machine recover:恢復中斷的回滾操作。
圖形界面操作:
當智能體修改了本地 Git 工作區後,在編輯器旁邊選擇 Open change timeline。Inspect 一個回合,可選則單個文件並刷新預覽,然後明確確認撤銷。
配置說明¶
time-machine 配置行接受以下參數(默認值):
* storageRoot:存儲根目錄,默認 $DSH_HOME/plugins/time-machine 或 ~/.dsh/plugins/time-machine。
* maxFileBytes:單文件最大字節數,默認 2 MiB。
* maxFiles:單次快照最大文件數,默認 5,000。
* maxStoreBytes:單個倉庫最大存儲字節數,默認 512 MiB。
* maxRecords:單個倉庫最大記錄數,默認 2,000。
* timeoutMs:操作超時時間,默認 30,000。
* maxDiffChars:Diff 預覽最大字符數,默認 60,000。
* previewTtlMs:預覽令牌有效期,默認 300,000(5 分鐘)。
限制與注意事項¶
- 運行環境:僅在 Windows 上經過測試,需要本地 Git 倉庫和受限的 UTF-8 文本文件。
- 排除內容:二進制文件、超大文件、符號鏈接、被 Git 忽略的未跟蹤文件、嵌套倉庫內容不會被保存。
- 數據恢復範圍:Git 索引、提交、數據庫、部署信息、空目錄、ACL 和擴展屬性不會被恢復。
- 原子性:恢復是逐文件、帶衝突檢查的,多文件替換不是原子的。中斷的恢復需要使用
/time_machine recover。 - 會話限制:列表僅顯示當前會話最新的 50 條記錄,舊 ID 仍可訪問。
- 版本依賴:需要精確的 DSH 0.2.1-alpha.1 及 Cordis 4.0.5-alpha.1 版本,不支持自動兼容處理。
dsh-time-machine 通過持久化快照和精細化的文件級控制,爲 DSH 工作區提供了類似 IDE 的回滾能力,降低了智能體開發的試錯成本。