DeepSeek Harness 插件:dsh-rollback

前言

DeepSeek Harness (DSH) 的核心設計之一是插件化。在智能體開發過程中,模型對文件的 write 或 edit 操作,以及外部 bash/run_code 調用,往往是不可逆的。一旦出錯,需要人工介入或通過繁瑣的命令行恢復。

dsh-rollback 是一個用於 DeepSeek Harness 的文件變更回滾插件。它在插件層通過監聽工具調用結果和執行鉤子,捕獲變更前的狀態,並提供回滾能力。

插件概覽

  • 插件名稱: dsh-rollback
  • 維護者: Taler97
  • 許可證: MIT
  • 核心功能: 捕獲文件變更前的鏡像,支持通過工具或命令行回滾。

安裝與啓用

該插件以 bundle 形式提供,無需修改 Harness 核心代碼。

  1. 前置條件

    • 確保 dsh CLI 已安裝並在 PATH 中。
    • 確保 pnpm 已安裝並在 PATH 中(dsh plugin 命令依賴它)。
  2. 安裝命令
    在目標 profile 下執行:

    dsh plugin --profile demo add dsh-rollback
  1. 驗證安裝
    安裝後,profile manifest 中會自動包含該 bundle。啓動 session 時,模型應當能看到 rollback_files 工具,或者在未發生變更前輸入 /rollback 能得到 rollback: nothing to restore 的反饋。

核心功能

  • 變更捕獲:捕獲 write/edit 工具結果中攜帶的 before 鏡像,以及 bash/run_code 調用前的 workspace 快照。
  • 存儲機制:將捕獲的鏡像存儲在 workspace 的 git object database 或獨立的 snapshot store 中。
  • 回滾接口:
    • 模型工具: rollback_files {count}
    • 用戶命令: /rollback [count]

使用示例

用戶命令回滾

在 session 的聊天輸入中執行:

  • /rollback:撤銷當前 session 工作目錄中最近一次捕獲的 mutation。
  • /rollback 3:撤銷最近三次捕獲的 mutation。

輸出會列出每個恢復的文件及其操作(如 restored 或 deleted)。

模型工具回滾

模型可以通過 rollback_files 工具撤銷自身的錯誤操作。該工具無 prompt section,參數爲 {count},表示回滾次數。

配置項

插件支持以下配置(需手動修改 profile manifest 或在 config 中指定):

  • mode (auto | git | snapshot): 存儲模式。
    • auto: 默認。如果是 git 倉庫則用 git blob,否則用 snapshot。
    • git: 將所有鏡像存爲 git blob(需倉庫)。
    • snapshot: 統一存爲 snapshot 文件。
  • storeDir: 存儲目錄。默認爲 Harness home 下的 rollback 目錄。
  • maxRecords: 內存中記錄的上限,默認 200。超出時丟棄最舊的記錄。
  • gitPath: Git 可執行文件路徑,默認爲 git。
  • notifyModel: 布爾值。手動回滾時是否通知模型(默認通知)。

捕獲範圍與限制

  • 可捕獲: write/edit(需結果帶 before 字段)、bash/run_code(需工作區爲 git 倉庫)。
  • 不可捕獲: str_replace_editor、非 git 倉庫下的 bash 調用、原始 subprocess。
  • 作用域: 回滾僅限於調用 session 的當前工作目錄。

結語

dsh-rollback 是一個輕量級的安全網,通過 git 或 snapshot 存儲變更前的狀態,允許在智能體運行過程中安全地撤銷錯誤操作。所有代碼遵循 MIT 許可證,可在 GitHub 上查看源碼。

GitHub 倉庫

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

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

小夜