前言:一个人干活太累
世界上有一种痛苦叫做:一个Agent干所有事。写代码、测代码、写文档、发通知——全是你一个人。这不是Agent,这是打工人。
OpenClaw的多Agent编排就是要解决这个问题。让专业的Agent干专业的事,而你只需要当好那个指挥家。
三种编排模式
并行模式
多个Agent同时开工
适合独立任务
串行模式
按顺序执行
适合流水线
层级模式
主Agent调度子Agent
适合复杂项目
并行模式:多线程的快乐
当你需要同时搜索多个主题、分析多个数据源时,并行模式是你的好朋友。
// 并行启动多个子Agent
const agents = await Promise.all([
sessions_spawn({
task: "搜索OpenAI最新动态",
runtime: "subagent",
mode: "run"
}),
sessions_spawn({
task: "搜索Anthropic最新动态",
runtime: "subagent",
mode: "run"
}),
sessions_spawn({
task: "搜索Google AI最新动态",
runtime: "subagent",
mode: "run"
})
]);
// 等待所有结果
const results = await Promise.all(
agents.map(a => waitForCompletion(a.sessionKey))
);
串行模式:流水线的艺术
当任务之间有依赖关系时,串行模式更合适。比如:先搜索→再分析→最后写报告。
// 串行执行流水线
const searchData = await sessions_spawn({
task: "搜索AI行业新闻,收集10条热点",
runtime: "subagent",
mode: "run"
});
const analysisResult = await sessions_spawn({
task: `分析以下数据:${searchData.result}`,
runtime: "subagent",
mode: "run"
});
const report = await sessions_spawn({
task: `生成报告:${analysisResult.result}`,
runtime: "subagent",
mode: "run"
});
层级模式:CEO和员工的关系
这是最强大的模式。主Agent像CEO一样做决策,子Agent像员工一样执行具体任务。
// 主Agent创建持久会话
const ceo = await sessions_spawn({
task: "你是项目管理者,协调多个专家Agent完成任务",
runtime: "subagent",
mode: "session",
label: "project-manager"
});
// 主Agent可以随时调度子Agent
await sessions_send({
sessionKey: ceo.sessionKey,
message: "让code-agent去修复那个bug"
});
// 查看子Agent状态
const status = await subagents({
action: "list",
recentMinutes: 60
});
核心工具详解
sessions_spawn:孵化子Agent
| 参数 | 说明 | 示例 |
|---|---|---|
task |
任务描述 | "搜索AI新闻" |
runtime |
运行时类型 | "subagent" 或 "acp" |
mode |
执行模式 | "run"(一次性) 或 "session"(持久) |
agentId |
指定Agent类型 | "code-agent" |
label |
会话标签 | "seo-worker" |
thread |
是否绑定线程 | true (Discord用) |
subagents:管理子Agent团队
// 列出活跃的子Agent
const team = await subagents({
action: "list",
recentMinutes: 30
});
// 向某个子Agent发送指令
await subagents({
action: "steer",
target: "seo-worker",
message: "暂停当前任务,先处理紧急bug"
});
// 终止某个子Agent
await subagents({
action: "kill",
target: "failed-agent"
});
实战案例:AI新闻自动生产线
我们用多Agent编排构建了一个自动化的AI新闻生产系统:
// 妙趣AI的新闻生产线
async function produceDailyNews() {
// 第一阶段:并行搜索
const sources = await Promise.all([
spawnAgent("搜索OpenAI博客"),
spawnAgent("搜索Anthropic动态"),
spawnAgent("搜索Hugging Face"),
spawnAgent("搜索Hacker News AI话题")
]);
// 第二阶段:汇总分析
const analyst = await sessions_spawn({
task: "汇总以上搜索结果,精选10条最有价值的新闻",
runtime: "subagent",
mode: "run"
});
// 第三阶段:内容生产
const writer = await sessions_spawn({
task: `生成妙趣风格的新闻日报HTML,数据:${analyst.result}`,
runtime: "subagent",
mode: "run"
});
// 第四阶段:发布
await publishToWebsite(writer.result);
await notifyToDiscord(writer.result);
}
常见问题与解决方案
Q: 子Agent卡住怎么办?
A: 设置超时时间,使用runTimeoutSeconds参数:
await sessions_spawn({
task: "执行任务",
runtime: "subagent",
runTimeoutSeconds: 300 // 5分钟超时
});
Q: 如何让主Agent知道子Agent完成了?
A: 使用sessions_yield让主Agent等待:
// 启动子Agent后
await sessions_yield({
message: "等待子Agent完成..."
});
Q: 子Agent之间如何通信?
A: 通过主Agent中转,或者使用共享的存储空间(如文件系统或数据库)。
最佳实践总结
- 选择正确的模式:独立任务用并行,依赖任务用串行,复杂决策用层级
- 设置超时:永远不要相信网络请求会永远成功
- 监控状态:定期
subagents list查看团队状态 - 优雅降级:某个子Agent失败时,有备选方案
- 日志追踪:每次spawn都记录日志,方便排查问题
🔗 相关推荐
📖 相关教程
- OpenClaw 子Agent编排教程 - Subagent Orchestration | 妙趣AI
- OpenClaw 子会话完全指南 | 妙趣AI
- OpenClaw Agent协作模式 | 妙趣AI
📚 术语百科
- Sub-Agent 子Agent开发完全指南 | 妙趣AI
- Sub-Agents 子代理完全指南 | 妙趣AI
- Agent Composition Pattern 详解 - Agent 组合模式 | 妙趣AI
🔗 相关链接
推荐阅读
OpenClaw多Agent协作教程 | Multi-Agent系统设计 | 妙趣AI
OpenClaw多Agent协作完整教程:Multi-Agent架构设计、Agent间通信、任务编排。包含实战案例和代码示例。
TOOLS • Agent, OpenClawOpenClaw Sub-Agent 配置教程:多Agent协作完全指南 2026 | 妙趣AI
OpenClaw Sub-Agent配置教程:学会配置子Agent实现多Agent协作、任务分发、上下文隔离。包含完整代码示例和最佳实践。
TOOLS • Agent, OpenClawOpenClaw 多Agent编排模式完全指南 - 协作、通信、调度 | 妙趣AI
OpenClaw多Agent编排实战:Leader Election、Swarm Intelligence、SubAgent工厂模式、跨Agent通信协议。生产级多Agent系统设计指南。
TOOLS • Agent, OpenClawOpenClaw Agent Eval Report
了解更多相关内容...
TOOLS • Agent, EvaluationOpenClaw 多Agent协作实战:编排模式与通信协议 (2026) | 妙趣AI
OpenClaw 多Agent协作教程。学会Agent编排、任务分配、通信协议、冲突解决、并行协作,构建智能Agent团队。包含完整代码示例。
TOOLS • Agent, OpenClawOpenClaw 子 Agent 集群模式 - 多 Agent 协作与工作流编排
用 OpenClaw 构建子 Agent 集群:sessions_spawn 详解、分布式任务协作、Swarm 模式实战,打造 AI 工厂。
TOOLS • Agent, OpenClaw