🐝 什么是子 Agent 集群?

子 Agent(Sub-Agent)是 OpenClaw 中的独立执行单元,由主 Agent 通过 sessions_spawn 创建。集群模式让多个 Agent 并行工作、各司其职,适合:

主 Agent (Orchestrator)
    ├── 子Agent 1 (代码生成)  → GPT-4o
    ├── 子Agent 2 (测试执行)  → GPT-4o-mini
    ├── 子Agent 3 (文档编写)  → Claude 3.5 Haiku
    └── 子Agent 4 (部署发布)  → Local Llama3
        

🚀 sessions_spawn 详解

基础用法

# 主 Agent 中调用
sessions_spawn(
  task="开发一个 FastAPI 用户认证模块,包含 JWT 生成和验证",
  runtime="subagent",      # 或 "acp" 用于编程任务
  mode="run",             # run=一次性,session=持久会话
  agentId="code-agent",   # 可选:指定 Agent ID
  model="gpt-4o",        # 可选:指定模型
  timeoutSeconds=600      # 超时时间
)

带状态回调的集群

# 启动多个子 Agent,等待全部完成
subagent1 = sessions_spawn(task="处理数据集 A", label="worker-1")
subagent2 = sessions_spawn(task="处理数据集 B", label="worker-2")
subagent3 = sessions_spawn(task="处理数据集 C", label="worker-3")

# 使用 sessions_yield 等待结果
sessions_yield(message="等待所有子Agent完成")

💡 三种集群模式

🔄 Fan-out

主 Agent 分发任务给 N 个子 Agent 并行执行

🔗 Pipeline

子 Agent 链式执行,前者的输出作为后者的输入

🐝 Swarm

多 Agent 自主协作,无需中心调度

📝 实战案例

案例:批量生成 SEO 页面(模拟本任务!)

# 主 Agent 任务
"生成 8 个 OpenClaw 教程页面,每个子Agent负责一个主题"

# 子Agent 分配:
sessions_spawn(task="生成 openclaw-gpt-5-integration.html", runtime="subagent")
sessions_spawn(task="生成 openclaw-vllm-ollama.html", runtime="subagent")
sessions_spawn(task="生成 openclaw-agentic-coding.html", runtime="subagent")
# ... 共 8 个并行执行

# 所有子Agent完成后,主Agent:
# 1. 收集所有生成的 HTML 文件
# 2. 更新 sitemap.xml
# 3. 验证每个页面的内部链接
# 4. 部署到 /var/www/miaoquai/tools/

案例:多阶段代码审查

# Pipeline 模式
# Stage 1: 代码生成
code_task = sessions_spawn(
  task="实现用户注册 API",
  runtime="acp",
  agentId="claude-code"
)

# Stage 2: 单元测试(依赖 Stage 1 结果)
test_task = sessions_spawn(
  task=f"为 {code_task.output} 编写单元测试",
  runtime="acp",
  agentId="claude-code"
)

# Stage 3: 安全审计
security_task = sessions_spawn(
  task=f"审计 {code_task.output} 的安全性",
  runtime="subagent"
)

💡 最佳实践

  1. 命名规范 - 使用 label 参数为子Agent命名,方便追踪
  2. 超时控制 - 每个子Agent设置合理超时,防止僵尸进程
  3. 错误处理 - 检查子Agent返回状态,失败任务自动重试
  4. 资源限制 - 大规模集群(>10个Agent)设置并发上限
  5. 结果聚合 - 使用 sessions_list 查看所有子Agent状态

⚠️ 注意事项

集群陷阱:
  • 子Agent 之间有状态隔离,不能直接共享变量
  • 大量子Agent 并发可能触发 API 限流(Rate Limit)
  • sessions_yield 会阻塞主Agent,设计任务时需考虑异步场景
  • 子Agent 的 cost 会计入主Agent 的账单,注意成本控制

🔗 相关教程