DeepSeek Harness 插件 dsh-zcode-rewind:Per-tool-call 工作區檢查點

前言

DeepSeek Harness (DSH) 智能體在執行過程中會頻繁修改文件或調用 Shell 命令(如 sed -i、rm 等)。現有的回滾插件往往只能捕獲回合邊界的快照,或者只能識別文件編輯工具的參數,無法記錄 Shell 命令產生的副作用。這導致一旦操作出錯,難以精確還原到某個步驟之前的狀態。dsh-zcode-rewind 旨在解決這一痛點,提供細粒度的、基於工具調用的檢查點系統。

插件簡介

dsh-zcode-rewind 是 DeepSeek Harness 的一個工作流插件,由 BOWLUNA 維護。它爲 DSH 提供了 per-tool-call 工作區檢查點功能,能夠捕獲每一次文件變更和 Shell 命令,以內容尋址的方式存儲 Blob,並提供行級差異預覽和可逆的還原操作。

核心功能

該插件的核心能力集中在以下幾個方面:

  1. 全量捕獲:捕獲所有 mutating tool call,包括 bash、pwsh、write、edit、MCP 工具以及 subagent 工具。
  2. 記錄變更:記錄文件的刪除、創建和修改,併爲每個路徑附帶可恢復的先前內容哈希。
  3. 內容尋址:存儲內容尋址的文件內容(SHA-256),實現跨會話和跨工作區的去重。
  4. 持久化日誌:提供按條目順序排列的持久化變更日誌,重啓 DSH 後依然存在。
  5. 操作支持:支持手動創建檢查點,以及 undo/redo 操作。

安裝與前置條件

安裝前,請確保環境滿足以下要求:

  • Node.js >= 20.0.0
  • DSH >= 0.1.5-alpha.1

安裝命令如下:

dsh plugin --profile web add dsh-zcode-rewind

安裝完成後,需要重啓 DSH 才能使插件生效。可以通過 dsh --profile web --dump-config | grep workspace-rewind 驗證插件是否已正確綁定。

使用方式

插件提供了一系列工具命令來管理檢查點。以下是主要工具及其用途:

  • rewind_now:創建一個手動檢查點,例如在執行高風險操作前。
  • rewind_list:列出最近的記錄,按時間倒序排列,顯示 ID、時間、工具類型以及變更統計(+added ~modified -deleted)和路徑樣本。
  • rewind_diff:預覽還原計劃及行級統一差異,此操作不會實際修改文件。
  • rewind_restore:執行還原操作。mode=revert 用於撤銷單條記錄;mode=asof 用於將工作區恢復到某個檢查點的時間狀態。
  • rewind_undo:撤銷上一次還原操作,重複執行可切換 undo/redo 狀態。
  • rewind_status:顯示存儲統計信息,包括記錄數、Blob 數、字節數、配額和當前配置。

配置項

插件支持通過配置文件調整行爲。以下是一個典型的配置示例:

- insert:
    - id: workspace-rewind
      name: 'dsh-zcode-rewind'
      config:
        capture: all            # 捕獲模式:all | fileTools | off
        maxFileBytes: 8388608   # 單文件最大字節數,超過僅記錄事件
        maxFiles: 20000         # 單次遍歷文件數量上限
        maxTotalBytes: 536870912  # 存儲總字節數上限,舊 Blob 會自動清理
        keepRecords: 500        # 日誌保留條目數閾值
        excludes: ['.git', 'node_modules', 'dist']
        secretNames: ['.env', '*.pem', '*.key']

注意事項

  • Shell 副作用捕獲:與市場上其他 rewind 插件不同,本插件能捕獲 Shell 命令的副作用(如 sed -i),因爲其採用指紋差異對比而非解析參數。
  • 檢查點粒度:捕獲是基於“每次工具調用”,而非“回合邊界”,因此能更精確地定位問題。
  • 存儲位置:存儲目錄位於 $DSH_HOME/workspace-rewind/,位於工作區之外,不會污染 Git 倉庫。
  • 去重機制:由於使用 SHA-256 內容尋址,相同的文件內容在多次修改中只佔用一份存儲空間。

總結

dsh-zcode-rewind 爲 DeepSeek Harness 提供了細粒度的、可逆的工作區狀態管理能力。對於需要高可靠性和精確控制回滾範圍的智能體開發場景,該插件是一個實用的工具。其詳細文檔與源碼位於 GitHub。

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

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

小夜