文章

Agent Observability:生产级 AI Agent 不能只看日志和延迟

系统拆解 AI Agent 可观测性工程,从 OpenTelemetry GenAI semantic conventions、LLM trace、tool call span、retrieval evidence、memory lineage 到 online evals 与 execution provenance,帮助团队定位 RAG、工具调用和长任务 Agent 的真实失败原因。

为什么 Agent 需要新的可观测性

传统软件的可观测性通常围绕请求链路展开:HTTP 状态码、接口耗时、数据库查询、错误日志以及 CPU、内存、队列长度等资源指标。对确定性系统来说,这些指标足以定位绝大部分问题。

AI Agent 不一样。一个 Agent 可能先理解用户意图,再检索文档、调用工具、读取记忆、重写计划、再次调用模型,最后生成答案。一次请求是否成功,不只取决于接口是否返回 200,还取决于它是否拿到了正确证据、是否调用了正确工具、是否把工具结果解释正确、是否按业务规则行动。

因此,生产级 Agent 的可观测性不能只停留在日志和延迟,而要能回答一个核心问题:这个答案是怎么来的,证据在哪里,工具为什么被调用,失败发生在哪一步

一句话理解 Agent Observability

Agent Observability 可以概括为:把 Agent 的每一次推理、检索、工具调用、记忆读写、评测和最终输出,记录成可追踪的执行链路。

User Intent → Agent Plan → Retrieval Span → Tool Call Span
    → Model Call Span → Memory Span → Evaluation Span
    → Final Answer → Audit Trail

它的目标不是收集更多日志,而是让每个关键决策都能被解释、复现、评估和回归测试。

核心知识结构

可以把 Agent 可观测性拆成 6 个模块来理解。

1. Trace 与 Span

Trace 表示一次完整任务链路,span 表示链路中的一个步骤。一个 Agent trace 通常包含 model span、retriever span、tool span、memory span 和 evaluation span。OpenTelemetry 将自身定位为 vendor-neutral 的开源可观测框架,提供 traces、metrics、logs 与上下文传播能力,GenAI semantic conventions 已覆盖 input/output messages、retrieval documents、tool definitions、tool call arguments/results、evaluation score、cache tokens 等字段——这意味着行业正在把 LLM 调用、工具调用和评测结果纳入统一的 telemetry schema。

2. Prompt 与模型调用

模型调用不应只记录耗时,还要记录以下维度:

字段说明
prompt_version追踪 Prompt 变更对行为的影响
model模型名称与版本
temperature / top_p采样参数
input_tokens / output_tokens / cache_tokensToken 用量与缓存命中率
structured_output_schema结构化输出约束
finish_reason终止原因(正常结束、长度截断、内容过滤等)
error模型调用层面的错误信息

3. Retrieval Evidence

RAG 失败常常不是模型问题,而是证据问题。Retriever span 应记录 query、document id、score、rank、metadata、source 以及该文档是否进入最终上下文。这样当最终答案不可靠时,团队可以直接定位到检索环节。

4. Tool Call Provenance

工具调用需要记录 tool name、tool definition version、arguments、result、error、retry、approval status 和 side effect。只有完整记录工具调用的来龙去脉,才能判断工具是否被误用,参数是否来自用户授权,结果是正确解读还是被模型曲解。

5. Memory Lineage

长任务 Agent 会读写 memory。如果 memory 被污染,后续步骤会持续受影响。因此要记录 memory 来源、写入原因、读取位置和影响范围,形成完整的记忆血缘。

6. Online Evaluation

上线后的 Agent 需要持续评测。Trace 应能附加 LLM-as-a-Judge 分数、人工标签、安全检查、格式检查和业务成功指标。2026 年《From Agent Traces to Trust》综述指出,final-answer accuracy 不能解释输出如何产生、证据如何支撑结论、工具调用是否合理、memory 如何影响后续决策,因此需要 evidence tracing 与 execution provenance。

为什么传统日志不够

传统日志通常能告诉你:某个接口何时被调用,返回了什么状态码,耗时多久。

但 Agent 失败时,你更需要回答这些问题:

  • 用户真实意图是什么?
  • Agent 是否误判了任务类型?
  • 检索出来的文档是否相关?
  • 工具是否该被调用?参数是否来自用户授权?
  • 工具返回是否被正确理解?
  • 最终答案中的关键结论是否有证据支持?
  • 当前失败是否和某个 prompt version 或模型版本有关?

如果没有结构化 trace,这些问题只能靠人工翻对话、查日志、猜测模型行为,效率极低。2026 年 AgentTrace 论文提出从 operational、cognitive、contextual 三个层面捕获 Agent 结构化日志,正是为了解决这一难题。

推荐流程:从 Trace 到可回归样本

一个生产级 Agent 可观测流程可以这样设计:

  1. 用户请求进入 Agent runtime,创建 trace_idsession_id
  2. 每次模型调用生成 model span
  3. 每次检索生成 retrieval span,记录候选文档与最终上下文
  4. 每次工具调用生成 tool span,记录参数、结果和副作用
  5. 每次 memory 读写生成 memory span,记录来源和用途
  6. 最终回答生成 answer span,关联证据和工具结果
  7. 在线 evaluator 对 trace 打分或贴标签
  8. 失败 trace 进入 annotation queue 或人工复核
  9. 高价值失败样本进入 regression dataset
  10. 新 prompt、新模型、新工具上线前必须跑回归

这条链路的关键在于闭环:trace 不是为了事后观赏,而是为了进入评测、修复和发布流程。

Trace Schema 应该记录什么

一个简化的 Agent trace schema 可以这样设计:

trace:
  trace_id: tr_20260625_001
  session_id: sess_9182
  user_intent: "查询订单退款状态"
  agent_name: customer_support_agent
  agent_version: "2026-06-25"
  prompt_version: refund_v7

  model_calls:
    - model: strong-reasoning-model
      input_tokens: 8200
      output_tokens: 640
      latency_ms: 1800
      temperature: 0.2

  retrieval_spans:
    - query: "refund policy order 9182"
      documents:
        - doc_id: refund_policy_v3
          rank: 1
          score: 0.91
          used_in_answer: true

  tool_spans:
    - tool_name: get_order_refund_status
      tool_version: v2
      arguments:
        order_id: "9182"
      result_status: success
      side_effect: false

  evaluations:
    - name: faithfulness
      label: pass
      score: 0.92
    - name: tool_relevance
      label: pass
      score: 1.0

这个结构的重点不是字段多,而是能把用户意图、证据、工具和最终答案连接起来,形成一条可审计的决策链路。

关键指标:不要只看平均延迟

Agent 生产监控至少要看 8 类指标:

指标类别关注点
Task Success Rate任务是否真正完成,而不只是模型是否生成了回答
Tool Call Accuracy是否调用了正确工具,参数是否正确,是否存在无关调用或漏调用
Retrieval QualityContext Precision、Context Recall、document rank、citation coverage、evidence usage
Evaluation Scorehelpfulness、faithfulness、safety、format compliance 的持续记录
Cost & Token Usage按 workflow、tool、model、tenant、prompt version 拆分 token 与成本
Latency Breakdown拆分 retrieval latency、tool latency、model latency、queue time、evaluation latency
Failure Mode Distribution检索失败、工具失败、参数失败、模型幻觉、权限失败、格式失败、安全失败
Regression Delta每次模型、prompt、tool schema、retriever 参数变化后的基线与质量对比

隐私与成本:可观测性也需要边界

Agent trace 很有价值,但也很敏感。它可能包含用户输入、工具返回、私有文档、订单数据、代码片段、业务规则和个人信息。生产环境应做到:

  • 敏感字段脱敏
  • 高风险工具结果默认摘要化
  • 按租户隔离 trace
  • 限制 trace 查询权限
  • 设置数据保留周期
  • 对导出和分享做审计
  • 对 LLM evaluator 输入做隐私过滤

此外,不是所有 trace 都必须完整评测。高流量系统可以采用分层策略:

  • 100% 采集基础指标
  • 抽样采集完整 prompt-response 对
  • 高风险任务全量保留关键 trace
  • 10%–20% 流量运行在线 evaluator
  • 失败样本进入人工复核队列

生产落地 Checklist

上线前建议逐项检查:

  • 是否为每次 Agent 任务生成 trace_idsession_id
  • 是否拆分 model、retrieval、tool、memory、evaluation spans
  • 是否记录 prompt_version、model、参数、tokens、latency 和错误
  • 是否记录检索文档的 id、score、rank、source 和是否被使用
  • 是否记录工具 definition version、arguments、result、retry 和 side effect
  • 是否把最终答案中的关键结论关联到证据或工具结果
  • 是否有在线 evaluator 和人工复核队列
  • 是否把失败 trace 转成 regression dataset
  • 是否对 prompt、模型、工具、retriever 变更跑回归测试
  • 是否有 PII 脱敏、权限控制和数据保留策略
  • 是否按 workflow、tenant、model、prompt version 拆分成本和质量指标
  • 是否能从 dashboard drill down 到单条失败 trace

结论

Agent Observability 的本质,是把不可预测的 Agent 行为变成可追踪、可解释、可回归的工程对象:

  • Trace 记录任务链路
  • Span 记录关键步骤
  • Evidence 解释答案依据
  • Tool provenance 解释行动来源
  • Evaluation 量化质量
  • Regression dataset 防止修复后再次失败

对工程团队来说,最实用的原则是:不要等用户说”这个 Agent 不靠谱”才去翻日志。应该让每一次失败都能被定位到具体环节,让每一次修复都能沉淀为评测样本。只有当 Agent 的证据、工具、记忆和输出都可观测时,它才能从 Demo 走向可运营的生产系统。

常见问题

AI Agent 可观测性和传统 APM 有什么区别?
传统 APM 主要关注延迟、错误率、资源和调用链;Agent 可观测性还要记录用户意图、Prompt、检索证据、工具调用、记忆、评测分数和最终答案之间的关系。
为什么只看最终回答不能定位 Agent 问题?
最终回答只能说明结果是否可用,不能解释错误来自检索、工具选择、参数填写、记忆污染、Prompt 版本,还是模型生成阶段。
生产环境应该采集哪些 Agent trace 字段?
至少应采集 trace_id、session_id、prompt_version、model、retrieval documents、tool definitions、tool call arguments/results、token usage、latency、eval score、error event 和 final answer。
Agent Observability 落地需要哪几个关键模块?
核心包括 Trace 与 Span 设计、Prompt 与模型调用记录、Retrieval Evidence、Tool Call Provenance、Memory Lineage 和 Online Evaluation 六个模块。