项目简介

Claude Swarm (v1) 旨在编排多个Claude Code实例,形成一个协作的AI开发团队。每个AI智能体(Agent)拥有特定角色、工具和工作目录,它们通过Model Context Protocol (MCP) 在层级结构中进行通信。您可以通过简单的YAML配置定义智能体拓扑结构,让智能体之间通过连接的实例委托任务。它非常适合需要专业AI智能体处理前端、后端、测试、运维或研究等复杂项目。

主要功能点

  • 多智能体编排: 组织多个AI智能体协同工作,形成开发团队。
  • MCP通信: 智能体之间通过MCP协议进行通信和任务委托。
  • 角色与工具: 为每个智能体定义专门的角色、可使用的工具和独立的工作目录。
  • 会话管理与恢复: 支持会话的持久化、监控和恢复,保存智能体状态。
  • 自定义MCP服务器: 智能体自身可作为MCP服务器,提供任务执行、会话信息和重置会话等工具。
  • 多种LLM支持: 虽然v1主要围绕Claude Code,但可通过其MCP机制集成其他LLM。

安装步骤

  1. 安装Claude CLI: 如果尚未安装,请全局安装Anthropic的Claude CLI工具:
    npm install -g @anthropic-ai/claude-code
  2. 安装Claude Swarm: 作为Ruby Gem安装:
    gem install claude_swarm
    或者添加到你的Gemfile中:
    gem 'claude_swarm', "~> 1.0"
    然后运行 'bundle install'。

服务器配置

MCP客户端需要配置MCP服务器的连接信息,以便通过JSON-RPC协议与其通信。Claude Swarm实例本身可通过以下命令作为MCP服务器启动:'claude-swarm mcp-serve',并接收一系列参数。MCP客户端在连接时需要了解这些参数的含义及如何构建请求。例如,一个MCP客户端配置连接到由Claude Swarm启动的MCP服务器时,其连接信息会包含该服务器的启动命令和参数。

以下是MCP服务器启动时可以接受的参数,这些参数告诉MCP客户端如何与智能体交互:

  • 'mcp-serve': 必选参数,表示启动MCP服务器模式。
  • '--name <INSTANCE_NAME>': 字符串,指定此MCP服务器对应的智能体名称(例如:'frontend')。
  • '--directory <WORKING_DIRECTORY>': 字符串,指定此智能体的工作目录。
  • '--directories <DIRECTORY_LIST>': 字符串数组,指定此智能体可访问的所有工作目录(包括主目录)。
  • '--model <LLM_MODEL>': 字符串,指定此智能体使用的LLM模型(例如:'opus', 'sonnet')。
  • '--prompt <SYSTEM_PROMPT_CONTENT>': 字符串,为智能体指定系统提示的内容。
  • '--description <ROLE_DESCRIPTION>': 字符串,描述智能体的角色。
  • '--allowed_tools <TOOL_LIST>': 字符串数组,指定智能体允许使用的工具列表(逗号分隔,例如:'Edit,Write,Bash')。
  • '--disallowed_tools <TOOL_LIST>': 字符串数组,指定智能体禁止使用的工具列表(逗号分隔)。
  • '--connections <CONNECTION_LIST>': 字符串数组,指定此智能体可以连接的其他智能体列表(逗号分隔)。
  • '--mcp_config_path <PATH>': 字符串,指定此MCP服务器的MCP配置文件路径。
  • '--calling_instance <CALLING_INSTANCE_NAME>': 字符串,调用此MCP服务器的智能体名称。
  • '--calling_instance_id <CALLING_INSTANCE_ID>': 字符串,调用此MCP服务器的智能体的唯一ID。
  • '--instance_id <INSTANCE_ID>': 字符串,此MCP服务器智能体的唯一ID。
  • '--claude_session_id <SESSION_ID>': 字符串,用于恢复Claude会话的ID。
  • '--vibe': 布尔值标记,启用“vibe”模式,跳过所有权限检查(注意风险)。
  • '--provider <PROVIDER>': 字符串,指定AI提供商('claude' 或 'openai')。
  • '--temperature <VALUE>': 浮点数,OpenAI模型的温度参数(0.0-2.0),不适用于O系列推理模型。
  • '--api_version <VERSION>': 字符串,OpenAI的API版本('chat_completion' 或 'responses')。
  • '--openai_token_env <ENV_VAR_NAME>': 字符串,OpenAI API Key的环境变量名(默认: 'OPENAI_API_KEY')。
  • '--base_url <URL>': 字符串,OpenAI API的自定义基础URL。
  • '--reasoning_effort <EFFORT>': 字符串,OpenAI O系列模型的推理强度('low', 'medium', 'high')。

MCP客户端请求示例 (JSON-RPC 协议): 要使MCP客户端能够与Claude Swarm启动的MCP服务器通信,客户端需要通过JSON-RPC协议发送请求。如果Claude Swarm实例被配置为监听'stdio',客户端可以直接通过其进程的标准输入和输出来发送和接收JSON-RPC消息。

例如,一个MCP客户端可以发送一个JSON-RPC请求来调用名为 'backend' 的智能体的 'task' 工具,并传递一个任务描述:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "backend.task",
  "params": {
    "task": "分析并实现用户认证模块,包括API接口和数据库设计。"
  }
}

MCP服务器将返回一个相应的JSON-RPC响应,其中包含智能体执行任务的结果。

这些配置参数通常由Claude Swarm内部自动生成和管理,用户主要通过YAML文件定义智能体协作的拓扑结构,Claude Swarm会自动处理底层MCP服务器的启动和连接。

基本使用方法

  1. 创建配置文件: 运行 'claude-swarm init' 命令,在当前目录创建一个名为 'claude-swarm.yml' 的基本配置文件模板。
  2. 配置智能体: 编辑 'claude-swarm.yml' 文件,定义你的智能体,包括它们的角色描述、工作目录、LLM模型、允许使用的工具以及它们之间可能存在的连接关系。
    version: 1
    swarm:
      name: "我的开发团队"
      main: lead  # 定义启动时的主智能体
      instances:
        lead:
          description: "团队负责人,协调开发工作"
          directory: .
          model: opus
          connections: [frontend, backend] # 连接前端和后端智能体
        frontend:
          description: "前端开发专家,负责UI/UX"
          directory: ./frontend
          model: opus
          allowed_tools: [Edit, Write, Bash] # 允许使用的工具
        backend:
          description: "后端开发专家,负责API和数据层"
          directory: ./backend  
          model: opus
          allowed_tools: [Edit, Write, Bash]
  3. 启动Swarm: 在包含 'claude-swarm.yml' 文件的目录中运行:
    claude-swarm
    这将启动你配置的主智能体,并根据定义自动启动和连接其他智能体作为其可调用的MCP服务器,开始协同工作。

信息

分类

AI与计算