🐝 什么是子 Agent 集群?
子 Agent(Sub-Agent)是 OpenClaw 中的独立执行单元,由主 Agent 通过 sessions_spawn 创建。集群模式让多个 Agent 并行工作、各司其职,适合:
- 大规模并行任务 - 100 个 Agent 同时处理不同数据片段
- 专业分工 - 代码 Agent、测试 Agent、文档 Agent 协同
- 故障隔离 - 单个 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"
)
💡 最佳实践
- 命名规范 - 使用
label参数为子Agent命名,方便追踪 - 超时控制 - 每个子Agent设置合理超时,防止僵尸进程
- 错误处理 - 检查子Agent返回状态,失败任务自动重试
- 资源限制 - 大规模集群(>10个Agent)设置并发上限
- 结果聚合 - 使用
sessions_list查看所有子Agent状态
⚠️ 注意事项
集群陷阱:
- 子Agent 之间有状态隔离,不能直接共享变量
- 大量子Agent 并发可能触发 API 限流(Rate Limit)
- sessions_yield 会阻塞主Agent,设计任务时需考虑异步场景
- 子Agent 的 cost 会计入主Agent 的账单,注意成本控制