跳转到主要内容

跨团队 Agent SLA 无法简单叠加:你的组织遗漏预算的 99% 数学陷阱

阅读需 2 分钟Tian PanTian Pan

A 团队的智能体宣传其成功率为 99%。B 团队的智能体也宣传 99%。调用这两者的全新联合工作流在状况良好时成功率为 98%,而在状况不佳时仅为 96% —— 负责该联合工作流的团队现在成了两个他们不拥有、无法在本地复现、且未编写评估集的系统的事实上的 SRE。每个上游团队都达到了其 SLO(服务水平目标)。但复合产品却未达标。边界正确一侧的报警器却始终保持沉默。

这是独立失败率的数学问题,自从组织开始允许智能体相互调用以来,它就一直潜伏在显而易见的地方。五个可靠性为 99% 的组件会给你带来 95% 的端到端可靠性。十个组件则会降至 90%。一个每步成功率为 95% 的 20 步流程,其最终成功率仅为 36% —— 超过一半的操作在完成前就会失败。当一个工作流链接了 50 个组件时 —— 一旦企业级智能体开始调用子智能体,再由子智能体调用工具智能体,这种情况并不罕见 —— 一个每个环节都“99% 可靠”的系统,在大约十次请求中就会失败四次。

研究人员在分析了超过 150 个任务中的五个流行多智能体框架后,发现失败率在 41% 到 87% 之间,其中排名前三的失败原因是:步骤重复、推理与行动不匹配,以及对终止条件的忽视 —— 观察发现,与单智能体基准相比,非结构化的多智能体网络会将错误放大高达 17 倍。这其中的数学逻辑并不深奥。问题在于,组织的 SLO 表、仪表板、轮值安排和 PRD 仍然是以单个智能体为单位进行定义的。

单跳谬误

当微服务网格(Microservice Meshes)还是新鲜事物时,每个团队都以同样的方式吸取了同样的教训:边缘侧 200 ms 的 p95 延迟目标意味着每个下游跳转(Hop)都必须分摊该预算的一部分,而拥有面向用户端点的团队必须负责具体的切分工作。一个实际的拆解可能是:为 TLS 和边缘分配 20 ms,为应用逻辑分配 70 ms,为缓存和数据库分配 80 ms,并为序列化和 GC 留出 30 ms 的余量。SRE 社区花了十年时间构建仪表板、链路追踪(Tracing)和告警,以展示每次跳转对最终用户指标的贡献 —— 这些方法包括数学推导出的下游分配方案、显示哪个跳转突然变慢的堆叠条形图,以及指明缓慢 Span 名称的分布式追踪。

智能体网格继承了相同的形态,却没有任何积累了十年的工具支撑。智能体规格表上的 99% 这一数字几乎总是在独立运行的情况下测得的:一个基准测试运行、一个精心挑选的评估集,或者一个友好的分布,这些与上游调用者实际发送的提示词(Prompts)毫无共同之处。当联合工作流停止工作时,上游团队会向下游团队提交工单。下游团队运行其独立评估,发现 99% 的数字依然是 99%,然后关闭工单。而客户看到的依然是 Bug。

解决方法不是“要求下游智能体提供更高的 SLO”。解决方法与微服务学到的一样:为每一跳分配一个预算,以联合工作流实际关心的指标为单位,配以显示每跳贡献的仪表板,以及在单跳出问题前就针对复合系统触发的告警。

逐跳可靠性预算

直接借用微服务的操作手册。定义联合工作流的可靠性目标 —— 假设为 95% 的端到端成功率 —— 并在智能体链条中进行分解。一个需要 95% 成功率的四跳链条既可以被均匀切分(每一跳承担 1.27% 的失败预算,即每跳达到约 98.7%),也可以根据团队拥有更多余量的环节进行加权。一个组织只能做到 96% 的环节会成为已知约束,从而收紧其他所有环节的预算。而一个拥有 99.5% 余量的环节则可以为下游更艰难的环节释放预算。

必须落地的纪律不是电子表格,而是执行。预算只有体现在以下三个地方才是真实的:

  • 复合 SLO 拥有自己的仪表板和告警,独立于任何单个智能体的 SLO。
  • 每跳预算不仅出现在下游所有者的仪表板上,也出现在上游调用者的仪表板上。
  • 复合系统的错误预算消耗率(Burn-rate)告警触发速度要足够快,以便在每跳所有者察觉到自己的指标正常之前,就启动事件处理程序。

如果没有这三点,逐跳预算就只是一篇没人会打开的 Notion 页面。有了它们,联合工作流的所有者就能拥有与 SRE 团队在结账端点变慢时相同的态势感知能力。

命名调用者可以绕过的失败模式

微服务拥有 HTTP 状态码。503 意味着重试,422 意味着停止并显示校验错误,401 意味着刷新凭据。调用者可以针对这些状态编写代码,因为契约是确定的。

平均而言,智能体调用完全不具备这些。下游智能体可能会拒绝请求(通过文字叙述)、抛出工具执行错误(带有没人解析的堆栈追踪)、超时(在垂直上游自身的截止时间触发后无声无息地发生),或者返回格式错误的结构化输出,导致两个堆栈帧之后的上游解析器崩溃。上游调用者没有清晰的方法来区分“暂时的,重试”、“你的输入有误,不要重试”还是“我根据政策拒绝,你永远不会成功”。因此,上游只能重试所有操作,这既增加了费用,又使失败模式恶化 —— 这是生产环境多智能体事后分析中反复出现的发现。

智能体之间的契约层必须明确命名这些失败模式。具体而言:

  • 一个类型化的错误信封 —— refusaltool_errortimeoutschema_violationpolicy_block —— 由下游智能体以结构化的方式发出,而不是混入自由格式的字符串中。
会员专享

余下内容仅对会员开放。

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

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

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

参考资料

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

阅读需 9 分钟

SLA 的幻象:为什么 99.9% 的可用性对 AI 功能毫无意义

传统的可用性 SLA 仅保证端点有响应,而不保证响应质量。本文将探讨为什么 AI 驱动的功能需要一种不同的可靠性契约。

insider
ai-engineering
阅读需 11 分钟

无真值情况下的智能体 SLO:为无法实时评分的输出建立错误预算

传统的 SRE 实践为你提供了与用户满意度直接挂钩的可用性和延迟目标。但智能体(Agentic)特性打破了这种映射。本文将介绍当“成功”在请求发出数小时后才出现时,该如何编写错误预算——以及为什么照搬延迟 SLO 手册的团队虽然能完成每个季度的目标,却眼睁睁看着用户流失。

insider
ai-engineering
阅读需 10 分钟

多智能体系统中的温度治理:为什么方差是一类预算

以相同的温度运行你的所有智能体组件,就像给它们设置相同的超时时间一样错误。本指南将介绍如何设计基于角色的采样策略,使输出方差与每个流水线阶段的实际需求相匹配。

insider
ai-engineering
阅读需 11 分钟

重试预算如何从你的仪表板中隐藏了供应商的真实错误率

一个在悄无声息间实现 99.9% 成功率 SLO 的同时导致账单翻了 3 倍的重试循环 —— 为什么重试后的可用性是向领导层报告的错误指标,你应该衡量什么,以及隐藏在可靠性层中的成本-质量调节开关。

insider
ai-engineering
阅读需 9 分钟

当两个 Agent 共享一个工具:多 Agent 系统中的并发 Bug

启动第二个 Agent 会让你瞬间变成一名分布式系统工程师。竞态条件、更新丢失和脏读会以静默损坏的形式回归 —— 以及如何设计工具层来阻止它们。

multi-agent
concurrency