AI Agent 可观测体系怎么搭:Trace、Eval、成本、回归四件套
把 Agent 跑通是一回事,能在生产环境里持续跑、持续优化、持续证明 ROI 是另一回事。差别全在「可观测」上。这是我们做企业 AI Agent 智能体基础设施时被客户问得最多的一个工程问题,也是 PoC 到生产之间最大的隐形成本。
一、Agent 可观测 ≠ 传统服务监控
| 维度 | 传统服务 | AI Agent |
|---|---|---|
| 故障判定 | HTTP 5xx 即失败 | 200 OK 但答案错误也算失败 |
| 性能指标 | P95 延迟 | 延迟 + 准确性 + Token 成本 |
| 调试单位 | Request | Trace(含 LLM call + Tool call + Sub-agent) |
| 回归测试 | 单元测试 / 集成测试 | Eval Set + LLM-as-Judge |
| 变更风险 | 代码改动 | 代码 / prompt / 模型版本 / 知识库都可能引起回归 |
二、必备四件套
1. Trace(链路追踪)
每次 Agent 调用必须产出一份完整 Trace:触发输入 → 规划 → 工具调用 → 知识检索 → 子 Agent 调用 → 最终输出。每个节点带耗时、Token、模型版本、prompt 快照。
工具选型:
- LangSmith:与 LangGraph / LangChain 深度集成,开箱即用
- Langfuse:开源、可私有部署、合规友好
- OpenTelemetry + 自建:自由度最高、对接已有可观测栈
2. Eval(评测)
每次 Prompt / 模型 / 知识库改动,跑一次 Eval Set,比对历史基线。三层:
- 断言级:「这个意图必须分类为 X」「这个数字必须出现」
- 评分级:LLM-as-Judge 给 1-5 分,按礼貌 / 准确 / 引用 / 简洁多维度
- 端到端:模拟用户多轮对话,任务完成率
艾景特默认要求:Eval Set ≥ 100 条,主指标不退化是上线门槛。
3. 成本(Token / Cost Tracking)
- 每个 Trace 自动记录:模型 / Provider / Prompt Token / Completion Token / Cache Hit / 折算成本
- 按 Agent / 部门 / 客户 三维度聚合,做月度账单
- 异常告警:单 Trace 成本超过 X 元立即报警
4. 回归(Regression Testing)
- 关键场景维护「黄金对话」用例库
- 每次发版 → 跑全量回归 → 对比上一个版本
- 不通过的用例进入「失败案例池」,下次 Prompt 调整必须先解决
三、艾景特线上的实施模板
- 第 1 周:把 Langfuse 私有化部署,所有 LLM 调用走 SDK,Trace 落库
- 第 2 周:建 Eval Set 初版(50-100 条),把上一个迭代的 Prompt 跑通做基线
- 第 3 周:成本看板上线,按 Agent / 部门打标签,每天看异常
- 第 4 周:CI 集成回归——PR 提交触发 Eval Set,主指标退化 PR 自动 block
- 持续:每周看一次 Trace 异常 Top 10、Eval 退化 Top 10,迭代 Prompt
四、真实数据:四件套的 ROI
| 指标 | 没有可观测 | 有可观测 | 变化 |
|---|---|---|---|
| 故障定位时间 | 2-8 小时 | 5-15 分钟 | 15-30 × |
| Prompt 改动安全度 | 「凭感觉」 | 「过 Eval 才上线」 | 回退率 ↓ 80% |
| 月度 LLM 账单 | 不可控 | 分维度可见 | 常见省 30-50% |
| 新模型评估周期 | 2-4 周 | 2-3 天 | 10 × |
五、常见坑
- ❌ Prompt 提交不打 commit:版本对不上,Trace 没意义
- ❌ Eval 全靠 LLM-as-Judge:缺少确定性断言会出现「左右互搏」
- ❌ 成本只看总账:分不清是哪个 Agent 烧钱,优化无从下手
- ❌ Trace 不脱敏:客户数据进 SaaS 系统,合规事故风险高