SwarmForge Skill:用 tmux 把多个 AI Agent 编排成正规开发团队
SwarmForge 是一个基于 tmux 的多 Agent 编排平台,通过结构化的角色分工(two-pack / four-pack / six-pack)将多个 AI Agent 组织成协作开发团队。创始人 Robert C. Martin(”Uncle Bob”)将自己在软件工程领域数十年的方法论积累注入这套工具,使其不同于市面常见的”一堆 Agent 平行跑”思路——SwarmForge 用配置文件定义角色拓扑、用 Git worktree 隔离工作空间、用 daemon 驱动的交接协议(handoff protocol)保证 Agent 间不打架。今日 GitHub Trending 拿下 85 stars,近一个月持续活跃,正吸引越来越多想用多 Agent 协作提升工程交付质量的开发者。
功能与原则
SwarmForge 的核心是一套配置驱动的角色编排系统,每个角色的职责、使用的 Agent 后端(Claude / Codex / Copilot / Grok)、工作空间路径,都在 swarmforge/swarmforge.conf 里声明,无需改代码即可调整团队结构。平台提供三种开箱工作流:
- two-pack:coder + cleaner,快速实现/重构循环,适合小任务
- four-pack:specifier + coder + refactorer + architect,带需求规范的中等复杂度项目
- six-pack:完整六角色(specifier / coder / cleaner / architect / hardender / QA),覆盖从需求到验收的全流程
平台原则:Observable(每个角色一个 tmux 窗口,实时可见)、Self-hosted & Lightweight(纯本地运行,不依赖任何云服务)、Durable Handoff(daemon 管理的交接文件替代临时消息,防止状态丢失)。
认可度
- GitHub stars:1,819(截至 2026-08-08),今日新增 85 stars,持续在 Trending 榜
- Forks:199,4 位核心贡献者(含 Robert C. Martin 本人和 Claude 官方账号)
- 上一次活跃 commit 为 2026-07-10,项目仍在维护
- 编程语言:Clojure 89.7% + Shell 10.3%
链接
GitHub:https://github.com/unclebob/swarm-forge
原作者
Robert C. Martin(@unclebob),业界尊称”Uncle Bob”。经典著作包括《Clean Code》《The Clean Coder》《Agile Software Development》,是敏捷宣言合著人之一、软件工程领域最具影响力的布道者。近年来他将重心转向 AI 辅助编程与 Agent 工作流,SwarmForge 是他把这套工程纪律引入多 Agent 协作的第一次系统实践。
介绍
SwarmForge 起源于一个朴素观察:当前大多数 AI Agent 工具把”多 Agent”做成简单的并行调用——每个 Agent 独立工作、结果汇总。这种方式在简单任务上有效,但面对需要迭代、需要分工、需要相互审查的真实工程项目,Agent 之间会互相覆盖输出、丢失上下文、产生不一致的代码风格。
SwarmForge 的解法是为每个 Agent 分配独立的 Git worktree,确保物理隔离;通过 swarmforge.conf 配置文件定义团队拓扑结构;Agent 之间不直接发送消息,而是通过 daemon 管理的交接文件(handoff protocol)传递任务——每份交接都经过格式校验,确保接收方不会拿到损坏或歧义的任务信息。
整个系统的调度器是 tmux——每个角色对应一个 tmux session,每个 session 有独立的终端窗口。开发者可以实时”旁观”所有 Agent 的工作状态,也可以随时关闭某个窗口而不中断其他 Agent(Watchdog 会自动恢复被关闭的窗口)。
特点
- 配置即团队:编辑
swarmforge.conf一行配置即可增删角色、切换后端,无需改代码 - 原子化任务交接:handoff 协议基于校验过的文件,接收方拿到的是 commit 引用而非模糊消息,解决”Agent 说做了但没做清楚”的问题
- worktree 隔离:每个角色在独立 Git worktree 内工作,主分支永远不会被意外覆盖
- 睡眠抑制:swarm 运行时自动阻止主机休眠(macOS 用 caffeinate,Linux 用 systemd-inhibit),避免 Agent 在关键编译步骤被打断
- 分支式工作流预设:two-pack / four-pack / six-pack 三个分支对应三种复杂度,项目可根据需要直接
BRANCH=four-pack拉取对应配置,无需从零设计 - 终端自适应:自动检测并调用 macOS Terminal.app / Windows Terminal / Ghostty,支持自定义 terminal 后端
使用方法
前提条件:zsh、git、tmux、Babashka(bb)、至少一个配置的 Agent 后端(Claude / Codex / Copilot / Grok)。
启动(四人规格模式):
BRANCH=four-pack curl -L "https://github.com/unclebob/swarm-forge/archive/refs/heads/${BRANCH}.tar.gz" | tar -xz --strip-components=1
./swarm
启动后会在 .worktrees/ 下为每个角色创建独立 Git worktree,并弹出对应的 tmux 窗口。
停止:关闭 swarmforge.conf 中第一个配置的窗口(cleanup window), SwarmForge 会自动拆除所有 tmux session 并停止睡眠抑制。
查看状态:每个 Agent 的工作目录在 .worktrees/<role>/,交接状态在 .swarmforge/handoffs/。
使用场景与人群
- 适用场景:中大型代码重构、需多角色协同的软件开发项目、需要 spec-driven TDD 的严肃工程任务
- 目标用户:对软件工程方法论有要求的开发者/团队负责人;想用多 Agent 跑真实项目而非简单脚本的 AI 工程实践者;Robert C. Martin 方法论的信徒
- 不适场景:简单一次性问答、纯文案任务、快速头脑风暴——这些场景用单 Agent 更轻便
输入与输出案例
案例 1:小任务快速实现(two-pack)
输入:项目根目录下运行 ./swarm,指定 BRANCH=two-pack,在 swarmforge/roles/coder.prompt 中写入”实现一个带缓存的 HTTP 代理服务器,支持 GET/POST,超时 5s”。
输出:coder 在 .worktrees/coder/ 目录下用 TDD 方式实现代码并提交;cleaner 接收交接后对代码做 CRAP/DRY 检查、单元测试补充、架构改进建议,并写回 .worktrees/cleaner/。开发者最终在主目录获得经过两轮迭代的完整实现。
案例 2:六角色完整流程(six-pack)
输入:BRANCH=six-pack 启动,specifier 读取 project.prompt 将需求转化为 Gherkin 格式验收标准,coder 按 spec 切片实现,cleaner 清理,architect 审查模块边界,hardender 做变异测试强化,QA 将验收流程脚本化并最终汇报完成。
输出:每个角色的 commit 历史和 handoff 记录全部保留在各自的 worktree 中,.swarmforge/handoffs/ 目录下有完整的交接轨迹,团队可以回溯每一步决策和实现细节。
评论区
登录后可评论。