首页 > agent > 当前页面

你是怎么判断问题主要来自模型幻觉,还是 RAG、Prompt、工具链路本身?

2026-06-20 NEW个对象

🎯 你是怎么判断问题主要来自模型幻觉,还是 RAG、Prompt、工具链路本身?——基于 Spring AI Alibaba 的 Agent 全链路评测实践

Agent 系统上线之后,一个最容易遇到的问题就是回答错误。然而,大多数团队第一反应都是认为模型能力不足,立即调整 Prompt 或更换模型。事实上,在真实生产环境中,模型幻觉仅仅只是众多问题来源之一,大量错误实际上来自于 RAG 检索、Prompt 设计、工具调用、权限过滤、Memory 污染以及 Agent Workflow 编排等多个环节。如果没有完整的评测体系,就无法准确定位问题来源,更无法持续优化 Agent 的整体效果。

因此,一个成熟的 Agent 系统不能仅仅关注最终答案是否正确,而应建立覆盖整个推理链路的评测体系,将结果评测(Process Evaluation)与过程评测(Result Evaluation)结合起来,通过 Trace 数据、日志回放、自动评分和人工标注共同完成问题定位,并利用评测结果持续反向优化 Prompt、Tool Schema、Memory、Router 以及 RAG 检索策略。

⚠️ 核心思想

Agent 评测不是简单判断回答是否正确,而是评测每一个执行节点是否正确。生产环境真正需要回答的是:"到底是哪一个环节出了问题?"

📌 一、问题背景

假设用户询问:"今年公司员工总数是多少?"Agent 返回了错误答案。此时至少存在以下几种可能:

  • RAG 根本没有召回对应知识文档。
  • RAG 已经召回正确文档,但模型没有正确理解内容。
  • Prompt 指令存在歧义,引导模型错误推理。
  • Tool 调用了错误接口。
  • Tool 参数生成错误。
  • Memory 带入了历史错误上下文。
  • 权限过滤导致关键数据被过滤。
  • Workflow 路由到了错误 Agent。

如果仅凭最终答案判断问题来源,很容易误判。因此生产环境必须建立完整的 Agent Evaluation Pipeline,实现问题快速归因。

🚀 二、核心原理

整个评测体系通常拆分为结果评测(Result Evaluation)和过程评测(Process Evaluation)两个维度。

结果评测主要关注:
  • 任务成功率(Task Success Rate)
  • 答案准确率(Accuracy)
  • 模型幻觉率(Hallucination Rate)
  • 用户满意度(CSAT)
  • 响应延迟(Latency)
  • Token 消耗成本(Cost)
过程评测主要关注:
  • Planner 是否规划合理
  • Router 是否选择正确 Agent
  • RAG 是否成功召回
  • Tool 是否选择正确
  • Tool 参数是否合法
  • 是否发生重复调用
  • 是否触发 HITL(Human In The Loop)
  • Memory 是否污染上下文

Spring AI Alibaba 提供了丰富的 AI 抽象能力,可以通过 Advisor、ChatMemory、Tool Calling、Observation、Spring Boot Actuator、Micrometer 等组件,将整个 Agent 生命周期中的关键节点全部记录下来,从而形成完整的评测数据。

💡 三、数据结构分析

为了能够实现问题定位,每一次请求都应该生成唯一 TraceId,并记录整个 Agent 生命周期中的关键数据。

Request

TraceId

User Question

RAG Retrieval Documents

Prompt Template

LLM Request

Tool Calling

Tool Result

Memory Context

LLM Final Answer

Evaluation Score

Spring AI Alibaba 中可利用 Advisor 拦截 Prompt,利用 ToolCallbackInterceptor 记录工具调用,利用 ChatMemoryAdvisor 获取上下文,再通过 Observation 将所有执行数据统一输出至 Trace 系统,例如 Zipkin、SkyWalking 或 OpenTelemetry。

🔥 四、算法与处理逻辑

生产环境中通常不会直接判断"模型回答错误",而是采用排查树(Troubleshooting Tree)逐层定位问题来源。

第一步:检查 RAG 是否召回

  • 未召回相关文档 → 检查 Embedding、向量库、Chunk、Retriever。
  • 召回文档数量过少 → 调整 TopK、Hybrid Search、ReRank。
  • 召回文档错误 → 检查索引质量。

第二步:检查 Prompt

  • Prompt 是否遗漏业务约束。
  • Few-shot 是否合理。
  • System Prompt 是否冲突。

第三步:检查模型输出

  • 文档正确但模型回答错误。
  • 模型编造不存在的数据。
  • 逻辑推理出现错误。

第四步:检查 Tool Calling

  • 是否调用了错误 Tool。
  • Tool 参数是否正确。
  • Tool 是否超时。
  • 接口是否返回异常。

第五步:检查 Memory

  • 是否读取了历史错误上下文。
  • 是否上下文过长导致截断。

🚀 五、执行流程(Spring AI Alibaba 落地方案)

用户请求 → Spring MVC Controller → Spring AI Alibaba ChatClient → Advisor 记录 Prompt → RAG 检索 → Observation 记录召回文档 → Planner 规划 → Router 选择 Agent → Tool Calling → Tool Callback 记录参数 → Memory Advisor 注入历史上下文 → LLM 输出 → Evaluation Engine 自动评分 → 人工抽样复核 → Micrometer 指标统计 → Grafana Dashboard 展示 → 根据评测结果持续优化 Prompt、Memory、Tool Schema 与 Router

在工程实现上,可以定义统一 EvaluationService,每次请求结束后自动计算 Accuracy、Hallucination、Tool Success Rate、Latency、Cost 等指标,并将评测结果写入数据库,形成长期评测数据集。

✅ 六、实际案例

某企业知识库 Agent 在回答制度类问题时,准确率只有 72%。团队最初怀疑模型能力不足,但通过 Trace 回放后发现:

  • 80% 错误请求没有召回最新制度文档。
  • Retriever TopK 设置过小,仅返回 2 篇文档。
  • Chunk Size 过大导致关键内容被截断。
  • Prompt 未限制"不知道不要编造"。
  • Memory 将上一位用户上下文带入当前会话。

随后团队在 Spring AI Alibaba 中分别优化了 VectorStore 检索策略、Prompt Template、ChatMemory 隔离机制以及 Tool Schema,并增加 ReRank 排序模型,最终任务成功率提升至 95% 以上,而模型本身没有发生任何变化。

💡 七、优缺点分析

方案 优势 不足
最终答案评测 实现简单 无法定位问题来源
过程评测 定位精准,可持续优化 日志采集成本较高
全链路 Trace + Evaluation 适合生产环境,支持持续演进 需要完善监控平台建设

🎯 八、面试常见问题

  • Agent 为什么不能只评测最终答案?
  • 如何区分模型幻觉与 RAG 检索失败?
  • Spring AI Alibaba 如何记录 Prompt 与 Tool 调用?
  • Tool Calling 应重点监控哪些指标?
  • 如何实现 Agent Trace 回放?
  • 如何统计幻觉率(Hallucination Rate)?
  • Memory 污染如何检测?
  • 如何通过评测结果持续优化 Prompt 与 Tool Schema?
  • 自动评测与人工评测如何结合?
  • 生产环境为什么需要长期维护标准任务集(Golden Dataset)?

📌 九、总结

判断 Agent 问题来源不能依赖经验,更不能简单归因为模型幻觉。成熟的工程实践应首先检查 RAG 是否成功召回;若召回失败,则重点排查向量检索、权限过滤、数据源质量及后处理逻辑;若召回内容正确但模型输出错误,则大概率属于模型幻觉或 Prompt 设计问题;若 Tool 调用异常,则进一步检查工具选择、参数生成及接口返回;若回答受历史上下文影响,则需要分析 Memory 是否发生污染。生产环境应基于 Spring AI Alibaba 构建覆盖 Prompt、RAG、Tool Calling、Memory、模型输出以及最终答案的全链路 Trace,完整记录检索文档、Prompt、模型响应、工具调用和最终结果,并结合标准任务集、Mock 工具环境、自动评分、人工标注、Micrometer 指标、OpenTelemetry 链路追踪及 Dashboard 持续监控失败链路、成本、延迟和异常工具调用,最终利用评测数据持续反向优化 Prompt、Router、Memory、Tool Schema 与检索策略,实现 Agent 系统的闭环迭代与稳定演进。

相关文章

NEW个对象 NEW个对象
JAVA是世界上最好的语言

推荐文章