AI Agent 幻觉检测与缓解:生产环境指南
幻觉是生产环境中 AI Agent 系统最持久的风险之一。与传统软件缺陷不同,幻觉具有隐蔽性、间歇性且往往自我掩饰——Agent 以与事实性回答相同的自信程度呈现虚假信息。对于构建能够从数据中检索、综合并执行操作的自主 Agent 的团队而言,了解如何检测和缓解幻觉并非可选项,而是基础性的生产要求。
本指南涵盖在生产环境中降低 AI Agent 幻觉率的实用幻觉检测策略、验证机制和架构模式。
什么是 AI Agent 幻觉?
AI Agent 幻觉是指语言模型生成了与事实不符、内部不一致或缺乏提供上下文支持输出的情况。幻觉可分为以下几类:
事实性幻觉
模型将没有现有来源支持的内容表述为真实。例如:引用不存在的法规或错误援引法律条文。
上下文幻觉
模型编造了符合叙事但没有任何输入数据依据的细节。例如:捏造文件路径、API 端点或配置值。
推理幻觉
模型得出了逻辑连贯但结论错误的结果。例如:在数据中两个无关事件之间建立了因果关系。
工具使用幻觉
模型描述了一个从未执行过的工具调用,或对实际工具调用的结果进行了错误报告。例如:声称某数据库查询返回了结果,而实际上查询结果为空。对于生产型 AI Agent 而言,工具使用幻觉尤为危险,因为它可能基于虚构的前提条件触发真实的系统操作。
为什么幻觉难以检测
幻觉会逃避简单测试,因为它们属于概率性行为而非系统性行为。模型在给定提示下可能有 95% 的概率产生正确输出,但在剩余的 5% 中仍会出现幻觉。在少量示例上通过的常规单元测试会完全遗漏这些失败。
三个结构性原因使得幻觉检测变得困难:
- 置信度校准差距:现代语言模型无论输出是否正确都会赋予高概率。模型本身无法感知何时是在猜测。
- 上下文窗口效应:随着上下文增长,模型可能会迷失哪些事实来自源数据、哪些是推断结果的界限。检索增强生成(RAG)系统在检索到的片段包含矛盾或不相关信息时尤其脆弱。
- Agent 循环放大:在多步骤 Agent 工作流中,链条早期的单次幻觉可能传播并放大。虚构的文件路径导致工具调用失败,随后模型用另一次捏造来合理化该失败,形成越来越难以追溯至原始错误的级联。
生产型 Agent 的检测策略
有效的幻觉检测需要多个独立的验证层级。没有单一技术能捕获所有类型的幻觉,但组合起来可以形成强大的防御体系。
源数据接地验证

源数据接地检查 Agent 输出中的每一项事实声明是否都能追溯至特定的输入上下文。这是最直接的检测方法,应作为生产管道的第一层。
实现方式:Agent 生成响应后,运行二次验证步骤,提取每项事实声明并与源文档进行核对。无法匹配源数据的声明将被标记为潜在幻觉。
实用技术包括:
- 引用强制:要求 Agent 为每项事实陈述嵌入引用。解析引用并验证其是否指向实际的源内容。
- 片段提取验证:使用轻量级分类器或基于正则的表达器识别输出中的声明,然后在源上下文中搜索支持性片段。无法找到支持片段的任何声明均被标记。
- 矛盾检查:将输出通过自然语言推理模型运行,检查每项声明是被源上下文蕴涵、中立还是矛盾的。被标记为矛盾的声明即为幻觉。
置信度评分与阈值设定
现代 LLM API 为生成的 token 暴露置信度分数或对数概率。虽然这些分数并非完全校准,但与其它检查结合时可作为早期预警信号。
为事实声明设置最低置信度阈值。低于阈值的声明应触发重新生成或回退到”我无法验证此内容”的响应,而不是将不确定的信息当作事实呈现。
将置信度评分与温度控制相结合。降低温度值(0.1–0.3)可通过收窄高置信度 token 的概率分布来减少事实任务的幻觉率。将较高温度保留给幻觉风险可接受的创造性或探索性任务。
自我纠正循环
自我纠正是一种提示技术,Agent 在最终确定输出前会审查自身输出。Agent 被指示识别潜在错误、对照源数据验证声明,并修订任何无法支持的陈述。
结构化的自我纠正提示如下:
审查上述响应。针对每项事实声明:
1. 找到支持该声明的精确源文本。
2. 若不存在源文本,将该声明标记为未验证。
3. 修订响应以移除或限定所有未经证实的声明。
4. 返回修正后的响应。
自我纠正可将基准测试中事实任务的准确率提升 10–30%,但会增加延迟和 token 成本。仅对高价值输出选择性使用,而非在每次 Agent 交互中都使用。
对抗性测试
对抗性测试故意构建旨在触发幻觉的提示。常见的对抗模式包括:
- 混淆提示:带有故意误导性上下文的请求,诱惑模型纠正用户而非遵循事实。
- 反事实提示:关于未发生场景的问题,测试模型是否能区分现实与推测。
- 边界提示:将模型推过其知识边界的请求,探测是否存在看似自信的捏造。
定期运行对抗性测试用例——最好作为 CI 流程的一部分,在每次部署前评估 Agent。跟踪测试套件中的幻觉率以衡量改进或回归情况。
用于幻觉缓解的架构模式
仅靠检测还不够。生产系统还必须进行架构设计,以在幻觉发生时限制其影响。
限制性输出设计
设计 Agent 输出格式以最大限度减少幻觉的机会。带有严格模式的结构化输出更易于验证且更难令人信服地捏造。
不要要求 Agent 撰写自由格式的摘要,而是请求一个具有定义字段的 JSON 对象。每个字段应有明确的类型约束(字符串、数字、布尔值、枚举)以及可选的源引用。当 Agent 无法从现有源数据填充某个字段时,模式应要求返回 null 值并附 missing_reason 解释,而非猜测性补全。
检索质量管控
幻觉率与检索质量高度相关。低质量检索迫使模型用虚构信息填补空白。实施以下检索保障措施:
- 相关性阈值过滤:拒绝相似度分数低于定义阈值的检索片段。不要将低相关性上下文送入生成步骤。
- 片段去重:在检索前移除近似重复的片段。重复上下文会增加模型对可能错误信息的信心。
- 源数据透明性:始终在检索内容旁包含源元数据(文档名称、页码、时间戳)。这有利于下游验证和事后审计。
人工介入验证门
对于高风险决策——财务计算、法律合规检查、医疗信息综合——实施人工验证门。Agent 准备带有完整源引用的草案响应,由人工审核员在每个声明到达最终用户前批准或拒绝。
这不需要对每项输出进行人工审查。使用自动化预筛选来标记低置信度或高风险响应供人工审查,同时允许常规且得到充分支持的输出自动通过。
回退响应
为 Agent 无法生成已验证响应时定义明确的行为回退策略。常见的回退模式包括:
- “我不知道”响应:返回明确说明信息不可用的声明,而非生成听起来合理的回答。
- 源数据支持的局部响应:仅返回通过验证的声明,完全省略无法验证的部分。
- 转交人工:将请求路由至人工操作员,附带 Agent 草案和已标记的不确定区域。
回退策略应在 Agent 的系统提示中记录并以编程方式强制执行,而非留待模型自行判断。
衡量幻觉率
你无法改善你无法衡量的东西。为您的 Agent 系统建立幻觉指标并持续跟踪。
创建黄金测试集
构建一套包含 50–200 个代表性提示的精心策划测试集,附带已知正确答案。包括标准用例、边缘情况和对抗性用例。由领域专家或单独的验证模型标注每个预期输出。
定期让 Agent 对此测试集运行。使用自动化分类或对子集进行人工审查来评估每项输出的幻觉率。以总输出百分比跟踪幻觉率。
自动化评估流程
实施自动化评估流程,在每次 Agent 代码变更时运行:
- 在黄金测试集上执行 Agent。
- 使用语义相似性、事实重叠评分和矛盾检测将每项输出与预期答案进行比较。
- 标记幻觉分数超出接受阈值的输出。
- 若幻觉率超出可接受范围的回归,则阻止部署。
关键指标

跟踪以下指标以监控随时间变化的幻觉表现:
| 指标 | 定义 | 目标 |
|---|---|---|
| 幻觉率 | 包含至少一个未经证实的事实声明的输出百分比 |
相关文章 |