智能体说“完成了”,究竟发生了什么?
设想一个智能体报告:“所有检查均已通过,可以发布这个变更。”链接指向一份真实报告。但报告属于上一个提交,有些检查从未执行,也没有人授予发布许可。文字很有说服力,实际结论却缺少依据。
这里存在几种不同的问题。编造测试结果属于无依据的断言;将旧报告用于新代码属于适用性错误;把验证当作许可属于权限错误。分别检查这些问题,才能看见被一个笼统的“智能体可靠性”分数掩盖的断点。
我们的工程假设是:明确的来源、验证规则、当前适用范围和结果观测,可以减少系统接受并据以行动的无依据结论。这是对模型外围系统的设计建议。本文没有测量模型本身幻觉率的变化。
检索是第一层
Lewis 等人的 Retrieval-Augmented Generation 将检索得到的文档与参数记忆结合。在作者评估的任务中,其生成内容比所选基线更符合事实。这支持使用外部来源,但不能证明每个 RAG 应用的每个回答都真实。 [S1]
FActScore 将长回答分解为原子事实,并评估其中有多少得到可靠来源的支持。对我们有用的原则是:逐项检查重要断言。早期研究的结果不能直接套用于当前模型或我们的代码仓库。 [S2]
一个实际延伸是,将每项断言绑定到具体片段、版本和观测时间。附上链接本身并不能说明文档支持该结论。来源过时或解释错误仍然可能发生。
四个仓库,四个问题
| 组件 | 已检查版本中的能力 | 如何提供帮助 | 仍然存在的边界 |
|---|---|---|---|
| Causal-Memory-Layer | 父节点及可配置批准祖先的审计;已重放两个案例 | 发现某项决定缺少所要求的批准记录祖先 | 读取轨迹;自身不阻止动作,也不认证记录真伪 [S3] |
| ContractGraph-QA | 支付恢复轨迹评估;已重放四个种子案例 | 发现结果未明确时的重试,以及重试身份的不连续 | 检查提供的事件;不证明来源完整性或接收方的实际效果 [S4] |
| PythiaLabs | 文档描述的工具调用前 ALLOW / BLOCK / ESCALATE 准入 MVP | 为动作条件提供明确的决策模式 | 本文检查了文档源文件,未执行 PythiaLabs;ALLOW 不会执行动作 [S5] |
| LiminalQA | 包含 Unknown 和 ObserveOnly 的类型化决策包 | 以机器可读形式呈现测试信号和数据不足的结果 | 类型和启发式规则不能证明根因;本文未运行 Rust 组件 [S6] |
这些角色相互补充。但它们存在于不同仓库中,并不证明从回答验证到执行的完整流程已经集成。下文的组合属于集成方案。已有组件与本地执行证据分别标明。
一项断言应附带什么?
第一个原型可以使用一个小型断言登记表。这是建议的集成格式,并非四个项目已经共同实现的 API。
| 字段 | 含义 |
|---|---|
| claim_id, claim_text | 正在检查的具体断言 |
| evidence_refs | 支持该断言的原始片段或产物 |
| source_commit, subject_id | 已检查的来源版本和对象 |
| observed_at, applicable_until | 证据取得时间,以及何时或在什么条件下需要重新检查 |
| status | SUPPORTED / CONTRADICTED / UNKNOWN:证据支持状态 |
| decision_ref | 单独引用动作准入决定 |
| result_ref | 如果执行了动作,单独引用结果观测 |
系统先获取证据并保存版本,再把回答分解为可检查的断言,为每项断言匹配依据。执行动作之前,重新检查对象、时间、条件和权限。执行之后,记录观测到的结果,或将其保留为 UNKNOWN。
缺少证据时,智能体可以请求补充产物、继续安全的信息收集,或明确缩小回答范围。对于重要动作,必需条件不完整时应停止或交由人工决定。这是拟议集成的规则;被动审计器本身不会执行这一规则。
有效的 JSON 结构检查的是形式。哈希帮助发现字节变化。连通图检查的是已记录数据中的关系。这些性质都不能单独证明原始消息真实。回执有效性、两份回执与同一调用的关联、效果次数以及 exactly-once 保证,需要不同的证据。
本次已经复现了什么?
2026 年 9 月 6 日,我们运行了现有的 CML 批准示例和四个现有 CGQA 固定测试数据案例。源代码版本已固定,输入和完整输出均已保存。预期分类在执行前记录。连续两次计算得到相同结果。 [S7]
| 场景 | 观测结果 |
|---|---|
| CML:缺少必需的批准祖先 | FAIL;CML-AUDIT-R5-EXEC_REQUIRES_HUMAN_APPROVAL 和 CML-AUDIT-R7-ML_ACTION_REQUIRES_POLICY_APPROVAL |
| CML:存在批准记录 | PASS;无发现项 |
| CGQA:committed,随后 stop | pass |
| CGQA:failed,随后保持身份连续地重试 | pass |
| CGQA:结果确认之前重试 | fail;APR-001_UNRESOLVED_AMBIGUITY_FINANCIAL_ACTION 和 APR-009_TRACE_ENDS_UNRESOLVED |
| CGQA:failed 之后更换重试键 | fail;APR-004_IDEMPOTENCY_CHANGED_ON_RETRY |
预先设定的 6 项分类全部匹配:三个反例被发现,三个正例通过。这检验的是规则区分所选示例的能力。没有调用 LLM,也没有执行真实工具动作或支付。因此,“6 项全部匹配”不能改写为“幻觉已消除”,也不能作为生产环境的有效率。
尤其需要明确:本次 CML 和 CGQA 是在轨迹构建完成后,发现提供给它们的轨迹中的问题。要阻止未来的调用,仍须将检查结果正确连接到执行器。
如何重放?
在包含本文的 RESONANCE checkout 中,获取两个固定的源代码版本。本次执行环境为 Linux、Python 3.12.13 和 PyYAML 6.0.3。PyYAML 是此示例唯一的外部 Python 依赖,请安装到自己的虚拟环境中。重放本身在本地运行。
git clone https://github.com/safal207/Causal-Memory-Layer.git ../cml-article016
git -C ../cml-article016 checkout 7a3a98c60a402d394e4d286da956823898454b8a
git clone https://github.com/safal207/ContractGraph-QA.git ../cgqa-article016
git -C ../cgqa-article016 checkout f861b934d77e64fd35f768e2a33bb4a00963bc19
python -m pip install PyYAML==6.0.3
python scripts/reproduce-article016.py --cml ../cml-article016 --cgqa ../cgqa-article016 --output article016-replay.json
预期字段:matched_cases = 6,repeat_equal = true。规范化结果数组的 SHA-256 为 7a391291204b358bc1c2323186d981e1d993d1d86ef91d7dcf509a361d6e7ff1。完整文件还包含环境版本、Python 源文件哈希、输入事件和原生诊断结果。这是作者侧的本地复现,并未声称已经获得独立外部复现。
如何衡量实际错误是否减少?
下一项实验需要真实的模型输出。我们建议先进行 30 个预先标注任务的试验:证据充分、来源缺失、证据矛盾、证据过时、动作结果未知,各六个。这个起始规模用于发现问题,并非统计功效的论证。
比较三个模式:普通提示下的模型;同一模型加检索;相同检索和相同检索文档加断言登记表与明确检查。后两个模式固定共用证据集。保存模型版本、设置、提示、可用工具和预算;每项任务运行三次,即每个模式 90 次运行。随机安排模式顺序,并在隐藏模式标签的情况下评价回答。
| 指标 | 计算方式 |
|---|---|
| 无依据断言 | 已接受回答中无支持的原子断言数 / 全部原子断言数 |
| 任务覆盖率 | 完整且正确解决的任务数 / 全部任务数 |
| 不必要的停止 | 证据充分却被停止的任务数 / 全部证据充分的任务数 |
| 准入违规 | 缺少必需条件却获准进入模拟执行器的提议数 / 全部此类提议数 |
| 验证成本 | 每项任务的响应时间与成本,包括重复检查 |
UNKNOWN 计为弃答,而非事实错误。若没有任何被接受的断言,第一个比例是未定义,不是零。拒绝所有任务的系统不能赢得实验。应报告原始数量、五类任务各自的结果以及任务间差异;同一任务的重复运行不应视为独立任务。
如果额外检查相较于相同检索不能减少无依据断言的接受,或者只能以大幅损失有用回答为代价实现减少,假设就会被削弱。可接受的覆盖率损失与预算应在运行前确定。本文尚未执行这一实验。
第一个有用的集成
从一个场景开始:智能体读取固定提交的 CI 产物并准备报告。它必须区分“检查已通过”“检查未执行”和“报告属于另一个版本”。输出是一张带来源的断言表,以及一个有依据的下一步。在验证该原型之后,再分别增加工具准入与结果观测。
我们的实际目标是:每项重要断言都有可检查的依据,每个动作都有当前有效的准入条件,每个宣称的结果都有观测。能够平静地说“这一点我们还不知道”,是一项有用的产品能力。
作者参与所讨论仓库的开发。本文是对自身项目的工程分析,并非独立认证。AI 协助了起草和翻译;事实依据来自固定版本的源文件、原始研究论文和已保存的本地运行结果。
重放证据
查看预先记录的计划、重放脚本和完整的原生输出。
来源与证据
- S1 · Lewis et al. · Retrieval-Augmented Generation · 2020
- S2 · Min et al. · FActScore · EMNLP 2023
- S3 · CML · approval-lineage example · 7a3a98c
- S4 · ContractGraph-QA · payment-recovery evaluator · f861b93
- S5 · PythiaLabs · limitations · dadc0f1
- S6 · LiminalQA · typed decisions · fb1fc77
- S7 · RESONANCE · Article 016 · native replay JSON