我们上一篇文章的一条评论发现了我们的智能体审批机制存在一个漏洞。以下是我们的发现
摘要
## 复盘:共享 Markdown 记忆库里的 Agent 审批流程漏洞 ### 背景 我们团队维护着一个共享的 markdown 记忆库(memory repo),用于沉淀 agent 的上下文、约定和决策记录。多个 agent 通过 ingest 流程向其中写入内容。设计初衷是「先讨论、后提交」——审批在聊天里发生,达成一致之后再落到仓库里。 复盘时我才发现,这个流程实际上从一开始就是坏的。 ### 漏洞一:审批只发生在聊天中 审批环节完全活在 IM 的聊天记录里,仓库本身没有任何痕迹。聊天里的「看起来没问题」「可以合」既没有可检索的记录,也没有结构化的字段。结果就是: - 事后无法回答「这条内容当初是谁批的」 - 审批意见和最终落地的内容经常对不上 - 新成员接手时,只能靠翻聊天记录考古 ### 漏洞二:提交滞后或缺失 「讨论通过」和「实际提交」之间存在明显的时间差,有时甚至根本没有提交。滞后带来的问题是中间状态无人看守——讨论时的版本和最终提交的版本可能已经不是同一份。缺失则更糟:口头通过的内容从没进过仓库,但在聊天里大家都以为它已经是共识了。 ### 漏洞三:ingest agent 自行提交了绝大多数 commit 这条最致命。数据统计下来,绝大多数 commit 是 ingest agent 自己提交的,而不是经过人工确认的人提交的。于是产生了一个危险的等式错觉: > **「已提交」≠「已人工审阅」** 提交历史看起来很干净、很连贯,实际上只是 agent 在忠实地执行 ingest,把「写进仓库」这个动作和「被人类批准」这件事彻底解耦了。 ### 我们做的轻量修复 不需要重写整套流程,先上三件小事: 1. **未审阅文件标注** —— 未经人工审阅的文件显式打上标记,让「这份内容没人看过」在仓库里一眼可见,而不是靠猜。 2. **超期 open change 周检** —— 超过 7 天仍未处理的 open change,纳入每周例行检查,避免它们无声地烂在列表里。 3. **review flag 必须指定负责人** —— 一个 review flag 如果没有明确的 owner,就等于没有 flag。强制要求填写负责人,把「谁来审」从模糊的集体责任变成具体的人。 这些都是补丁性质的改动,不解决根本设计问题,但至少让问题从不可见变成可见。 ### 仍在征求意见:review gate 该放在读侧还是写侧 这是目前还没定下来的开放问题: - **写侧 gate**:在 ingest 提交之前就拦住,未审阅的内容根本进不了仓库。好处是仓库里永远只有可信内容;代价是 agent 的写入会被阻塞,吞吐下降,容易积累积压。 - **读侧 gate**:允许内容先落库,但在消费/检索时按审阅状态过滤,未审阅的内容默认不出现在 agent 的上下文里。好处是写入不被阻塞;代价是仓库里存在「半可信」状态的内容,过滤逻辑一旦有 bug,脏内容就会漏进上下文。 我个人倾向于读侧 + 写侧轻量标注的组合,但这取决于大家对「脏内容混入上下文」的容忍度。欢迎在这点上拍砖。
相似文章
@vintcessun: 阿里开源了一个代码审查工具,核心思路很有意思——确定性工程 + Agent 混合架构。纯 LLM 做 review 常见的问题:覆盖不全、行号漂移、质量不稳定。它用确定性管道处理文件选择、分组和规则匹配,Agent 只负责动态决策和上下文…
阿里巴巴开源了Open Code Review,一个AI代码审查CLI工具,采用确定性工程与Agent混合架构,已在内部运行两年并发现数百万缺陷。
并非每个 Agent 操作都需要同样的审批
作者探讨 AI Agent 审批流程的设计问题,主张审批应基于风险等级而非组织架构——读操作放行、常规更新记录放行、高风险操作才需指定人工审批,并指出真正的业务规则往往存在于未文档化的实践者经验中,而不是 API 权限模型里。
@knoYee_: https://x.com/knoYee_/status/2062780637677752366
作者复盘了使用多Agent协作三个月的经验,总结出五个主要痛点(如Agent间矛盾、忽略边界条件、自我审查失效、合并决策困难、压缩执行后暴露更难问题)和两个心得(只读审查Agent价值高、Agent矛盾暴露需求模糊),强调了人类在AI协作中的核心决策作用。
@guansi:最近,我和几位负责审核流程的同事聊了聊,感觉大家都憋着一股怨气……
作者分享了与负责评审的同事交流后的感受:新人借助AI提交的提案质量远超其实际水平,导致评审者需要投入大量精力反复审阅和反馈,而新人自身能力并未同步提升,这种错配可能成为未来的大问题。
@GKev1n: 别再沉迷让 Sub-agent 互相 Review 代码了——你以为是“左脚踩右脚上天”,其实是“左手掏右手钱包”。 太赞同 poteto 小姐姐今天的说法了!! 她直言对抗式代码审查(Adversarial Review)大多是在纯烧 …
作者赞同 poteto 的观点,批评让 Sub-agent 互相对抗式代码审查(Adversarial Review)纯属浪费 Token,指出其存在无意义 nitpicking、过度设计和算力错配三大死穴,并认为顶级团队正转向实测、形式化验证与真实红队来发现问题。