把 agent 行为做成事后可证
2026-10-06 —— 还原不了的事故,就是修不了的事故。当 coding agent 删了目录、打开了密钥文件、把远程脚本直接喂进 shell 时,等人回头来看,关键时刻早已过去:终端记录随滚屏丢失,shell 历史不做归属,CI 日志只讲构建不讲进程。服务端也有它的表亲问题:运维如今连「哪股 agent 流量干了什么」都很难说清。这一篇讲我们最先做的那件窄事:可证。
「可证」具体指什么
- 每一个被观察到的动作 = 本地追加式 JSONL 审计记录里的一行:agent 家族、进程谱系、命令形态、时间戳,以及动作发生那一刻附加上的策略判定
- 畸形事件在触达日志前即被拒绝——零字节落盘。记录可信是因为有严格校验器把关,而不是因为上报者「保证诚实」
- 秘密永不入档:所有来自操作系统的字符串先过一层脱敏(凭证、键值型机密、密钥文件路径)才被记录
- 记录只属于你:仅属主可读写、按大小与按天轮转,采集器不做任何外网调用——依赖闭包在 CI 中机器校验
当前阶段的判定:would_block
Phase 0 = 观察、评估、审计。高风险动作会被记一条 would_block 判定然后照常执行——先有证明,再谈拦截。评估口径随声明公开:40 例冻结集,危险类检出 90%,良性类零误判,凭证零泄露。强制拦截属于后续阶段、届时另行公告;本博客任何一句话不走在代码前面。
可证也意味着「假设重放」
已并入 main、尚未进入当前 tag 的发布件:回放引擎用候选规则文件重读既有审计语料,逐事件输出判定——确定性、两次运行字节级一致、对运行中的系统零副作用。它回答的正是每场事故复盘真正要问的那句:如果拿上周二的记录去问明天的策略,会得到什么答案?几秒内,可复现。
在你自己的机器上看一眼
- v0.5.0 的只读控制面——status、audit-tail、timeline——原样展示记录被写下的样子
- 下载页:完整构建矩阵与逐文件 SHA-256,以及未签名构建的首跑指引(我们把 SmartScreen 与 Gatekeeper 会弹窗这件事直说,不装)
- 源码、tag 与 issue:github.com/411160007/20131-agentruntime
如果你在跑 coding agent,并且有一类事故形状是你目前「事后证明不了」的——写信给我们:<a href="mailto:[email protected]">[email protected]</a>,或走<a href="/zh-cn/support/">支持页</a>。每封邮件都有真人读;你描述的场景,就是下一版规则文件与下一套评估集的种子素材——这句话就是本页存在的理由。