生产环境智能体的幻觉检测

botgauge.com 2026-11-05T15:49:49.165283

生产环境智能体的幻觉检测

目录

分享本文

摘要

幻觉检测,就是自动标记出 AI 输出中虚假或缺乏依据的内容,让故障出现在监控面板上,而不是等到客户投诉才发现。对 AI 智能体来说,检测要覆盖三类幻觉:虚假陈述、凭空捏造的动作(比如虚构的 ID 或工具),以及声称做了实际没做的事。没有任何单一方法能同时抓住这三类问题。生产系统的做法是分层:每次运行都跑一遍成本低廉的规则检查,抽样运行评判模型,再把智能体的说法和追踪记录里它实际做的事做对比。

什么是幻觉检测?

幻觉是指一种输出:听起来言之凿凿,却与事实或模型获得的信息对不上——比如编造的引用、错误的数字、根本不存在的 API 方法(Langfuse)。幻觉检测就是在生产规模上,自动给这些缺乏依据的说法打分。

它和幻觉预防不是一回事。预防是想办法从一开始就不让模型产生幻觉,手段包括改进检索、提示词和护栏。检测则假定总会有幻觉漏网,在它们到达用户之前或之后不久将其抓住。它是 AI 智能体可观测性的一部分。

你的智能体真的做了它说的事吗?

智能体幻觉的三种类型

类型 表现 示例 危害
内容 说法缺乏来源或事实支撑 政策写明退款窗口是 30 天,它却说“我们的退款窗口是 60 天” 向用户提供了错误信息
动作 捏造工具、参数或取值 调用 refund_order 时传入一个对话中从未出现过的订单 ID 对错误的对象执行了真实操作
结果 事情没做,却说做了 声称“我已取消您的订阅”,但追踪记录里根本没有取消工具的调用 用户误以为问题已解决

大多数指南只讲第一种类型。在智能体里,第二类和第三类往往更危险,因为它们会碰到真实系统。好在它们也最容易发现:不需要评判模型,只要查看记录就能看到,某个订单 ID 在之前的任何步骤中都没出现过,或者没有任何工具调用与它声称执行的动作匹配。如何阅读这些调用记录,请参见 LLM tracing for agents。

检测方法

方法 工作原理 能抓到什么 成本 在哪里运行
基于规则的检查 用已知规则校验格式、数据结构(schema)、ID 和数值 无效输出、编造的 ID、不可能的数值 几乎为零 每次运行
声称与调用记录对比 把智能体声称执行的动作,与调用记录中的工具调用做对比 结果幻觉 几乎为零 每次运行
参数溯源 检查工具参数中的 ID 和数值是否在更早的调用记录中出现过 动作幻觉 低 每次运行带写操作的工具时
有据性评判(Groundedness judge) 由评判模型逐条核对说法与检索到的上下文是否相符 RAG 回答中的内容幻觉 一次模型调用 抽样,外加所有高风险回答
一致性采样 生成多个回答,看它们是否一致 不稳定、凭空编造的回答 多次模型调用 离线,或用小样本
语义熵 按含义对采样得到的回答分组,衡量它们的分散程度 虚构(confabulation),即使面对没见过的问题也能识别 多次模型调用 离线,或用于高风险查询
人工审核 由专家给被标记或抽样的输出打标签 几乎一切,但速度很慢 高 被标记的案例和校准

研究怎么说

语义熵由牛津大学的研究人员提出,2024 年发表在《Nature》上。思路是:把同一个问题问模型多次,按含义而不是措辞给回答分组,再衡量这些含义有多分散。分散程度高,说明模型在胡编,产出的答案是随机的、错的。在多种任务上,这种方法都有效,而且不需要针对具体任务的数据(Farquhar 等,《Nature》,via PMC)。由于每个问题要生成多次,它更适合离线测试和高风险查询,而不是每个线上请求都跑(Maxim)。

评判模型(judge model)是生产环境里的主力工具:它们不依赖参考答案,可以把输出与同一条追踪记录(trace)中记录的输入、上下文对照检查(Langfuse)。不过,它们能做到什么程度,取决于提示词和校准,可能过于宽松,也可能前后不一致。在信任评分之前,先拿一组人工标注样例检查每个评判模型。

分层效果最好。生产团队通常会把确定性检查、语义评分和不确定性信号组合起来,先跑成本低的检查,再把可疑结果交给更贵的评分器(Openlayer)。

生产环境的分层方案

按成本从低到高运行检测器,让便宜的检查先过滤流量,把可疑内容交给成本更高的检测器。

  1. 每次运行:规则、来源与声明核对。校验输出格式,检查工具参数中的每个 ID 和金额是否都在 trace 中更早出现过,并把最终回复里声称的每个动作与实际发生的工具调用对照。这些检查几乎不花成本,能抓住大多数动作和结果类幻觉。

  2. 固定抽样:评判模型评分。对固定比例的运行按“是否有检索上下文支撑”打分。按任务类型拆分,持续跟踪分数变化。

  3. 每个高风险回答:评判模型评分,始终执行。只要涉及金钱、健康、法律条款或账户变更,每次运行都要评分,而不只依赖抽样。

  4. 被标记的案例:人工复核。把低置信度和失败的案例交给熟悉业务领域的人。他们的标注也能让评判模型保持校准。

  5. 离线:更深入的方法。在测试集和最容易触发标记的问题上,使用一致性采样或语义熵,找出智能体最不可靠的提示词和主题。

每个标记都要关联到对应 trace,这样调查的人能看到是哪次检索、哪个工具结果或哪一步导致了错误声明。若想找把 tracing 与评判模型评分结合起来的平台,可以看我们整理的 12 款最佳 AI 智能体可观测性与评估工具。

把检测结果变成测试用例

每一个确认的幻觉都是现成的测试用例:包含输入、Agent 当时拿到的上下文,以及错误的输出。把它加入回归测试集,之后每次换模型、改提示词或调整检索,都把这个集合重跑一遍,同一个错误就不会悄悄回来。检测与评估正是在这里接上头;可观测性、评估和红队测试三者的关系可以参考相关文章了解。

在发布前抓住编造出来的动作

如何减少 Agent 的幻觉

检测告诉你幻觉发生的频率,而下面这些改动能让它发生得更少:

• 先修检索。 很多内容幻觉的根源是上下文缺失或无关。跟踪空检索和低相关检索,先把这些问题解决,再去调提示词。

• 允许 Agent 说“我不知道”。 明确告诉它:上下文里没有答案时,就升级处理或直接问用户,并在评估中给这种行为加分。

• 约束工具参数。 用 schema(模式)、枚举和查找表,让 Agent 从工具返回结果里取真实 ID,而不是凭记忆手打。

• 行动前先确认。 面对高影响操作,让 Agent 复述目标(“给订单 4471 退款 82 美元”),并在工具执行前对照调用链核对。

• 让声称与行动一致。 最终回复要基于工具结果生成,而不是基于模型的计划,这样它只能报告实际发生的事。

• 有意测试边界。 幻觉往往扎堆出现在模糊请求、数据缺失和用户施压的场景里。上线前专挑这些边界下手,同时记住:对 Agent 来说,最危险的失败是动作,而不是措辞。想知道如何在每次发布时跑这些测试,可以参考《Automated red teaming for AI agents》。

总结

在聊天机器人里,幻觉只是一句错话。在 Agent 里,它可能是一笔退错订单的退款,也可能是一个“已修好”的承诺,而实际上什么都没发生。每次运行都用低成本方式对照调用链检查,抓出动作和结果层面的幻觉;用校准过的评审模型抽样检查,抓出内容层面的幻觉;再把每一个确认的案例变成测试用例。

在用户发现问题之前,先找出智能体中的故障。BotGauge 对 AI 智能体进行红队测试,并记录每次失败背后的完整调用链。免费试用 Botgauge,或预约 30 分钟演示。

如何检测大语言模型(LLM)中的幻觉?

多种方法结合使用。对每个输出执行基于规则的检查;抽取一部分样本,用评审模型(judge model)将输出中的说法与源上下文比对打分;再使用一致性或不确定性方法(例如语义熵),在离线场景或高风险问题上进行检测。

什么是语义熵?

语义熵是 2024 年发表在 Nature 上的一种幻觉检测方法。它对同一个问题采样多个答案,按语义分组,再衡量各语义之间的分散程度。分散程度高,说明模型很可能在编造内容。

用 LLM 作为评审(LLM-as-a-judge)能检测幻觉吗?

可以,而且这是生产环境中最常用的方法,因为它不需要参考答案。其可靠性取决于评审模型的提示词和校准质量,因此要先用人工标注的样本验证一遍。

什么是动作幻觉?

动作幻觉是指 AI 智能体凭空捏造出某个东西,然后基于它采取行动,比如不存在的工具、编造的订单号,或没人给过的金额。只要检查每个参数是否在智能体的调用链中更早出现过,就能抓住大部分这类问题。

如何减少 AI 智能体中的幻觉?

改进检索质量;让智能体在不知道时敢于承认;用 schema 约束工具参数;执行高影响操作前先确认;基于工具返回结果构建回复;在发布前主动测试边界情况。

查看原文