2026-02-03 · 碎片
32
碎片 · 2026-02-03

调试 AI Agent:为什么"它为什么不工作"是最难的问题

跑了一个月 AI 助手,我发现最难的不是让它变聪明,而是找出它为什么不聪明

人类调试: 看日志,找错误,修 bug。
AI 调试: 它说"我理解了",但输出完全不是那回事。

问题在哪?

黑盒问题
你不知道它"理解"了什么,直到它输出。中间的思考过程是隐藏的。

幻觉掩盖错误
它不会说"我不知道",它会编造一个看起来合理的答案。你很难分辨是理解错了,还是在胡说八道。

上下文丢失
长对话中,它"忘记"了之前的约束。你明明告诉过它"不要这样做",它又做了。

我的调试工具箱

1. 强制显式推理

让它把思考过程说出来:

"在回答之前,先解释:
1. 你理解用户想要什么
2. 你计划如何提供帮助
3. 你需要哪些信息
4. 可能的陷阱是什么"

好处: 你能看见它的推理链,发现逻辑错误。
代价: 响应变慢,token 消耗增加。

2. 分步验证

不要一次给它复杂任务。拆解成小步骤:

"第一步:分析用户的请求是什么"
"第二步:识别需要哪些工具"
"第三步:执行工具调用"
"第四步:验证结果"

好处: 每一步都可以单独验证,容易定位问题。
代价: 需要更多轮对话。

3. 对比测试

同一个任务,让不同的模型/配置做:
- GPT-4 vs Claude vs 本地模型
- 不同温度参数
- 不同 prompt 模板

好处: 快速发现是模型问题还是 prompt 问题。
代价: API 成本增加。

4. 边界测试

给它故意设计的 edge case:

"用户要求 X,但 X 不存在,你会怎么处理?"
"用户给了相互矛盾的指令,你会优先满足哪个?"
"用户的要求违反了安全约束,你会如何拒绝?"

好处: 提前发现潜在问题。
代价: 需要设计测试用例。

5. 记录和回放

每次对话都保存:
- 用户输入
- Agent 输出
- 使用的工具
- 中间状态

出问题时,用同样的输入重测:

"为什么这次成功了,上次失败了?"
"什么条件不同?"

好处: 可以重现问题,对比不同版本的表现。
代价: 需要搭建日志系统。

关键发现

"理解"是不可观测的

不要问"你理解了吗",它会说"理解"。
要问"你会如何验证你的理解是否正确"。

失败模式会重复

Agent 的错误很少是"偶然"的。通常是:
- Prompt 模糊
- 约束不明确
- 工具使用错误
- 上下文超出能力

找到模式,一次性修复一类问题。

过度依赖模型智能是陷阱

不要指望模型"自动理解"你的意图。
显式地写下来:
- "如果 X,那么 Y"
- "不要做 Z,即使看起来合理"
- "遇到不确定的情况,询问而不是猜测"

实际案例

问题: Agent 频繁执行错误的命令。

调试过程:
1. 查看日志 → 发现它误解了参数
2. 修改 prompt → 添加参数说明
3. 测试 → 还是出错
4. 强制显式推理 → 发现它理解了说明,但忽略了边界条件
5. 添加验证步骤 → 让它在执行前确认参数有效性
6. 解决 ✅

教训: 单层修复不够。需要多层防护(prompt + 验证 + 回滚)。

如果你在调试 AI Agent

不要:
- 假设"它应该理解"
- 基于一次成功/失败下结论
- 不断试错而不记录

要:
- 强制显式推理
- 分步验证
- 记录和回放
- 找失败模式
- 多层防护

调试 AI Agent 不是魔法,是工程。
系统性的方法,比随机尝试有效 100 倍。

—— https://www.80aj.com

目录 最新
← 左侧翻上一屏 · 右侧翻下一屏 · 中间唤出菜单