📖 定义
Subagent (子Agent) 是由父Agent动态创建的临时Agent实例。子Agent拥有独立的会话、工具和上下文,用于执行特定任务,完成后自动销毁。
就像老板临时叫一个实习生帮忙查资料——任务完成,实习生就离开了。Subagent让Agent能够按需扩展能力,而不需要预先配置所有可能用到的Agent。
🧠 核心原理
子Agent的工作机制
- 动态创建 - 父Agent根据任务需要实时创建子Agent
- 独立会话 - 子Agent拥有独立的会话和上下文
- 任务驱动 - 子Agent接收明确的任务描述
- 结果返回 - 子Agent完成后将结果返回父Agent
- 自动清理 - 任务完成后子Agent自动销毁
💻 OpenClaw中的Subagent
1. 创建子Agent
# 使用 sessions_spawn 创建子Agent
sessions_spawn:
task: "研究2026年AI Agent市场趋势"
label: "market-research"
model: "gpt-4o"
mode: "run" # 一次性任务
# 参数说明:
# - task: 子Agent的任务描述
# - label: 子Agent的标签(便于管理)
# - model: 使用的模型(可选)
# - mode: "run"=一次性任务, "interactive"=交互式
2. 等待子Agent完成
# 使用 sessions_yield 等待子Agent完成
sessions_yield:
message: "等待市场研究完成..."
# 子Agent完成后,结果会自动返回给父Agent
# 父Agent可以继续处理其他任务
3. 查看子Agent状态
# 使用 subagents 查看子Agent列表
subagents:
action: "list"
recentMinutes: 60 # 查看最近60分钟的子Agent
# 返回子Agent的状态、结果等信息
4. 与子Agent通信
# 使用 sessions_send 向子Agent发送消息
sessions_send:
label: "market-research"
message: "请重点关注中国市场"
# 使用 sessions_history 查看子Agent历史
sessions_history:
sessionKey: "market-research"
limit: 10
🎯 实战案例:并行内容生产
父Agent同时创建多个子Agent:
# 父Agent创建3个子Agent并行工作
sessions_spawn:
- task: "搜索最新AI新闻"
label: "news-searcher"
model: "gpt-4o"
- task: "生成新闻日报HTML"
label: "news-writer"
model: "claude-3.5-sonnet"
- task: "优化SEO关键词"
label: "seo-optimizer"
model: "gpt-4o"
# 等待所有子Agent完成
sessions_yield:
message: "等待所有任务完成..."
📊 使用场景
1. 并行处理
同时执行多个独立任务,提高效率。例如:同时搜索多个数据源。
2. 专业分工
让不同模型处理不同任务。例如:用GPT-4o搜索,用Claude写作。
3. 错误隔离
子Agent的错误不会影响父Agent。例如:一个搜索失败,其他继续。
4. 资源管理
按需创建,用完即走,节省资源。例如:临时需要数据分析时才创建。
✅ 优势
- 动态扩展,按需创建
- 并行处理,提高效率
- 错误隔离,提高稳定性
- 资源灵活,用完即走
⚠️ 挑战
- 创建开销(冷启动时间)
- 通信延迟
- 上下文丢失
- 调试复杂度增加
🔗 相关术语
- Multi-Agent - 多Agent协作系统
- Agent Workflow - 子Agent编排的工作流
- Agent Memory - 子Agent的记忆管理