近期看一个多智能体沙盒的结果,有个细节一直搁在心里:把里面的 Agent 换成更强的模型,整体产出没有涨,反而多出一堆互相否决、重复劳动、谁也不肯让路的空转。加了一次外部扰动之后更明显,系统没有慢慢恢复,是直接收窄到只剩一两条安全路径,探索没了。

我一开始的归因是能力不够。后来觉得这个归因站不住:如果瓶颈是能力,增强能力应该改善结果,而实验里是反向的。至少说明有一条更靠前的约束在起作用,而它不在能力这个维度上。

我怀疑那件事是关系。

先把"关系好不好"这种说法换成能上监控面板的东西。我觉得至少要三条曲线。

一、有没有一个所有节点共享、可量化的全局量,节点是朝它自主收敛,还是只在各自的局部约束里不越界。前者是推进,后者是维持。这两者在日志里长得不一样:前者的局部决策会朝同一个方向偏移,后者只会互相抵消。

二、注入扰动(节点失效、目标漂移、噪声)之后,拓扑是回到扰动前的分布,还是塌到少数几条路径上,以及探索预算有没有被吃干净。

三、协调开销随节点数怎么长。这条最好测,把 N 和总通信量、等待时间画 log-log 图看斜率就行。

第三条我算过一个很朴素的数。50 个节点全连接是 1225 条边;按 10 组、每组 5 个分,组间只走汇聚点,大概两百条。N 到 5000 时,全连接是 1250 万量级,两层分组十几万,差接近两个数量级。注意这个差距是随 N 拉开的:节点少的时候拓扑怎么摆都看不出区别,一上规模它就变成主矛盾。所以"成员越聪明越内耗"很可能不是心理问题,是边数问题。

有意思的是,压边数、留公共状态、扰动后拉回来这几件事,我们手里的模型其实都已经做了,只是被当成模型内部的工程 trick,没人把它们放到多体系统这一层看。

以 V3 那套为例:61 层、hidden 7168,每个 MoE 层是 1 个常驻共享专家加 256 个路由专家,每个 token 只激活 8 个,671B 总参对应 37B 激活,约 5.5%。MLA 把 KV 压缩到 512 维。负载均衡不挂辅助损失,靠一个按负载调的偏置项。路由还加了一条硬约束,单个 token 最多发往 4 个节点,用来把专家并行里的 all-to-all 通信限住。

拆开看:常驻共享专家是每个 token 都过的一块公共状态,锚的是通用语义;Top-8 稀疏激活是在压边数,只不过压的是 token 到 expert 的边;偏置项是扰动后把负载拉回来的负反馈,只不过它拉回的目标是均衡;4 节点上限是明着给协调成本设天花板;MLA 的低秩压缩则说明,关系这东西可以编码进低维空间,不必全量摊开。

五条放在一起,已经是一层关系层的雏形。缺的不是机制,是把它们从模型内部提出来变成一等公民,顺便换一个优化目标。现在这套优化的是别让谁过载、别让谁闲着,属于维持;多智能体系统要的是当前这一步谁主导、整体往哪走,属于推进。目标一换,同一套机制的行为会完全不同。我觉得这也是它容易被漏掉的原因:它不产生新的 benchmark 数字。

如果真要在 Agent 这一级把这层做实,我会按控制面和数据面分离来画。

先放一个全局目标向量。低维向量 g,每 k 步广播一次,所有 Agent 把隐状态投影上去,局部奖励改成

r_i = α·r_local + (1−α)·cos(h_i, g)

g 不是 loss,也不是"别出错"这类约束,它是任务的可量化进度。协同学里管越过临界点后支配快变量的慢变量叫序参量,我认为是同一个东西。区别在于:约束型目标让各节点别越界,对齐型目标让各节点朝同一方向偏移。前者天然把聪明节点推向互相否决,因为它们各自的最优边界不一样。

然后是编址和分层分片。别让 Agent 之间做全连接 gossip。按功能域给每个 Agent 一个固定槽位,类似一致性哈希环上的虚拟节点;每个槽位设一个局部汇聚点,跨槽通信只走汇聚点,槽位内部再套同一套结构,递归到最小单元。通信边从 O(N²) 降到 O(N) 量级,而且结构自相似,N 从 50 涨到 5000 不用改设计,加一层就行。固定槽位还有个副作用:新节点加入不需要重新协商全图,这条对持续学习很关键,后面会说。

再往上加一层调度。不要所有分片一直均匀干活,按任务相位切换主导分片,周期性把各分片重新对齐到 g,可以理解成 epoch 边界上的一次 checkpoint 对齐加心跳。静态均衡优化利用率,相位调度优化"这一步该谁说话"。看着像 scheduler 的小改动,但把系统从静态拓扑变成运行时系统的就是这一下。

还有一块最容易被吃掉的预算。从总预算里切一块单独存,不进主优化、不参与梯度回传,只用来采样新路径,跟给集群留 headroom 是一回事。扰动来的时候,系统靠它还能往外探,而不是收敛到唯一解之后一碰就塌。第二条曲线能不能过,基本就看这块有没有被主优化吞掉。

最后是反馈通道。别只回一个标量 reward,按类型开通道:进度、冲突、资源、异常和新发现,各带来源与方向标签,控制面按 topic 聚合。标量把多维信息压成一个数,信息损失大,也容易被单个节点 hack;多通道的代价是带宽,但前面已经把边数压下来了,付得起。

回头看那三条曲线:全局目标向量对第一条,隔离预算对第二条,编址分片和调度对第三条。五个模块没有一个是新算法,都是已有东西换了抽象层级和验收口径。

还有一个更根本的问题:能力到底从哪来。

主流路线押的是参数规模和算力,隐含假设是能力随规模连续涨。复杂系统里还有另一条路:关系密度越过临界值之后,系统会多出一个原先不存在的宏观自由度,子系统行为反过来被这个新变量支配。数学上有两个看着无关的问题,一个问"一个集合要包含所有方向的线段,最小能有多小",一个问"平面上 n 个点之间单位距离的边最多能有多少",落到这儿其实是同一句话:用尽量少的连接,覆盖尽量多的方向。阈值就藏在这句话里。参数路线是在加料,这条路是在改连接。

这一段我没有实测数据,只是从架构上推的,欢迎拿实验打脸。

最后说回路线图。六阶梯,语言模型、CoT、Agent、持续学习、自我迭代、具身,我认同"没有一步是白走的"这个判断。但这条阶梯描述的是单体能力的时间序列;从 Agent 那一级开始,系统里同时活着的不止一个主体,评估对象悄悄从"一个模型能不能"变成"一组主体之间怎么算"。这两件事的度量不一样,前者跑 benchmark,后者得看上面那三条曲线。

持续学习被普遍当成记忆和上下文问题。我怀疑有一半是一致性问题:一个节点新学到的东西,怎么在不掀翻全局状态的前提下写进共享状态,怎么合并、怎么回滚、怎么定版本。这更像分布式状态合并,不太像记忆。如果固定槽位和周期性对齐早点做成一等公民,这一步可能会比预期顺一些。

所以建议其实很有限:在 Agent 和持续学习之间显式补一层关系层,把上面五块做成一等公民,用三条可测曲线验收。不用换基座,不用加多少算力,主要动的是抽象边界。

写下来供拍砖。尤其欢迎做过多智能体落地的同学拿实测数据来反驳第三条曲线,如果斜率不是我算的那样,前面一大半推论都得改

Logo

更多推荐