/ ai资讯

为什么说多智能体系统本质上就是分布式系统

发布时间:2026-07-29 17:46:10

本文转自:DeepHub IMBA


规划智能体(Planning Agent)把任务拆成若干步骤,编码智能体写出实现代码,测试智能体检查结果,文档智能体撰写最终说明。四个智能体,一套流畅的工作流,中间没有人工交接,演示看起来很完美。

但是投入生产三周后,这套系统没有崩溃,它只是停止了运转。

规划智能体在等代码,编码智能体在等测试,测试智能体在等更新后的文档,文档智能体在等编码智能体还没写完的代码。没有堆栈跟踪(Stack Trace),没有告警,没有明显的故障——只有四个智能体礼貌地、永远地互相等待着。

这不是一次 AI 故障而是一次死锁(Deadlock):分布式计算中最古老、记录最详尽的故障之一。其实生产环境中智能体系统出现的大多数故障,根本不是 AI 问题而是分布式系统问题。


这个重新定义框架改变了一切

把两个以上智能体放进一个循环里——一个的输出成为另一个的输入——严格从基础设施意义上讲,未必称得上构建了一套分布式系统,因为很多时候整套系统跑在同一个进程里。但故障模式已经完全是分布式系统那一套:部分故障、协调错误、过期状态、重试、跨边界的权责不清。智能体的行为像节点,它们之间传递的消息像服务调用,哪怕这些调用发生在同一个运行时内部;共享的上下文像共享状态。如果这样看的话,那些旧经验立刻就回来了:重试、超时、幂等性(Idempotency)、过期上下文、部分故障、所有权归属。

所以用 AI 智能体构建的东西,功能上其实是在用智能体取代微服务(Microservices)来构建分布式系统,这样的话随之而来的是智能体间通信、跨边界的状态管理,以及编排(Orchestration)逻辑。单个智能体的智能水平反而是容易解决的部分,让一打智能体在不互相破坏彼此状态的前提下就世界的现状达成一致才是难的部分——难度和模型质量没什么关系。

根据 LangChain《2026 智能体工程现状报告》(2026 State of Agent Engineering report),如今 57% 的组织已经在生产环境中部署了智能体,高于一年前的 51%;但同一份调查把"质量"列为部署智能体的头号障碍,而非成本或模型能力,三分之一的受访者提到了这一点。问题的重心也就从"团队能不能构建智能体",转移到了"能不能在规模化之后可靠地运行它们"。对许多团队来说,模型的可获得性已经不是主要瓶颈,运行这套工作流才是——这是一个协调问题,不是智能问题。


故障模式都是常见的问题

透过分布式系统的视角去看生产环境里智能体的故障,它们就不再新鲜了。

死锁最典型,本文开头的场景就是一个有据可查的例子,并非凭空假设:当依赖关系图(Dependency Graph)中存在环路时,智能体的工作流编排系统就会遇到死锁——代码生成智能体在等测试智能体,测试智能体需要文档智能体提供的文档,文档智能体又需要生成好的代码,三者无限期互相阻塞。任何画过等待图(Wait-for Graph)的数据库工程师一眼就能认出这个模式。自 20 世纪 70 年代起,人们就知道如何检测和打破这类环路,许多简单的智能体工作流至今仍没有把它当作设计层面的问题来对待。

状态污染源于错误传播。在单智能体工作流里,故障的影响范围通常更容易判断;而在多智能体系统中,一个智能体的输出会变成另一个智能体的上下文,错误会在向下游传递的过程中不断传播、累积——这相当于把脏数据喂给一个信任其输入的下游服务。运行这些系统的团队反映,上下文不一致,而非编排模式的选择,才是多智能体系统在生产环境中失败的主要原因。分布式系统工程师会把这称为一致性问题,会追问真相来源(Source of Truth)是什么、每个边界处有没有做校验,以及两个智能体对同一状态持有矛盾看法时会发生什么。

最像分布式系统的是智能体集群失败的方式本身。智能体系统的失败往往悄无声息,很少崩溃但是却缓慢地偏离正轨:一个智能体略微跑偏的输出推动了下一个,然后是再下一个。这正是缺乏端到端追踪(End-to-end Tracing)的分布式系统会经历的痛苦——每个组件都汇报"健康",系统整体却在产出垃圾。故障存在于交互之中,不在任何单一节点里,这也是只盯着某一个智能体的日志毫无用处的原因。

这些都不是智能层面的失败。换一个更聪明的模型,死锁照样死锁,被污染的上下文照样污染,悄然的偏移照样偏移,所以bug 在协调层。

最危险的智能体系统很少是那种故障时闹得满城风雨的系统。真正危险的,是每个智能体都汇报成功,工作流却在悄悄跑偏。


分布式系统早已教给我们的东西

多智能体系统如果就是分布式系统,构建可靠分布式系统的整套工程方法论就可以直接搬过来用——不用从零开始,几十年积累下来的实践经验已经摆在那里,只是许多智能体项目至今没有一以贯之地用上。

几个显而易见可以直接迁移的经验。

超时与有边界的等待。没有节点应该无限等待另一个节点。如果每个智能体对某个依赖项的等待都设有截止时间,超时后就明确、可预期地失败,本文开头的死锁就不会发生。这是构建任何分布式系统时最先学到的一课,却明显缺席于简单的智能体编排里。

幂等性。如果一个智能体重试某个步骤——在概率性系统里,它一定会重试——这个步骤就需要能安全地执行不止一次。构建支付系统和消息消费者时学到的这条经验,在智能体于超时后重新调用某个工具时同样适用。

依赖图中的环路检测。如果编排器(Orchestrator)拒绝构建含有循环依赖的工作流,或者在运行时检测并打破环路,死锁在设计阶段就可以预防。这是调度和构建系统(Build Systems)领域早已解决的问题。

每个边界都要校验。下游服务不会盲目信任上游输入,会做校验。消费另一个智能体输出的智能体也该如此,而不是把一句听起来自信的幻觉(Hallucination)当作事实真相直接传下去。比如说编码智能体不应该只返回"测试通过",而应该返回一个下一个智能体真正能核实的结构化结果:

{
"agent": "coding-agent",
"task_id": "TASK-1842",
"status": "completed",
"files_changed": ["payment_handler.go", "payment_handler_test.go"],
"test_command": "go test ./...",
"exit_code": 0,
"validated_by": "testing-agent",
"trace_id": "req_7fa23"
}

这很枯燥,但却是关键所在。下一个智能体应该收到结构化的证据——退出码(Exit Code)、追踪 ID(Trace ID)、实际改动过的文件——而不是一句自信的话。评审智能体应该校验真正的代码差异(Diff),不是它的摘要。

审计轨迹和紧急停止开关。真正把这件事做对的团队不会只挑选更好的模型,还会围绕智能体工作流建立运行手册(Runbook)、支出限额、审计轨迹、回滚路径和人工干预节点。这不是 AI 方面的建议,是运维方面的建议,直接照搬自如何运行任何一套关键的分布式系统。

这也是 LangGraph 频频出现在生产级智能体讨论中的原因:它基于图(Graph)的模型给了工程师分布式系统从业者关心的东西——显式状态、明确定义的状态转移、可中断点和恢复路径。它能胜出不是因为让智能体变得更聪明,是因为把工作流当作一个可能失败、也需要恢复能力的系统来对待,这才是正确的思维模型。


上线前的清单

上线一个多智能体工作流之前,可以过一遍五个问题:

有没有哪个智能体可能永远等待?

同一个步骤能不能重复执行两次而不造成损害?

依赖关系图中会不会存在环路?

每个智能体在信任另一个智能体的输出之前,是否会先做校验?

能不能追踪某一个用户请求,跨越每一个智能体、每一次工具调用、每一次重试和每一次状态变化?

如果对其中任何一个问题的答案不明确,这套系统就还只是个演示。

针对每个问题的修复方案都刻意设计得不炫酷。编排器不该无限等待,该超时、安全重试,或者明确失败。可能执行两次的工具步骤需要具备幂等性,就像支付端点那样。评审智能体不该信任一句自信的摘要,该检查实际的产出物(Artifact)。应该能端到端追踪单个请求,因为故障几乎总是存在于交互之中,不在任何一个智能体本身。这不是令人兴奋的 AI 工作,是让生产系统保持存活的枯燥工作。

还有一条设计倾向值得说清楚,因为它往往会以正确的方式引发争论:一个边界清晰、配有称手工具的单个智能体,常常比五个含糊不清、彼此传递半信半疑上下文的智能体更安全。智能体数量更多不等于能力更强,意味着更多边界,而每一个边界都是系统可能出故障的地方。


为什么聪明的团队还是会错过这一点

如果这些经验教训真的这么容易迁移,为什么经验丰富的团队还是会一再重蹈同样破损的覆辙?

"AI"这个词造成了不小的破坏。这样的情形并不少见:项目一旦被贴上"AI"标签,讨论焦点就会转向提示词(Prompt)、模型和评估(Evals),而本该对任何联网系统本能提出的那些问题——这次调用超时会怎样、这块状态归谁所有、这个依赖关系图里有没有环路——往往要等到生产环境已经出事才被想起来。这个标签改变了哪些人觉得自己有资格发言,系统工程背景的人则默默假定这不是自己的问题。那些问题源自分布式系统的经验,而当一套智能体系统被设计出来时,这种经验常常并不在场。

这个框架掩盖了问题的本质。多智能体的架构图看起来像一群乐于助人的助手组成的组织架构图;但在生产环境中,它的行为更像一组有状态的服务,在不可靠的边界之间传递不确定的数据,输出不具确定性,也没有事务性保证——如果在设计评审会上按这个方式描述它,会拉响资深基础设施工程师身上的每一道警报。

所以未来几年真正能构建出可靠智能体系统的工程师,不一定是对 Transformer 内部机制了解最深的人;更可能是那些能在一群智能体中看出一套分布式系统的人——凭着用血泪换来的经验,早已清楚这些系统会如何失败。


总结

下一次当一套多智能体系统卡住、偏移,或者在生产环境中悄悄产出胡言乱语时,别急着换一个更好的模型,先问一句分布式系统工程师会最先问的问题:协调是在哪里出问题的?是不是存在一个没有边界的等待?依赖图里是不是有环路?是不是有个边界信任了不该信任的输入?是不是两个节点对共享状态持有分歧,却没有解决机制?

智能体从来都不是难的那一部分,它们从来都不是。难的一直是同一个问题:让相互独立的组件跨越边界彼此依赖时会出现的问题——解决它靠的不是提示词工程(Prompt Engineering),是系统工程,这方面的经验早已积累了很长时间。

把智能体集群当作它本来就是的那种分布式系统来对待,它大部分的"AI 问题"就会变成早就知道该怎么解决的问题。

作者:Vinamra Yadav

免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

如有疑问请发送邮件至:bangqikeconnect@gmail.com