Loading... # 多 Agent 协作编写代码实践 # 一、概述 ## 1. 简介 ### A. 是什么 多 Agent 协作编写代码是一种将 AI 助手组织成团队的工作模式。通过 Tmux 终端复用器,将 Claude 作为协调大脑,多个 Codex 实例作为执行手,实现并行编码任务分配和自动化执行。 ### B. 为什么学 - 提升编码效率:多个 Agent 同时处理不同任务,实现并行工作 - 自动化任务分发:通过脚本统一管理任务分配和结果收集 - 角色专业化:coder 专注编码、tester 负责测试、reviewer 做代码审查 ### C. 学完能做什么 - 搭建包含 Claude 和多个 Codex 的 Agent 团队 - 使用 Git Worktree 为每个 Agent 创建独立工作区 - 编写脚本自动化任务分发和结果收集 - 通过 Tmux send-keys 和 capture-pane 控制 Agent 团队 ## 2. 前置知识 ### A. 必备技能 - 基础命令行操作能力 - 了解 Git 基本概念和操作 - 熟悉终端工作流程 ### B. 推荐知识 - 了解 AI 编码助手的使用方式 - 了解终端复用器的基本概念 - 了解工作目录隔离的必要性 # 二、环境准备 ## 1. 系统要求 - 操作系统:macOS(推荐)、Linux - 包管理器:Homebrew(用于 macOS) - Node.js/npm:已安装且可用 - Git:已安装且可用 ## 2. 安装步骤 ### A. 安装 Tmux ```bash brew install tmux ``` ### B. 安装 Claude Code CLI 和 Codex ```bash npm install -g @openai/claude-code @openai/codex ``` ## 3. 验证安装 ```bash # 验证 tmux tmux -V # 验证 claude-code claude --version # 验证 codex codex --version ``` # 三、核心概念 ## 1. 基本术语 - Agent:具有特定职责的 AI 编码助手实例 - Tmux Session:Tmux 的会话,包含多个终端面板 - Pane:终端面板,Tmux 会话中的独立窗口区域 - Git Worktree:Git 工作树,允许同一代码库的多个独立工作目录 ## 2. 工作原理 ### A. 架构设计 ```mermaid graph TB subgraph 协调层 Claude[Claude<br/>大脑/协调器] end subgraph 终端管理 Tmux[Tmux Session<br/>多面板管理] end subgraph 执行层 Coder[Codex Coder<br/>编写代码] Tester[Codex Tester<br/>运行测试] Reviewer[Codex Reviewer<br/>代码审查] end subgraph 工作区 WC1[project-coder<br/>Git Worktree] WC2[project-tester<br/>Git Worktree] WC3[project-reviewer<br/>Git Worktree] end Claude -->|任务拆解| Tmux Tmux -->|Pane 0.0| Coder Tmux -->|Pane 0.1| Tester Tmux -->|Pane 0.2| Reviewer Tmux -.send-keys/capture-pane.-> Claude Coder --> WC1 Tester --> WC2 Reviewer --> WC3 ```  ### B. 角色定义 - Claude:作为大脑,负责理解用户需求、拆解任务、协调各 Agent 工作 - Codex Coder:执行手,负责编写具体代码 - Codex Tester:执行手,负责运行测试用例 - Codex Reviewer:执行手,负责代码审查和质量检查 ### C. 通信机制 - send-keys:Tmux 命令,向指定 pane 发送按键,实现任务分发 - capture-pane:Tmux 命令,捕获指定 pane 的内容,实现结果读取 # 四、快速上手 ## 1. 创建 Git Worktree 为每个 Agent 创建独立工作区,确保各 Agent 的工作互不干扰: ```bash git worktree add ../project-coder main git worktree add ../project-tester main git worktree add ../project-reviewer main ``` ## 2. 启动 Tmux Session 创建包含四个面板的 Tmux 会话: ```bash tmux new-session -d -s agent-team tmux split-window -h && tmux split-window -v ``` 这会创建一个 2x2 的面板布局,每个面板对应一个 Agent。 ## 3. 启动各 Agent 在各个面板中启动对应的 Agent: ```bash # 在第一个面板启动 Claude tmux send-keys -t agent-team:0.0 "claude" Enter # 在第二个面板启动 Codex Coder tmux send-keys -t agent-team:0.1 "cd ../project-coder && codex" Enter # 在第三个面板启动 Codex Tester tmux send-keys -t agent-team:0.2 "cd ../project-tester && codex" Enter # 在第四个面板启动 Codex Reviewer tmux send-keys -t agent-team:0.3 "cd ../project-reviewer && codex" Enter ``` ## 4. 分发任务 使用 send-keys 向指定面板发送任务指令: ```bash # 向 Coder 发送编码任务 tmux send-keys -t agent-team:0.1 "实现登录功能,JWT,带单测" Enter ``` ## 5. 捕获结果 使用 capture-pane 读取面板输出: ```bash # 捕获 Coder 面板的输出 tmux capture-pane -t agent-team:0.1 -p ``` ## 6. 完整工作流程 ```mermaid graph TD S[开始] --> A[安装工具<br/>tmux, claude-code, codex] A --> B[创建 Git Worktree<br/>为每个 Agent 独立工作区] B --> C[启动 Tmux Session<br/>创建四面板布局] C --> D[启动各 Agent<br/>Claude + 3个 Codex] D --> E[分发任务<br/>使用 send-keys 脚本] E --> F[捕获输出<br/>capture-pane 读取结果] F --> G[任务完成] ```  # 五、进阶内容 ## 1. 自动化脚本 编写脚本统一管理任务分发和结果收集: ```bash #!/bin/bash # agent-task.sh SESSION="agent-team" PANE_CODER="0.1" PANE_TESTER="0.2" PANE_REVIEWER="0.3" # 发送编码任务 tmux send-keys -t "$SESSION:$PANE_CODER" "$1" Enter # 等待编码完成 sleep 10 # 发送测试任务 tmux send-keys -t "$SESSION:$PANE_TESTER" "运行测试" Enter # 捕获结果 tmux capture-pane -t "$SESSION:$PANE_CODER" -p > coder_output.txt tmux capture-pane -t "$SESSION:$PANE_TESTER" -p > tester_output.txt ``` ## 2. 最佳实践 - 任务拆分:将大任务拆解为可独立执行的小任务 - 顺序协调:按照依赖关系安排任务执行顺序 - 结果验证:使用 Reviewer Agent 验证 Coder 和 Tester 的输出 ## 3. 替代方案 若不想手动配置,可直接使用自动化工具: ```bash brew install claude-squad ``` claude-squad 是封装好的多 Agent 管理工具,自动处理 Tmux 和 Agent 协调。 # 六、实战案例 ## 1. 场景描述 实现一个用户登录功能,要求使用 JWT 认证,并包含单元测试。 ## 2. 实现步骤 ### A. Claude 拆解任务 Claude 分析需求,拆解为三个子任务: - Coder:实现登录 API、JWT 生成和验证逻辑 - Tester:编写单元测试、运行测试用例 - Reviewer:代码审查、检查安全漏洞 ### B. 任务执行 ```bash # 分发编码任务 tmux send-keys -t agent-team:0.1 "实现登录 API,使用 JWT,包括生成和验证逻辑" Enter # 等待编码完成 sleep 30 # 分发测试任务 tmux send-keys -t agent-team:0.2 "为登录功能编写单元测试,覆盖正常和异常场景" Enter # 等待测试完成 sleep 15 # 分发审查任务 tmux send-keys -t agent-team:0.3 "审查登录功能代码,检查安全性和代码质量" Enter ``` ### C. 结果收集 ```bash # 收集各 Agent 输出 tmux capture-pane -t agent-team:0.1 -p > login_coder.txt tmux capture-pane -t agent-team:0.2 -p > login_tester.txt tmux capture-pane -t agent-team:0.3 -p > login_reviewer.txt # 查看结果 cat login_coder.txt cat login_tester.txt cat login_reviewer.txt ``` # 七、常见问题 ## 1. 安装问题 - npm 权限问题:使用 sudo 或配置 npm 全局安装目录 - Tmux 版本过低:使用 Homebrew 更新到最新版本 ## 2. 配置问题 - Git Worktree 失败:确保 main 分支是最新的,没有未提交的更改 - Agent 启动失败:检查 API Key 是否正确配置 ## 3. 运行问题 - Pane 定位错误:使用 tmux list-pane 查看正确的 pane 编号 - 输出捕获不完整:增加 capture-pane 的捕获行数限制 *** ## 参考资料 1. [Twitter 原文 - 多 Agent 编码协作实践](https://x.com/chenchengpro/status/2033509892909379731?s=20) 最后修改:2026 年 03 月 17 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏