← 返回文章归档

AI 深度解读 2026.03.03

【深度解读】2026-03-03|当 AI Agent 组成「球队」:多 agent 系统的设计实践

多 Agent 系统编排

当一个 Agent 变成多个 Agent 协同工作,如何设计它们之间的配合方式?图为分布式系统协调的抽象表示。

背景:从”单兵作战”到”团队配合”

如果你用 AI Agent 做开发,大概经历过这个场景:让它帮你改一个文件、等它完成、再让它改下一个文件。这是典型的”单兵作战”模式——一个 Agent 对着你一个人,从头干到尾。

但如果你同时有 8 个任务要处理呢?比如:给 4 个模块加错误处理、扩展测试覆盖率、更新文档、清理 CLI 代码。如果还是让一个 Agent 顺序处理,你的时间等于”所有任务时间的总和”。

有没有可能让多个 Agent 同时开工?

这正是过去几个月 AI 领域最活跃的探索方向之一:如何让多个 AI Agent 协同工作,变成一个”球队”而不是一个”独行侠”


为什么需要多 Agent 系统?

单 Agent 的瓶颈

单 Agent 面临几个核心限制:

注意力分散:当一个 Agent 同时处理多个任务时,上下文窗口会被不同任务的片段填满,导致推理质量下降

缺乏专业化:一个 Agent 很难同时是”代码专家”+”文档专家”+”测试专家”。让它同时做这些,结果往往是每个都做得一般

容错性差:一个任务失败,整个流程就卡住了。没有”备选”或者”补位”机制

扩展性差:任务变多时,只能靠延长等待时间来解决,没有”加人手”的选项

多 Agent 的价值

多 Agent 系统的核心价值在于:

  • 并行处理:8 个任务同时开工,你的总时间取决于”最慢的那个任务”,而不是”所有任务时间的总和”
  • 专业化分工:可以让一个 Agent 专门写测试,另一个专门改文档,第三个专门做代码重构
  • 容错与补位:一个 Agent 失败了,其他 Agent 可以接管它的任务
  • 可扩展性:任务变多时,只需要增加 Agent 数量

这也是为什么 Andrej Karpathy 最近提出,AI Coding 在 December 2025 跨越了一个”质变点”——从”脆弱的演示”变成了可以”持续完成长周期任务”的系统。其中一个关键推动力就是多 Agent 架构的成熟。


实践方案一:Terminal Stampede——用 tmux + 文件系统做”轻量级”并行

Terminal Stampede

Terminal Stampede 用简单的 tmux + 文件系统实现了 8 个 Agent 并行工作。图为终端多路复用的抽象表示。

如果你觉得那些复杂的 Agent 框架(LangGraph、CrewAI、AutoGen)太重,Terminal Stampede 是一个值得关注的”轻量级”方案。

它的核心思路极其简洁:不用 Redis,不用 HTTP,不用 Docker,不用云服务。只需要 tmux + 文件系统。

工作原理

  1. 任务队列是文件:每个待处理的任务是一个 JSON 文件,放在 .stampede/$RUN_ID/queue/ 目录下

  2. 任务认领是原子操作:Agent A 想认领任务时,执行 mv queue/task-001.json claimed/task-001.json。如果文件已经不存在(被其他 Agent 抢走了),mv 会失败,Agent 就去抢下一个。没有锁,没有数据库,文件系统保证原子性

  3. 每个 Agent 是独立的 tmux pane:每个 Agent 运行在独立的 tmux 窗格中,有自己的 200K token 上下文窗口。它们之间不共享内存,完全隔离

  4. 协调器监控进度:一个主脚本监控所有 Agent 的状态,如果某个 Agent 意外退出,它会把这个任务重新放回队列,让其他 Agent 接管

  5. 自动合并:所有 Agent 完成后,一个 merger agent 负责把结果合并到主分支。它会按变更大小排序(从小到大),逐个合并,并尝试用 AI 解决冲突

它解决了什么问题?

  • 零基础设施:不需要部署复杂的多 Agent 框架,几个 shell 脚本就搞定
  • 人类全程可见:每个 Agent 在独立的 tmux pane 中运行,你可以随时”zoom in”看它在做什么,甚至直接和它对话
  • 资源利用率高:8 个 Agent 并行,总共 1.6M token 上下文(8 × 200K),而不是单 Agent 的 200K
  • 容错机制:Agent 挂了?任务自动重新入队,其他 Agent 会补上

适用场景

  • 本地开发、代码重构、大规模测试覆盖
  • 不想部署复杂基础设施的小团队
  • 需要”可视化”看到每个 Agent 在做什么的场景

实践方案二:Mission Control——分布式任务编排系统

如果你需要的不只是”本地 8 个 Agent 并行”,而是”跨多台机器的分布式 Agent 协作”,Mission Control 是个更完善的方案。

这是一个用 PostgreSQL + LISTEN/NOTIFY 做实时同步的分布式任务编排系统,最初为 OpenClaw 定制,但思路可以迁移到其他 Agent 系统。

核心架构

Mission Control 的架构有几个关键组件:

共享状态层(PostgreSQL):所有 Agent 共享同一个任务数据库,包括:

  • 任务表(tasks):任务描述、状态、优先级
  • Agent 表(agents):哪些 Agent 可用、它们的角色和技能
  • 任务队列(jobs):待执行的任务,支援分布式锁
  • 审计日志(audit):所有操作的完整记录

实时同步(LISTEN/NOTIFY):PostgreSQL 内置的发布-订阅机制。任何一个 Agent 更新了任务状态,其他 Agent 会立即收到通知,不需要轮询

角色分工

  • Master:负责任务分发、调度、监控
  • Worker:实际执行任务的 Agent

质量门(Quality Gates):重要任务需要”审批”才能继续。Master 可以配置单审或双审流程

它解决了什么问题?

  • 多实例协同:可以在多台机器上运行多个 Agent 实例,共享同一个任务池
  • 实时可见性:任务状态变化立即同步,不需要等待刷新
  • 故障恢复:任务可以配置重试策略和死信队列(DLQ),失败的任務不会丢失
  • 审计合规:所有操作都有记录,适合企业场景

适用场景

  • 需要跨多台机器协调的复杂项目
  • 有合规要求的企业级部署
  • 需要任务审批流程的团队

实践方案三:Perplexity Computer——编排优先的产品实践

如果说上面两个是”框架/工具”,那 Perplexity Computer 代表的是”产品级”的实现。

Perplexity 最近发布的”Computer”产品,核心卖点是“编排优先”(Orchestration-First)。它的架构有几个关键特征:

1. 多模型路由(Model Routing)

不同任务用不同的模型:

  • Research Agent:用专门优化的研究模型
  • Coding Agent:用代码能力强的模型
  • Media Agent:用多模态模型

模型选择不是固定的,而是根据任务类型动态路由。

2. 并行子 Agent + Coordinator

不是让一个 Agent 顺序处理所有步骤,而是:

  • 一个 Coordinator(协调器) 模型负责规划和拆分任务
  • 多个 ** Specialist(专家)** Agent 并行执行各自的专业任务
  • Coordinator 负责汇总结果、处理依赖关系、决定下一步

这就像一个项目经理(Coordinator)把任务分配给不同的专家(Specialist),专家们并行工作,项目经理负责协调进度和质量。

3. 成本控制

  • 使用量计费:不是固定月费,而是按实际消耗
  • 子 Agent 模型选择:你可以选择用哪个级别的模型处理哪个任务
  • 花费上限:可以设置每月最高消费限额

4. 隔离与沙箱

每个 Agent 运行在独立的沙箱环境中,避免”一个 Agent 发疯影响全局”的问题。


核心挑战:多 Agent 不只是”多开几个”

看到这里,你可能会觉得”多 Agent 很简单嘛,不就是同时跑多个实例”。

但实际上,多 Agent 系统面临几个独特的挑战,这些挑战在单 Agent 场景下根本不存在:

1. 任务分配:谁来干?

简单的均分不够——有些任务简单(5 分钟),有些任务复杂(50 分钟)。如果随机分配,可能会出现:

  • Agent A 干完了没事做,等了 45 分钟
  • Agent B 还在苦逼地处理复杂任务

更好的方式:预先估计每个任务的复杂度,或者让 Agent 们自己”抢任务”(谁先处理完谁拿下一个)。

2. 依赖管理:谁先谁后?

任务之间经常有依赖关系:任务 B 必须等任务 A 完成才能开始。

常见方案

  • 在任务描述中明确标记依赖
  • 协调器(Coordinator)负责分析依赖图并排序
  • 后面的任务等前面的完成后再启动

3. 冲突检测:谁改了我的文件?

8 个 Agent 同时工作,很可能出现这种情况:Agent A 和 Agent B 都修改了 src/auth.py

Terminal Stampede 的方案:合并前检查冲突,如果两个 Agent 修改了同一个文件,标记为冲突并尝试 AI 解决。

更完善的方案:在任务分配阶段就尽量把”可能冲突”的任务分给同一个 Agent,或者在任务描述中限定”作用域”。

4. 结果汇总:谁说的对?

8 个 Agent 给了 8 个不同的答案听谁的?

Perplexity Computer 的方案:Coordinator 负责汇总多个 Agent 的结果,做最终判断。

Terminal Stampede 的方案:Shadow Scoring——在合并时对每个 Agent 的工作做多维度评分(完成度、冲突友好度、代码质量),作为合并顺序的参考。

5. 失败传播:一个挂了会怎样?

一个 Agent 处理任务时失败了,后面依赖它的任务怎么办?

常见方案

  • 自动重试:失败后重新入队,让其他 Agent 尝试
  • 熔断机制:连续失败 N 次后停止调度,避免浪费资源
  • 死信队列(DLQ):多次重试都失败的任務进入特殊队列,等待人工处理

行业趋势:从”聊天壳层”到”分布式工程系统”

回到我们最初的话题:AI Agent 正在从”聊天壳层”变成”分布式工程系统”。

这意味着什么?

过去:Agent 是一个”对话界面”——你问它答,你命令它执行。单线程、串行处理。

现在:Agent 是一个”工程系统”——有任务队列、有调度器、有监控、有容错、有审计。就像一个成熟的微服务架构。

这个转变带来的变化是:

  • 可靠性比单轮效果更重要:一个 Agent 连续工作 8 小时不出错,比”第一次回答很惊艳”更有价值
  • 可观测性成为必选件:你需要知道每个任务在哪一步花了多长时间、哪个 Agent 在处理、哪个任务失败了
  • 编排能力成为核心竞争力:未来的竞争不在于”模型有多聪明”,而在于”谁能更优雅地调度多个 Agent”

一个有趣的类比:足球队

想象一下多 Agent 系统的运作方式:

  • 单 Agent 足球队:11 个球员都听教练的,教练说什么就做什么。这是”集中式”架构
  • 多 Agent 足球队:前锋自己判断什么时候射门,中场自己决定什么时候传球,后卫自己决定什么时候铲球。它们通过”默契”(共享上下文)协调。这是”分布式”架构

现在的多 Agent 系统更接近第一种——有一个 Coordinator 负责统筹。但随着技术发展,第二种”分布式默契”会越来越常见。


参考来源