swarm-tools
OpenCode/Claude Code 的多 Agent 协作插件,通过 Hive 任务追踪 +
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
OpenCode/Claude Code 的多 Agent 协作插件,通过 Hive 任务追踪 +
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2024年的某天,AI 编程工具开始普及,但一个根本问题始终没有解决:单个 Agent 在处理大型任务时,会因为上下文耗尽而「失忆」——它会忘记五分钟前自己做了什么决定,导致代码风格混乱、逻辑重复、甚至产生冲突。
Joel Hooks 决定解决这个困境。他提出的方案不是让单个 Agent 更强,而是让一群 Agent 能像真实团队一样协作——有人负责规划、有人负责写代码、有人负责审查、有人负责记忆。它们通过消息传递分配任务,通过 Git 分支隔离工作,通过事件溯源记录决策。
这就是 Swarm(蜂群) 项目的起点。
Joel Hooks 是 AI 工程领域的老兵,曾任 AI FOUNDATION 技术负责人,现活跃于 OpenCode 和 Claude Code 生态。他长期关注一个问题:当 AI Agent 处理真实生产级代码库时,如何保持上下文完整性和团队协作能力?
Swarm 项目的核心灵感来自两个方向:一是传统软件工程中的 Issue Tracker 系统(如 Jira、Linear),二是分布式系统中的 事件溯源(Event Sourcing) 架构。两者的结合,让 Swarm 成为了一个「Git 原生的 AI 协作框架」。
Swarm 的架构围绕几个核心概念展开,这些概念共同构成了一个完整的 AI 多智能体协作范式。
Hive(蜂巢) 是 Swarm 的任务追踪系统,替代了传统的 Jira/Linear。它以 Git 内部文件(.hive/ 目录)存储任务数据,因此天然具备版本控制和跨团队同步能力。每个任务在 Hive 中被称为一个 Cell(格子),整个任务树被称为 CellTree。Cell 有完整的状态机(待办 → 进行中 → 已完成),Agent 在执行过程中必须主动更新状态,不得「静默推进」。
Swarm(蜂群) 是任务分解与编排的核心。当用户输入 /swarm "添加 OAuth 用户认证" 这样的指令时,Coordinator(协调者)Agent 会执行以下步骤:首先将任务分解为多个可并行执行的子任务;其次为每个子任务分配独占的文件锁,防止多 Agent 同时修改同一文件产生冲突;然后通过 Swarm Mail(嵌入式事件存储)协调 Agent 间的通信;最后在每个子任务完成后,由协调者进行 对抗性审查(Adversarial Review),确保代码质量达标。
Hivemind(集体智慧) 是 Swarm 的记忆系统。它将 Agent 的「学习」分为两类:短期的会话记忆(Session Memory),记录当前任务上下文;长期的知识学习(Learnings),记录哪些策略有效、哪些反模式需要避免。Hivemind 通过 SQLite(基于 swarm-mail 的 libSQL)持久化存储,支持语义搜索。
Compaction(压缩) 是 Swarm 应对上下文耗尽的核心机制。当 Agent 的上下文即将达到模型限制时,Compaction Hook 会自动触发,将历史对话压缩为结构化的「决策轨迹」(Decision Trace),保留关键信息的同时大幅减少 token 消耗。这一机制由 evalite 框架支撑,Swarm 内置了 swarm-decomposition、coordinator-session、compaction-prompt 等多个评测任务。
从代码结构看,Swarm 是一个典型的 TypeScript/Bun Monorepo,由 Turborepo 管理工作空间:
packages/opencode-swarm-plugin:最核心的包,v0.63.2,提供 OpenCode 插件和 Claude Code MCP 服务器。导出了 swarmTools、hiveTools、swarmMailTools、structuredTools、reviewTools 等多组工具集。支持 /swarm、/hive、/structured 等命令行斜杠指令。packages/swarm-mail:Swarm Mail,嵌入式事件存储库。基于 libSQL(SQLite)实现,提供 createEvent、appendEvent、getSwarmMailLibSQL 等 API,支持通过 Redis 消息队列实现跨进程通信。packages/swarm-dashboard:Web 可视化面板。packages/swarm-evals:评测框架,基于 evalite 构建。packages/swarm-queue:基于 Redis 的任务队列。packages/shared-types:跨包共享的 TypeScript 类型定义(Zod Schema)。apps/web:文档站点,基于 Next.js + Fumadocs 构建。技术栈上,Swarm 主要使用 TypeScript + Bun(构建工具链)、Zod v4(运行时类型校验)、Effect(函数式错误处理)、Model Context Protocol (MCP) SDK(与 Claude Code 集成)、ioredis(Redis 客户端)、pino(结构化日志)。整体架构遵循 插件化 + 事件驱动 的设计原则,各模块间通过 TypeScript 接口和共享 Schema 解耦。
对于 OpenCode 用户,安装 Swarm 只需要两步:
npm install -g opencode-swarm-plugin
swarm setup
安装完成后,在任何 OpenCode 会话中直接输入 /swarm "你的任务描述",Swarm 就会自动启动协调流程。对于 Claude Code 用户,通过 Marketplace 安装插件后,Swarm 以 MCP 服务器方式运行,提供相同的功能接口。
对于普通开发者来说,Swarm 的核心价值在于将一个复杂的编程任务自动拆解为可并行的子任务,每个子任务由独立的 Agent 处理,过程中通过文件锁避免冲突、通过事件总线协调状态、通过审查机制保证质量。这是 AI 编程从「单人助手」向「AI 团队」演进的标志性实践。
Swarm 目前的局限主要集中在以下方面。首先,它强依赖 OpenCode 或 Claude Code 生态,对于使用其他 AI 编程工具的用户(如 Copilot、Cursor)的直接价值有限。其次,缺乏一键部署方案——项目没有提供 Dockerfile 或 Docker Compose,部署依赖用户的本地环境配置。第三,文档主要面向有经验的 AI 开发者,对于 AI 编程新手来说,Hive、Cell、Compaction 等概念需要一定的学习成本。第四,Swarm 的评测框架和决策轨迹系统虽然设计精巧,但在实际大型生产项目中的长期稳定性尚未得到充分验证。
Swarm 项目在 GitHub 上获得了 700+ stars,虽然规模不大,但其在多 Agent 协作领域的探索具有重要的先导意义。它证明了通过事件溯源 + 文件锁隔离 + 统一协调者的组合,可以让多个 AI Agent 在同一个代码库上并行工作而不产生灾难性的冲突。
这一思路与 OpenAI 的 Swarm(现已演变为 OpenAI Agents SDK)以及 LangChain 的 LangGraph 在理念上有相通之处,但 Swarm 的独特之处在于它深度集成 Git 生态系统,任务追踪和代码变更天然共存于同一个版本控制系统内。这种设计避免了引入额外的数据存储和服务依赖,让 AI 协作更容易融入现有的开发工作流。
随着 AI 编程工具从「单 Agent 辅助」向「多 Agent 协作」演进,Swarm 作为这一趋势的早期实践,值得 AI 开发者和 AI 编程爱好者持续关注。