项目简介
Claude Swarm 是一个用于编排和管理多个 Claude AI 智能体的工具。它允许您定义一个由不同角色的智能体组成的协作团队,这些智能体通过 Model Context Protocol (MCP) 进行通信和协作。您可以为每个智能体配置其工作目录、允许使用的工具以及连接到其他智能体或外部 MCP 服务器。这使得构建复杂的AI工作流成为可能,例如让不同的智能体分别处理前端、后端或DevOps任务,并相互委派子任务。
主要功能点
- 智能体编排: 通过简单的YAML配置文件定义多个AI智能体实例及其相互关系。
- 基于角色的配置: 为每个智能体指定描述、工作目录、使用的 Claude 模型和系统提示。
- 工具和资源管理: 控制每个智能体可以访问的工具(如文件读写、Bash命令、Web搜索等),并限定其工作目录。
- 多智能体协作: 智能体之间可以通过MCP协议相互调用,委派任务,形成协作网络。
- 集成外部MCP: 支持连接额外的标准MCP服务器,扩展智能体的能力。
- 会话管理: 统一管理所有智能体的会话文件,并支持通过MCP工具重置会话。
- 灵活的连接方式: 支持Stdio和SSE等MCP传输协议。
安装步骤
Claude Swarm 是一个 Ruby Gem。安装非常简单:
-
确保您已安装 Ruby (版本 3.1.0 或更高) 和 Claude CLI 并已配置。
-
执行以下命令安装 Gem:
gem install claude_swarm -
如果您在一个使用 Gemfile 的项目中使用,可以将 'gem 'claude_swarm'' 添加到您的 Gemfile 中,然后运行 'bundle install'。
服务器配置
Claude Swarm 中的每个智能体都可以作为 MCP 服务器与其他智能体通信。一个 MCP 客户端(例如另一个智能体实例或独立的客户端应用)需要知道如何连接到由 Claude Swarm 启动的某个智能体 MCP 服务器。
连接到一个由 Claude Swarm 启动的特定智能体实例(例如名为 'backend' 的实例)时,其 MCP 服务器配置通常是 'stdio' 类型,并使用 'claude-swarm mcp-serve' 命令作为入口点。客户端配置会包含以下信息:
- 'type': 连接类型,通常是 'stdio'。
- 'command': 启动该智能体 MCP 服务器的命令,即 'claude-swarm' 可执行文件。
- 'args': 传递给 'claude-swarm' 命令的参数,用于指定要启动哪个智能体、其配置信息以及它是被哪个智能体调用的。这些参数由 Claude Swarm 自动生成,通常包括:
- 'mcp-serve': 指定运行 MCP 服务器子命令。
- '--name [智能体名称]': 指定当前启动的智能体实例的名称(例如 'backend')。
- '--directory [工作目录]': 指定该智能体的工作目录路径。
- '--model [模型名称]': 指定该智能体使用的 Claude 模型(如 'opus')。
- '--prompt [系统提示]': 可选,该智能体使用的系统提示。
- '--description [描述]': 可选,该智能体的角色描述。
- '--tools [工具列表]': 可选,该智能体允许使用的工具列表(逗号分隔)。
- '--mcp-config-path [路径]': MCP 客户端(即 'claude' CLI)需要加载的MCP配置文件路径。
- '--calling-instance [调用者名称]': 哪个智能体正在启动或连接到这个服务器。
- '--vibe': 可选,如果启用,允许所有工具。
一个 MCP 客户端连接到 'backend' 智能体时,其配置概念上类似于(非实际代码,仅为说明):
{ "mcpServers": { "backend_agent": { # 客户端给这个服务器起的名字 "type": "stdio", "command": "claude-swarm", "args": [ "mcp-serve", "--name", "backend", // 智能体名称 "--directory", "/path/to/backend/dir", // 智能体工作目录 "--model", "sonnet", // 智能体模型 "--prompt", "...", // 智能体提示 (可选) "--description", "...", // 智能体描述 (可选) "--tools", "Bash,Edit,Read", // 智能体工具 (可选) "--mcp-config-path", "/path/to/.claude-swarm/sessions/.../backend.mcp.json", // 由swarm生成的该智能体的mcp配置 "--calling-instance", "lead" // 哪个智能体正在调用 // ... 其他参数如 --vibe ] } } }
请注意: 在使用 Claude Swarm 时,这些 MCP 配置 ('*.mcp.json' 文件) 是由 'claude-swarm' 工具根据您的 'claude-swarm.yml' 配置自动生成的,您通常不需要手动创建或修改它们。它们位于 '.claude-swarm/sessions/{timestamp}/' 目录下,用于 Claude CLI 启动时加载。
除了智能体之间的连接,您还可以在 'claude-swarm.yml' 中直接配置连接到其他独立的 MCP 服务器(Stdio 或 SSE 类型),这时您需要提供该外部服务器的连接信息(命令/参数 或 URL),就像配置任何标准 MCP 客户端一样。
基本使用方法
-
在一个项目目录下创建或修改 'claude-swarm.yml' 文件,定义您的智能体团队结构和配置。可以使用 'claude-swarm init' 命令生成一个模板文件。
-
确保配置文件中指定的智能体工作目录存在。
-
在包含 'claude-swarm.yml' 文件的目录下运行以下命令启动 Swarm:
claude-swarm -
Claude Swarm 将会根据配置启动主智能体。主智能体将能够通过其配置的连接与其他智能体(它们会作为独立的进程启动并运行 MCP 服务器)通信和委派任务。会话信息和日志文件将保存在项目目录下的 '.claude-swarm/sessions/{timestamp}/' 目录中。
-
您可以通过主智能体(即运行 'claude-swarm' 后交互的Claude CLI实例)给整个团队下达任务。
其他命令
- 'claude-swarm --config your-config.yml': 使用指定的配置文件启动。
- 'claude-swarm --vibe': 以“Vibe模式”启动,忽略所有工具权限限制(谨慎使用!)。
- 'claude-swarm -p "你的任务提示"': 在非交互模式下运行 Swarm,并直接给主智能体传递一个任务提示。
- 'claude-swarm init [-f]': 初始化一个 'claude-swarm.yml' 文件。
信息
分类
AI与计算