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 插件目录。

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

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

小夜