跳转到主要内容

Agent 集群可观测性:在千并发 Agent 运行中监控而不陷入仪表盘盲区

阅读需 2 分钟Tian PanTian Pan

在生产环境中运行一百个 agent 感觉还可以管理。你有追踪数据,有仪表盘,知道什么时候出问题。但运行一千个并发 agent 完全是另一个问题——不是因为 agent 更复杂,而是因为你为十个 agent 建立的监控模型在你注意到之前就已经悄然失效了。

失败模式很微妙。一切看起来都很正常。你的 span 树都在。错误率很低。然后,一个导致 40% 会话输出质量下降长达六小时的提示词回归,只因为客户投诉才浮出水面——而不是被你的可观测性系统捕获。

这就是仪表盘盲区问题:单 agent 追踪在小规模下运行良好,在集群规模下则会悄然失效。以下是它发生的原因及应对之道。

为何单 Agent 追踪在大规模下失效

传统分布式追踪假设请求生命周期是可预测的:请求进入,遍历几个服务,然后返回。该请求的 span 树是有界的、可读的。单个追踪能告诉你发生了什么。

Agent 工作负载打破了这一模型所依赖的每一个假设。单个用户请求可能触发五次或更多 LLM 调用、三次工具调用、两次向量数据库查找,以及数量不定的重试周期——所有这些都在一次"运行"中。该运行的 span 树深度深、分支多,且结构是非确定性的。明天相同的输入可能产生结构完全不同的树。

遥测数据量的增长速度很快。典型的基于 RAG 的 agent 管道产生的遥测数据是等效 API 调用的 10 到 50 倍,因为你现在需要追踪每次模型调用的 token 数量、缓存命中率、嵌入相似度分数、护栏触发率以及每步的成本归因。运行自主多 agent 工作流(agent 派生并协调其他 agent)的团队报告称,与其应用程序遥测基线相比,遥测数据量增加了 50 到 100 倍。这通常是可观测性预算意外翻倍的地方。

但数据量是可管理的部分。更深层的问题在于,集群规模的 agent 监控需要回答个别追踪无法回答的问题:

  • 失败率是否在多次运行中相关联,还是孤立于特定配置?
  • 提示词变更是否在每个追踪的错误率上升之前就已经降低了整个集群的输出质量?
  • 哪批 agent 在这一小时内消耗了 80% 的 token 预算?
  • 是否有 agent 卡住了——在相同工具调用上循环、消耗预算却没有返回任何用户价值?

这些问题没有一个能通过阅读单个 span 树来回答。它们需要集群级别的聚合。

真正重要的集群级信号

相关失败率

最重要的信号不是你的总体失败率——而是失败是否以暗示系统性原因的方式跨运行相关联。

随机工具失败是预期的。意外的是,当十个 agent 在 30 秒内都在其网页搜索工具调用上失败,或者当特定工具的失败率对于共享特定系统提示变体的 agent 激增时。相关性以总体错误率所隐藏的方式揭示因果关系。

在操作上,这意味着你需要按提示词变体、模型版本、工具名称和用户群体切分失败率。"错误率:2%"的平坦仪表盘几乎毫无用处。"在过去 15 分钟内,使用 prompt_v7 的 agent 的 web_search 工具错误率上升了 8 倍"才是可行动的。

成本分布百分位数

每次运行的平均 token 成本是一个虚荣指标。钱花在了 P95 和 P99 上。

长尾 token 消耗的 agent 运行——递归过深、获取了太多文档、或在超时前进入软循环的 agent——个别来看很昂贵,整体来看很危险。P99 token 消耗的单次 agent 运行成本可能是中位运行的 20 到 50 倍。

有效的检测模式:当 P95 token 消耗在滚动一小时窗口内跳升超过 30% 时发出警报。这能在成本账单反映之前捕获上下文窗口膨胀(通常是工具输出臃肿或内存积累的症状)等问题。已实施此方案的团队报告,比标准账单异常检测早数小时捕获成本峰值。

P99 执行深度

执行深度——agent 在完成或失败之前所走的步骤数——是一类没有直接信号的失败的代理指标:运行时间越来越长但没有取得进展的 agent。

大多数健康的 agent 运行在有限的步骤数内完成。当 P99 执行深度开始攀升——或者当分布出现长尾,一小部分运行占用中位数 3 倍步骤时——这是某些 agent 未能收敛的信号。

危险的变体是静默循环:一个 agent 反复以微小变化调用同一工具,返回技术上成功的完成,但从未真正解决用户的问题。这些运行不会出现在你的错误率中。它们只出现在你的成本分布和执行深度百分位数中。

卡住 Agent 检测

卡住的 agent 是指已进入无法向前推进但尚未超时或出错的状态。实际定义:一个重试同一工具调用超过 N 次,或在步骤上花费超过 M 秒但没有状态变化的 agent。

这与失败的 agent 不同。失败的 agent 会出现在你的错误率中。卡住的 agent 会出现在你的延迟分布中——具体来说是你的 P99 和 P99.9 会话持续时间指标中。它们还作为极端异常值出现在你的每会话成本直方图的右尾中。

检测需要监控单次运行内每次工具调用的重试次数,而不仅仅是所有运行中的总体重试率。一个 agent 在一次运行中重试 search_documents 八次,与整个集群 8% 的重试率是截然不同的信号。

行为指纹:在指标移动前捕获回归

集群规模 agent 监控最强大的技术也是对来自传统可观测性的工程师来说最不直觉的:行为指纹。

核心洞察是,给定任务的一组 agent 运行具有一个特征统计形状——由执行追踪分布定义的指纹。当 agent 正确工作时,这个指纹是稳定的。当提示词被更改、模型被升级或工具模式漂移时,指纹会改变。通常,指纹会在你的错误率、延迟或质量指标移动之前改变。

会员专享

余下内容仅对会员开放。

会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。

  • 完整文章,包含未公开存档的部分
  • 可落地的工作框架,附带权衡与决策依据
  • 新文章抢先看,先于公开发布

随时取消 · 一次订阅,畅读全部

参考资料

保持联系,关注我获取更多内容

阅读需 11 分钟

30 秒都去哪了:APM 无法察觉的 Agent 步骤内部延迟归因

传统的 APM 将 Agent 的一个步骤视为单一的粗粒度 Span,导致值班工程师只能靠猜。通过将其分解为七个阶段,区分首字延迟 (Prefill) 与解码 (Decode),并追踪关键路径而非总 Span 时间。

insider
observability
阅读需 11 分钟

没人会提前搭建的AI运维仪表盘

延迟和错误率覆盖的LLM功能故障空间不足20%。以下是你的APM仪表盘默默忽略的五种生产故障模式,以及真正能发现问题的信号层级体系。

insider
ai-engineering
阅读需 11 分钟

你的智能体追踪在撒谎:LLM 智能体的基数、采样与 Span 层级结构

分布式追踪最初是为每个请求约 10 个 Span 设计的。而单个智能体运行可能会产生数百个 Span,默认的 OpenTelemetry 配置会系统性地漏记工作负载。本文将介绍能够经受住生产环境智能体工作负载考验的 Span 层级、尾部采样策略以及 Payload 处理方式。

insider
observability
阅读需 10 分钟

生产环境中的 LLM 可观测性:追踪不可预测的行为

标准监控仪表盘往往会忽略 LLM 应用中大部分的问题。这是一份关于分布式追踪、成本归因、延迟分析以及在大规模场景下调试非确定性 Agent 行为的实用指南。

llm
observability
阅读需 9 分钟

生产环境中的 LLM 可观测性:工程师容易忽略的四个隐性故障

标准监控在生产环境 LLM 系统中容易遗漏的四种故障模式 —— 以及如何通过分布式追踪、持续评估和正确的遥测架构,在用户发现之前捕捉到这些问题。

llm
observability