项目简介

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。安装非常简单:

  1. 确保您已安装 Ruby (版本 3.1.0 或更高) 和 Claude CLI 并已配置。

  2. 执行以下命令安装 Gem:

    gem install claude_swarm
  3. 如果您在一个使用 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 客户端一样。

基本使用方法

  1. 在一个项目目录下创建或修改 'claude-swarm.yml' 文件,定义您的智能体团队结构和配置。可以使用 'claude-swarm init' 命令生成一个模板文件。

  2. 确保配置文件中指定的智能体工作目录存在。

  3. 在包含 'claude-swarm.yml' 文件的目录下运行以下命令启动 Swarm:

    claude-swarm
  4. Claude Swarm 将会根据配置启动主智能体。主智能体将能够通过其配置的连接与其他智能体(它们会作为独立的进程启动并运行 MCP 服务器)通信和委派任务。会话信息和日志文件将保存在项目目录下的 '.claude-swarm/sessions/{timestamp}/' 目录中。

  5. 您可以通过主智能体(即运行 '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与计算