跳转到主要内容

遥测成本是 Agent 的设计变量,而非基础设施账单

Agent 工作负载会成倍放大可观测性支出,因为每一步都会发出 trace、日志和指标。解决办法是与 Agent 一同设计采样与保留策略。

电路板的微距照片,清晰显示走线、焊点和表面贴装元件

上线前没人建模的成本曲线

传统服务的遥测发出量大致与其服务的请求量成正比。Agent 则不然。一次用户请求会展开为规划步骤、一系列工具调用、验证环节、一两次重试以及最终综合。每个阶段都是一个 span;每个 span 都携带属性、事件,往往还有载荷。这种倍增是结构性的,而非偶然的。

行业报道已开始点明这一模式。对 Splunk 可观测性指南的报道、Network World 的更广泛评论以及 Cisco 的遥测材料都描述了同一形态:Agent 驱动和 LLM 驱动的工作负载推高可观测性数据量的速度快于底层请求速率,而由此产生的支出大部分是隐性的,因为它累积在存储、摄取和按席位许可中,而非体现在某个可见的单项上。参见 Splunk 相关报道、Network World 的讨论 以及 Cisco 关于可观测性的文章,了解总体趋势。

令人不安的观察是,这些数据大部分从未被读取。它被保留是因为保留是默认行为:tracing SDK 导出一切,后端在配置的窗口内保存它,而没有人重新审视策略,因为根本没有策略。账单随后到达,与导致它的决策脱节。

从下方拍摄的光纤交换机特写,带有连接的线缆

Agent 发出而服务不会发出的数据

传统请求遥测小而结构化:一个路由、一个状态码、一个持续时间。Agent 遥测大而语义化。四类数据主导了数据量。

Prompt 与 completion 载荷。 每次模型调用都可能携带完整的输入上下文和完整的生成输出。这些是调试时最有用的记录,也是存储成本最高的,因为它们随 token 数量而非请求数量增长。

工具参数与结果。 一个工具调用 span 很便宜;它的属性则不便宜。参数可能是大型结构化对象,结果可能是整个文档。当工具在循环中被调用时,相同的形态会被反复发出。

中间推理步骤。 规划 trace、草稿本内容和自我批判环节按步骤发出。当轨迹出错时它们确实有价值,而当轨迹正确时几乎毫无价值。

重试放大。 重试风暴是成本信息比最差的情况:同一个逻辑操作被追踪多次,每次尝试都增加 span、事件和错误属性。span 数量上升,而边际信息趋近于零,因为有趣的事实是发生了重试循环,而不是第十四次尝试的内容。

还有一层元数据——token 计数、模型标识符、调用延迟、缓存命中标志——每条记录很便宜,聚合起来很有用。但在每个 span 上全保真采集,它本身就会成为一笔可观的存储开销。

与决策点绑定的采样策略

有用的抽象不是服务,也不是 span 类型。而是决策。每个 Agent 步骤要么读取状态,要么变更状态,要么决定下一步做什么。采样应遵循这一分类。

  • 对变更状态的工具调用保留完整 trace。 写入、删除、支付、外发消息、文件变更。这些调用是事故复盘需要精确参数和精确结果的地方,也是审计轨迹在调试之外仍有价值的地方。
  • 对读取进行激进采样。 检索、查找和只读 API 调用可以以低速率采样,在 trace 根节点做头部采样,或基于错误状态做尾部采样。丢失的信息很少,因为读取是可复现的。
  • 在轨迹层面保留结构化摘要。 对每条完成的轨迹,存储一条紧凑记录:计划、工具名称的有序列表、结果、token 总量、延迟分解。这保留了所发生事情的形态,而不含载荷。
  • 仅在失败时保留原始载荷。 当轨迹以错误、guardrail 触发或用户可见的失败结束时,将完整 trace 提升到持久存储。这是一条尾部规则,也是策略中杠杆率最高的单项设置。
  • 按决策类别而非按服务设置保留期。 变更调用可能需要长窗口;读取 span 可能只需数小时。将保留期表达为决策类别的属性,可使策略保持可读,并在 Agent 行为变化时可供审查。

一个具体机制:在发出时为每个 span 标注决策类别属性——read、mutate、decide——由工具包装器而非调用方设置。收集器随后根据该属性进行路由。变更 span 进入长窗口的全保真存储;读取 span 进入短窗口的采样流;决策 span 保留属性但丢弃载荷。失败提升由收集器的尾部处理器处理,它短暂缓冲一条 trace,并在根 span 携带错误状态时转发整个 trace。Agent 代码不变;策略存在于包装器和收集器配置中,两者都与 Agent 一同版本化。

诚实地陈述权衡

采样减少了事故复盘可用的证据。这是代价,而且是真实的。被采样掉的读取无法事后重建,而最终真正重要的失败可能并非尾部规则所调优的那个失败。

缓解方法是按决策风险采样,而非均匀采样。均匀采样同等程度地削弱每一次调查;风险加权采样将幸存的证据集中在调查最可能需要的地方。重要的 trace 以全保真存活,不重要的由摘要代表,聚合元数据层保持足够完整以进行容量和成本分析。

这必须在 Agent 上线前决定。将采样策略事后加装到运行中的 Agent 上意味着丢失基线:旧的全程保真期与新的采样期之间没有干净的对比,变更后的第一次事故所依据的证据集与变更前的最后一次事故不同。与 Agent 一同设计策略——就像设计工具 schema 和 guardrail 那样——从第一天起就提供稳定的基线,以及一种可以有意识地调优而非在发票上才发现的保留姿态。

遥测成本是 Agent 设计的一个属性。请把它当作一个属性来对待。

电子电路板特写,显示芯片和精细的走线图案

分享XLinkedIn永久链接5 分钟阅读

相关阅读

这能回答的问题

Why do agent workloads cost more to observe than ordinary services?

Each user request fans out into planning, tool calls, validation and retries, and each of those stages emits its own spans, events and payloads. Volume scales with steps rather than with requests, and prompt and completion payloads scale with token count rather than request count.

What is decision-class sampling?

It is a policy that classifies every span as a read, a mutation or a decision, annotates it at emission time, and routes it accordingly: full fidelity and long retention for mutations, aggressive sampling for reads, attributes without payloads for decisions.

Why must the policy be set before the agent ships?

Retrofitting sampling destroys the baseline. Traces collected before the change are not comparable with those collected after, so the first post-change incident is diagnosed against a different evidence set than earlier ones.

How are raw payloads kept without storing everything?

A tail-based rule buffers each trace briefly and promotes the full payload to durable storage only when the trajectory fails, trips a guardrail or ends in an error. Completed trajectories keep a compact structured summary instead.