掌握 AI Agent 可观测性:为什么你的仪表盘在骗你
你的 Agent 正在返回 HTTP 200 状态码。延迟在 SLA 范围内。错误率平稳。仪表板上的一切都显示为绿色 —— 但你的用户却得到了言之凿凿的错误答案。
这是 AI 系统中核心的可观测性差距:传统上标志系统健康状况的指标,与你的 Agent 是否真正胜任工作几乎完全无关。一个 Agent 可以流利地产生幻觉、跳过必需的工具、使用陈旧的检索结果,或者陷入逻辑自相矛盾 —— 而此时你的监控却显示零异常。服务可观测性的标准手册并不适用于 Agent 系统,不理解这一差距的团队会发布他们无法信任、调试或改进的 Agent。
监控与可观测性:为什么这种区别在这里至关重要
在确定性系统中,监控之所以有效,是因为故障模式是已知且有限的。你为延迟、错误率和队列深度定义阈值,然后在超过阈值时发出告警。系统以可预测的方式发生故障;你的规则可以捕获它。
AI Agent 不会以这种方式失败。它们会在语义上失败。一个在延迟和错误率检查中表现完美的响应,仍可能在事实上有误、在语境上不恰当,或存在隐微的不安全性。这些失败不会产生异常 —— 它们会产生听起来很有道理的文本。没有错误代码,没有堆栈跟踪,没有指标飙升。
这就是可观测性与监控的区别不再仅仅是理论,而是在操作上变得至关重要的地方。监控回答的是:“发生了什么?”而可观测性回答的是:“为什么会发生这种情况?”对于 Agent,你需要后者。当你的 Agent 产生错误答案时,你需要追踪到底是哪个推理步骤失败了、哪个工具产生了糟糕的输出、哪个检索返回了陈旧的数据,以及哪个模型决策放大了错误。如果没有 Agent 行为的结构化追踪(traces),你就是在对黑盒进行调试。
根据最近的行业调查,89% 的组织已经为 AI 系统实施了某种形式的可观测性 —— 但只有 14% 的组织在其 LLM 应用中实现了生产级的可观测性。差距不在于基础设施。而在于团队正在对错误的对象进行插桩(instrumenting),使用的是为确定性服务设计的工具来监控行为完全不同的系统。
真正该衡量什么:Agent 特有的信号
标准的 Web 服务指标(延迟、吞吐量、错误率)是必要的,但对于 Agent 来说还远远不够。真正能预测 Agent 健康状况的信号是不同的:
Token 使用情况和成本归因。 LLM 提供商按 Token 收费。一个由于提示词设计不佳而进行 10 次冗余 LLM 调用的 Agent,在显示正常延迟的同时,却在隐形地烧钱。你需要按请求进行 Token 追踪 —— 分别记录输入 Token、输出 Token 和缓存的 Token —— 并将其归因于特定的 Agent、端点和代码路径。与部署相关的成本激增是捕获低效 Agent 行为的最具操作性的信号之一。
工具调用模式。 每次工具调用都是 Agent 可能失败的决策点。追踪调用了哪些工具、顺序如何、返回错误的频率、耗时多久,以及至关重要的一点 —— 它们的输出是否真正用于下游推理。一个调用了搜索工具但忽略其结果的 Agent 存在的是推理问题,而不是延迟问题。
决策路径的多样性。 由于 Agent 具有非确定性,相同的输入可能会产生显著不同的推理链。随着时间的推移,你需要决策路径分布的统计视图 —— 哪些工具序列最常见,哪些是异常值,哪些与下游失败相关。单个追踪用于调试;聚合分布用于理解系统行为。
输出质量信号。 这是最难的一点,也是最重要的一点。Token 数量和延迟看似正常,而输出质量却在悄然下降。持续的质量评估 —— 事实准确性抽样、LLM 作为评委(LLM-as-judge)评分、人工标注率 —— 必须在生产环境中运行,而不只是在测试中。如果没有嵌入式的评估(evals),在用户开始投诉之前,你将没有任何信号能表明 Agent 的质量正在发生偏移。
检索的新鲜度和置信度。 对于使用 RAG 的 Agent,检索到的上下文可能已经过时数天或数周。将检索时间戳与查询时间关联起来,并在可能的情况下追踪模型置信度或不确定性信号。一个确凿地断言六个月前索 引文档中事实的 Agent,是一个任何延迟指标都无法发现的可靠性风险。
多步工作流的分布式追踪
对一个中等复杂度的 Agent 的单次用户请求可能会产生 5 次 LLM 调用、3 次工具调用、2 次向量数据库查询以及若干条件分支。Agent 本身已经变成了服务 —— 而当“服务”是一个深度可变的推理循环时,传统的单服务追踪就会失效。
解决方案是将整个 Agent 生命周期视为一个单一的分布式追踪,并为每个步骤创建子跨度(child spans)。规划阶段产生一个 span。每个工具调用产生一个子 span。每次检索产生一个子 span。每次模型调用产生一个子 span。这为你提供了任何请求的完整执行图,并在每个节点捕获了时间和输出。
OpenTelemetry 已成为实现这一目标的行业标准。其 GenAI 语义规范跨框架定义了一致的 span 属性 —— gen_ai.agent.operation.name、gen_ai.usage.output_tokens、gen_ai.tool.name —— 使得追踪可以在不同后端和工具之间移植。关键在于,OpenTelemetry 将采集与存储解耦,因此你在保持与任何后端(Jaeger、Datadog、New Relic、Grafana Tempo、Splunk)兼容的同时,避免了供应商锁定。
性能开销微乎其微:每次 LLM 调用不到 1ms,相对于以秒计的模型延迟来说只是噪音。大多数主要的 LLM 客户端库(OpenAI、Anthropic、LangChain、LlamaIndex)都有社区插桩库或原生 OpenTelemetry 支持,因此初始集成非常轻量。
回报是实实在在的:当你的 Agent 产生错误答案时,你可以打开追踪,查看导致错误工具的 精确规划决策,查看该工具返回了什么,查看模型如何将其整合到响应中,并确定哪个 span 是根本原因。如果没有结构化追踪,同样的调试工作就只能靠猜测。
扼杀生产级 Agent 的盲点
即使是投入了可观测性的团队,也经常会遗漏以下失败模式:
缺乏量化指标的质量下降。 Agent 生成的回复越来越长、听起来越来越自信,但事实准确性却在下降。如果没有持续评估,这是无法察觉的。解决方案是抽样生产环境输出并运行自动化质量检查——如 LLM-as-judge、基于参考的评分或特定领域的验证器——并将这些分数与延迟指标一起集成到你的仪表盘中。
跨 Agent 边界的级联幻觉。 在多 Agent 系统中,一个 Agent 的幻觉输出会进入另一个 Agent 的上下文窗口。下游 Agent 会将其视为事实真相。错误随之放大。没有任何单个 Agent 的指标看起来有问题;这种失败是架构层面的,只有当你关联跨 Agent 边界的追踪(trace)时才可见。多 Agent 可观测性要求具备跨 Agent 移交的父子追踪关系。
Token 浪费导致的成本爆炸。 设计不当的提示词、不必要的上下文填充以及缺失的提示词缓存(prompt caching)可能会在没有任何功能提升的情况下,使 Token 消耗增加 5-10 倍。这会体现在成本仪表盘上,而非延迟仪表盘——这就是为什么许多团队直到收到 API 账单时才发现问题。从第一天起,按 Agent 和代码路径进行的 Token 归属(attribution)就应该是首要指标。
隐藏罕见故障的采样偏差 。 出于成本考虑,高流量的 Agent 通常以 1/10 或更低的比例采样追踪。发生在另外 9 个未采样请求中的关键故障模式将无法被检测到。解决方案是自适应采样:对所有错误进行 100% 采样,对超过百分位阈值的所有慢请求进行采样,并仅针对典型的成功请求降低采样率。
追踪日志中的敏感数据。 记录完整提示词和回复的 Agent 会产生包含用户 PII、专有数据甚至可能包含密钥的可观测性基础设施。那些一开始盲目进行全内容日志记录并试图在以后脱敏的团队会发现,这个问题比预先设计要困难得多。在摄取时而非查询时对敏感内容进行脱敏或哈希处理。
不断演进的工具生态
Agent 的可观测性工具领域已经显著成熟。针对不同的使用场景,有几个平台脱颖而出:
Langfuse 是开源的,遵循 MIT 许可,可自托管并原生支持 OpenTelemetry。它将 LLM-as-judge 评估、标注队列和提示词实验跟踪集成在一个包中——非常适合希望完全控制数据且不想按追踪次数付费的团队。
LangSmith (LangChain) 与 LangGraph 和 LangChain 深度集成,可通过环境变量自动捕获追踪。如果你的技术栈是 LangChain 原生的,这种零配置追踪是无与伦比的。
Arize AI 带有 MLOps 传承,具有集群分析、漂移检测和统计异常检测功能。对于已有 ML 模型监控并正在向技术栈中添加 LLM Agent 的团队来说,它表现尤为出色。
AgentOps 是专为自主 Agent 框架设计的,具有决策路径可视化和回放功能。它较 年轻,但比最初为批处理模型评分设计的 MLOps 平台更具体地涵盖了新兴的 Agent 使用场景。
正确的选择取决于你现有的技术栈、数据驻留要求,以及你优先考虑集成的易用性还是分析的深度。无论选择哪种工具,标准层——OpenTelemetry 加上 GenAI 语义约定——都是值得投入的基础,因为它能确保你的可观测性数据在生态演进过程中保持可移植性。
实践切入点
如果你正在从零开始构建 AI Agent 的可观测性,以下三件事能为你带来最直接的价值:
首先,从一开始就使用 OpenTelemetry。后期改造结构化追踪比最初就基于它构建要困难得多。即使你还没有将 span 路由到任何有用的地方,在代码中保留它们意味着你以后可以将其连接到任何后端。
其次,将按 Agent 和端点统计的 Token 成本作为首要指标。这是在架构低效变得昂贵之前捕捉它们的简单方法,并且它能建立一种将 Agent 行为变化与成本变化关联起来的纪律。
第三,在考虑将 Agent 投入生产之前,至少在生产环境中添加一个质量信号。它不需要很复杂——即使是对 5% 的输出进行采样并通过一个简单的 LLM-as-judge 提示词运行,也能为你提供一个基准。如果没有它,你就无法知道你的 Agent 质量是稳定的、在提高的,还是在悄无声息地下降。
在生产环境中取得成功的 Agent 并不是那些推理最复杂的,而是由那些能够洞察其内部运作的团队构建的。
- https://opentelemetry.io/blog/2025/ai-agent-observability/
- https://opentelemetry.io/blog/2024/llm-observability/
- https://www.getmaxim.ai/articles/top-5-ai-agent-observability-platforms-in-2026/
- https://www.groundcover.com/learn/observability/ai-agent-observability
- https://langfuse.com/blog/2024-07-ai-agent-observability-with-langfuse/
- https://www.dynatrace.com/news/blog/six-observability-predictions-for-2026/
- https://www.braintrust.dev/articles/best-ai-observability-tools-2026
- https://grafana.com/blog/observability-survey-AI-2026/
- https://azure.microsoft.com/en-us/blog/agent-factory-top-5-agent-observability-best-practices-for-reliable-ai/
- https://www.ibm.com/think/insights/ai-agent-observability
- https://uptrace.dev/blog/opentelemetry-ai-systems
- https://victoriametrics.com/blog/ai-agents-observability/
