信创气隙 box 上 agent 改坏文件后,pitrrwnd 用数据库 PITR 同构映射的工作集 savepoint + redo log,把工作集字节级倒回 agent 介入前的任意步骤。全程本地、留等保可审计的还原痕,操作不出境。
agent 凌晨跑坏了一条命令,改坏了 git 跟踪范围之外的配置与运行时态——pitr rewind --step N 秒级把工作集倒回那条命令之前,pitr verify --step N 仅在字节级 sha256 全匹配时退出 0。
近 6–18 个月,coding agent 从玩具变成可跑长链路多步自主会话,单步 blast radius 从"一个文件"涨到"整个工作集被污染"——agent 改坏了 /etc、~/.config、sqlite 这些 git 够不到、VM 快照够不细的状态。这正是 Agent 编排平台 langgenius/dify 之外被反复提起的缺口:dify 把 Agent 编排做成了平台,却没有人给 agent 的工作集做 per-step 的事务日志与回滚原语。pitrrwnd 把数据库 redo-log 时间点恢复的同构映射搬到文件系统树:每个 agent 步骤一个 COW savepoint,写一次 sha256 manifest;步骤之间 fsnotify watcher 写 redo 日志;rewind 到任意步骤,verify 字节级校验。原语成熟(DB PITR),只是 agent 会话够长够自主后才值得做。
今天运维只能 git reset(够不到非跟踪文件)或整盘 VM 快照(粒度粗、非按步、无审计、占空间大)。等保 2.0 要求"可审计地还原至介入前状态",但 agent 改的配置/DB/运行时态既不在 git 里、也非整盘快照能按步触及。pitrrwnd 在本机按 agent 步骤做 savepoint,把工作集字节级倒回该步骤,redo 日志天然留可审计痕,且全程不出境。
git clone https://github.com/SuperMarioYL/pitrrwnd && cd pitrrwnd
make build
./scripts/demo.sh # 端到端:savepoint → agent 改坏 → rewind → verify 退出 0首次发布后可直接下载预编译二进制(静态 Go,零运行时依赖):
curl -L https://github.com/SuperMarioYL/pitrrwnd/releases/latest/download/pitr-linux-amd64.tar.gz | tar xz
sudo mv pitr /usr/local/bin/示例输出(scripts/demo.sh 节选)
==> pitr savepoint --label "before risky refactor"
savepoint step=1 label="before risky refactor" working_set_sha256=0cf9147b678ce60533a25e23fc77f9eeb3810447a4b7e971907ad74e662dc704
==> pitr verify --step 1 (should FAIL)
verify step 1: FAIL — verify: app.conf sha256 mismatch (want 808a.., got 4c51..)
==> pitr rewind --step 1
rewound to step 1 ("before risky refactor"); working_set_sha256=0cf9147b678ce60533a25e23fc77f9eeb3810447a4b7e971907ad74e662dc704
==> pitr verify --step 1 (should pass, byte-level equal)
verify step 1: OK (working set sha256 matches manifest)
==> pitr audit-export -o bundle.tar.gz
audit bundle written: bundle.tar.gz
audit_sha256=aec87c191289500ea95fba98ad23176fd28d086f4d4893af25af08c93604a516
所有状态都在工作集根目录的 .pitr/ 下,单进程、前台、无守护。pitr watch 在 agent 工作时前台跑;savepoint / rewind / verify / log / audit-export 是对 .pitr/ 的无状态子命令。
# 1. 在 agent 工作集初始化事务状态
cd ~/agent-work && pitr init
# 2. 在 agent 跑之前打一个 savepoint(COW 快照 + sha256 清单)
pitr savepoint --label "before risky refactor"
# 3. 让 agent 跑(可选:另开终端 pitr watch 记录每文件写事件的 redo 日志)
# ...agent 改坏了 app.conf、删了 db/store.db、留下 junk.txt...
# 4. 倒回到 step 1,并字节级校验
pitr rewind --step 1
pitr verify --step 1 # 仅在 sha256 全匹配时退出 0
# 5. 查看时间线与审计痕,导出等保评审包
pitr log
pitr audit-export -o bundle.tar.gz| 命令 | 关键参数 | 作用 |
|---|---|---|
pitr init |
--root/-C |
创建 .pitr/ 状态目录(bbolt 索引 + snapshots + manifests + redo.wal + audit.jsonl) |
pitr watch |
--root/-C |
前台 fsnotify watcher,按文件写事件追加 redo 日志(Ctrl-C 停止) |
pitr savepoint |
--label/-l |
写 reflink/COW 快照 + 全文件 sha256 清单,截断 redo 日志到步骤边界 |
pitr rewind |
--step/-s N |
从快照还原工作集,删除 agent 新增文件,追加 rewind 审计条目 |
pitr verify |
--step/-s N |
逐文件哈希比对清单,仅全匹配退出 0(杀手级校验) |
pitr log |
--root/-C |
打印 savepoint 时间线 + 追加式审计痕 |
pitr audit-export |
--out/-o |
导出 tar.gz 评审包(audit.jsonl + savepoints + 清单 sha256 + 版本) |
--root/-C 可在任意子命令指定工作集根(默认当前目录)。
10 分钟端到端:pitr init → 打 savepoint → 模拟 agent 改坏配置/删库/丢垃圾文件 → pitr rewind --step 1 → pitr verify --step 1 退出 0(字节级等值)。
完整可复现脚本见 scripts/demo.sh;vhs 录制脚本见 docs/demo.tape(make demo 可重新渲染 gif)。
| 能力 | pitrrwnd | git reset / worktree |
VM / 容器快照 |
|---|---|---|---|
覆盖非 git 跟踪文件(/etc、DB、运行时态) |
✓ | — | ✓ |
| 按 agent 步骤粒度 | ✓ | —(人 commit 粒度) | —(整盘) |
| 字节级 sha256 校验退出码 | ✓ | — | — |
| 追加式审计痕(sha256 + ISO 时间戳 + host + user) | ✓ | — | partial |
| 全本地、不出境、静态二进制零网络依赖 | ✓ | ✓ | partial |
| 分布式协作 / 分支语义 | — | ✓(git 更强) | — |
诚实地说:git 在分布式协作与分支语义上远胜 pitrrwnd——pitrrwnd 不取代 git,只补 git 够不到的 per-step 字节级回滚与审计缺口。
- m1 快照与 savepoint —
pitr init建.pitr/;pitr savepoint写 reflink/COW 快照 + sha256 清单;pitr verify --step N退出 0(ext4 + XFS)。 - m2 回滚还原 —
pitr rewind --step N从快照还原工作集,追加审计条目;verify --step N字节级等值。 - m3 日志、审计、demo —
pitr log时间线 + 审计痕;pitr audit-export等保评审包;scripts/demo.sh可复现。 - sub-savepoint redo-log 重放(
pitr rewind --to TIMESTAMP,v0.2) - Claude Code / Cursor wrapper(
scripts/claude-code-hook.sh,v0.2) - 龙芯 / LoongArch 预编译二进制
- 快照库去重 / 压缩(超出 hardlink 之外)
- 加密静态快照库
核心 PITR 引擎与本地 .pitr/audit.jsonl + audit-export 等保评审包永久开源(MIT),单机静态二进制完整可用、核心回滚永不设限。
面向信创/等保合规运维与 on-prem LLM 多机 agent 集群的团队计划(运行在气隙内,不上云):
- 多机中央审计看板:聚合各机
.pitr/audit.jsonl成单一等保可审视图 - LoongArch / 龙芯预编译二进制
- 等保评审包模板(可签名)+ SLA + on-prem license key
- 定价:¥6,800 / 机 / 年,5 机起(¥34k/年起);首批 3 家信创客户 Q4 试点 ¥3,000 / 机 首年
- 计费:对公转账发票 + license-key 授权(气隙禁止 Stripe / 云计量)
- 最小成交路径:在其 staging 信创机 30 分钟远程——
pitr init→ agent 改坏配置 →pitr rewind --step 1+pitr audit-export→ 等保评审员当场签名评审包 → 14 天内出 PO
意向试点或商务洽谈:开 issue 标 commercial 或邮件联系。
pitrrwnd — 给 agent 工作集做文件系统 PITR。数据库 redo-log 同构映射,按 agent 步骤字节级回滚到介入前任意点,verify 退出 0 才算还原,全程本地留等保审计痕。https://github.com/SuperMarioYL/pitrrwnd
MIT — 见 LICENSE。提 issue 或 PR 欢迎;商务/合规需求见上方付费。
MIT © 2026 SuperMarioYL
