背景与动机
Agent 系统很难只靠“人工试一下”保证质量。因为它包含模型输出、工具调用、环境状态和多轮决策,问题可能出现在任何一层。
测试和可观测性的目标是:当 Agent 做错事时,能知道错在哪里。

三层测试
1. 工具单测
工具单测不需要模型参与,只测试工具本身:
- 输入是否合法。
- 权限是否生效。
- 错误是否清楚。
- 输出 schema 是否稳定。
工具越可靠,Agent 决策越容易恢复。
2. 集成测试
集成测试验证一次短任务:
给定 Agent 定义给定工具环境发送一个任务检查是否调用了预期工具检查最终输出是否符合格式它不追求覆盖所有自然语言变化,而是覆盖关键流程。
3. 端到端测试
端到端测试验证完整循环:
创建会话 -> 执行多步任务 -> 工具调用 -> 状态变化 -> 最终结果适合覆盖高价值任务,例如代码修复、文档生成、工单分诊。
日志应该记录什么
至少记录:
- Session ID。
- Agent 版本。
- 用户任务摘要。
- 工具调用名称和参数摘要。
- 工具结果状态。
- 错误信息。
- 最终输出。
敏感信息要脱敏,不要把密钥和个人数据直接写入日志。
可观测性指标
可以关注:
- 任务成功率。
- 工具失败率。
- 平均执行时长。
- 人工接管次数。
- 重试次数。
- 高风险操作触发次数。
这些指标能帮助判断 Agent 是稳定变好,还是只是偶尔成功。
常见陷阱
- 只测试最终文本,不测试工具调用过程。
- 日志里没有 Agent 版本,无法复现。
- 错误信息被吞掉,只看到任务失败。
- 测试数据过于理想,覆盖不到真实失败路径。
一次失败任务应该能复盘什么
用户原始目标是什么?使用的是哪个 Agent 版本?运行在哪个 Environment?Session 里发生了哪些事件?调用过哪些工具?哪个工具失败?失败后是否重试?最终输出是否和工具结果一致?如果这些问题答不上来,说明可观测性还不够。
一句话总结
Agent 测试要覆盖工具、流程和完整任务;可观测性要能回答“它为什么这么做”。