项目简介
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。
安装步骤
- 安装Claude CLI: 如果尚未安装,请全局安装Anthropic的Claude CLI工具:
npm install -g @anthropic-ai/claude-code - 安装Claude Swarm: 作为Ruby Gem安装:
或者添加到你的Gemfile中:gem install claude_swarm
然后运行 'bundle install'。gem 'claude_swarm', "~> 1.0"
服务器配置
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服务器的启动和连接。
基本使用方法
- 创建配置文件: 运行 'claude-swarm init' 命令,在当前目录创建一个名为 'claude-swarm.yml' 的基本配置文件模板。
- 配置智能体: 编辑 '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] - 启动Swarm: 在包含 'claude-swarm.yml' 文件的目录中运行:
这将启动你配置的主智能体,并根据定义自动启动和连接其他智能体作为其可调用的MCP服务器,开始协同工作。claude-swarm
信息
分类
AI与计算