swarm-forge
基于tmux的多AI Agent协作流水线,用文件handoff实现专业化分工
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于tmux的多AI Agent协作流水线,用文件handoff实现专业化分工
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:SwarmForge 运行时多窗口协作示意
你是否遇到过这样的困境:给 AI 编程工具下达一个"做个项目管理后台"的需求,它却只生成一堆半成品代码,逻辑残缺、测试缺失、连基本错误处理都没有?问题的根源在于——单个 Agent 的能力有天花板,它无法同时扮演架构师、开发者、测试员和质量审计员等多个角色。
SwarmForge 正是为解决这一痛点而生的。它的核心理念是:让多个专业化 AI Agent 组成"swarm"(蜂群),各司其职、流水线协作,像一个真实的软件工程团队一样工作。这个项目由 Clojure 语言构建,基于 Babashka 脚本引擎,在终端的 tmux 会话中启动和管理多个 AI Agent。
想象一个标准的软件开发流程:产品经理将需求转化为精确的规格说明,开发者按规格写代码,测试工程师编写验收测试,架构师审查模块边界,质量工程师做最后的强化和修复。每个环节都需要专门的注意力,单一 Agent 很难在"实现"和"审查"之间保持同等的高水准。
SwarmForge 将这个分工逻辑固化成一个可配置的 Agent 团队系统。你只需要一个命令,它就能在本地终端里启动 n 个 AI Agent 窗口(每个 Agent 独占一个 tmux 窗口),每个 Agent 拥有自己专属的角色提示词(role prompt)和工作目录(git worktree),通过文件系统传递消息(handoff 文件),彼此协作完成整个开发流程。
SwarmForge 不需要从零配置,提供了三种开箱即用的团队拓扑:
| 团队 | 角色数 | 适用场景 |
|---|---|---|
| two-pack | 2 | 快速小任务:coder(开发+TDD)+ cleaner(清理+强化) |
| four-pack | 4 | 中等复杂度:specifier + coder + refactorer + architect |
| six-pack | 6 | 大型项目:specifier + coder + cleaner + architect + hardener + QA |
以 six-pack 为例,完整的协作流程是:specifier 将需求翻译成 Gherkin 格式的验收规范 → coder 按规范 TDD 开发 → cleaner 做代码质量清理 → architect 审查模块架构 → hardener 做变异测试强化 → QA 执行最终验收测试。整个流程环环相扣,每个 Agent 只专注自己的质量关卡。
SwarmForge 的 Agent 间通信不走 API,而是通过文件系统实现。具体来说,每个 Agent 的工作目录下有一个 .swarmforge/handoffs/ 目录,其中包含 inbox/(收件箱)和 outbox/(发件箱)。当一个 Agent 完成任务要交接给下一个 Agent 时,它在 outbox 写一个 .handoff 文件,handoff daemon 监控到这个文件后,验证目标、复制到收件方目录、发送 tmux 唤醒通知。
这种设计的优势在于:完全去中心化,不需要共享数据库或消息队列;审计友好,所有交接记录都沉淀在文件系统里;延迟低,直接文件 I/O 无需网络开销。handoff 文件还有优先级字段(00-99)和 UTC 时间戳,保证在并发交接时的有序性。
SwarmForge 的代码规模较小(约 3MB),但结构清晰:
swarmforge.bb:核心编排引擎,用 Babashka 实现,负责解析 swarmforge.conf 配置、创建 tmux 会话和工作目录、注入角色提示词和宪法文件、启动 handoff daemonhandoff_lib.bb:交接协议库,实现 handoff 文件的读写、角色发现、收件箱管理swarmforge.sh / swarmforge.bb:入口包装脚本,用 zsh + bb 执行核心引擎constitution/:宪法文件目录,包含 engineering.prompt、handoffs.prompt、workflow.prompt,定义了所有 Agent 共同遵守的行为准则.swarm 包装器:每个可运行分支都包含一个 ./swarm 脚本,首次运行自动从 main 分支拉取共享脚本和宪法文件代码质量方面:项目包含 bb.edn 定义的测试任务,使用 clojure.test 框架对 handoff 协议和脚本逻辑做单元验证;Babashka 依赖管理规范(babashka.fs、babashka.process 等);注释覆盖核心逻辑(tmux socket 探测、base-index 推导等)。
SwarmForge 是一个纯命令行工具,面向熟悉终端、tmux 和 AI 编程工具(Claude Code / Codex / Copilot)的开发者。它的上手流程不复杂:
# 选择团队配置(two-pack/four-pack/six-pack)
BRANCH=four-pack
curl -L "https://github.com/unclebob/swarm-forge/archive/refs/heads/${BRANCH}.tar.gz" | tar -xz --strip-components=1
# 启动 swarm(在目标项目目录下)
./swarm
不过有几个现实门槛需要注意:需要手动安装 zsh、git、tmux 和 babashka;Agent 调用需要各自配置 API 密钥(Claude / Codex / Copilot / Grok);不提供 Web UI,所有交互在终端进行;多 Agent 并发运行时 API 费用会叠加。
SwarmForge 出现在 2026 年 4 月,正值 AI Agent 协作框架大量涌现的时期。它代表了一种**"最小化基础设施"的设计哲学——不依赖复杂的容器编排或云服务,只用 tmux + 文件系统就实现了多 Agent 流水线。这与微软 AutoGen、LangChain Agents、CrewAI 等框架的思路形成鲜明对比:那些框架追求功能丰富,SwarmForge 追求可靠性和透明度**。
从增长数据看,项目发布 2 个月内获得了 873 stars 和 98 forks,对于一个面向程序员的小众工具而言,这个传播速度相当可观。尤其是"两行命令启动多 Agent 协作"的极简体验,切中了当前 AI 编程工具缺乏流程规范化的痛点。
如果你在用 AI 编程工具做真实项目,SwarmForge 提供了一种可控的、可见的、可干预的多 Agent 工作流,值得尝试。