评估 Agent 时,如何区分「模型能力「和「工程实现「的问题
1️⃣ 考察意图
考察对 Agent 系统的分解能力。刁钻点:Agent 失败可能不是 LLM 的问题,而是 prompt 设计、工具实现、上下文管理等工程问题。
2️⃣ 标准答
Agent 系统分解为三层:
| 层次 | 职责 | 常见问题 | 诊断方法 |
|---|---|---|---|
| 模型层 | LLM 推理+生成 | 推理错误、幻觉、指令遵循差 | 用相同prompt在GPT-4/Claude/Gemini上对比 |
| 编排层 | Prompt设计+工具选择+上下文管理 | Prompt模糊、工具描述差、上下文过载 | 逐步trace检查每步的输入输出 |
| 工具层 | 工具实现+API稳定性 | API超时、返回格式不一致、参数校验缺失 | 单独测试每个工具的输入输出 |
诊断流程:
- 先查工具层:Agent 调用了工具但结果不对?→ 检查工具返回值。如果工具返回错误,是工具问题而非模型问题
- 再查编排层:工具返回正确但 Agent 用错了?→ 检查 prompt 和上下文。如果 prompt 模糊或上下文过载,是工程问题
- 最后查模型层:Prompt 清晰、上下文充分、工具返回正确,但 Agent 还是做错了?→ 模型能力问题
具体诊断案例:
案例1:Agent 调用了错误的工具
- 工具层检查:工具描述是否清晰?"搜索工具"vs"在知识库中搜索产品信息并返回结构化结果"——后者更清晰
- 编排层检查:工具列表是否太长?>10个工具时LLM容易选错。考虑用路由模型预筛选
- 模型层检查:用GPT-4替代当前LLM,如果选对了工具→模型能力问题
案例2:Agent 调用了正确工具但参数错误
- 工具层检查:参数schema是否清晰?
{"date": "string"}vs{"date": "YYYY-MM-DD格式,如2024-01-15"} - 编排层检查:是否有参数示例?Few-shot示例可以显著减少参数错误
- 模型层检查:参数格式是否超出LLM能力?如要求生成复杂JSON嵌套结构
案例3:Agent 多步规划出错
- 编排层检查:是否提供了足够的上下文?如果对话历史过长,考虑用摘要压缩
- 模型层检查:用更强的模型(GPT-4替代GPT-3.5)测试,如果规划正确→模型能力问题
3️⃣ 答题模板
"Agent 系统分三层诊断。先查工具层——工具返回是否正确?API超时?格式不一致?再查编排层——prompt是否清晰?工具描述是否模糊?上下文是否过载?最后查模型层——prompt和工具都没问题但Agent还是做错了?→换更强模型测试。核心方法:逐步trace每步的输入输出,定位失败发生在哪一层。"
4️⃣ 高频追问
追问 1:怎么做 Agent 的逐步 trace?
在 Agent 的每一步记录:
(step_id, input_prompt, tool_call, tool_result, llm_output, latency)。用 JSON 格式存储,支持回放和调试。关键检查点:(1) LLM 看到的完整 prompt(含上下文)是否合理?(2) 工具调用的参数是否正确?(3) 工具返回值是否完整?(4) LLM 是否正确理解了工具返回值?工具:LangSmith/LangFuse 提供 Agent trace 可视化。
配图(无描述)
追问 2:如果是 prompt 设计的问题,怎么优化?
(1) 明确化——"搜索产品"改为"调用 search_product 工具,参数 name 为产品名称,返回 JSON 格式的产品列表";(2) 加示例——在 prompt 中加入 1-2 个正确调用的示例;(3) 减少工具数——>10个工具时用路由模型预筛选到3-5个;(4) 结构化——用 system prompt 明确约束"你必须先调用搜索工具获取信息,再生成回答"。
追问 3:模型能力问题有什么典型表现?
(1) 推理错误——给定"A>B, B>C",模型推出"A<C"(逻辑推理能力不足);(2) 指令遵循差——明确要求"输出JSON格式"但输出自由文本(指令遵循能力不足);(3) 长上下文遗忘——对话超过20轮后忘记早期信息(上下文窗口管理能力不足);(4) 工具选择错误——有正确工具可用但选了错误的(工具理解能力不足)。解法:换更强的模型(GPT-4/Claude 3.5),或用 fine-tuning 提升特定能力。
5️⃣ 避坑
- ❌ "Agent 效果不好就是模型不行" → ✅ "80%的Agent失败是工程问题(prompt设计差、工具描述模糊、上下文过载),不是模型能力问题。先排查工程再换模型。"
6️⃣ 简历呼应
- 有 Agent 调试经验:从"Agent 故障诊断"切入,描述你如何通过 trace 定位问题并优化
- 校招无项目:用 LangSmith 追踪一个简单 Agent 的执行过程,分析每步的输入输出
- "LangSmith: Debug and Monitor LLM Applications" (LangChain, 2023) / "Evaluating LLM-based Agents: A Survey" (Wang et al., 2024)