多 Agent 并行:一起想,排队交
等待可以叠在一起,改状态还是得排队。
多 Agent 并行,最容易搅在一起的是两件事:问模型要结果,和把结果写进共享状态。我的做法是:想可以一起想,交得排队交。
先理清谁等谁
狼人杀里,女巫得先知道谁被刀了才能决定救不救,投票得等所有人说完。这些步骤不能抢。只有基于同一份信息、彼此不依赖的请求,才能一起发出去。
如果后一个角色要看到前一个角色刚做的决定,那它们就不是一批。能不能并行看的是数据依赖,不是角色有几个。
结果先收齐,再按顺序写
请求谁先回来,要看网络和模型的心情。要是谁先回来谁先改状态,同一局游戏可能因为网络快慢走出不同的结果。
所以结果先收齐,再按规则顺序写回去。同时发出的请求数也设了上限,免得一下子打太多。测试时我直接数同时在跑的请求有几个,而不是看总时间变短了就认为「应该是并行了」。
用同一个种子对比
我用同一个随机种子,分别跑串行和并行,对比两边的公开事件序列:阶段顺序、动作、状态都得一样。模型本身有随机性,所以比的是流程和状态,不是一字一句。
快了多少看总耗时,对不对看状态,两样都得看。
© 2026 袁天NOTE / 05
