编程智能体的多智能体编排:实用指南
如何让 Claude Code、Codex、Gemini CLI 和 Grok 作为一个团队协作:行之有效的模式、你需要的组成部分,以及 MAO 如何在画布上把它们连接起来。
什么是多智能体编排?
多智能体编排指的是让多个 AI 智能体作为一个团队协同工作:决定谁做什么,在它们之间传递工作和上下文,收集它们的结果,并在其中某个智能体需要人来处理时介入。对编程智能体来说,这意味着 Claude Code、Codex、Gemini CLI、Grok 或 OpenCode 各自负责一次改动中的一部分,同时由某个机制来协调它们之间的交接。
没有编排时,你自己就是编排者。你从一个终端里复制计划,再粘贴到另一个终端;你把审查者的意见转达回写代码的智能体;你还要在脑子里记住哪个标签页在做什么。两个智能体时这还行得通。到了四个,你一天中的大部分时间都花在窗口之间搬运文本上。
编排用明确的结构取代这种剪贴板工作:有哪些智能体,哪些可以互相通信,每个负责什么,结果送往哪里。写代码的仍然是智能体。编排层让团队变得可见,并让智能体能够直接联系彼此。
为什么要使用多个编程智能体?
单个强大的智能体足以完成很多任务。当工作有明确不同的角色,或者可以并行进行时,团队才物有所值:
- 各有所长。一个模型擅长规划,另一个写测试很快,第三个是细心的审查者。让每个模型做它最擅长的事,通常胜过让一个模型包揽一切。
- 第二意见。来自另一家提供商的审查智能体能发现作者智能体看不到的错误,因为代码不是它写的。
- 并行工作。相互独立的任务(一次迁移、它的测试、相关文档)由三个智能体在各自的分支上同时进行,会更快完成。
- 独立的上下文。每个智能体都保有一个专注的上下文窗口,而不是用一段对话装下整个项目。
代价是协调。每多一个智能体,就多一个工作可能停滞、冲突或丢失的地方,而这正是编排要解决的问题。
适用于代码的多智能体模式
大多数有用的配置都属于少数几种形态之一。从适合当前任务的最简单的那种开始。
编排者与工作者
一个智能体接收请求,把它拆分成任务,并把每个任务交给一个工作者:“Codex,写这个端点;Gemini,写它的测试。”工作者汇报结果,编排者把结果组装起来。对于由多个部分组成的功能,这是默认的形态。
作者与审查者循环
一个智能体编写,另一个审查,作者修复审查者发现的问题,如此反复,直到审查者满意为止。使用两家提供商的模型会让审查更加独立。
并行分支
多个智能体同时在仓库的不同副本上工作,因此它们永远不会同时编辑同一个文件、互相干扰。你审查每个分支,合并其中合格的那些。正是这种模式让三个智能体带来三倍的产出,而不是三倍的冲突。
流水线
工作按顺序流经各个阶段:规划、实现、测试、编写文档。每个阶段是一个只负责一件事的智能体,它的输出就是下一阶段的输入。
共享笔记
智能体读取同一组笔记并往里追加内容(一份规格说明、一份进度日志、一份决策记录),而不是在每条消息里重复上下文。笔记成为团队的记忆。
多智能体配置需要什么
无论你使用什么工具,一个编程智能体团队都需要相同的组成部分:
- 真实的会话。每个智能体都以自己的登录、模型和设置运行自己的 CLI,因此它的行为和在你的终端里完全一样。
- 寻址。智能体能找到允许与它协作的智能体,并向其中一个发送任务。
- 能返回的结果。任务有 ID、发送方和接收方,其结果会返回给发起请求的一方,而不是被敲进某个终端然后听天由命。
- 权限边界。智能体只能访问分配给它的智能体、笔记和工具,因此工作者不会误入无关的工作。
- 隔离。并行的智能体在不同的分支上工作,因此它们的修改不会冲突。
- 提醒。当某个智能体完成、失败或请求批准时,你无需逐个检查窗口就能知道。
- 审查。你可以看到每个智能体改了什么,并决定哪些内容合入。
MAO 如何编排编程智能体
MAO 是一款用于编程智能体多智能体编排的桌面应用。它把每个智能体作为真实终端放到一张无限画布上,并把上面这些组成部分变成你能看到、能画出来的东西。
- 每个智能体都是它真正的 CLI。节点运行 Claude Code、Codex、Gemini CLI、Grok、OpenCode、Antigravity 或普通 shell,使用该智能体自己的登录和模型。MAO 不会代理或替代智能体。
- 连线就是权限。在两个智能体之间画一条连接,它们就能找到彼此并交换任务。把智能体连线到一条笔记,它就能读取并追加这条笔记。除此之外,什么都访问不到。
- 智能体通过
mao命令交流。在自己的终端里,智能体可以列出它的对等节点、发送任务、等待结果,以及读取或更新已连接的笔记。 - 编排者可以为画布组建团队。把一个智能体标记为编排者,它就能招募新的智能体、连接它们并分派工作,这样你只需描述一次目标。
- 图层就是 Git 工作树。每个图层都是一个真实的分支,拥有自己的工作目录,因此并行的智能体永远不会编辑同一个检出目录。你在画布上审查差异(diff),并在图层准备好时将其合入。
- 需要关注的事会找到你。完成、失败或呼叫你的智能体会在自己的节点上显示出来,并发出桌面通知。
一个需要审查者的工作者只需在自己的终端里直接问它:
mao peers
mao ask reviewer "Review the session refresh changes on this branch"
mao note append progress "Refresh path done; reviewer is on it"mao ask 会发送任务并等待回答;mao send 会立即返回一个任务 ID,之后由 mao wait 收取它的结果。结果会被送回发起请求的智能体,并且任务在应用重启后依然保留。
五分钟组建一个智能体团队
- 下载 MAO(macOS、Windows 或 Linux 版),然后把你的仓库作为工作区打开。
- 放置你的智能体。为你想要的每个智能体添加一个节点(例如用 Claude Code 规划、Codex 构建、Gemini 审查)。每个节点都会用你现有的登录启动它自己的 CLI。
- 画出连线。把规划者连接到构建者,再把构建者连接到审查者。为规格说明添加一条笔记,并把它连线到这三个智能体。
- 指定编排者。把规划者标记为编排者,这样它就能分派工作,并在任务变大时招募帮手。
- 在并行编辑代码时,为每个智能体分配一个图层,让每个智能体都在自己的分支上工作。
- 只说一次。告诉编排者你想要什么。在有智能体请求批准时介入,然后审查差异,把好的部分合入。
多智能体框架 vs 编排应用
在搜索多智能体编排时,你会遇到两类工具,它们解决的是不同的问题。
如果你在构建 AI 产品,框架是正确的工具。如果你想让自己电脑上的编程智能体在你的仓库上协作,编排应用才是正确的工具。
编程智能体团队的使用技巧
- 每个智能体只做一件事。像“审查者:指出 bug 和缺失的测试,不要编辑文件”这样的角色能让它保持专注。
- 把共享上下文放在笔记里,而不是放在消息里。一份每个智能体都能读到的规格说明笔记可以防止各自跑偏。
- 隔离并行工作。两个智能体编辑同一个检出目录,是多智能体会话出问题最常见的原因;分开的分支可以避免这一点。
- 审查时混用提供商。来自不同模型家族的审查者,比同一家族的审查者能发现更多问题。
- 从小处开始。两个智能体加一条连线,比第一天就上八个智能体的团队更能让你学到东西。
常见问题
多智能体编排就是协调多个 AI 智能体,让它们作为一个团队工作:分配任务,在它们之间传递结果和上下文,并在需要人来决定的时刻把问题提出来。在编程中,这意味着让 Claude Code、Codex 和 Gemini CLI 等智能体相互交接工作,而不是由你在终端之间复制文本。
可以。在 MAO 中,它们各自作为画布上的独立终端运行,两者之间的一条连线让它们可以通过 mao 命令互相发送任务并返回结果,例如由 Claude Code 规划、Codex 实现。
不需要。每个智能体都用你已有的登录和订阅运行它自己的 CLI。MAO 不会让你的提示词经过它自己的服务器,也不会向你收取模型使用费用。
给每个智能体分配自己的图层。MAO 中的图层是一个位于独立分支上的真实 Git 工作树,因此智能体在各自的检出目录中工作,你再合并好的部分。
Claude Code、Codex、Gemini CLI、Grok、OpenCode、Antigravity 以及任何 shell 命令,支持 macOS、Windows 和 Linux。
MAO 一次性买断:大多数国家售价 US$20,在亚洲和南美的部分地区会按当地购买力定价,更便宜(US$13 到 US$18)。并提供 7 天免费试用,无需绑定银行卡。
有问题?可以在 Discord 提问,或发邮件到 hello@miguer.com。