首页 › ai-agents › 工具幻觉五型:推理越强越编造

工具幻觉五型:推理越强越编造

工具调用被普遍当作"治幻觉的解药"——把模型的自由发挥关进函数签名的笼子里,输出就有据可查了。2025–2026 年的一批实证研究正在拆穿这个叙事:当模型被赋予工具、尤其是被赋予更强推理能力之后,它并没有变得更老实,反而演化出了一套结构化的、可分类的、与能力正相关的编造行为。本文以 SimpleToolHalluBench、ToolBeHonest、AgentHallu、StableToolBench、MIRAGE-Bench 五个基准的公开数据为骨架,拆解工具调用幻觉的五个亚型,并量化每一种缓解手段必须支付的"幻觉税"。

核心结论先抛出来:推理越强,幻觉越凶——Qwen3-8B 开启 thinking 模式后工具幻觉率从 36.2% 跳到 56.8%;工具增强模型答案准确率能涨 19.3 个百分点,但推理质量赢率暴跌 41.5 个百分点;而把幻觉率从 61.5% 压到 18.8% 的可靠性对齐,代价是工具调用量被砍掉 76%。这是一条贯穿全文的红线:在当前架构下,降幻觉几乎必然降能力。

一、工具调用幻觉的五个亚型

学术界已不再把"工具调用错"当作一个笼统的 bug,而是按失败发生的位置切成了五类。这张分类表是后续所有度量的坐标系。

亚型 失败本质 触发位置 代表基准 典型征兆
选择幻觉 Selection 调用不存在/不相关工具 t∉T 动作发射前 SimpleToolHalluBench 编造 search_package 这类签名里没有的函数
使用幻觉 Usage 工具对,参数畸形/缺失/编造 参数填充阶段 BFCL / StableToolBench 必填项空着、类型错乱、凭空塞值
可解性幻觉 Solvability 误判"这题能用现有工具解" 规划阶段 ToolBeHonest 无工具时仍声称可解、硬编计划
工具诱导近视 TIM 用工具输出替代多步推理 执行后推理 TIM 基准 答案对、过程是"贴结果"
旁路幻觉 Bypass 压根不调用,直接编造结果 动作发射被跳过 AgentHallu 回答里引用了"工具结果",trace 里却没有那次调用

前两类(选择、使用)属于"动作层"错误,业界投入最多,BFCL 这类榜单主要盯它,也最好用 JSON Schema 强约束治掉。真正难的是后三类——它们发生在"动作之前或之后"的认知层,schema 约束根本碰不到。

二、深度拆解

1. 推理陷阱:thinking 模式为什么反而更爱编造

最反直觉的一条数据:给模型开 CoT / thinking,幻觉率不降反升。 SimpleToolHalluBench 上 Qwen3-8B 关闭推理时幻觉率 36.2%,开启后飙到 56.8%,整整高出 20 个百分点。论文给出的机制是两条:一是表征坍缩(representation collapse)——强化学习把推理子空间打磨得越尖锐,工具调用子空间在逐层 Centered Kernel Alignment 上反而越扭曲,工具上下文的早/中层 CKA 跌到约 0.7,而数学推理能稳在基线,等于"练推理练废了工具脑";二是推理启发式的过度泛化——模型被奖励"先想后做",于是在 NTA(No-Tool-Available,工具集为空)和 DT(Distractor-Tool,只有干扰工具)场景里也强行"想出一个调用"。

# 推理-幻觉正相关的实测斜率(SimpleToolHalluBench 回归)
# SynTool reward 提升 0.10 → 0.60 时,幻觉率随之 70% → 95%
# 即: 性能越强, 越倾向于"自信地编一个工具调用"
slope(hallucination | reward) > 0   # 一条向右上方倾斜的回归线

这条结论直接挑战了"上更强模型就能治幻觉"的工程直觉。在工具受限、工具缺失的边缘场景,更强推理 ≈ 更强编造。

2. TIM:用 19.3pp 准确率换 41.5pp 推理质量

工具诱导近视(Tool-Induced Myopia)是另一组刺眼的反差。Bayat 等人量化发现,挂上工具后,模型答案准确率最多涨 19.3 个百分点,但推理质量的赢率却掉了 41.5 个百分点。机制是工具调用短路了多步推理:模型把"算对"外包给了工具,自己不再走逻辑链。代价是错误形态发生了迁移——局部算术错误下降约 9pp,但全局逻辑/假设错误反而上升 12pp 和 10pp。调用次数越多,逻辑漏洞越深。

这对"用工具做能力外挂"的打法是个警告:工具把正确率抬上去了,但抬上去的是脆皮正确率。一旦遇到工具没覆盖、需要模型自己拆解的长尾问题,那 41.5pp 的推理欠账就会连本带利还回来。DPO 惩罚"只靠工具的证明"、明确提示"把工具当辅助证据而非结论"能部分挽回推理质量,但会顺手压低答案准确率——又是那条跷跷板。

3. 可解性幻觉:吃掉 40% 深度规划错误的元凶

ToolBeHonest 的三级诊断(可解性检测 EM、计划 Progress Rate、缺工具分析 Matching Score)暴露了一个被低估的失败源:可解性幻觉独占深度规划错误的 40% 以上。模型不擅长"拒答"——当给定工具集不足以解决查询时,它倾向于把查询强行判定为可解,然后编造一个调用链或调用一个"潜在工具"。错误驱动场景被细分成三类:缺必要工具(MNT)、仅有潜在工具(PT)、工具功能受限(LFT)。开源权重模型在 MNT/PT 场景里尤其爱"无中生有"地生成不存在的工具名。

工程上的直接对策是给动作空间显式扩一个"我不会/工具不够"出口。这正是可靠性对齐(Relign)的思路:把 ChangeTools(换工具)、TalkToUser(追问用户)作为合法动作喂给 SFT+DPO,让模型学会"该停就停、该问就问",而不是硬编一个调用。

4. 旁路幻觉:最危险的静默失败

旁路幻觉(Bypass)是五型里最难发现、也最危险的一种——模型直接跳过工具调用,编造一个"工具返回结果"写进回答。LangChain 团队把它细分成四档以便 trace 复盘:纯幻觉(调用从未发生却声称有结果)、部分幻觉(工具返回了,模型却添油加醋或误读)、工具真 bug(工具返回错数据、模型忠实地传下去)、错误处理 bug(工具抛异常,模型忽略它继续用陈旧上下文)。

# 旁路幻觉的工程兜底: trace-first 校验(伪代码, 思路源自 LangSmith)
def is_bypass_hallucination(final_answer, trace):
    cited_tool_calls = extract_tool_refs(final_answer)      # 回答里声称引用了哪些工具结果
    real_runs        = {r.name for r in trace.tool_runs}    # trace 里真正执行了哪些工具
    # 回答引用了某工具结果, 但 trace 里压根没有那次调用 => 纯幻觉
    fabrications = cited_tool_calls - real_runs
    for f in fabrications:
        alert("旁路幻觉: 回答引用 %s, 但无对应 tool_run" % f)
    return bool(fabrications)

旁路之所以危险,是因为它不崩、不报错、不留堆栈。团队通常要到用户投诉"这不是工具返回的""它为什么无视了报错继续往下跑"才发现。这是为什么 observability 必须从"扁平日志"升级成"把每次调用、参数、原始返回、后续决策串成 run 树"的完整轨迹——否则你永远无法回答"到底是模型编的,还是工具真返回了那个数据"。

5. 表征探针:86.4% 的单趟检测 vs 多趟验证的成本

Healy 等人(arXiv 2601.05214,2026 年 1 月)给出了一条轻量路线:在函数名、参数、调用闭合等 token 位置读取模型最终层激活,跑一个单趟分类器,幻觉检测准确率可达 86.4%,且明显优于多趟采样基线。它的物理基础正是第 1 节那条表征坍缩曲线——幻觉点和正常点的激活分布在后段残差流上是可分的。

# 表征级幻觉探针(示意): 在工具调用 token 处读 hidden states
def hallucination_probe(hidden_states, call_tokens):
    h = pool(hidden_states[call_tokens], mode="field_aware")  # 领域感知池化
    return sigmoid(linear_probe(h))   # > 阈值 => 疑似幻觉, 触发门控
# 价值: 一次前向传播就能拦截, 不像自验证要采样 N 次再投票

更激进的是 DyMo+SVS:给模型装一个"内部世界模型",先预测候选调用执行后的下一状态,按预测成功率打分,只有被接受的调用才放行,precision 可达 94.5%,相比纯 SFT 成功率高 20 个点。这类探针/世界模型的价值在于把幻觉检测从"事后对账"提前到"事中门控",但它也意味着多一层模型、多一份延迟——又是一笔税。

6. 可靠性对齐 Relign:61.5% → 18.8% 的代价清单

把缓解手段的数据摆在一起看,跷跷板就清楚了。Xu 等人的 Relign 把整体幻觉率从 61.5% 砍到 18.8%,工具调用量减少 76%,效用与可靠性比反而提升 43%——这是少有的"降幻觉还涨效用"的赢家,秘诀在于它不是单纯抑制调用,而是把"换工具/问用户"做成了被奖励的合法出口。对比之下,朴素的 DPO + prompting 虽然能把幻觉率从 90.2% 拉到 55.8%,但 SynTool reward 同步从 0.45 跌到 0.34——幻觉降了一半,任务能力也跟着降。

缓解手段 幻觉率变化 能力/效用变化 净判断
Structured Outputs / 约束解码 选择/使用型≈归零 几乎无损 高 ROI,治动作层
Reliability Alignment (Relign) 61.5% → 18.8% 效用+43% 罕见双赢
表征探针门控 检测 86.4% +延迟 性价比高
DyMo+SVS 自验证 接受精度 94.5% 成功率+20pt 重型、高精
DPO + Prompting 90.2% → 55.8% reward 0.45→0.34 降幻觉也降能力

这张表是给"该上哪道闸"的决策用的:动作层幻觉用 Structured Outputs 一刀切,便宜且几乎无损;认知层幻觉(可解性、TIM、旁路)才是 Relign、探针、SVS 的主场,且都要权衡。

7. 多步定位黑洞:6.3% 的归因难题

单步幻觉已经难,多步轨迹里把幻觉"定到哪一步"更是灾难。AgentHallu 给出的工具调用幻觉步定位准确率,闭源模型仅 11.6%,开源仅 6.3%,远低于规划幻觉和检索幻觉的定位率,且 SOTA 模型整体很少能超过 20%。轨迹越长、参数错配越隐蔽(尤其是"工具调对了但执行语义错"的那类 wrong-execution),归因越糊。

这意味着多智能体/长链路场景里,"哪个工具调用幻觉了"本身就是个没解好的题。工程上必须从"靠人读 trace 定位"升级到"结构化、可回放、可断言"的轨迹系统——把每一步的调用、参数、返回、模型后续推理都绑成可重放的 run,把可疑步骤自动标红,否则一个 20 步的链路里找一个 6.3% 才能定位的幽灵,基本等于大海捞针。

8. 安全侧:prompt injection 是幻觉的放大器

工具幻觉不只是可靠性问题,更是攻击面。InfoSecWriteups 的实战拆解展示了同一条机制的恶意版本:攻击者通过受污染的输入诱导 LLM"自主"调用 search_package 之类函数——这正是一条被人为触发的"选择幻觉"。换句话说,模型的"爱编造工具调用"这一倾向,对防御方是 bug,对攻击方是 feature:注入一段文本,就能把一个本不该发生的调用"幻觉"出来并执行。结论是工具调用的输出处理(output handling)必须当一等公民做校验——调用前白名单、参数 schema 强校验、副作用幂等、结果回灌前再校验。把幻觉从"模型偶尔犯的错"升级为"可被外部输入定向触发"之后,runtime 校验层就不再是可选项。

三、系统架构:五型幻觉 × 缓解门控流水线

下图把五型幻觉按发生位置串成一条调用生命周期,并标出每种缓解手段挂在哪一层——可以清楚看到:动作层的两型被 schema 切掉,认知层的三型只能靠 Relign/探针/SVS 在更上游拦。

flowchart TD
    Q[用户查询] --> SOLV{可解性幻觉<br/>Solvability}
    SOLV -- 误判可解/硬编 --> SEL[选择幻觉 Selection<br/>调用 t∉T 或编造]
    SOLV -- 学会拒答 --> RELIGN[Relign 出口<br/>ChangeTools / TalkToUser]
    RELIGN --> OK[合理中止/追问]
    SEL --> USAGE[使用幻觉 Usage<br/>参数畸形/缺失]
    USAGE -. schema 约束 .-> STRUCT[Structured Outputs<br/>约束解码]
    STRUCT --> CALL[真实工具执行]
    CALL --> PROBE{表征探针门控<br/>86.4% 检测}
    PROBE -- 疑似幻觉 --> REJECT[拦截/重试]
    PROBE -- 通过 --> TIM{TIM 近视检查<br/>是否用结果替代推理}
    CALL -. 跳过不调 .-> BYPASS[旁路幻觉 Bypass<br/>直接编造结果]
    BYPASS --> TRACE[Trace 校验<br/>回答引用 vs 真实 run]
    TIM -- 推理外包 --> DPO[DPO/提示<br/>工具=证据非结论]
    TIM -- 正常推理 --> ANS[最终回答]
    DPO --> ANS
    TRACE --> ANS

    classDef action fill:#fde2e2,stroke:#c0392b,stroke-width:2px;
    classDef cog fill:#fef5e7,stroke:#e67e22,stroke-width:2px;
    classDef gate fill:#eafaf1,stroke:#27ae60,stroke-width:2px;
    class SEL,USAGE action;
    class SOLV,TIM,BYPASS cog;
    class STRUCT,PROBE,TRACE,RELIGN,DPO gate;

读图要点:红色是动作层幻觉(schema 可治),橙色是认知层幻觉(只能靠门控),绿色是缓解闸门。认知层的三个闸(探针、Relign、trace 校验)每一个都对应一笔延迟或能力税——这正是为什么"装个工具就治幻觉"是伪命题。

四、推荐方案:按场景上闸

把上面的数据收敛成可落地的选型建议:

一句话总结全篇的红线:当前架构下,工具幻觉与模型能力正相关,降幻觉几乎必然降能力。 唯一能跳出这条跷跷板的是 Relign 式的"学会拒答"和 Structured Outputs 式的"硬约束"——前者治认知层、后者治动作层。其余手段(探针、SVS、DPO)都是按场景支付能力税或延迟税去换幻觉下降。认清这笔税,比迷信"更强模型/更多工具"重要得多。

参考来源

  1. Tool-Use Hallucinations in LLM Agents — EmergentMind 专题汇编 — 五型分类、各基准指标(R_NTA、step localization、TIM 数据)与缓解权衡的综合梳理
  2. Internal Representations as Indicators of Hallucinations in Agent Tool Use (Healy et al., arXiv 2601.05214) — 表征级单趟探针 86.4% 检测准确率,函数名/参数/闭合 token 处激活分类
  3. MIRAGE-Bench: LLM Agent is Hallucinating and Where to Find Them (arXiv 2507.21017) — 统一幻觉测试床,隔离并评估 Agent 幻觉的失败模式
  4. Berkeley Function Calling Leaderboard (BFCL) V4 — UC Berkeley Gorilla — 工具选择/使用准确率与幻觉的行业基准榜单
  5. Why does our agent sometimes hallucinate a tool result — LangChain / Citeables — 旁路幻觉四档分类与 trace-first 可观测性工程实践
  6. τ-bench: A Benchmark for Tool-Agent-User Interaction (arXiv 2406.12045, Sierra Research) — 多轮工具-Agent-用户交互可靠性基准

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入