文件检查点与回滚
每当 Agent 执行破坏性命令(文件编辑、Shell 命令)时,Myrm 会自动创建 Shadow Git 快照。你可以查看变更、选择性恢复文件,Agent 会自动适应你的回滚操作。工作流程
外部副作用预警
当命令涉及文件系统之外的不可逆副作用时,Myrm 自动标记:| 类别 | 示例 | 警告 |
|---|---|---|
| 数据库 | psql、mysql、redis-cli、mongo | 数据库变更无法通过文件回滚撤销 |
| 网络 | curl -d、http POST、wget --post | HTTP 写操作已发送到远程服务器 |
| 容器/云 | docker rm、kubectl delete、terraform apply | 基础设施变更在外部持久存在 |
“文件将被恢复,但此命令期间的数据库/网络/容器操作无法撤销。“
零配置
文件检查点开箱即用:- 无需配置 — 所有部署模式默认启用
- 不污染 Git — Shadow Git 完全隔离于项目之外
- 零性能影响 — 异步快照,3 秒超时保护
- 自动存储管理 — 每项目 50 个快照、全局 2GB 上限、自动清理
存储架构
Shadow Git 使用共享裸仓库和按项目分支:- 内容去重 — 跨项目相同文件只存一份
- 孤儿清理 — 已删除项目自动修剪
- 损坏修复 — 检测到损坏时自动
git fsck+ repack - 全局 GC — 定期垃圾回收保持最小磁盘占用
崩溃恢复
服务器在任务中途崩溃时:- LangGraph 持久化 SQLite 检查点在每个图节点转换时保存完整状态
- 重启时
OfflineDurableTask检测中断的任务 - 从精确断点恢复任务——无需用户重新操作
6 层中断自愈体系
文件检查点只是 Myrm 完整中断恢复体系的一层:| 层级 | 保护对象 | 恢复机制 |
|---|---|---|
| 图状态 | 整个 Agent 执行状态 | LangGraph SQLite 检查点 + 增量 dill 序列化 |
| 子任务 | 关机时的子 Agent 工作 | SIGTERM 自动保存检查点 + 无缝恢复 |
| 对话分叉 | 对话探索分支 | 从任意检查点分叉 + 完整父级血统追踪 |
| 目标管理 | 因预算/用户暂停的长期目标 | 恢复时重置计数器,保留所有历史进展 |
| 文件快照 | 工作区文件修改 | Shadow Git 选择性恢复 + Agent 自动感知 |
| 流恢复 | LLM 流式传输网络中断 | 4 种策略:单次/续传/截断/溢出降级 |
