AI agent 证据来源与可信度分层:引用、过期、冲突和人工复核怎么做

HTMLPAGE 团队
20 分钟阅读

AI agent 不是把检索结果拼起来就算有依据。本文讲清 evidence provenance、freshness、trust score 与冲突处理,让系统知道哪些证据该信、信到什么程度。

#AI agent #provenance #trust score #工程实践

很多 AI agent 项目都会说自己“基于检索和工具结果回答”。但只要系统开始接触多个来源,真正难的问题就不再是“有没有证据”,而是“这条证据从哪来、是不是最新、跟别的来源冲不冲突、冲突时该信谁”。

如果这些问题都没被显式建模,所谓 evidence 很容易退化成“拼接出来的上下文”,一旦结果错了,团队只能模糊地说“模型引用了旧数据”或者“检索命中了不准的片段”。

建议先结合 AI agent Artifact 设计AI agent 缓存与失效策略AI agent Run Ledger 审计模型AI agent 人工审批控制台设计 一起看。

先给结论:evidence 不只要存内容,还要存 provenance

字段为什么重要
source id能回到原始依据
retrieved at能判断是否过期
scope / permission能判断是否对当前请求有效
trust score能告诉系统这条依据能信到什么程度

没有这些元信息,证据就只是“看起来像引用的文本”。

一、Provenance 先回答“这条证据到底来自哪里”

更稳的 evidence envelope 通常至少包含:

{
  "evidenceId": "e_123",
  "sourceType": "document",
  "sourceId": "policy_v4",
  "retrievedAt": "2026-05-10T10:00:00Z",
  "version": "v4",
  "permissionScope": "team_finance"
}

这不是为了“多存点字段”,而是为了后续系统能回答:这条依据现在还可不可以用。

进一步做审计和缓存收口时,evidence envelope 最好再带完整性与时效快照:

{
  "sourceChecksum": "sha256:abc123",
  "freshnessTtlMs": 3600000,
  "trustBand": "medium",
  "retrievalDecisionId": "rd_18"
}

这样系统不只是知道“证据来自哪里”,还能判断这条证据是基于哪次检索决策进入当前 run,以及它在什么时间窗内仍然有效。

二、可信度不等于相关度,trust score 要单独建模

检索相关,并不一定代表可信。很多时候,一条证据相关性很高,但来源过旧、权限不匹配,或者只是低可靠渠道。一个更有用的 trust score 通常会同时考虑:

  • 来源权威性
  • 时效性
  • 权限匹配度
  • 与其他证据的一致性

可以先用规则型评分起步:

信号加减分
官方制度文档且未过期+0.35
来源权限与当前租户一致+0.2
命中多个一致来源+0.2
来源已过期-0.3
与高权威来源冲突-0.4

重点不是分数绝对精确,而是系统能稳定地区分“可依赖”和“仅供参考”。

算完分数以后,最好不要直接把连续值丢给模型自己解释,而是先映射成 trust band:

trust band系统动作
high允许自动继续
medium允许继续,但保留不确定性提示
low降低自动化程度,优先人工复核
blocked不允许继续引用为主依据

这样 trust score 才不只是分析字段,而会真正影响系统接下来的控制动作。

三、Freshness 是证据系统里最容易被忽略的一层

证据不一定会失效,但系统至少要知道什么情况下它可能失效:

  • 文档版本更新
  • 业务状态变化
  • 权限边界变化
  • 缓存 token 变化

这也是为什么 evidence provenance 应该和 AI agent 缓存与失效策略 连接,而不是孤立存在。

四、冲突证据不要让模型自己拍板,系统要先做 conflict class

更健康的做法,是先把冲突分成几类:

冲突类型处理方式
新旧版本冲突优先新版本,并保留旧版本引用
权限范围冲突仅保留当前 scope 可见证据
多来源事实冲突降低信心,触发人工复核
非关键细节冲突允许模型带不确定性输出

如果系统把所有冲突都丢给模型“自己综合判断”,最终得到的只会是难以复盘的黑盒结论。

五、高风险结论最好带 evidence packet,而不是只带最终摘要

当证据会进入审批台或审计链路时,系统最好输出一个 review-ready packet:

{
  "primaryEvidence": ["e_123", "e_124"],
  "supportingEvidence": ["e_201"],
  "conflicts": ["e_310"],
  "trustLevel": "medium",
  "reviewRecommended": true
}

这样人工接手时看到的不是一段模糊结论,而是一份已经整理好的证据包。

更稳的一步,是把 trust band 与 review trigger 直接绑定:

条件推荐动作
trustBand=high 且无冲突自动继续
trustBand=medium 且存在轻微冲突带说明继续
trustBand=low 或存在关键冲突进入人工复核
trustBand=blocked阻断当前结论

否则 evidence packet 虽然很完整,但系统仍然不知道什么时候该停下来交给人。

六、上线后要看“证据链质量”,而不是只看检索命中率

建议至少记录:

指标用途
evidence with provenance ratio看证据是否都可追溯
stale evidence hit ratio看系统是否常用过期依据
freshness breach count看系统是否经常越过 ttl 使用旧证据
conflict escalated to human ratio看冲突是否被正确上浮
trust band override ratio看人工或策略是否经常推翻当前分层
accepted runs by trust band看不同 trust level 的业务结果

如果命中率很高,但 stale evidence 也很高,说明系统只是更快地拿到了旧答案。

七、失败案例:制度文档更新后,Agent 还在引用旧版本条款

某个审批 agent 的检索命中率一直很好,但上线后仍频繁给出过时结论。复盘发现新旧制度文档都能检到,系统也没有保存 version 和 retrievedAt,模型只能自己“看起来选一条更像的”。

修复后,团队为 evidence 增加 provenance、freshness 和 trust score,并把“新旧版本冲突”直接升级为人工复核,错误率才明显下降。

八、Evidence Provenance 与可信度 Checklist

  • 每条 evidence 是否带 sourceId、version、retrievedAt 和 permissionScope
  • trust score 是否独立于相关度建模
  • sourceChecksum、freshnessTtlMs 和 retrievalDecisionId 是否可追溯
  • 系统是否显式识别 freshness 失效条件
  • trust score 是否映射成 high / medium / low / blocked 等明确分层
  • 冲突证据是否先分类,而不是全部交给模型拍板
  • 高风险场景是否输出 review-ready evidence packet
  • trust band 是否直接驱动继续、复核或阻断动作
  • 是否监控 stale hit、conflict escalation 和 trust band 结果差异
  • 审计时能否回到原始证据而不是只看摘要

结语

AI agent 的 evidence 体系,真正难的不是“多找几条依据”,而是让系统知道哪条依据来自哪里、现在还值不值得信,以及冲突时谁该做最后判断。只有 provenance、freshness 和 trust score 同时存在,证据链才真正可控。

延伸阅读: