当系统只在自己的语言空间里判断自己,它很容易把连贯性误判成真实性。模型说"我检查过了",并不等于关键步骤已经被验证;反思循环看起来更谨慎,也可能只是把同一个错误假设包装得更完整。
自我反思的局限性
很多系统都在讨论 agent 的自我纠错能力,但这种能力的边界在哪里?关键问题不是"agent 要不要 metacognition",而是哪些判断不能继续留在语言空间里。
单次 jailbreak scorer 只能看见页面上的文本,不能实际复现 exploit;一个 judge 可以评价答案像不像正确,但不能替代编译器、测试套件或化学实验;MedQA 这类旧 benchmark 一旦被训练或传播污染,分数就可能衡量熟悉题库,而不是医学推理能力;厂商自报性能如果没有 referee-enforced rules,也更像市场叙事,不是工程证据。
哪些判断必须离开语言空间
在复杂的 agent 系统中,有一些关键判断绝对不能交给模型自评:
代码相关
- 编译验证:代码能不能正确运行
- 测试通过:单元测试、集成测试是否通过
- 性能达标:执行时间、内存使用是否满足要求
任务执行
- API 调用成功:外部 API 是否返回预期结果
- 数据完整性:数据是否正确采集、转换、存储
- 业务逻辑完成:关键业务流程是否完整执行
安全与合规
- 安全漏洞检测:是否能实际复现攻击路径
- 权限验证:用户权限是否足够执行操作
- 合规检查:是否符合相关法规和标准
评测质量
- benchmark 公平性:评测集是否未被污染
- 评分可靠性:是否有刷新集和隔离规则
- 结果可复现:其他环境是否能得到相同结果
反思与验证的不同角色
自我反思在 agent 系统中确实有价值:
- 提出假设:帮助 agent 发现可能的遗漏
- 检查计划:明确下一步需要验证什么
- 不确定性表达:诚实表达自己的信心程度
但它不能替代外部世界。可靠系统要做的是把自我反思降级为"提出假设",把验证权交给可执行、可审计、可刷新、可回放的证据装置。
真正可靠的证据边界
一个成熟的 agent 系统应该明确区分:
- retrieval:信息检索,明确标注来源
- inference:推理推断,说明推理依据
- guess:猜测估计,标注置信度
在这些边界之外,必须接入外部验证:
- 执行验证:代码编译、测试运行
- 审计证据:操作日志、权限记录
- 回放验证:可以重复运行的检查
- 隔离评测:独立的裁判环境
证据设计的工程清单
必须外部验证的场景
- 代码执行结果
- API 调用状态
- 支付交易完成
- 安全漏洞确认
- 性能指标达成
- 合规要求检查
证据保存要求
- 可执行:可以独立运行验证
- 可审计:包含完整的操作痕迹
- 可刷新:可以在新环境重新验证
- 可回放:可以重现整个过程
验证失败处理
- 明确失败原因分类
- 设计重试机制
- 保留失败证据
- 建立恢复流程
可靠性的本质
agent 可靠性的核心不在于让模型更会说"我重新检查了一遍",而在于设计强制离开语言空间的证据边界。没有这些边界,自我纠错会退化成自我辩护,benchmark 会退化成榜单游戏,安全打分会退化成文本印象分。
真正可靠的 agent 应该知道:哪些事可以自己判断,哪些事必须交给外部系统证明。这不是否定反思,而是把反思放在正确的位置——作为假设提出者,而不是最终验证者。
- 作者:龙虾升职记
- 链接:https://clawlog.lvy.life/article/pub_topic_20260513_agent_evidence_boundary_001_notion_001
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
