字数:约3200字 | 阅读时间:8分钟 “人可读,不等于人可直改。”
「记忆工程」系列第四篇。上一篇讲流水线,这篇讲一场被事故逼出来的设计翻转:我给AI建的"第二大脑",现在连我自己都不允许直接改了。
听起来有点反直觉——自己建的记忆库,自己改一条怎么了?
事情要从一条"看起来完好"的记忆说起。
一、一条永远读不出来的记忆
这个记忆系统有条铁律:正本是明文Markdown加Git,谁都能打开看。好处是审计极其简单,git log 一翻,哪条记忆谁写的、什么时候改的,清清楚楚。
但"人人可看"慢慢滑向了"人人可改"。
事故锚点是一次提交:一条记忆链接记录里,混进了一个规范之外的字段。入库没人拦,落盘没人报,唯一能看到异常的地方——解析器的错误统计——因为字段不合法,这条记录解析直接失败,错误永远不可见。
于是库里静静躺着一条记忆,界面上看它完好无损,实际上永远读不出来。更麻烦的是:没人知道还有多少条这样的记录。
复盘时挖出了更根本的问题:这条记录是人工直接编辑进库的。系统里每个AI写记忆都要过归属检查,唯独人工提交完全绕过——权限文件里写着这条记录属于哪个AI,但人工提交根本不看它。
看的人有权限,不等于改的人有资格。这个区别,之前的设计没管。
二、方案一句话,评审三轮全打回
修法说出来一句话就能讲完:记忆正本对人是只读的,人想改,写意见进专门的暂存目录,由AI程序化提取、校验、落成合法记录。
这就是项目的第23号决策「记忆库程序化只写」。
但这个听起来很合理的方案,在评审那里撞了墙。而且不是撞一次,是三轮独立复核,结论全部是"打回重改"。
第一轮挖出8项发现,最重的两条:方案的改动清单漏了5处绕行写点——你以为只堵了一个门,实际上系统里有五条小路;另外还有一个"自由通道"函数压根没纳入设计。
第二轮确认一轮8项中6项成立,又新发现3项致命、4项严重。这轮还修正了一个关键判断:真正的缺口不是没有校验,而是没有统一契约——各处校验各管各的,没有中央闸门,绕过一处就全绕过了。
第三轮把前两轮的问题全部独立复现,补上实证,又加了4项新发现。结论维持打回。
三轮下来,最初的方案被磨成了一份带五项决策的整改计划,全部按评审推荐执行。这个过程最有意思的地方在于性价比:三轮评审不是三轮推倒重来,而是每轮收窄、逐层压实——第一轮找方向性漏洞,第二轮修正误判,第三轮补实证收口。最终拍板的五项决策,没有一项是评审期间没讨论过的。拍板只是确认,不是裁决。
三、一天落地三道闸
评审通过后,执行一天干完,分三个阶段。
**第一道闸:中央写入口。**所有往记忆库写记录的路径,必须过同一个闸门,串联归属检查和格式检查两道验证。设计上有个值得学的细节:检查失败不抛异常,而是返回带错误码的结构化结果,调用方自己决定怎么处理;每次拒绝都写审计事件,绝不静默。闸门装上后做的第一件事是收口——排查出5处绕行写点,全部改走闸门。存量脏数据也没放过:迁移脚本把已有的非法记录隔离,死链生成清单供手工修复。
**第二道闸:Git钩子兜底。**中央闸门管的是"走正常管道的写入",那绕过管道直接提交的怎么办?Git提交钩子里加了白名单:记忆库核心目录的提交,作者必须等于记录属主,不匹配直接拒绝提交。豁免清单里保留意见暂存区和隔离区——那两个地方本来就该自由写。配合这套约定,周期审计加了两个扫描分支:一个抓人工直改,一个抓字段结构漂移。这一层近400行代码里,一大半是防御机制自己的测试——每道闸门都配了自己的回归验证。
**第三道:意见通道。**最后把"人怎么提意见"做完整:一个自由格式的暂存目录,人往里丢笔记,文件监听加防重复消费的游标,笔记经提取管道程序化落成合法记录。细节上留了活口:解析不了的笔记原地保留,产出审计事件,不隔离不丢弃——意见通道本身不能变成黑洞。
落地当天全量测试463个用例,0失败。
四、现在想改记忆,流程长这样
改造后,写入路径收敛成四条:
- AI程序化写入 → 中央闸门 → 记忆库;
- 人提意见 → 暂存目录 → 提取管道 → 经闸门落成合法记录;
- 绕道直改 → 提交钩子拒绝,或周期扫描捕获;
- 存量脏数据 → 迁移脚本一次性清过。
对人的体验变化只有一处:想改记忆,不能再顺手改文件提交了,得往暂存目录丢一篇自由格式的笔记,剩下的交给管道。
看起来麻烦了一点,但这正是这次改造的全部意义:便利让渡给一致性,一致性保住可信度。第二大脑首先是"可信"的,然后才是"好用"的。
五、这笔账怎么算
这场改造有三点值得单独记下来。
第一,承认"合理的坏设计"最难。“明文人人可改"曾是这套系统的卖点,白纸黑字写在早期决策里。承认既有设计有问题,比修一个新bug难得多——新决策里专门写了一句"对早期决策的部分推翻”,设计文档明明白白记下自己推翻了自己。
**第二,交叉复核便宜得惊人。**三轮全打回,意味着如果第一轮就放行,5处绕行写点、自由通道、作者判定语义不清会全部带病上线。而三轮评审的成本不高:每轮都是独立实例读方案、读代码、出报告。红蓝对抗在方案阶段跑,比上线后出事便宜几个数量级。
**第三,执行快是因为方案慢过了。**单日三阶段落地看着爽,但前提是整改计划被三轮评审磨透、五项决策提前讨论清楚。评审慢下来换执行提速,这笔账是划算的。
照例:本文由 AI 起草、人类审校拍板。这个栏目本身,就是人机协作的现场记录。
「记忆工程」系列 · 04 | 上一篇:一个人带四台机器干活:我把AI协作做成了流水线