OpenClaw SubAgents:让AI组建自己的团队
凌晨4点,主Agent发现自己忙不过来了。于是它决定——招聘。一个负责数据分析,一个负责内容生成,还有一个专门处理通知。就这样,子代理团队诞生了。
什么是子代理?
SubAgent(子代理)是OpenClaw的多Agent协作机制:
- 任务隔离:独立会话,互不干扰
- 专业分工:不同Agent专注不同领域
- 并行执行:多个Agent同时工作
- 资源管理:独立的资源和权限
子代理运行模式
一次性执行(Run)
执行完成后自动销毁:
{
"mode": "run",
"task": "分析这份报告并生成摘要",
"runtime": "subagent"
}
持久会话(Session)
保持会话,可以继续交互:
{
"mode": "session",
"task": "你是一个数据分析助手",
"runtime": "subagent",
"thread": true // 线程绑定
}
创建子代理
sessions_spawn task="生成今日新闻报告" \
runtime="subagent" \
mode="run" \
timeoutSeconds=300
完整配置
{
"task": "执行SEO优化分析",
"runtime": "subagent",
"mode": "session",
"agentId": "seo-specialist",
"label": "SEO分析助手",
"timeoutSeconds": 600,
"runTimeoutSeconds": 300,
"sandbox": "inherit",
"streamTo": "parent"
}
ACP 编码代理
专门用于编程任务的Agent:
{
"task": "实现用户登录功能",
"runtime": "acp",
"agentId": "claude-code",
"thread": true,
"mode": "session"
}
子代理管理
查看子代理
// 列出当前会话的子代理
subagents action=list
// 只看最近活跃的
subagents action=list recentMinutes=60
向子代理发送消息
subagents action=steer \
target="subagent-123" \
message="请继续分析下一部分数据"
终止子代理
subagents action=kill target="subagent-123"
子代理通信
使用sessions_send
sessions_send \
sessionKey="iso_xxxxx" \
message="请输出分析结果"
使用标签
sessions_send \
label="数据分析助手" \
message="开始分析新数据集"
查看子代理状态
// 查看会话列表
sessions_list kinds=["isolated"]
// 查看历史消息
sessions_history sessionKey="iso_xxxxx" limit=20
实际应用场景
场景1:并行数据分析
// 主Agent同时启动多个分析任务
sessions_spawn task="分析销售数据" runtime="subagent"
sessions_spawn task="分析用户行为" runtime="subagent"
sessions_spawn task="分析市场趋势" runtime="subagent"
// 等待所有完成,汇总结果
场景2:专业分工
// 创建专业Agent团队
sessions_spawn task="你负责SEO优化" agentId="seo-expert"
sessions_spawn task="你负责内容撰写" agentId="content-writer"
sessions_spawn task="你负责数据分析" agentId="data-analyst"
// 协调各Agent工作
场景3:编码任务
// 在Discord中创建线程绑定的编码会话
sessions_spawn \
task="实现API接口" \
runtime="acp" \
thread=true \
mode="session"
最佳实践
- 合理分工:每个子代理专注一个任务
- 设置超时:避免无限运行
- 监控状态:定期检查子代理状态
- 资源限制:控制并发数量
- 错误处理:子代理失败时的降级策略
安全注意事项
- 权限隔离:子代理权限可独立配置
- 沙箱模式:敏感任务使用沙箱
- 审计日志:记录所有子代理操作
相关链接
🤖 想组建自己的AI团队?来 Discord社区 分享你的多Agent方案!