多个 Claude Code 与多个 Codex 协同工作:设计与实现方案

多个 Claude Code 与多个 Codex 协同工作:设计与实现方案

摘要 :本文系统梳理了如何用多个 Claude Code 与多个 Codex 并行协同完成中大型工程编码任务。从单 Agent 的三大瓶颈出发,对比两类 Agent 的可编排接口(无头模式、SDK、MCP、Hooks、worktree、权限),盘点 Orchestrator-Worker、Blackboard、Pipeline 等五种主流编排模式与 Claude Squad、Vibe Kanban、Conductor、Terragon 四类工具生态,最终给出一套 Orchestrator → Worker Pool → git worktree 隔离 → Blackboard 共享 → Integration Layer 合并的五层端到端架构,并结合 CoDA-Bench 成本数据(Claude Code 0.11/task vs Codex 1.39/task)说明如何通过异构路由把成本降下来、把完成率提上去。全文强调:编排代码好写,治理才是深水区。

TL;DR

  • 多 Agent 编排的核心矛盾是隔离与协调的三角取舍:并行加速来自物理隔离(git worktree),但隔离越深,合并成本与上下文碎片化越高------架构设计本质上是在这条曲线上选工作点。
  • Claude Code 与 Codex 已具备完整的程序化编排接口 :前者通过 -p 无头模式 + Agent SDK + git worktree 原生支持并行;后者通过 codex exec --quiet + TypeScript SDK + Cloud 委托 + MCP Server 暴露能力------两者可混合部署。
  • 推荐架构为 Orchestrator → Worker Pool → git worktree 隔离 → Blackboard 共享 → Integration Layer 合并 ,在 CoDA-Bench 中 Claude Code 单任务成本 0.11、Codex 1.39,混合编排可按任务复杂度动态路由以优化性价比1
  • 落地关键不在于写编排代码,而在于治理:Token 熔断、文件锁、冲突 re-dispatch、最小特权沙箱------缺少任何一层都会导致成本失控或代码污染。

一、为何需要多 Agent 协同

1.1 单 Agent 编码的瓶颈

单个 AI 编码 Agent(无论是 Claude Code 还是 Codex)在处理中大型工程任务时面临三个结构性限制:

上下文窗口饱和。一个 Agent 在深入理解模块 A 时,无法同时对模块 B 保持同等精度的上下文覆盖。当仓库规模超过数万行时,单次会话的有效产出递减。

串行执行的时间墙。即使 Agent 编码速度远快于人类,一个 session 内仍是线性执行------先分析需求、再生成代码、再运行测试、再修复 bug。10 个子任务串行完成的墙钟时间约为并行执行的 5-10 倍。

单点失败放大。一个 Agent 在第 3 步犯错可能污染后续全部步骤的上下文,而不同 Agent 各自隔离运行时,一个失败不影响其他已完成的工作。

1.2 并行带来的价值与新问题

多 Agent 并行的核心收益是时间压缩能力互补 。Anthropic 自身的多智能体研究系统已经采用编排者-工作者模式,由主代理将查询分解为子任务并委派给并行运行的子代理2

但并行引入了三类新开销:

  1. 协调开销:谁做什么、做到哪了、下一步是谁------需要一个编排层承担调度与状态追踪。
  2. 合并开销:多个 Agent 各自改了代码,最终合入一个仓库时可能产生冲突------需要隔离策略和集成层。
  3. 上下文碎片化:Agent A 做的决定可能影响 Agent B 的实现------需要共享黑板机制。

Synthesis:这三类开销构成了多 Agent 系统设计的核心张力:隔离越深越安全,但通信与合并成本越高。后续章节的架构设计本质上是在这条取舍曲线上寻找工程最优解。


二、两类 Agent 的可编排能力

2.1 能力对比总览

Claude Code 和 Codex 各自暴露了不同但互补的程序化接口。下表按编排系统关心的六个维度对比核心差异:

能力维度 Claude Code OpenAI Codex
无头模式 -p / --print 标志,支持 `--output-format json stream-json` 输出结构化数据34
SDK / 编程接口 Claude Agent SDK(原 Claude Code SDK),支持 Python 和 TypeScript6 @openai/codex-sdk TypeScript SDK,通过 runStreamed() 订阅工具调用与文件变更7
子智能体 / 多 Agent 原生 Subagents(同会话内委派)+ Agent Teams(跨实例协作),通过 --agents JSON 配置89 OpenAI Agents SDK 提供 Handoffs(对等授权)和 Manager Pattern(层级编排)10
MCP / 工具总线 作为 MCP Client 消费外部工具;Hooks 机制在 PreToolUse/PostToolUse/Stop 等生命周期事件注入逻辑11 codex mcp-server 模式将自身能力暴露为 MCP Server,供其他 Agent 调用12
代码隔离 原生 --worktree / -w 标志,一键创建隔离目录并启动会话13 Codex Cloud 在云端沙箱执行,本地通过 codex cloud exec 委托后拉回 diff14
权限 / 自动化 --dangerously-skip-permissions 跳过全部确认;受保护目录 .git/ 仍触发提示1516 v0.128 后推荐 Permission Profiles 替代 --full-auto17--yolo 强制绕过沙箱18

2.2 关键差异的编排含义

Claude Code 的优势在于本地 worktree 原生集成 。编排系统只需调用 claude -p --worktree --output-format stream-json,即可得到一个隔离运行、结构化输出的 Worker 进程,无需额外基础设施13

Codex 的差异化能力是 MCP Server 模式与 Cloud 委托codex mcp-server 让 Codex 从"被编排的 Worker"翻转为"向其他 Agent 暴露能力的 Tool Provider"12;Codex Cloud 则把计算卸载到远端沙箱,适合计算密集型或需要特定环境的任务14

混合部署的经济动机 :CoDA-Bench 数据显示 Claude Code(Sonnet 4.6)单任务 0.11 / 53.8% EA,Codex CLI(GPT-5.5)1.39 / 60.3% EA1。将简单子任务路由给 Claude Code、复杂子任务路由给 Codex,可在总预算内最大化完成率。

2.3 上下文管理与配置注入

两者均支持通过项目根目录的配置文件向 Agent 注入上下文:

  • Claude Code 读取 CLAUDE.md,每个会话启动时自动加载,建议控制在 200 行以内19
  • Codex CLI 读取 AGENTS.md,由 OpenAI 与 Google 等合作创建的开放标准格式20

编排系统可通过动态生成或修改这两个文件,向不同 Worker 注入差异化的上下文(如任务边界、API 约束、代码风格规范)。


三、协同架构模式与工具生态

3.1 编排模式分类

模式 机制 适用场景 局限
Orchestrator-Worker 单编排者分解任务、委派专业工作者、汇总结果21 子任务可独立执行、需要集中调度 编排者成为单点瓶颈;编排者 token 开销大
Fan-out / Fan-in 协调 Agent 将大任务并行拆分给多个 Agent 同时执行,完成后合并21 无依赖或弱依赖的并行子任务 合并阶段冲突处理复杂
Blackboard 共享知识库,专家 Agent 读写黑板,控制器根据当前状态决定下一个贡献者22 无法预先规划执行顺序的开放式任务 状态爆炸风险;需要锁机制
Pipeline 顺序流水线,前一阶段输出作为下一阶段输入23 有严格前后依赖的阶段性任务 无法并行;慢阶段阻塞全链路
Deterministic YAML 确定性路由,零 token 消耗编排层(如 Conductor)24 流程固定、路由规则明确的工作流 灵活性差;无法处理动态分支

💡 推荐组合 :对多 Agent 编码任务,最有效的模式是 Orchestrator-Worker + Blackboard 混合 ------Orchestrator 负责任务分解与调度,Blackboard 负责跨 Agent 的状态共享与隐式通信。Anthropic 内部研究系统即采用此模式25

3.2 现有工具生态

工具 协调模型 代码隔离 通信机制 支持 Agent
Claude Squad tmux 多会话管理 + TUI 控制台26 git worktree 自动创建隔离分支27 文件系统 + git 分支 Claude Code, Codex, Gemini, Aider, Amp
Vibe Kanban 看板任务管理 + MCP Server 暴露状态28 每任务独立 git worktree + 内置代码审查28 MCP Server + 自动排队2930 Claude Code, Cursor, Copilot, Gemini CLI
Conductor YAML 确定性编排,零 token 消耗路由24 依赖外部 worktree 配置 确定性路由 + 结构化输入输出 任意 CLI Agent
Terragon 后台并行 Agent + 自动冲突处理31 隔离沙箱 + git 工作流(clone → branch → PR) Web 面板 / CLI / GitHub 评论 Claude Code, Codex

3.3 异构混用的现状

Claude Code 与 Codex 混合使用目前主要停留在两种模式:

  1. 手动并行:开发者在不同终端分别启动两类 Agent 处理不同模块,手动协调合并。
  2. 工具层统一:Claude Squad 等工具通过可配置的启动命令支持不同 Agent 后端,但编排逻辑本身不区分 Agent 类型。

Synthesis:真正语义级的异构编排------根据子任务特征自动路由到最适合的 Agent 类型------尚缺乏成熟的开源方案,这也是第四章端到端设计的核心价值所在。


四、端到端设计与实现方案

4.1 架构总览

架构分为五层,自上而下依次为:

  • Orchestrator(编排层):接收顶层需求,负责任务分解、路由决策、依赖拓扑排序。
  • Worker Pool(执行层):混合部署 Claude Code Workers 与 Codex Workers,可动态伸缩。
  • git worktree 隔离层:每个 Worker 独占一个 worktree 与 feature 分支,物理隔离防止文件写冲突。
  • Blackboard 共享层 :状态文件 + 上下文注入文件(CLAUDE.md/AGENTS.md)+ MCP Server,承担跨 Agent 的隐式通信。
  • Integration Layer(集成层):预检合并、自动 rebase、语义冲突 re-dispatch、人工兜底。

核心设计原则:Worker 之间零直接通信,一切协调通过 Orchestrator 和 Blackboard 间接完成 ;Worker 只需要关心"接收任务 → 在隔离 worktree 中执行 → 产出代码 + 状态更新"32

4.2 任务分解与分配策略

Orchestrator 收到顶层需求后,执行以下分解逻辑:

按模块/文件边界划分 是最安全的策略------不同 Agent 修改不同目录或文件,从源头消除合并冲突。代理团队模式建议团队规模 3-5 个成员,并支持共享任务列表与依赖跟踪33

路由决策矩阵

子任务特征 路由目标 依据 调用方式
简单重构 / 文件迁移 / 测试补全 Claude Code Worker 性价比优($0.11/task)1 claude -p -w --output-format stream-json
复杂算法 / 跨模块逻辑 / 需要推理链 Codex Worker 性能优(60.3% EA)1 codex exec -q 或 Codex SDK runStreamed()
代码审查 / 安全扫描 Codex Worker (review mode) 未披露 codex review --no-interactive
需要外部 API / 特殊环境 Codex Cloud 云端沙箱提供隔离执行环境14 codex cloud exec

4.3 隔离与通信机制

物理隔离层基于 git worktree。每个 Worker 启动时自动获得独占的 worktree 和对应 feature 分支:

bash 复制代码
# Claude Code Worker: 原生一行命令完成
claude -p --worktree --base main "实现用户认证模块"

# Codex Worker: 需要编排层预先创建 worktree
git worktree add ./worktree-codex-01 -b feat/payment-module
cd ./worktree-codex-01 && codex exec -q "实现支付模块"

隔离的核心不在于协调算法,而在于基础设施层面的硬隔离------让 Agent 不需要相互感知就能并行工作32

**共享上下文层(Blackboard)**由三部分组成:

  1. 状态文件:JSON 格式的任务状态表,记录每个子任务的 assigned/running/done/failed 状态。
  2. 上下文注入文件 :动态生成的 CLAUDE.md / AGENTS.md,向 Worker 传递全局约定1920
  3. MCP Server :暴露跨 Agent 查询能力(如"模块 A 的接口签名是什么"),Vibe Kanban 已验证此模式可行30

4.4 代码合并与冲突处理

git worktree 提供了文件隔离但不能消除语义冲突------当多个 Agent 修改相同功能接口时,冲突在 PR 合并阶段显现34。Integration Layer 的处理流程:

  1. 检测 :Worker 完成后触发 git merge --no-commit 预检,发现冲突即标记。
  2. 自动解决:对无语义冲突的格式差异(import 顺序、空行)自动 rebase。
  3. Re-dispatch:语义冲突时,将冲突文件及两个分支的 diff 作为新子任务重新分配给一个 Agent,由其做三方合并决策。
  4. 人工兜底:连续 2 次 re-dispatch 仍失败则暂停并通知人类开发者。

4.5 成本与安全治理

Token 成本控制需要多层防线:

  • 明确规定完成标准(如测试通过),避免 Agent 无限迭代35
  • 设置"禁区"(如不准修改数据库 schema),缩小 Agent 行动空间35
  • 熔断器:连续 3 次无文件写入或产生相同错误时强制停止36
  • 显式限制重试次数("3 次未解决则停止并汇报")35

可观测性 需覆盖四个维度:执行追踪、输出评估、Token 成本归属、代理身份跟踪37。每个 Worker 的每次 turn 都应记录 token 消耗、文件变更和执行时长,归属到对应子任务 ID。

权限治理 遵循最小特权原则38

  • Claude Code Worker:通过 allowedTools 白名单限制可用工具,仅开放目标目录的写权限。
  • Codex Worker:使用 Permission Profiles 替代 --full-auto17
  • 受保护目录(.git/.claude/)即使在 bypass 模式下仍触发提示16

五、落地挑战与最佳实践

5.1 任务分配维度

实践 做法 风险缓解
按文件/目录边界分配 Orchestrator 将子任务绑定到特定目录,禁止跨目录修改 从源头消除文件级冲突39
审阅者-实现者分工 一个 Agent 实现、另一个 Agent 审查 双重验证减少错误逃逸
团队规模控制在 3-5 个 Agent Teams 实验数据显示此规模协调开销最优33 超过 5 个 Agent 后合并冲突概率陡增
依赖声明前置 在 Blackboard 中维护接口契约文件,Worker 开工前先读取 减少因接口变更引发的 re-dispatch

5.2 冲突处理维度

  • git worktree 隔离是必要条件但不是充分条件 ------它防止文件写冲突,但语义冲突仍需集成层处理34
  • 分支策略 :每个 Worker 使用 feat/<task-id> 命名分支,合并顺序由 Orchestrator 按依赖拓扑排序。
  • 冲突预算:设定单次迭代允许的最大冲突数(如 3 个文件),超出则暂停任务重新拆分。

5.3 成本维度

  • 异构路由是最有效的成本杠杆 :简单任务用 Claude Code(0.11/task),复杂任务用 Codex(1.39/task)1
  • 并发限制规划 :Codex Cloud Pro 最多 3 个并发任务40,需要据此设计 Worker Pool 上限。

5.4 安全维度

  • 沙箱层叠加 :Claude Code 的 Hooks 可在 PreToolUse 阶段拦截危险操作(退出码 2)41
  • RBAC 粒度化 :将权限限制在特定租户、特定操作、有限时间内38
  • 弹性防线 :重试逻辑(指数退避)+ 回退链(替代路径)+ 人工介入(高风险决策暂停)42

不值得做的场景:当项目代码行数 < 5000 行、子任务 < 3 个、或任务之间强耦合无法拆分时,多 Agent 编排的协调开销大于收益。单 Agent + Subagents 模式在此类场景下更经济高效。


参考资料

一手信源

1 CoDA-Bench: Can Code Agents Handle Data-Intensive Tasks?

权威媒体与机构

24 Conductor: Deterministic orchestration for multi-agent AI workflows | Microsoft Open Source Blog

其它来源

2 How we built our multi-agent research system | Anthropic

3 Run Claude Code programmatically - Claude Code Docs

4 Headless mode - Claude Code Docs

5 Getting Started with OpenAI Codex CLI

6 Agent SDK overview

7 SDK -- Codex | OpenAI Developers

8 The Blackboard Architecture: Solving the Agent 'Phone Game'

9 I Ran the Same Multi-Agent Prompts on Claude Code, Codex, and Cursor

10 Multi-Agent Coordination

11 Hooks reference - Claude Code Docs

12 Codex CLI as an MCP Server

13 Run parallel sessions with worktrees - Claude Code Docs

14 Codex CLI Cloud Delegation Workflows

15 The --dangerously-skip-permissions Flag: When to Use It.

16 Claude Code --dangerously-skip-permissions Explained

17 The --full-auto Deprecation

18 Command line options -- Codex CLI | OpenAI Developers

19 Give Claude context: CLAUDE.md and better prompts

20 agents.md: The Complete Guide to the Open Standard

21 Multi-Agent Orchestration | MindStudio

22 7 Multi-Agent Orchestration Patterns That Actually Work in Production

23 Building Orchestration Layers with the Anthropic Agent SDK

25 Anthropic 谈如何构建生产级多智能体系统 - 腾讯云开发者社区

26 Claude Squad Review

27 2026 年 AI 编码领域多代理协作全景评测

28 Vibe Kanban -- Free parallel AI coding

29 Vibe Kanban MCP | MCP Servers

30 vibe-kanban -- a Kanban board for AI agents

31 Terragon

32 How to Run Parallel AI Coding Agents With Git Worktrees | MindStudio

33 Running Multiple AI Coding Agents in Parallel

34 How to Use Git Worktrees for Parallel AI Agent Execution | Augment Code

35 How to Stop AI Coding Agents Burning Money

36 The Architect: Why I Built an Autonomous Dev Layer on Top of AI Coding CLIs

37 Agent Observability for AI Coding | Augment Code

38 AI agent access control: How to manage permissions safely

39 Git Worktrees for AI Coding | MindStudio

40 OpenAI Codex Usage Limits Explained (2026)

41 Claude Code Hooks: Complete Guide to All 12 Lifecycle Events

42 Designing Resilient Agentic AI Pipelines

相关推荐
HjhIron17 小时前
面试常客:字符串算法从入门到进阶
算法·面试
吴佳浩18 小时前
DeepSeek DSpark:Confidence-Scheduled Speculative Decoding 技术解析
人工智能·算法·deepseek
触底反弹19 小时前
🧠 搞懂 Token,才算真正入门大模型——从分词原理到 Embedding 语义实战
javascript·人工智能·算法
vivo互联网技术1 天前
ICLR 2026 | 基于后验采样的图像恢复方法LearnIR:人脸去阴影、去雾
人工智能·算法·aigc
浮生望1 天前
JS字符串与回文算法:从包装类到双指针的面试进阶之路
javascript·算法
黄敬峰1 天前
面试必刷:从JS底层包装类到双指针,彻底搞懂字符串与回文算法
算法
地平线开发者1 天前
J6B vio scenario sample
算法
BothSavage2 天前
Trae远程开发中DeepSeek自定义模型4054错误的排查与修复
算法