← 所有文章

从 boids 到智能体:AI 系统的群集规则

1986 年,Craig Reynolds 提出了一个听起来微不足道的问题:鸟群是怎么聚成一团飞的?这不是哲学问题,而是工程问题。他想在计算机图形中渲染出可信的鸟群,又不必为每只鸟单独编排飞行轨迹。

Craig Reynolds 1986 年的 boids 算法证明:三条简单的局部规则(分离、对齐、聚合)无需中心化控制即可产生连贯的全局行为,而同样的动力学也支配着多智能体 AI 系统。遵循局部指令的智能体,规则选得好时会涌现出协同,规则选得不好时则会涌现出混乱。为了修补边缘情况而不断加规则,只会让智能体更糟,而不是更好。

他的答案只用了三条规则。分离(separation):转向以避开拥挤的邻居。对齐(alignment):转向邻居的平均航向。聚合(cohesion):转向邻居的平均位置。没有领队,没有飞行计划,没有中央控制器。仅仅是每只鸟各自在局部应用这三条规则,就产生了与真实鸟群难以分辨的全局协同。1

四十年后,我在运行一套多智能体 AI 系统,它围绕十个专职智能体角色设计,负责调研、辩论并对决策投票。有天晚上,一条提示词动态派生出 23 个智能体——每个又继续派生,形成失控的级联——而它们最终就一个错误的问题达成了完美共识。那一刻我意识到,自己正在目睹 Reynolds 描述过的同一套动力学:简单规则涌现出协同,同一机制也涌现出失败。

TL;DR

Reynolds 的 boids 算法表明,三条简单的局部规则无需中心化控制就能产生连贯的全局行为。遵循局部指令的智能体(评估这段代码、检查那处安全面、审阅这套架构),规则得当时涌现协同,规则失当时涌现混乱。为修补边缘情况而追加规则,只会让智能体更差,而非更好。我那次23 个智能体失控的事故证明了这一点:一个约束宽度、而不只是约束深度的派生预算,正是 Reynolds 分离规则在智能体世界中的对应物。


三条规则,万千鸟群

切换上方的规则开关,看看会发生什么。三条规则全部启用时,boids 自然成群。关掉分离,它们会坍缩成一团。关掉对齐,它们会散成随机运动。关掉聚合,它们虽仍保持局部航向,却会渐渐飘散。每条规则都不可或缺,但单独任何一条都不够。

Reynolds 在 SIGGRAPH 1987 上以《Flocks, Herds, and Schools: A Distributed Behavioral Model》为题发表了这项工作。1 这篇论文改变了计算机图形学。boids 之前,动画中的鸟群要靠手工编排路径;boids 之后,鸟群从规则中涌现。十余年后的 1998 年,Reynolds 凭借这项工作获得了美国电影艺术与科学学院颁发的科学与工程奖。2

更深层的贡献并不在于那几条具体规则,而在于它证明了:全局协同并不需要全局知识。每只 boid 只知道自己身边的邻居。没有哪只 boid 掌握整个鸟群的地图,也没有哪只知道鸟群要飞向何方——鸟群本来就没有目的地。看上去协调一致的运动,实则是局部决策堆叠出的全局图案。


从像素到进程

从 boids 到 AI 智能体的映射并非比喻。NeurIPS 2025 的一篇研讨会论文《Revisiting Boids for Emergent Intelligence via Multi-Agent Collaboration》就明确地把 boids 原理套用到多智能体系统上。3 该论文把 Reynolds 的规则当作自然语言指引,交给协作式工具构建环境中的智能体:对齐与分离取自邻居的工具元数据,聚合则注入上一轮的全局摘要。

我的映射更简单,而且来自先动手搭系统、后读到论文的经历:

boids 规则 智能体中的对应物 它防止了什么
分离 派生预算:限制每个父智能体名下的活跃子智能体数量 大批智能体堆在同一个子问题上
对齐 共享评估标准:所有智能体使用同一套证据准绳 智能体朝着互不兼容的质量定义各自用力
聚合 共识协议:智能体向群体结论收敛 智能体飘向不相干的枝节

这个类比并不完美。boids 的规则是连续的(朝着平均航向转向),智能体的规则是离散的(至多派生 12 个子智能体)。boids 活动在空间坐标里,智能体活动在问题空间里。但结构性的洞见成立:由每个个体独立应用的局部规则,能产生连贯的群体行为。而且,失效模式也如出一辙。


23 个智能体就错误问题达成一致的那个夜晚

2026 年 2 月。我让智能体去”研究如何改进钩子派发系统”。它把自己的置信度评为 0.58,于是触发了审议系统。三个调研智能体被派生出来。每一个都发现了子问题,又各自派生出自己的调研智能体。那些智能体继续派生。

七分钟后:23 个活跃的智能体进程。API 额度烧掉 4.80 美元。token 消耗以每分钟 0.70 美元的速度攀升。

递归防护只跟踪深度(父派生子,子派生孙),却不跟踪宽度(父派生 12 个子,每个子再派生 12 个)。深度上限 3 从未被触发,因为智能体是横向铺开的。我手动杀掉了这些进程。

每个智能体都同意钩子派发系统需要改进。每个智能体都提出了合理的改动。没有一个智能体质疑过:这次调研本身的范围是否正确。

这个结果展示了:当你只有聚合与对齐、却没有分离时会发生什么。智能体们收敛到同一个结论(聚合),也在同一套评估标准上取齐(对齐),但没有任何机制阻止它们一起挤到同一个子问题上。用 Reynolds 的话说,23 只 boid 占据了空间中的同一个点——而这正是他的分离规则明令要防止的行为。


把派生预算当作分离规则

修复只花了 20 分钟:一个派生预算,跟踪每个父智能体名下活跃子智能体的总数,上限为 12。4 这是宽度约束,而不只是深度约束。

它的实现是一个计数器,而不是一条规则:

# Simplified spawn budget (actual implementation uses hooks)
active_children = count_active_agents(parent_id=self.id)
if active_children >= MAX_CHILDREN:  # MAX_CHILDREN = 12
    return "Budget exhausted. Synthesize existing findings instead."
# else: allow spawn

钩子以确定性的方式强制执行这一点。面对一个计数器,智能体没法像面对”尽量别派生太多智能体”这类提示词指令那样自我开脱。计数器要么放行,要么拦截。没有争辩,没有解释的余地。

用 boids 的语言说,派生预算就是分离规则:别挤你的邻居。用智能体的语言说:别让超过 N 个智能体扎在同一个子问题上,因为第 N+1 个只增加成本,不增加视角。那次 23 个智能体的事故让我明白,三条规则里分离最重要。缺了它,对齐与聚合就会变得病态:一群智能体兴致勃勃地收敛到同一个错误答案上。

正因如此,Reynolds 算法的常见实现会把分离力的权重设得比对齐或聚合高 1.5 到 2 倍——这一惯例在 Reynolds 自己的后续论文《Steering Behaviors for Autonomous Characters》(GDC 1999)中有据可循,他在文中讨论了基于优先级的力合成,并指出避碰(即分离)通常享有最高优先级。8 在我的系统里,派生预算由钩子强制执行(确定性的,智能体的自我开脱对它无效),而对齐与聚合则由提示词和上下文塑造(更柔软,可弯折)。最硬的约束,配最硬的执行手段。


为什么规则越多,智能体越差

回到上面的 boids 模拟,试着切换那几个开关。现在设想再加第四条规则:”避开画布中心”。第五条:”偏好上半部分”。第六条:”每 100 帧掉头一次”。

单看每一条都合情合理。合在一起,它们会毁掉整个鸟群。boids 在互相竞争的力之间抖动,无法同时满足所有约束。优雅的群集坍缩成噪声,因为每条规则都会生成一个力矢量;当六个力矢量朝不同方向拉扯时,合成的运动实际上就是随机的。

在智能体编排中我看到了同样的模式。我那套审议系统的早期版本规则繁复:最低调研深度、强制引用数量、必须生成反论点、强制唱反调环节。每一条都改善了某个具体的失败案例。合在一起,它们造出的智能体把更多 token 花在满足规则上,而不是解决问题上。举个具体例子:”必须生成反论点”的规则要求每个智能体反驳自己的结论;”最低引用数”的规则要求每条主张配三个来源。于是当智能体真的给出一个像样的反论点时,引用规则就逼它去为这个反面立场凑齐三个来源——有时候,错误答案反倒获得了比正确答案更硬的证据。两条规则相互作用的结果,是奖励”引用充分的抬杠”,而不是正确的分析。

我此前记录过的复利式工程理念解释了这在系统层面为何会发生:每条新规则都会与所有既有规则发生交互,制造出组合级的复杂度。十条规则带来的不是十项约束,而是最多 45 组两两交互。系统行为变得更难预测、更难调试,也更容易涌现出失败。

Reynolds 的原始论文对此有隐含的自觉。那篇论文只给出三条规则。他也探索过其他行为(避障、目标寻的),但始终把核心的群集模型保持在最小规模。再加一条核心规则,就意味着要重新平衡全部四条的权重——而这个问题的难度会随着每次新增呈组合式增长。

放到智能体上的教训是:从能产生目标行为的最小规则集开始。只有当你观察到某个现有规则都覆盖不到的具体失败时,才追加规则。而每加一条,都要检查它是否干扰了其他规则。


去中心化本身就是架构

没有中央控制器,并不是 boids 的局限,而正是它的架构。鸟群之所以能协同,恰恰因为没有任何一只鸟对其他鸟拥有权威。一旦某只鸟成了领队,系统就会变脆——依赖它的判断,也随它的失误而崩溃。这个模式,与“无”的结构性在其他领域造就的分布式韧性原理同出一辙。5

同样的模式在各类多智能体 AI 系统中反复出现。微软的 AutoGen(v0.4+,2025 年)通过对话协议而非中心化编排来协调智能体——每个智能体根据局部上下文自行决定何时发言,框架明确避免指定”主导”智能体。6 CrewAI(v0.28+,2025 年)用”crew”抽象定义智能体角色与交接规则,但不赋予任何单个智能体凌驾他者的否决权。7 在我的审议系统里,没有哪个智能体握有否决权。每个都独立评估,再由共识协议汇总各自的结论。若某个智能体产出垃圾,其余的会用票数压过它。中心化控制只会把去中心化协同刚刚消除掉的单点故障重新请回来。


三条规则奏效的时候:一次安静的成功

23 个智能体那次事故之所以令人难忘,是因为它失败得足够戏剧化。成功则安静得多,也频繁得多。

加上派生预算一周后,我让系统”评估博客的 A/B 测试基础设施该采用服务端还是客户端的变体分配”。审议系统派生了三个调研智能体。1 号智能体调查服务端方案(基于 cookie、基于会话)。2 号智能体调查客户端方案(localStorage、URL 参数)。3 号智能体评估混合模式。每个智能体独立工作,且都朝着同一个评估问题收敛(聚合)。每个都使用同一套证据标准(对齐)。派生预算则确保没有任何一个智能体为这项任务再派生自己的子智能体(分离:不拥挤)。

三个智能体交回了各自的结论。1 号出于 SEO 一致性偏向服务端分配。2 号出于实现简单偏向客户端。3 号则找出了一种与现有代码库模式相契合的混合方案。共识协议把这些结论综合成一条:博客部分用服务端分配(那里 SEO 要紧),交互组件部分允许客户端覆盖(那里本来就跑着 JavaScript)。

整场审议耗时四分钟,成本 1.40 美元。没有智能体派生子智能体。没有智能体过早地附和他人。三份建议彼此独立,又真正互补。这套三规则架构产生的,正是 Reynolds 描述过的行为:局部决策,汇成协调一致的全局输出。


其他领域里的涌现模式

“简单规则,涌现行为”这一模式并非 boids 或智能体所独有。只要局部决策会汇聚成全局结构,它就会出现:

汉明码展示了一种与之相关的涌现。把校验位精心安放在 2 的幂次位置上,就构成了这样一个系统:错误的位置会从所有”1”位下标的异或结果中涌现出来。没有任何一位知道错误在哪里,错误的位置是从结构中浮现的。孤立地看,单个校验位几乎什么都告诉不了你;而位置得当的多个校验位,能告诉你全部。

康威的生命游戏在一张网格上应用四条规则,就长出了滑翔机、振荡子,乃至图灵完备的计算能力。这些规则比 boids 还简单(一个细胞有 2 到 3 个邻居就存活,否则死亡),涌现出的复杂度却没有上限。

每一例的模式都相同:局部规则,无中央协调者,全局行为自行涌现。每一例的失效模式也相同:规则加得太多,系统就会从优雅的涌现坍缩为混乱的相互干扰。


要点回顾

给设计多智能体系统的工程师:

  • 三条规则能产生群集,四条未必。 Reynolds 的洞见在于:三条选得好的规则足以催生涌现式协同。加上第四条就会引入干扰,反而可能毁掉前三条产生的行为。从能产生目标行为的最小规则集开始。

  • 分离是最重要的一条。 缺了它,对齐与聚合就会变得病态,智能体会一起收敛到同一个错误答案上。派生预算(宽度约束)是我对自己这套多智能体系统做过的、影响最大的单项改动。

给构建分布式系统的架构师:

  • 没有领队,本身就是架构。 中心化控制会制造单点故障;通过局部规则实现的去中心化协同则更有韧性。设计智能体系统时,除非有明确理由,否则不要设”主导智能体”。

  • 规则越多,交互越多。 N 条规则最多会产生 N(N-1)/2 组两两交互,每加一条,行为就更难预测。只有当你观察到某个现有规则都覆盖不到的具体失败时,才追加规则。

练习:为你自己的系统画一张图。 把你现有的(或计划构建的)多智能体系统画成图。对每个智能体,标出它遵循的是 Reynolds 三条规则中的哪几条。缺分离,就加派生预算或并发上限;缺对齐,就定义共享的评估标准;缺聚合,就补一个综合步骤。这张图会告诉你,你的系统最容易栽在哪种失效模式上。


常见问题

什么是 boids?它们对 AI 智能体设计为何重要?

boids 是遵循三条局部规则的仿真个体(这个词源自 “bird-oid objects”,即”类鸟物”):分离(避开拥挤的邻居)、对齐(转向邻居的平均航向)、聚合(转向邻居的平均位置)。Craig Reynolds 在 SIGGRAPH 1987 上提出了它们。它们之所以重要,是因为它们证明了:复杂而协调的全局行为,可以在没有任何中央控制器的情况下从简单的局部规则中涌现——这一原理可直接应用于多智能体 AI 系统、集群机器人和分布式计算。

boids 规则如何应用到 AI 智能体编排上?

每条 boids 规则都对应一项智能体设计约束。分离对应派生预算(限制有多少智能体在同一个子问题上工作)。对齐对应共享评估标准(所有智能体使用同一套质量准绳)。聚合对应共识协议(智能体向群体结论收敛)。这种映射是结构性的,而非比喻性的:两套系统都是靠每个个体独立应用的局部规则,产生涌现式的协同。

为什么规则越多,多智能体 AI 系统反而越差?

每条新规则都会与所有既有规则交互,制造组合级的复杂度。十条规则最多产生 45 组两两交互。智能体的 token 被花在满足规则约束上,而不是解决问题上。boids 中也存在同样的动力学:加入第四条规则(比如”避开中心”)就迫使你重新平衡它与原有三条的关系;当个体试图同时满足互相竞争的力时,优雅的群集行为往往退化成抖动。

什么时候该用中心化控制,而不是涌现式协同?

当你需要严格的顺序保证(流水线的串行阶段)、需要以确定性的方式处理失败(金融交易),或者系统需要的是一个权威裁决而非共识(合并冲突的解决)时,用中心化控制。当智能体可以独立评估、冗余能提升可靠性,且没有哪个智能体必须掌握全局才能把自己的活干好时,用涌现式协同。


本文属于交互式探索系列——在这里,算法与视觉直觉相遇:从能自查错误的汉明码,到没有领队也能成群的 boids。智能体编排的具体模式,详见Ralph 系统多智能体审议。而元认知编程层为单个智能体补上了自我监控,与上文谈到的智能体间协同互为补充。



  1. Reynolds, C. W.(1987)。《Flocks, Herds, and Schools: A Distributed Behavioral Model》,SIGGRAPH ‘87: Proceedings of the 14th annual conference on Computer graphics and interactive techniques,第 25-34 页。red3d.com/cwr/boids/ 

  2. 1998 年,Reynolds 因其在行为动画方面的贡献(建立在 boids 工作之上)获得美国电影艺术与科学学院颁发的科学与工程奖。该算法自 Batman Returns(1992 年)起就被用于电影制作。oscars.org/sci-tech/ceremonies/1998。另见 Reynolds 的个人简历:red3d.com/cwr/resume.html。 

  3. 《Revisiting Boids for Emergent Intelligence via Multi-Agent Collaboration》,NeurIPS 2025 Workshop: Scaling Environment。openreview.net/pdf?id=46LJ81Yqm2。该论文把 boids 规则作为自然语言指引,交给遵循”观察—反思—构建”循环的智能体。 

  4. 派生预算的实现记录在Ralph 系统一文中。关键的架构抉择是:宽度上限用钩子(确定性)来强制,而不是用提示词(建议性)。被叮嘱”限制派生”的智能体总能给自己找到越界的理由;而一个统计活跃子智能体数量、并直接拦截派生 API 调用的钩子,则没有这种余地。 

  5. 老子《道德经》第十一章。英译本:D.C. Lau 译,Penguin Classics,1963 年。该章以车毂、居室之壁与陶器之埴为例:三样东西的用处都来自”无”,而非”有”。完整展开见“无”即结构。 

  6. Microsoft AutoGen,github.com/microsoft/autogen。AutoGen v0.4(2025 年发布)引入了 GroupChat 抽象,智能体在其中参与对话,而无需指定领队。该框架文档明确写道:”AutoGen 让一组智能体能够共同完成单个智能体独自无法完成的任务。”决定发言顺序的是对话协议,而不是某个中央控制器。 

  7. CrewAI,github.com/crewAIInc/crewAI。CrewAI v0.28+(2025 年)用基于角色的智能体和任务交接规则来定义 crew。其 process 参数支持 “sequential”(固定顺序)与 “hierarchical”(管理者委派)两种模式;但即便在层级模式下,管理者智能体也只是协调而非凌驾——它无法改动其他智能体的产出,只能请求修订。文档:docs.crewai.com。 

  8. Reynolds, C. W.(1999)。《Steering Behaviors for Autonomous Characters》,Game Developers Conference 1999 Proceedings,第 763-782 页。red3d.com/cwr/steer/。Reynolds 在文中讨论了带优先级的力合成:分离(避碰)最先处理,会在对齐与聚合生效之前消耗掉可用的转向力。这套优先级机制确保”不拥挤”始终优先。 

相关文章

汉明码:计算机如何自己发现并纠正错误

从 RAM 到二维码和深空通信,交互式理解汉明码如何检测并修复位错误。

4 分钟阅读

面向构建者的 GLSL:真正可用的着色器实验室

一个能快速建立 GLSL 直觉的实用实验室:预设、实时控制、零框架 WebGL。

3 分钟阅读

Protege模式

具有稀疏专家访问的7B模型匹配50倍大小的代理。将日常工作路由到小模型,将判断调用路由到前沿模型。

2 分钟阅读