← blog AI Agent · 2026-04-08

Claude Agent 编排完全指南

深入解析 Claude Code 中的智能体编排机制,涵盖并行执行、串行执行、互动协调等核心编排方式,以及可用代理列表和实战技巧。

15 min read

在现代软件开发中,Claude Code 不再只是单一的 AI 助手,而是化身为一个智能体编排平台。通过巧妙地组合多个专业代理(Agent),你可以同时处理复杂的安全审查、性能分析和代码重构任务——这正是 Agent 编排的核心魅力所在。

本文将深入探讨 Claude Code 中的智能体编排机制,涵盖从基础概念到高级技巧的完整知识体系。


1. 核心概念:什么是智能体编排

1.1 编排 vs 自动化

对比维度传统自动化智能体编排
执行模式预定义的固定流程动态决策和任务分配
组件关系脚本调用脚本,线性执行多个独立代理协作
错误处理简单的 try-catch代理间相互感知和协调
扩展性受限于脚本逻辑按需添加新代理类型

1.2 两种使用场景

Claude Code 的智能体编排可以在两种截然不同的场景中运行:

graph TD
    Orchestration["Claude Code 智能体编排"]
    subgraph 场景一["场景一:对话式编排"]
        S1A["用户直接说话触发代理<br/>'帮我并行做这三件事'"]
        S1B["交互式,即时反馈"]
        S1A --> S1B
    end
    subgraph 场景二["场景二:API/脚本式编排"]
        S2A["编写自动化脚本调用 API"]
        S2B["实现复杂的 CI/CD 流程"]
        S2C["可重复,可集成到系统"]
        S2A --> S2B --> S2C
    end
    Orchestration --> 场景一
    Orchestration --> 场景二

2. 可用代理列表详解

Claude Code 内置了 9 个专业代理,每个代理都有其独特的职责和使用场景:

2.1 代理总览表

代理名称用途触发时机典型场景
planner实现规划复杂功能开始前创建技术方案、任务分解
architect系统设计架构决策时刻设计系统蓝图、技术选型
tdd-guide测试驱动开发Bug 修复或新功能编写测试、验证实现
code-reviewer代码审查编写代码后审查代码质量、提出改进
security-reviewer安全分析提交代码前检查漏洞、OWASP Top 10
build-error-resolver构建错误修复构建失败时诊断错误、修复编译问题
e2e-runner端到端测试关键用户流程验证运行完整的用户场景测试
refactor-cleaner死代码清理代码维护阶段移除无用代码、优化结构
doc-updater文档更新文档需要同步时更新 API 文档、README

2.2 代理职责详解

planner - 实现规划代理

职责:创建详细的实现计划
输入:功能需求描述
输出:分解的任务列表、技术方案
适用:任何复杂功能开始前

architect - 架构设计代理

职责:进行系统级设计决策
输入:需求和约束条件
输出:架构图、设计模式建议
适用:微服务设计、数据库选型等重大决策

tdd-guide - TDD 流程代理

职责:引导测试驱动开发
输入:功能需求
输出:RED 测试 → GREEN 实现 → REFACTOR 循环
适用:新功能开发、Bug 修复

code-reviewer - 代码审查代理

职责:审查代码质量和模式
输入:待审查的代码
输出:具体改进建议(按 CRITICAL/HIGH/MEDIUM/LOW 分级)
适用:代码编写完成后

security-reviewer - 安全分析代理

职责:识别安全漏洞
输入:代码或系统设计
输出:安全问题和修复建议
适用:涉及认证、支付、用户数据时(强制触发)

build-error-resolver - 构建错误解决代理

职责:诊断和修复构建问题
输入:构建错误日志
输出:错误原因分析和修复步骤
适用:npm build、mvn compile 等失败时

e2e-runner - 端到端测试代理

职责:执行完整的用户场景测试
输入:测试场景描述
输出:测试结果报告
适用:关键流程上线前的验证

refactor-cleaner - 重构清理代理

职责:识别和移除死代码
输入:代码库
输出:可删除的代码列表、重构建议
适用:定期代码维护

doc-updater - 文档更新代理

职责:保持文档同步
输入:代码变更
输出:更新的文档内容
适用:API 变更、功能更新后

3. 对话式编排:直接在对话中触发

在 Claude Code 对话中,你可以通过自然语言直接触发智能体编排。这是最直接的编排方式。

3.1 并行执行:同时处理多个任务

当任务之间相互独立时,并行执行是最高效的选择。

触发方式

直接说:"帮我并行做这三件事"

工作原理图

graph TD
    User["用户: '帮我并行做这三件事'"] --> Master["Claude Code 主控"]
    Master --> A1["Agent 1 (安全审查)"]
    Master --> A2["Agent 2 (代码审查)"]
    Master --> A3["Agent 3 (性能分析)"]
    A1 --> Result["结果汇总返回"]
    A2 --> Result
    A3 --> Result

实际对话示例

用户: 帮我并行做这三件事:
      1. 审查 auth 模块的安全性
      2. 检查用户输入验证逻辑
      3. 审查数据库查询的 SQL 注入防护

Claude Code: 
  → [security-reviewer] 正在审查 auth 模块安全性...
  → [code-reviewer] 正在检查用户输入验证逻辑...
  → [security-reviewer] 正在审查 SQL 注入防护...

  汇总结果:
  ┌─────────────────────────────────────────────────────┐
  │ [CRITICAL] SQL 注入:user_query 参数未使用参数化查询 │
  │ [HIGH] XSS 漏洞:profile 接口未转义 HTML 输出       │
  │ [MEDIUM] 缺少 Rate Limiting 在登录接口             │
  └─────────────────────────────────────────────────────┘

3.2 串行执行:按顺序依次处理

当任务之间存在依赖关系(必须先完成 A 才能做 B)时,使用串行执行。

触发方式

直接说:"先做 A,然后做 B,最后做 C"

工作原理图

graph LR
    User["用户: '先做 A,然后做 B,最后做 C'"] --> Master["Claude Code 主控"]
    Master --> TaskA["任务 A (规划阶段)"]
    TaskA -->|完成后| TaskB["任务 B (开发阶段)"]
    TaskB --> TaskC["任务 C (审查阶段)"]

实际对话示例

用户: 先规划这个新功能的实现方案,然后按照方案写代码,最后写测试

Claude Code:
  阶段 1 - [planner] 创建实现计划
  ┌─────────────────────────────────────┐
  │ 1. 数据模型设计                       │
  │ 2. API 端点规划                       │
  │ 3. 业务逻辑分层                       │
  │ 4. 任务分解清单                       │
  └─────────────────────────────────────┘
  
  阶段 2 - 执行计划中的任务...
  
  阶段 3 - [tdd-guide] 编写测试
  ┌─────────────────────────────────────┐
  │ ✓ 单元测试覆盖率达到 85%             │
  │ ✓ 集成测试验证通过                   │
  └─────────────────────────────────────┘

3.3 混合编排:并行与串行结合

复杂场景中,你可以自由组合并行和串行执行:

用户: 首先并行进行安全审查和代码审查,然后根据审查结果
      执行重构,最后更新文档

执行流程:
  阶段 1 (并行):  [security-reviewer] + [code-reviewer]
                      ↓
  阶段 2 (串行):  [refactor-cleaner] 根据审查结果重构
                      ↓
  阶段 3 (并行):  [doc-updater] + [code-reviewer] 文档更新 + 验证

4. API/脚本式编排:自动化工作流

除了对话式编排,你还可以在自动化脚本中调用 Claude API,实现复杂的编排逻辑。

4.1 使用 Anthropic SDK 调用代理

# Python 示例:通过 API 调用多个代理
from anthropic import Anthropic

client = Anthropic()

def orchestrate_security_review(code_path: str):
    """编排安全审查工作流"""
    
    # 启动安全审查代理
    security_review = client.messages.create(
        model="claude-opus-4-5",
        max_tokens=4096,
        messages=[
            {
                "role": "user", 
                "content": f"请审查以下代码的安全漏洞:\n{open(code_path).read()}"
            }
        ],
        # 使用代理标识
        metadata={
            "agent": "security-reviewer"
        }
    )
    
    return security_review.content

def orchestrate_full_review(code_path: str):
    """完整审查工作流:安全 + 代码质量 + 性能"""
    
    # 并行执行多个审查
    results = [
        client.messages.create(
            model="claude-sonnet-4-6",
            max_tokens=2048,
            messages=[{"role": "user", "content": f"安全审查: {code_path}"}],
            metadata={"agent": "security-reviewer"}
        ),
        client.messages.create(
            model="claude-sonnet-4-6",
            max_tokens=2048,
            messages=[{"role": "user", "content": f"代码审查: {code_path}"}],
            metadata={"agent": "code-reviewer"}
        ),
        client.messages.create(
            model="claude-haiku-4-5",
            max_tokens=2048,
            messages=[{"role": "user", "content": f"性能分析: {code_path}"}],
            metadata={"agent": "performance-reviewer"}
        ),
    ]
    
    return [r.content for r in results]

4.2 TypeScript SDK 示例

// TypeScript 示例:CI/CD 中的自动化审查
import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic();

async function ciSecurityGate(codeChanges: string[]): Promise<boolean> {
  const results = await Promise.all(
    codeChanges.map(async (change) => {
      const response = await client.messages.create({
        model: 'claude-opus-4-5',
        max_tokens: 4096,
        messages: [{
          role: 'user',
          content: `安全审查此提交: ${change}`
        }],
        metadata: { agent: 'security-reviewer' }
      });
      return response.content;
    })
  );

  // 检查是否有 CRITICAL 或 HIGH 级别问题
  const hasBlockingIssues = results.some(r => 
    r.includes('[CRITICAL]') || r.includes('[HIGH]')
  );

  if (hasBlockingIssues) {
    console.error('安全审查未通过,阻止合并');
    process.exit(1);
  }

  return true;
}

4.3 两种场景对比

对比维度对话式编排API/脚本式编排
交互方式自然语言触发程序化调用
适用场景探索性工作、即时协作CI/CD、自动化流程
执行速度实时交互可批量、无人值守
状态管理会话内自动维护需要自行管理上下文
错误恢复人工干预脚本化重试逻辑
典型用途日常开发、代码审查发布流水线、质量门禁

5. 编排语法参考:说什么触发什么

5.1 触发代理的关键词

你说的话触发的代理说明
“帮我规划一下这个功能”planner生成实现计划
“设计一下系统架构”architect架构设计
“用 TDD 方式开发”tdd-guide测试驱动开发
“帮我审查这段代码”code-reviewer代码审查
“检查有没有安全漏洞”security-reviewer安全分析
“构建失败了,帮我看看”build-error-resolver构建错误修复
“跑一下端到端测试”e2e-runnerE2E 测试执行
“清理一下死代码”refactor-cleaner代码重构清理
“更新一下文档”doc-updater文档更新

5.2 编排模式语句

并行执行语句

# 基本并行
"并行处理这三个任务"
"同时做 A、B、C"
"帮我同时审查这三个文件"

# 强调并行
"这三件事完全独立,一起处理"
"不需要等我确认,直接并行执行"

串行执行语句

# 基本串行
"先做 A,然后做 B,最后做 C"
"按顺序执行这些步骤"
"一步一步来"

# 带条件
"先规划,如果没问题就执行"
"先审查代码,通过后再重构"

混合编排语句

# 串行 + 并行组合
"先并行审查(安全+代码),然后串行重构"

# 带反馈循环
"先做 A,告诉我结果,我确认后再做 B"

# 条件执行
"如果审查发现严重问题就先停下来,否则继续"

5.3 快速记忆表

编排方式触发关键词
并行执行“同时”、“并行”、“一起”
串行执行“先…然后…”、“按顺序”、“一步一步”
指定代理直接说出代理名称或用途
混合编排组合使用以上模式

6. 高级技巧:代理间通信与协调

6.1 上下文共享机制

多个代理之间通过共享上下文进行通信:

graph TD
    subgraph SharedContext["共享上下文 (Session Context)"]
        SC["共享上下文<br/>审查结果 / 代码状态 / 任务进度"]
    end
    Agent1["Agent 1 (security)"] -->|结果写入| SC
    SC -->|读取上下文| Agent2["Agent 2 (refactor)"]
    Agent3["Agent 3 (doc-updater)"] -->|写入| SC

6.2 多步骤协调示例

用户: 实现用户认证功能,要求:
      1. 先规划整体方案
      2. 安全审查通过后再写代码
      3. 代码写完后进行完整审查
      4. 审查通过才合并

执行流程:

  Step 1: [planner] 规划
  ┌────────────────────────────────────────────────┐
  │ • JWT + Refresh Token 方案                     │
  │ • 密码使用 bcrypt 哈希                         │
  │ • 添加 Rate Limiting                          │
  │ • 实现 MFA 支持                               │
  └────────────────────────────────────────────────┘
                            │
                            ▼
  Step 2: [security-reviewer] 安全预审
  ┌────────────────────────────────────────────────┐
  │ ✓ 密码存储方案: bcrypt OK                      │
  │ ✓ Token 刷新机制: 建议添加 token rotation      │
  │ ⚠ 需要注意: 登录尝试次数限制                     │
  └────────────────────────────────────────────────┘
                            │
                            ▼ (审查通过)
  Step 3: [tdd-guide] 开发
  ┌────────────────────────────────────────────────┐
  │ RED: 登录失败处理测试                            │
  │ GREEN: 实现基本的登录逻辑                       │
  │ REFACTOR: 提取 AuthService                     │
  └────────────────────────────────────────────────┘
                            │
                            ▼
  Step 4: [code-reviewer] + [security-reviewer] 双重审查
  ┌────────────────────────────────────────────────┐
  │ [security-reviewer] ✓ 无高危问题               │
  │ [code-reviewer] ✓ 代码质量达标                 │
  └────────────────────────────────────────────────┘
                            │
                            ▼ (通过)
  完成:可以合并到主分支

6.3 反馈循环控制

graph TD
    TaskA["任务 A"] --> Gate["检查点 (Gate)"]
    Gate -->|yes| TaskB["任务 B"]
    Gate -->|no| Wait["等待用户指令"]
    UserConfirm["用户确认/干预"] --> Gate

7. 最佳实践与反模式

7.1 推荐做法

场景推荐做法原因
独立任务并行执行效率最大化
有依赖任务串行执行保证正确性
关键路径设置检查点人工确认安全
大任务先规划后执行减少返工
安全相关security-reviewer 强制参与防止漏洞

7.2 常见反模式

❌ 反模式 1: 过度并行
   "帮我并行分析这个项目的 100 个文件"
   → 结果难以整合,容易遗漏问题

❌ 反模式 2: 忽略检查点
   "直接重构,不用审查了"
   → 高风险,可能引入严重问题

❌ 反模式 3: 串行过度
   "先审查 1 号文件,通过后再审查 2 号..."
   → 效率低下,代理可以并行处理独立任务

❌ 反模式 4: 代理职责混乱
   "让 code-reviewer 去规划功能"
   → 专业代理做专业事

7.3 推荐的决策流程

graph TD
    Q1["任务可并行吗?"] -->|yes| P1["找出所有独立任务<br/>并行启动代理"]
    Q1 -->|no| P2["确定任务依赖关系<br/>按依赖顺序串行"]
    P1 --> Q2["需要安全审查吗?<br/>(认证/支付/数据)"]
    P2 --> Q2
    Q2 -->|yes| P3["[security-reviewer] 强制"]
    Q2 -->|no| P4["继续其他代理"]

8. 实战案例:完整的工作流编排

8.1 案例:修复安全漏洞

用户: 在 user-service 中发现了一个 SQL 注入漏洞,
      请帮我修复并确保没有引入新问题。

┌─────────────────────────────────────────────────────────────┐
│                     阶段 1: 诊断                             │
├─────────────────────────────────────────────────────────────┤
[security-reviewer] 分析漏洞位置和原因
  → 漏洞位置: user_query 参数
  → 漏洞类型: 字符串拼接 SQL
  → 影响范围: 用户数据泄露风险
  → 修复建议: 使用参数化查询
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                     阶段 2: 修复 (并行)                       │
├─────────────────────────────────────────────────────────────┤
[build-error-resolver] 准备修复方案
  → 替换为 PreparedStatement
  → 添加输入验证
  
[code-reviewer] 审查修复方案
  → 方案可行
  → 建议添加异常处理
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                     阶段 3: 实现与验证                         │
├─────────────────────────────────────────────────────────────┤
[tdd-guide] 编写回归测试
  → 测试 SQL 注入防护
  → 测试正常查询功能

[e2e-runner] 执行端到端测试
  → 验证修复未破坏其他功能
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                     阶段 4: 最终审查                          │
├─────────────────────────────────────────────────────────────┤
[security-reviewer] 最终安全确认
  → ✓ SQL 注入漏洞已修复
  → ✓ 无新安全引入
  
[code-reviewer] 代码质量确认
  → ✓ 测试覆盖率 87%
  → ✓ 无死代码
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
                           完成

8.2 案例:新功能开发工作流

用户: 需要开发一个新的订单处理模块,请协调整个流程。

┌─────────────────────────────────────────────────────────────┐
│  编排计划                                                    │
├─────────────────────────────────────────────────────────────┤
阶段 1 (串行): [architect] 订单系统架构设计
  → 订单状态机设计
  → 库存扣减策略
  → 支付集成方案
  
阶段 2 (并行): [planner] 任务分解 + [security-reviewer] 安全评审
  → 任务分解清单
  → 安全需求清单
  
阶段 3 (串行): [tdd-guide] TDD 开发循环
  → RED: 写测试
  → GREEN: 实现功能
  → REFACTOR: 重构优化
  
阶段 4 (并行): [code-reviewer] + [security-reviewer] 双重审查
  → 代码质量审查
  → 安全漏洞扫描
  
阶段 5 (并行): [e2e-runner] + [build-error-resolver] 测试验证
  → 端到端测试
  → 构建验证
  
阶段 6 (串行): [doc-updater] 文档更新
  → API 文档
  → 使用手册
└─────────────────────────────────────────────────────────────┘

9. 总结:智能体编排的核心原则

9.1 编排三原则

┌─────────────────────────────────────────────────────────────┐
│                    智能体编排三原则                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 并行优先:独立任务并行执行,最大化效率                     │
│                                                             │
│  2. 串行保稳:有依赖的任务按序执行,保证正确性                 │
│                                                             │
│  3. 安全第一:安全相关代码必须经过 security-reviewer           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

9.2 快速参考卡

编排方式例句
并行执行“帮我并行做这三件事” / “同时处理 A、B、C”
串行执行“先做 A,然后做 B,最后做 C” / “按顺序执行这些步骤”
指定代理“帮我规划” → planner、“审查代码” → code-reviewer、“安全检查” → security-reviewer、“修复构建” → build-error-resolver
混合编排“先并行审查,然后串行重构,最后并行验证”

通过掌握 Claude Agent 编排的这些技巧,你可以将复杂的开发任务分解为可管理的步骤,并利用专业代理协同完成。记住:并行处理独立任务、串行处理依赖任务、安全审查不可跳过。善用这些原则,你的工作效率将大幅提升。

Sources

No external sources for this entry.

Related