dsh-plugin-time-machine: DSH 會話與工作區時光機

在 DeepSeek Harness (DSH) 中,Agent 對工作區的修改通常難以直接撤銷。如果 Agent 走了彎路或遇到錯誤,需要一種機制能夠將狀態“回滾”到之前的檢查點,並從舊節點繼續探索。dsh-plugin-time-machine 插件正是爲此設計,它能夠協調 DSH 會話的分叉與安全的工作區檢查點。

核心功能

  • 恢復工作區:支持預覽目標文件、衝突及外部副作用。確認後回到舊檢查點。普通新增文件隨完整恢復清理,忽略文件默認保留。
  • 保留探索路徑:檢查點組成持久化 DAG(有向無環圖)。從舊節點 fork 時,保留原來的失敗分支和錯誤證據。
  • 對齊會話:回滾時請求 DSH 從對應消息邊界創建會話分支,同時恢復文件。原會話歷史繼續保留。
  • 記錄失敗線索:將失敗工具的摘要用於新分支的反思提示,幫助 Agent 避開已知錯誤。
  • 適配非 Git 目錄:在沒有 Git 倉庫時,使用 manifest 和內容哈希保存快照。

安裝與啓用

安裝前請確保已安裝 DeepSeek Harness 和 pnpm,Node.js 版本需滿足 ^22.19.0 || >=24.0.0,且 DSH 版本爲 >=0.1.5-rc.2 <0.2.0 的 web profile。

執行以下命令安裝插件:

dsh plugin --profile web add github:GeoSyntax/dsh-plugin-time-machine#v0.2.0

安裝或更新後重啓 DSH。插件會通過 cordis.patch.yml 自動加入 profile 配置。

典型用法

  1. 在項目目錄啓動 DSH Web:
    dsh web
  1. 在會話中輸入指令查看檢查點列表和分支關係:
    /tm-list
    /tm-tree
  1. 打開儀表盤頁面:http://127.0.0.1:3088。該頁面支持中文/英文切換,用於查看檢查點詳情、文件變化和恢復預覽。DSH Web 自身默認運行在 http://127.0.0.1:3080,兩者是不同的頁面。

適用場景與注意

  • Safe 模式限制:默認 safe 模式下,遇到無法驗證的用戶修改、暫存區變化或受保護的忽略文件時會拒絕覆蓋,恢復前必須查看 preview。
  • 工作區共享:當前 DSH 宿主的 fork 共用工作區,不提供獨立 worktree 或容器。並行會話修改同一目錄時需注意。
  • 副作用限制:文件回滾不能撤銷數據庫事務、網絡請求或雲資源變更,插件僅能記錄並提示這類副作用。
  • 恢復類型區分:完整恢復和選擇性文件恢復是不同操作,需要只恢復某些文件時,應使用選擇性恢復功能。
  • 插件性質:非官方社區插件。

結語

該插件通過 DAG 分支和失敗反思機制,爲 DSH 提供了類似時間旅行的能力。更多細節可參考 GitHub 倉庫 或 SkillHub 插件目錄。

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

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

小夜