跳转到主要内容

文件检查点与回滚

每当 Agent 执行破坏性命令(文件编辑、Shell 命令)时,Myrm 会自动创建 Shadow Git 快照。你可以查看变更、选择性恢复文件,Agent 会自动适应你的回滚操作。

工作流程

1

自动快照

在任何破坏性操作前,系统透明地使用隔离的 Shadow Git 仓库快照所有跟踪文件——完全独立于项目的 .git
2

可视化时间线

打开历史面板查看所有快照的时间线。每张卡片显示哪些文件被更改,并附带行级统计(+X/-Y 行)。
3

选择性恢复

选择特定文件回滚,同时保留其他更改。也可以全量恢复并通过确认对话框二次确认。
4

Agent 自动感知

恢复文件后,Agent 在下一轮对话时自动检测到回滚操作并重新读取受影响的文件——无需手动干预。

外部副作用预警

当命令涉及文件系统之外的不可逆副作用时,Myrm 自动标记:
类别示例警告
数据库psqlmysqlredis-climongo数据库变更无法通过文件回滚撤销
网络curl -dhttp POSTwget --postHTTP 写操作已发送到远程服务器
容器/云docker rmkubectl deleteterraform apply基础设施变更在外部持久存在
恢复包含这些操作的快照时,UI 显示清晰警告:
“文件将被恢复,但此命令期间的数据库/网络/容器操作无法撤销。“

零配置

文件检查点开箱即用:
  • 无需配置 — 所有部署模式默认启用
  • 不污染 Git — Shadow Git 完全隔离于项目之外
  • 零性能影响 — 异步快照,3 秒超时保护
  • 自动存储管理 — 每项目 50 个快照、全局 2GB 上限、自动清理

存储架构

Shadow Git 使用共享裸仓库和按项目分支:
  • 内容去重 — 跨项目相同文件只存一份
  • 孤儿清理 — 已删除项目自动修剪
  • 损坏修复 — 检测到损坏时自动 git fsck + repack
  • 全局 GC — 定期垃圾回收保持最小磁盘占用

崩溃恢复

服务器在任务中途崩溃时:
  1. LangGraph 持久化 SQLite 检查点在每个图节点转换时保存完整状态
  2. 重启时 OfflineDurableTask 检测中断的任务
  3. 从精确断点恢复任务——无需用户重新操作
这在架构上优于手动检查点回调(某些竞品的做法),因为状态在每个图节点转换时自动捕获,而非仅在手动标注点保存。

6 层中断自愈体系

文件检查点只是 Myrm 完整中断恢复体系的一层:
层级保护对象恢复机制
图状态整个 Agent 执行状态LangGraph SQLite 检查点 + 增量 dill 序列化
子任务关机时的子 Agent 工作SIGTERM 自动保存检查点 + 无缝恢复
对话分叉对话探索分支从任意检查点分叉 + 完整父级血统追踪
目标管理因预算/用户暂停的长期目标恢复时重置计数器,保留所有历史进展
文件快照工作区文件修改Shadow Git 选择性恢复 + Agent 自动感知
流恢复LLM 流式传输网络中断4 种策略:单次/续传/截断/溢出降级
无论何种中断——进程崩溃、网络中断、用户暂停或预算用尽——Myrm 都能从精确断点恢复,零数据丢失。