消息出来那天我干的事很朴素:npm pack 下来,解开,去 map 文件里翻 sourcesContent。
package/dist/index.js
package/dist/index.js.map <- sourcesContent: 完整 TS 源码
一行没少。
这不是"泄露了点实现细节",这是一次发布事故。而且是事故里最不值钱、也最常见的那一类——打包配置少写一行,把不该发的东西发出去了。
结果一周之内,社区出了本 18 章的书,七个部分,从 bootstrap 讲到 swarm。转发的人比出事那会儿还多。
刷到第六个转发的时候我有点烦。
不是烦那本书,书我看了,下面说。烦的是没人问那句该问的:这堆源码是怎么进到 tarball 里的,谁审的,下次还会不会。
——补一刀,你们也别笑。上一次有人拆开你们家的发布产物看一眼,是什么时候?
我上次查,是合规审计逼的。不是我自己想到的。
所以这条我骂不了谁,包括我自己。
书我服一半。
服的那半边,跟"agent 能干什么"一点关系都没有。我把架构章节翻下来,最有意思的是它几乎每一处都在假设模型会干错事。
hook 配置在启动时做快照、冻结,防的是运行期被塞进新 hook。翻译过来就是配置文件只读挂载,权限在进程起来那一刻定死。这不是 AI 圈发明的。
beta header 一旦发出去,整个会话不再撤销,他们叫 sticky latch。为什么?会话中途改协议头,缓存全废。缓存命中率在这儿是钱,不是性能指标。
fork agent 之间前缀逐字节相同,好共享 prompt cache,据它说省掉约 95% 的输入 token。逐字节。一个空格、一个时间戳、一个对象 key 顺序变了,这 95% 就没了。这种活儿没有魔法,就是有人拿尺子量过。
工具按读还是写分区,读的并行、写的串行,只读工具在模型还在流式吐字的时候就提前跑——投机执行,赌你大概率要看这个文件。我们管这个叫读写锁加乐观预取。
输出上限默认 8K,需要时才抬到 64K。配额加超额申请。不设上限的系统我见过,结局都一样:某个没人预料到的输入把配额吃干,然后开始 500。
context 四层压缩:
snip -> microcompact -> collapse -> autocompact
名字起得像四个独立小组,其实就是 logrotate。我们十五年前就这么轮转日志。
一句结论:这份被泄出来的代码,最值钱的部分不是它能干什么,是它处处在拦着自己别干什么。上限、快照、分区分级、降级、压缩。而对外宣传那一页,这些刹车一条不留,只剩"自动一切"。
卖你的是油门。源码里全是刹车。
这才是它对着值班的人真正有用的地方。要判断一个 agent 系统能不能碰生产,别听它说支持多少工具,去看它写操作有没有串行、有没有超时上限、有没有"这个动作不许做"那道硬闸。没有这些,它就是在凌晨三点等你。
多 agent 编排那块我保留意见。mailbox、swarm、coordinator,消息队列叫了三十年的东西,塞进 agent 里换了个名字,复杂度一点没降。这个剧本我看过。
书的后半我本来是准备拿来开喷的——36 个 agent,四个阶段,六小时,一本 18 章的书。连书都是 AI 写的,标题太好用了。
流程摊开是这样:
6 个 agent 通读近两千个文件
12 个 agent 产出 494KB 原始文档
15 个 agent 改写成章节
3 个审稿出 900 行反馈 -> 3 个 agent 去改
最后一道审计:逐字源码全删,代码块改写成变量名不同的伪代码
喷不出来了,因为里面有两道工序,恰好是我一直在跟人念叨的那两道。
一道是"审"。900 行反馈,再有人去改。不是一个 agent 一口气写完直接发。
另一道更关键:交付前有一道审计,专门干一件事——把不该带出去的东西删掉。这本书的产出物,自己知道要清掉原始代码。
它连签字大概率都是 agent 签的,我不装喜欢这个。但它至少有一道闸。
反过来看我们自己写的东西:事故复盘里逐字贴的客户数据、内网域名、密钥前缀;发出去的 runbook 里粘着一个早就不存在的环境变量。一抓一个准。
我们有些人写的东西,交付前连自己都没读第二遍。
——不过话说回来,那条 36 个 agent 的流水线里,没有一道工序是回头改打包配置的。全都拿着泄出来的东西干活,没人去堵那个洞。
这才是最荒诞的地方:一本书的生成流程,比这件事本身的处理流程严谨。
生产事故里这叫什么?只清现场,不改流程。同一个坑,下次换个包继续踩。
本期教训两条,不长:
发布产物是生产环境的一部分。上线前解开 tarball、解开镜像,grep 一遍 sourcesContent、.env、私钥前缀、内网地址。这条写进 CI,别挂在谁的记性上。
读别人的架构,先读护栏,后读能力清单。能力清单是写给发布会用的,护栏是写给凌晨三点的人用的。
至于那本书的封面——借 O'Reilly 那只动物开涮,跟 O'Reilly 没关系,跟 Anthropic 也没关系。有关系的是某个下午点了 publish 的那个人,他大概率永远不会出现在任何一份复盘里。