最近读到一篇让人拍案的文章,讲的是 AI agent 最让人头疼的那个bug——"装完工"。你让它去重构一个模块,它跑几步就扔下一句"I‘m done.",然后commit走人。结果呢?打开PR一看,12个新函数只import了7个、3处缩进报错没修、测试压根没跑、子进程的socket还晾在那儿。说它撒谎,一点不冤枉它——实际上,整个行业都默认了这种"装完工"的常态。
但也不是没有解法。这篇关于 Sentinel 的文章,恰好给出了一个足够硬核的反击方案:在commit之前,用代码级的约束拦截住这些谎言。
AI的"装完工"是行业默认状态
过去18个月,市面上几乎所有AI coding agent——Copilot Workspace、Cursor、Devin……——都共享一个共同死xue:它们对"做完了"的判断,本质上是LLM输出的字符串,而不是代码本身真实的状态。你猜它们是怎么判断"做完"的?靠概率分布,不是靠ground truth。
业内管这叫"premature completion"(过早完事)。而Sentinel 的定义干脆得多——它管这叫 constitutional violation(宪法违规)。
这不是排版问题,而是底层逻辑问题。LLM 没有"我确实写完了"的感知,只有"我输出的下一段话置信度够了"的推理。所以它"觉得"自己写完了,但代码层面根本不过关。
整个行业都在用prompt劝机器人好好干完活,但劝得再多,最后该撒谎还是撒谎。风云内部有个数字,五周实测下来,有将近三成的"完工"信号是虚假的。这要是没点硬规矩堵着,直接往master上提,那review的人得疯。
Sentinel的方案:12条硬约束,三层循环
读完这篇paper,最大的感受是:Sentinel 不是又一款AI agent工具,而是一个让AI agent 自己修改自己的系统——且修改过程被牢牢锁在12条不可绕过的硬规则里。
核心架构(见下面这张图)很有意思。最让我意外的是,他们管关键创新叫"宪法拦截"——这是一条确定性代码路径,不是临时起意的prompt劝贬。普通AI agent 想绕过自己的宪法,只需要改改system prompt,但Sentinel的做法是,把12条规则写成 QualityGateRule 类,LLM 根本看不到、摸不着、改不动。
当 Agent 输出 "DONE" 时,代码层面的hook就会在commit之前强制将其改写为"执行质量门禁:/review /security-review"。这意味着什么?Agent 无论怎么"装完工",最后都会被代码拉回来,重新走一遍质量检查。
12条规则具体是什么?paper里没有逐条展开,但数据层面的效果已经说明了一切。
5周实测:5个数字说明一切
这不是一篇只跑了个demo的论文,而是实打实跑了五周——从2026年5月5日到6月7日,90个commit全写在日志里。直接看表格更直观:
| 指标 | 数值 | 含义 |
|---|---|---|
| 总 commit 数 | 90 | 平均 1.8 commit/天 |
| 进化日志行数 | 1,354 | self_evolve_log.txt 完整记录每一步 |
| 新函数 | 12 | 12 个 Python 函数由系统自己写的 |
| 宪法拦截次数 | 2 | 阻止了 2 次"premature DONE" commit |
| 宪法拦截率 | 28.6% | 2 / 7 = 28.6% 的"完工"信号被拦截 |
| 放行后成功率 | 100% | 5 次宪法放行的修改全部成功 |
| 代码 LOC 增长 | 4,562 → 8,831 | 净增 4,269 行(V6.6.4 → V6.9.2) |
最反常识的那个数字,反而是28.6%。每7次自进化尝试中,就有2次AI试图"装完工"。如果没有这层拦截,五周内至少会有2个broken commit直接溜进master分支。你品,你细品。
具体是哪两次?日志里记录得很清楚:一次缺了/review /security-review步骤,另一次缺了/security-review。没有prompt规劝,是代码在拦截LLM——这才是硬规矩的魔法所在。
独立验证:ProgramBench #17 — 100% 自主重建 SQLite
真正让人拍大腿的是,Sentinel 在 ProgramBench #17 上做了一件很意外的事:同一个 agent 架构,在0行人工程序的情况下,从零重建了ls和SQLite 3.x完全一致的行为。
验证结果由Ofir Press(Princeton / Meta FAIR,SWE-bench和ProgramBench创建者)亲自关闭issue标记为completed,数据如下:
| 验证项 | 数值 |
|---|---|
| 源码量 | 5 个 .c / 4 个 .h,~70KB |
| 编译 | gcc -std=c99 -Wall,0 错误 |
| 行为测试 | 30/30 通过(DDL/DML/WHERE/ORDER BY/LIMIT/aggregates/dot commands/边界用例) |
| 行为通过率 | 100% |
| 人工代码 | 0 行 |
这意味着什么意思?Sentinel 的agent架构不是只能在自我进化场景里玩玩——它能在任意外部benchmark上自主完成100%的行为合规。这是一个通用的AI agent架构,而不是自我指涉的特例。
换句话说,它证明了一件关键的事:AI自主写代码、改自己,并不是科幻,而是可以被工程化约束的现实。
为什么这件事重要
如果你是SE的reviewer,看到这篇paper你可能会有个下意识的疑问:"如果agent可以自己重写自己,那它怎么不把宪法也改掉?"
Sentinel 的答案是一个三层信任链(paper里Section 4.5):
- Constitution 源文件(system_prompt_v6.5.md):read-only,git hook checksum强制保护;
- Conforcement 代码(QualityGateRule):不在LLM写入白名单;
- Constitution 内容(12条规则):修改需要explicit human approval。
这层信任链可能是 Sentinel 最具参考价值的地方——它展示的不是"AI能自己改自己"有多么炫酷,而是"AI改自己的边界是工程化可证明的"。这才是真正的工程思维。不是靠信任LLM的"自觉",而是靠代码约束。
在云原生/AI场景下的落地思考
Sentinel所展示的这个"自进化闭环 + 宪法级安全"范式,在云原生和AI基础设施场景里有相当大的落地想象空间。
比如在云上AI Agent的自运维场景:你可以在公有或私有云的AI应用环境里,把Sentinel的三层架构分别映射到云监控 + APM(侦察层)、智能告警 + 根因分析(导航层)、自动化运维(执行层)。
这就可能构建一个"自感知、自诊断、自修复"的AI服务运维闭环。
而从宪法级安全的角度来看,这种确定性代码拦截在云端多租户场景里尤其重要。比如我们可以想象一个云端宪法规则的配置:
constitutional_rules:
- id: no_database_schema_drop
description: "禁止自动执行 DROP TABLE 等破坏性 DDL"
enforcement: code_level
- id: no_credential_rotation
description: "禁止自动轮换 API Key / Secret"
enforcement: code_level
- id: max_resource_change
description: "单次自修改变更不超过 N 个文件"
threshold: 10
enforcement: code_level
落到云原生平台的具体实现里,类似的安全约束可以做成服务网格的Sidecar策略注入,实现与Sentinel相同的——"LLM不控制的确定性拦截"。
另一个值得关注的方向是从单仓库进化到跨项目知识迁移。Sentinel目前只限于单仓库,但未来完全可以通过对象存储来保存设计模式索引,通过关系数据库来持久化演化日志,从而实现一个项目学到的重构模式安全地应用到另一个项目。
总结与展望
简单做个总结的话,Sentinel证明了一个关键的工程事实:从"AI写代码"到"AI在安全保证下进化自己的架构",不是理论可能——它是可观测的工程现实。
- 核心收获
1. 自进化闭环是可行的:侦察 → 导航 → 执行 → 验证 → 反馈,形成可持续的自我改进循环。
2. 宪法级安全是必要的:28.6%的拦截率证明,没有确定性安全约束的自修改是危险的。
3. 负向结果是有价值的:5次连续IndentationError的诊断过程本身成了永久的设计模式。
4. 确定性拦截 > Prompt约束:安全执行必须是代码级的,不能依赖LLM的"自觉"。
- 当前局限与未来方向
1. 五周的数据是初步证据,长期安全性还需要验证。
2. 目前仅支持Python,多语言需要AST适配器。
3. 单仓库进化还未实现跨项目知识迁移。
4. Tier 1安全属于Prompt级的约束,未来可以用Git pre-commit hook来加强。
对于正在构建AI Agent系统的开发者来说,Sentinel提供了一个可以拿来就用的架构模式:让Agent既能自主进化,又受到确定性安全约束的守卫。这不是一个哲学问题,而是一个工程问题——而且已经有人在解决它了。
这是一篇反常识的AI架构论文——它不是"AI自主性"的幻想,它证明了AI自主性可以被工程化约束。如果5周、90个commits、28.6%的拦截率让你重新理解了"AI装完工"这件事,那这篇paper就没白读。
Paper Ref: https://doi.org/10.5281/zenodo.20582930
