Skip to content

Agent Teams 团队协作

Agent Teams: Multi-Instance Collaboration

Agent Teams 是 Claude Code 的实验性功能,允许多个独立的 Claude 实例在同一个项目上协同工作。与 SubAgent 不同,Teams 中的每个 Agent 是独立的进程,拥有完全独立的会话和上下文。


核心概念

Core Concepts

Agent Teams 将"团队协作"的理念引入 AI 辅助开发。每个 Agent 就像团队中的一名开发者,独立工作但朝着共同目标推进。

架构概览

Architecture Overview

┌─────────────────────────────────────────────────┐
│                 协调层 (Coordinator)               │
├─────────────────────────────────────────────────┤
│                                                 │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐     │
│  │ Agent 实例│  │ Agent 实例│  │ Agent 实例│     │
│  │    #1    │  │    #2    │  │    #3    │     │
│  │ (独立进程)│  │ (独立进程)│  │ (独立进程)│     │
│  │          │  │          │  │          │     │
│  │ 前端重构  │  │ API 开发  │  │ 测试编写  │     │
│  └──────────┘  └──────────┘  └──────────┘     │
│       │              │              │           │
│       └──────────────┼──────────────┘           │
│                      │                          │
│              共享项目文件系统                      │
└─────────────────────────────────────────────────┘

关键特性

Key Features

特性说明
独立进程每个 Agent 运行在独立的进程中
独立会话每个 Agent 有完整的对话上下文
共享文件系统所有 Agent 访问同一个项目目录
并行执行多个 Agent 可同时工作
松耦合Agent 之间通过文件系统和消息松散协调

实验性功能启用

Enabling the Experimental Feature

Agent Teams 目前处于实验阶段,需要通过环境变量显式启用。

启用方法

How to Enable

在终端中设置环境变量:

bash
# Linux / macOS
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

# Windows (PowerShell)
$env:CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS = "1"

# Windows (CMD)
set CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

也可以在项目的 .env 文件中添加:

env
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

验证启用状态

Verifying the Feature Is Active

启用后,在 Claude Code 中可以通过以下方式确认功能已激活:

> /config

当前配置:
  ...
  experimental.agent_teams: enabled ✓
  ...

实验性功能注意事项

Experimental Feature Caveats

警告:实验性功能可能在未来版本中发生变化或被移除。在生产环境中使用时请格外注意。

  • API 和行为可能在版本间变化
  • 某些边界情况可能未充分处理
  • 建议在独立分支上使用,避免对主分支造成影响
  • 遇到问题时可通过 GitHub Issues 反馈

与 SubAgent 的区别

Differences from SubAgent

理解 Agent Teams 与 SubAgent 的区别是正确选择工具的关键。

对比表

Comparison Table

维度SubAgentAgent Teams
进程模型同一进程内的子任务独立进程
会话关系从属于主 Agent 会话完全独立的会话
生命周期随主 Agent 结束而终止可独立存活
上下文共享通过返回值传递摘要通过文件系统和消息
启动方式Agent 工具调用配置文件或命令行
适用规模单一任务分解大型项目多模块协作
用户交互不能直接与用户对话每个 Agent 可独立交互
状态管理由主 Agent 管理各自独立管理

类比理解

Analogy

SubAgent ≈ 函数调用
  主 Agent 调用一个"函数"来完成子任务,
  函数返回结果后主 Agent 继续。

Agent Teams ≈ 微服务
  每个 Agent 是独立的"服务",
  它们通过约定的协议交换信息,
  各自独立运行和扩展。

选择指南

When to Choose What

需要快速完成子任务?           → SubAgent
需要长时间独立工作?           → Agent Teams
任务之间有强依赖?             → SubAgent(更易协调)
任务之间较独立?               → Agent Teams
需要不同的系统提示词?         → Agent Teams
在同一个会话上下文中工作?     → SubAgent

Teams 工作模式

Team Working Patterns

Agent Teams 支持多种协作模式,适应不同的项目需求。

分工模式

Division of Labor Pattern

每个 Agent 负责项目的不同模块或层次,类似于团队中的角色分工。

项目结构:
├── frontend/      ← Agent #1 (前端专家)
│   ├── components/
│   ├── pages/
│   └── styles/
├── backend/       ← Agent #2 (后端专家)
│   ├── routes/
│   ├── services/
│   └── middleware/
├── database/      ← Agent #3 (数据库专家)
│   ├── migrations/
│   ├── models/
│   └── seeds/
└── tests/         ← Agent #4 (测试专家)
    ├── unit/
    ├── integration/
    └── e2e/

分工模式配置示例

json
{
  "team": {
    "agents": [
      {
        "name": "frontend-agent",
        "role": "前端开发",
        "scope": ["frontend/"],
        "system_prompt": "你是前端开发专家,负责 React 组件和页面开发。"
      },
      {
        "name": "backend-agent",
        "role": "后端开发",
        "scope": ["backend/"],
        "system_prompt": "你是后端开发专家,负责 API 路由和业务逻辑。"
      },
      {
        "name": "db-agent",
        "role": "数据库",
        "scope": ["database/"],
        "system_prompt": "你是数据库专家,负责数据模型和迁移脚本。"
      }
    ]
  }
}

分工模式的优势

优势说明
专注度高每个 Agent 只关注自己的领域
冲突少不同模块间文件修改不重叠
并行度高所有 Agent 可以同时工作
专业化可为每个 Agent 定制最适合的提示词

流水线模式

Pipeline Pattern

Agent 之间形成串行的处理链,每个 Agent 的输出是下一个 Agent 的输入。

Agent #1          Agent #2          Agent #3
(需求分析)   →    (代码实现)   →    (测试验证)


                                   Agent #4
                                   (代码审查)

流水线模式执行流程

阶段 1: 需求分析 Agent
  输入: 用户需求描述
  输出: 技术规格文档 (spec.md)

阶段 2: 代码实现 Agent
  输入: spec.md
  输出: 实现代码 + 实现说明

阶段 3: 测试验证 Agent
  输入: 实现代码
  输出: 测试用例 + 测试报告

阶段 4: 代码审查 Agent
  输入: 实现代码 + 测试报告
  输出: 审查意见 + 改进建议

混合模式

Hybrid Pattern

实际项目中,往往需要结合分工模式和流水线模式。

                ┌→ Agent A (前端) ─┐
用户需求 → 规划 Agent ─┤                  ├→ 集成 Agent → 发布
                └→ Agent B (后端) ─┘

配置方法

Configuration

项目级配置

Project-Level Configuration

在项目根目录创建 .claude/teams.json 配置文件:

json
{
  "version": "1",
  "team_name": "my-project-team",
  "agents": [
    {
      "id": "architect",
      "name": "架构师",
      "description": "负责系统架构设计和技术决策",
      "system_prompt_file": ".claude/prompts/architect.md",
      "tools": ["Read", "Grep", "Glob"],
      "auto_start": false
    },
    {
      "id": "implementer",
      "name": "实现者",
      "description": "负责具体的代码实现",
      "system_prompt_file": ".claude/prompts/implementer.md",
      "tools": ["Read", "Write", "Edit", "Bash", "Grep", "Glob"],
      "auto_start": false
    },
    {
      "id": "reviewer",
      "name": "审查者",
      "description": "负责代码审查和质量保证",
      "system_prompt_file": ".claude/prompts/reviewer.md",
      "tools": ["Read", "Grep", "Glob", "Bash"],
      "auto_start": false
    }
  ],
  "coordination": {
    "mode": "manual",
    "shared_artifacts_dir": ".claude/artifacts"
  }
}

配置参数说明

Configuration Parameters

参数类型说明
versionstring配置文件版本
team_namestring团队名称标识
agents[].idstringAgent 唯一标识符
agents[].namestringAgent 显示名称
agents[].descriptionstringAgent 职责描述
agents[].system_prompt_filestring系统提示词文件路径
agents[].toolsstring[]允许使用的工具列表
agents[].auto_startboolean是否自动启动
coordination.modestring协调模式 (manual / auto)
coordination.shared_artifacts_dirstring共享产物目录

通信机制

Communication Mechanisms

Agent Teams 中的通信是异步且松耦合的,主要通过以下方式实现。

文件系统通信

File System Communication

最基本的通信方式——通过共享文件交换信息。

.claude/artifacts/
├── architect-output.md      ← 架构师产出
├── implementation-plan.json ← 实现计划
├── review-notes.md          ← 审查意见
└── status.json              ← 整体状态追踪

状态文件示例

json
{
  "tasks": [
    {
      "id": "task-001",
      "assigned_to": "implementer",
      "status": "in_progress",
      "description": "实现用户认证模块",
      "dependencies": [],
      "output_file": "architect-output.md"
    },
    {
      "id": "task-002",
      "assigned_to": "reviewer",
      "status": "pending",
      "description": "审查用户认证模块",
      "dependencies": ["task-001"],
      "output_file": null
    }
  ],
  "last_updated": "2025-01-15T10:30:00Z"
}

消息队列通信

Message Queue Communication

通过内置的消息机制,Agent 之间可以发送结构化消息。

Agent A → 消息队列 → Agent B

消息格式:
{
  "from": "architect",
  "to": "implementer",
  "type": "task_assignment",
  "payload": {
    "task": "实现 /api/users 端点",
    "priority": "high",
    "reference": "architect-output.md#user-api"
  }
}

通信模式对比

Communication Pattern Comparison

通信方式延迟可靠性适用场景
文件系统产物共享、状态追踪
消息队列任务分配、事件通知
共享状态进度同步、锁协调

适用场景

Use Cases

大型项目开发

Large-Scale Project Development

场景:电商平台全栈开发

Agent 团队配置:
├── 前端 Agent:React + TypeScript UI 开发
├── API Agent:RESTful API 设计与实现
├── 数据库 Agent:Schema 设计、迁移、索引优化
├── 认证 Agent:OAuth2、JWT、权限系统
└── 测试 Agent:E2E 测试、性能测试

协作流程:
1. 所有 Agent 阅读需求文档
2. 各自在负责的模块中工作
3. 通过共享的接口契约文件协调
4. 测试 Agent 对所有模块进行集成验证

多模块并行开发

Parallel Multi-Module Development

场景:微服务架构的同时开发

Service A Agent ──→ user-service/
Service B Agent ──→ order-service/
Service C Agent ──→ payment-service/
Gateway Agent   ──→ api-gateway/

每个 Agent 独立开发自己的服务,
通过 Proto/OpenAPI 定义交互契约。

代码迁移项目

Code Migration Projects

场景:从 JavaScript 迁移到 TypeScript

分析 Agent:识别需要迁移的文件,评估复杂度
迁移 Agent x3:同时迁移不同目录的文件
类型定义 Agent:创建和维护共享类型定义
验证 Agent:运行类型检查和测试确保无回归

当前限制和注意事项

Current Limitations and Considerations

已知限制

Known Limitations

限制说明缓解措施
文件冲突多个 Agent 修改同一文件时可能冲突通过 scope 约束各 Agent 的工作范围
资源消耗每个 Agent 实例消耗独立的资源控制同时运行的 Agent 数量
协调复杂度Agent 之间的协调需要额外开销使用明确的通信协议和状态追踪
上下文不共享Agent 之间无法直接共享对话上下文通过文件产物传递关键信息
实验性质API 可能变化关注版本更新日志

安全注意事项

Security Considerations

  1. 权限控制:确保每个 Agent 只能访问其职责范围内的文件
  2. 敏感信息:避免在共享产物中包含密钥或凭据
  3. 操作审计:定期检查各 Agent 的操作日志

性能建议

Performance Recommendations

推荐做法:
├── 限制同时运行的 Agent 数量(建议 ≤ 5)
├── 为只读任务使用轻量级 Agent 配置
├── 合理设置 scope 避免不必要的文件扫描
└── 定期清理共享产物目录

不推荐做法:
├── 启动过多 Agent 导致资源耗尽
├── 让所有 Agent 拥有完整的写入权限
├── 缺少明确的任务分配导致重复工作
└── 忽略文件冲突的可能性

调试技巧

Debugging Tips

当 Agent Teams 出现问题时,可以:

  1. 检查各 Agent 的日志输出
  2. 查看共享产物目录中的状态文件
  3. 验证环境变量是否正确设置
  4. 单独运行出问题的 Agent 进行隔离排查
  5. 使用 /agents 命令查看各 Agent 的运行状态

总结

Summary

Agent Teams 将 Claude Code 从单一 Agent 的工作模式扩展为多 Agent 协作模式,适合大型、复杂的项目开发场景。虽然目前仍处于实验阶段,但其潜力巨大。核心要点:

  • 通过环境变量 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 启用
  • 每个 Agent 是独立进程,拥有独立会话
  • 支持分工模式、流水线模式和混合模式
  • 通过文件系统和消息队列实现松耦合通信
  • 注意文件冲突、资源消耗等限制
  • 适合大型项目的多模块并行开发