DeepSeek Harness 插件:DeepSeek Harness 編程會話的回退/撤銷方案

前言

在使用 DeepSeek Harness (DSH) 進行編程時,智能體會在工作區中持續編輯文件。如果對話進行到中間,智能體走了彎路,想要回退到之前的某個狀態,現有的 DSH 機制通常無法滿足:會話日誌是追加式的,無法回滾;而用戶的本地 Git 倉庫可能處於未提交狀態,或者根本沒有初始化。直接執行 git checkout 會丟棄當前所有未提交的修改,導致有效工作丟失。

DeepSeek Harness Rewind 插件旨在解決這一痛點。它通過在插件自己的影子倉庫中保存快照,爲每次對話回合提供“時間旅行”能力,讓你能夠隨時將工作區恢復到之前的任意狀態,且完全不會觸碰你自己的 Git 倉庫。

插件定位

這是一個 DeepSeek Harness (DSH) 插件。它的核心職責是自動保存工作區快照,並允許將文件系統恢復到歷史任意點。插件維護者爲 zoyluoblue,許可證爲 MIT。

安裝與啓用

安裝該插件需要在終端中執行以下命令。該命令會將其作爲一個插件添加到你的 DSH 配置中。

npx -y @deepseek-ai/dsh plugin --profile web add @zoytown/dsh-rewind

安裝完成後,需要重啓 dsh 進程。重啓後,在設置頁面的側邊欄會出現一個 Rewind 入口。

前置條件:機器上必須安裝 git。如果沒有安裝 git,插件會報告快照功能暫停,但其他功能不受影響。

基本用法

插件提供了命令行界面和圖形界面兩種方式來管理快照。

命令行操作

以下命令由 DSH 本地處理,不消耗 Token,也不會發送給模型。

命令 功能說明
/rewind 恢復上一回合的狀態
/rewind 3 恢復第 3 回合結束時的狀態
/rewind a1b2c3d4 通過 ID 恢復快照(ID 爲 4 個以上字符的唯一前綴)
/rewind list 列出當前工作區的所有快照
/rewind save 在對話回合之外手動保存當前狀態

注意:恢復操作會打印出它覆蓋的快照 ID,你可以使用該 ID 再次執行恢復命令來撤銷這次回退操作。

圖形界面操作

進入 Settings(設置) -> Rewind(回退)頁面。列表會按時間倒序列出所有快照,顯示每個快照改變了哪些文件以及運行了哪些工具。點擊 Restore(恢復)按鈕進行恢復,系統會彈出確認對話框,明確告知哪些新文件將被刪除。

工作原理與配置

存儲機制

插件不會修改你本地的 .git 倉庫。所有快照都存儲在 $DSH_HOME/rewind/ 目錄下的一個影子倉庫中。這意味着即使你的項目目錄不是 Git 倉庫,或者沒有配置 .gitignore,插件也能正常工作,並提供與 Git 倉庫相同的保護級別。

文件過濾

插件嚴格尊重 .gitignore 配置。被忽略的文件(如 .env、node_modules、構建輸出等)既不會被保存,也不會被恢復。這有助於保持快照倉庫的體積,並確保恢復後這些文件保持原樣。

可逆性

每次恢復操作都是可逆的。插件會在覆蓋文件之前先保存被覆蓋的狀態,因此如果你想撤銷一次錯誤的恢復,只需再次恢復上一個狀態即可。

代理訪問控制

默認情況下,插件對智能體是關閉的。你可以在配置文件中設置 exposeTool 來控制智能體是否可以使用回退功能。

  • 'off':默認值,回退功能僅限人類操作。
  • 'read-only':允許智能體查看歷史列表(rewind_list),但不能恢復文件。
  • 'full':允許智能體恢復工作區文件(rewind_restore)。

清理與維護

快照數據獨立於插件本身存在。如果你想釋放磁盤空間,可以直接刪除 $DSH_HOME/rewind/ 目錄。

插件會自動清理舊會話。默認保留天數爲 30,即如果會話中最新的快照超過 30 天未更新,該會話將被自動丟棄。此外,.git 目錄本身始終被排除在快照之外。

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

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

小夜