串行工具调用瀑布:Agent循环中隐藏的延迟税
如果你曾剖析过一个莫名其妙跑得很慢的AI Agent,大概率会发现一个瀑布。Agent调用工具A,等待,再调用工具B,等待,再调用工具C——即便B和C根本不依赖A的结果。你为1倍的工作量付出了3倍的延迟。
这个模式并非边缘情况,而是几乎所有Agent框架的默认行为。模型在单次响应中返回多个工具调用,执行循环则逐一按顺序运行它们。修复并不复杂,但前提是要有一种可靠的方法来识别哪些调用真正相互独立。
如果你曾剖析过一个莫名其妙跑得很慢的AI Agent,大概率会发现一个瀑布。Agent调用工具A,等待,再调用工具B,等待,再调用工具C——即便B和C根本不依赖A的结果。你为1倍的工作量付出了3倍的延迟。
这个模式并非边缘情况,而是几乎所有Agent框架的默认行为。模型在单次响应中返回多个工具调用,执行循环则逐一按顺序运行它们。修复并不复杂,但前提是要有一种可靠的方法来识别哪些调用真正相互独立。
你的 AI 功能顺利上线了。延迟很低,错误率微乎其微,HTTP 响应全是 200。六个月后,一名用户抱怨聊天机器人言之凿凿地推荐了一款你在三个月前就停产的产品。工程师深入调查后发现,系统在回答用户问题时,有三分之一的情况都是错误的——这不是因为代码部署出了问题,也不是因为依赖项升级,而是因为时间的流逝。你将一张快照交付到了奔流的河水中。
这并非假设。行业数据表明,91% 的生产环境 LLM 在部署后的 90 天内会出现可衡量的行为漂移。一个最初能在无需人工干预的情况下处理 70% 查询的客户支持机器人,到第三个月时,这一比例可能会悄然下降到 50% 以下——而此时,基础设施仪表盘全程显示的都是代表正常的绿色。“六个月悬崖”是真实存在的,它是无声的,而且大多数团队并没有能够预见其到来的监测手段。
一个团队发布了一个文档提取流水线。它使用了 JSON 模式。QA 通过了。监控显示解析错误接近于零。六周后,一个隐蔽的失败浮出水面:语料库中的每一份风险评估都被标记为 “低” —— JSON 格式有效,字段名称正确,但答案是错的。该流水线已经在以符合架构(Schema)的格式自信地撒谎了好几周。
这是将 JSON 模式视为可靠性保证的核心问题。结构一致性(Structural conformance)和语义正确性(Semantic correctness)是系统的不同属性,混淆两者是生产级 AI 工程中最代价高昂的错误之一。