可验证的 AI:如何让 Agent 用代码自证正确

AI 自报告有多不可靠

用 AI Agent 做过复杂任务的人都知道一个规律:

AI 说"已完成"的次数,远多于它实际完成的次数。

具体表现:

  • "我已经回写到 log.md 了" → 打开文件,空的
  • "所有字段都已更新" → 检查发现漏了 3 个
  • "验证通过" → 实际根本没跑验证,只是"我觉得 OK"

这不是 AI 在"骗你"------它是真心认为自己做完了。问题是:认知 ≠ 事实。

解法:退出码是唯一的真理

我的解法极其简单:

不相信 AI 说了什么,只相信脚本退出码是否=0。

每个关键操作都有一个对应的验证脚本。操作完后,AI 必须跑这个脚本。退出码不是 0?操作视为未完成。

三层验证体系

Layer 1: 数据完整性

最基础的检查------文件系统的事实是否自洽。

脚本 检查什么 典型发现
index_verify.py 索引文件 vs 实际目录内容 注册了但文件不存在
frontmatter_lint.py YAML 格式、必填字段、重复键 日期格式错误、缺 type 字段
index_update.py 索引是否需要更新 新文件未被索引收录

这层不做业务判断------纯文件系统一致性。

Layer 2: 逻辑一致性

检查业务逻辑是否被正确执行。

verify_daily.py --- 日总结验证:

bash 复制代码
python3 verify_daily.py --date 2026-04-15
# 检查:
# ✓ 是否包含会议段落
# ✓ 是否包含沟通段落
# ✓ 是否包含工时表
# ✓ 格式是否符合模板
# 退出码: 0=通过, 1=失败(输出具体缺失项)

verify_chat_analyst.py --- 聊天分析回写验证:

bash 复制代码
python3 verify_chat_analyst.py --date 2026-04-15
# 检查:
# ✓ 当日 comms/ 中提取的信号
# ✓ 对应 people/log.md 是否真的写入了
# ✓ 标签格式是否正确 [chat-analyst] {date}
# 退出码: 0=全部回写完成, 1=有遗漏

关键 : 这些脚本直接读文件系统 ,不依赖 AI 的自我报告。AI 说"我写了"?grep 一下就知道是不是真的。

Layer 3: 行为合规性

最高层------检查流程是否被正确遵循。

这层不是检查"结果对不对",是检查"过程对不对":

  • Gate 机制:流程中的强制检查点是否被执行
  • 宏脚本:端到端全链路验证(从采集到回写到索引,一条龙检查)

实际运作:一个会议分析的验证链

注意修复循环 :验证失败不是终止------是修复后重验。AI 可以修错,但修了之后必须再跑一次脚本,不能说"我改过了应该 OK 了"。

设计原则

原则 说明
脚本比 AI 可信 AI 有幻觉,grep 没有
退出码是唯一通行证 exit=0 才算通过,别的都不算
验证独立于执行 验证脚本和业务技能是两个独立模块
可重复跑 验证是幂等的,跑 10 次结果一样
先验证后提交 commit 之前必须所有相关验证通过
不信自报告 "我检查了"不算,跑脚本才算

给 Agent 开发者的建议

如果你在构建 AI Agent 系统:

  1. 每个关键操作都配一个验证脚本 --- 成本低(通常 20-50 行 Python),收益高
  2. 验证脚本输出可读的失败信息 --- AI 需要看懂失败原因才能修复
  3. 在 prompt 里强制"操作后跑验证" --- 不是建议,是强制
  4. 验证脚本自己也要被测试 --- 一个有 bug 的验证脚本比没有验证更危险(给你虚假的信心)
  5. 积累验证脚本库 --- 它们是系统可靠性的真正底线

核心洞察:AI Agent 的可靠性不来自更聪明的模型------来自更笨但更诚实的验证脚本。模型会幻觉,exit 0 不会。与其花精力让 AI "更小心",不如花精力建验证网。

相关开源项目

阅读原文

相关推荐
ZzT2 小时前
context-mode 拆解:98% 是怎么算出来的,装进 Claude Code 实际省多少
ai编程·claude
Dawson Zhu2 小时前
大模型拒答率与错误率平衡术:五步构建可落地的安全与体验最优解
人工智能·语言模型·架构·aigc·agi
tz_zs3 小时前
【AI编程】 防止AI编程中的膨胀
ai编程
用户842558130873 小时前
同一篇稿子发到 6 个平台,为什么只有这里的图片全裂了?
ai编程
用户842558130873 小时前
把「一文多发」做成脚本流水线:CDP、滑块、二维码、WAF、限流,这些坑我替你踩完了
ai编程
猛犸象限3 小时前
【Grok Bot 仓颉实践】 编译通过了,我没让它合并——验证和证据我怎么卡
ai编程
小鱼儿亮亮3 小时前
大模型调用的演进与架构全景解析:从 cURL 原语、多维技术栈、API 规范到 LangChain 生产级实战
ai编程
用户842558130873 小时前
Chrome 自动化「点了没反应」:5 个真实坑与一套排查法
ai编程
tz_zs4 小时前
【AI编程】使用笔记:Rule/Skill/Prompt
笔记·prompt·ai编程