Hallucination(幻觉)

LLM 生成看似合理但实际不正确内容的现象。在 Agent 场景下有两层含义:①普通幻觉——编造不存在的事实;②Agent 特有幻觉——编造不存在的工具调用结果(如工具返回为空时假装拿到了数据继续执行)。后者更隐蔽、危害更大,需要在 Prompt 层面设计专门的防护栏。

Hallucination(幻觉)

一句话理解

模型"一本正经地胡说八道"——输出看起来很像真的,但内容是编造的。

两层含义

普通 LLM 幻觉

模型编造不存在的事实:虚构论文名称、编造不存在的 API、给出错误的数据。

这是 LLM 的固有局限——模型是在概率分布上采样,不是在检索事实。

Agent 特有幻觉

Agent 场景下多了一层更隐蔽的幻觉——编造工具调用结果

  • 工具返回为空或报错,Agent 假装拿到了正常数据继续执行
  • Agent 声称调用了某个工具但实际上跳过了调用步骤
  • Agent 把上一次工具调用的结果"复制粘贴"到不相关的场景

这类幻觉更危险,因为它发生在 Agent 的决策链路中——一个被编造的中间结果会影响后续所有步骤。

Prompt 层面的防护栏

在 System Prompt 中加入明确约束:

  • "当工具返回结果为空或异常时,必须如实报告,不得自行编造替代结果"
  • "不确定的信息必须标注为不确定,不得以肯定语气呈现"
  • "如果需要的信息无法通过可用工具获取,应明确告知用户而非猜测"

与其他防护手段的关系

Prompt 护栏是第一道防线(预防),代码层面的后处理校验是第二道(检测),人工审核是最后兜底(纠正)。三层防护不是替代关系,而是叠加关系。