1903 字
10 分钟
OpenClaw 子 Agent 协作机制:让 AI 分工合作
为什么需要子 Agent?
有时候任务太复杂,单个 AI 会话难以胜任:
- 长时间运行的任务:批量处理文件、爬取大量数据
- 隔离性要求:不想污染主会话的历史记录
- 并发处理:同时处理多个独立任务
- 不同模型配置:某些任务需要更强的模型或更长的思考时间
- 自动化流程:定时任务、后台监控等
OpenClaw 通过 sessions_spawn 实现了子 Agent 协作机制。
Sessions 机制
OpenClaw 支持三种会话类型:
1. Main Session(主会话)
- 与用户直接对话的会话
- 拥有完整权限,可以访问 MEMORY.md 等敏感信息
- 通常由用户主动触发
2. Isolated Session(独立会话)
- 通过
sessions_spawn创建的子会话 - 不继承主会话历史记录
- 独立的记忆空间和权限
- 完成任务后可以通知主会话
3. Cron Jobs(定时任务)
- 由 cron 触发的独立会话
- 可以使用不同模型配置
- 适合周期性自动化任务
基本用法
创建子 Agent
sessions_spawn \ --task "分析 /root/workspace 目录下的所有 Python 文件,生成代码质量报告" \ --label "代码分析任务" \ --timeoutSeconds 300 \ --cleanup delete关键参数:
--task: 子 Agent 的任务描述--label: 任务标签,便于识别--timeoutSeconds: 超时时间--cleanup: 任务完成后会话处理方式(delete或keep)
子 Agent 的特性
创建后,子 Agent 会:
- 在独立会话中运行
- 拥有自己的记忆空间
- 不共享主会话的历史
- 完成任务后自动通知主会话
- 根据
--cleanup参数决定是否保留会话
参数详解
task(必填)
子 Agent 的任务描述。这是发给子 Agent 的第一条消息,应该清晰说明要做什么:
--task "请分析以下 JSON 数据,提取所有 email 地址,并按域名分组统计:\n{\"users\": [{\"email\": \"a@test.com\"}, ...]}"label(可选)
给任务设置一个友好的标签,方便在列表中识别:
--label "邮件数据清洗"agentId(可选)
指定使用哪个 Agent ID。默认使用当前 Agent:
--agentId "code-analyzer"model(可选)
指定子 Agent 使用的模型:
--model "zhipu/glm-4.7"thinking(可选)
设置子 Agent 的思考模式(on、off、stream):
--thinking ontimeoutSeconds(可选)
设置子 Agent 的最大运行时间,超时后自动终止:
--timeoutSeconds 600 # 10 分钟runTimeoutSeconds(可选)
子 Agent 单次推理的超时时间:
--runTimeoutSeconds 120 # 2 分钟cleanup(可选)
任务完成后如何处理会话:
delete: 自动删除会话(默认)keep: 保留会话,可以继续查看或交互
--cleanup keep管理子 Agent 会话
列出所有会话
sessions_list \ --kinds ["isolated"] \ --activeMinutes 30 \ --limit 10获取会话历史
sessions_history \ --sessionKey <session_key> \ --limit 20向子 Agent 发送消息
sessions_send \ --sessionKey <session_key> \ --message "请检查一下进度"实战案例
案例 1:批量文件处理
sessions_spawn \ --task "处理 /root/data 目录下的所有 CSV 文件: 1. 读取每个文件 2. 提取日期和销售额 3. 计算每个日期的总销售额 4. 生成汇总报告保存到 /root/workspace/report.md 请完成后报告结果。" \ --label "销售数据处理" \ --timeoutSeconds 600 \ --cleanup delete案例 2:代码审查
sessions_spawn \ --task "请审查 /root/project/src/ 目录下的所有 JavaScript 文件: 1. 检查是否有安全漏洞(SQL注入、XSS等) 2. 检查代码规范问题 3. 检查性能问题 4. 生成详细的审查报告,包含文件名、行号、问题描述、建议修复方案 报告保存到 /root/workspace/code-review.md" \ --label "代码审查任务" \ --model "zhipu/glm-4.7" \ --thinking on \ --timeoutSeconds 900 \ --cleanup keep案例 3:数据抓取和分析
sessions_spawn \ --task "从以下 URL 抓取数据并分析: 1. https://example.com/api/news - 抓取新闻列表 2. https://example.com/api/articles - 抓取文章详情 3. 分析文章的情感倾向(正面/负面/中性) 4. 统计主题分布 5. 生成分析报告" \ --label "新闻情感分析" \ --timeoutSeconds 1200 \ --cleanup delete案例 4:定时生成日报
创建一个 cron 任务,每天早上运行子 Agent 生成日报:
openclaw cron add \ --name "每日简报" \ --cron "0 8 * * *" \ --tz "Asia/Shanghai" \ --session isolated \ --message "请生成今日日报: 1. 检查 /root/memory/ 目录下的最新记录 2. 总结重要事件 3. 列出待办事项 4. 提供今日建议 完成后发送到 QQ" \ --deliver \ --channel qqbot \ --to "EF8BB6C433AD64C02811E441F9E47CB9"案例 5:并发处理多个任务
# 任务 1:数据分析sessions_spawn \ --task "分析数据集 A" \ --label "分析数据集 A" \ --timeoutSeconds 300
# 任务 2:生成报告sessions_spawn \ --task "基于数据集 B 生成报告" \ --label "生成报告" \ --timeoutSeconds 300
# 任务 3:发送通知sessions_spawn \ --task "通知相关人员" \ --label "发送通知" \ --timeoutSeconds 60这三个任务会并发运行,主 Agent 可以继续处理其他事务。
子 Agent 通知机制
子 Agent 完成任务后,会自动通知主会话。通知内容包括:
- 任务标签
- 会话 Key(用于查看详情)
- 执行结果摘要
查看子 Agent 结果
如果设置 --cleanup keep,可以查看子 Agent 的完整历史:
# 1. 列出会话sessions_list --kinds ["isolated"]
# 2. 获取会话历史sessions_history --sessionKey <session_key>
# 3. 继续对话sessions_send --sessionKey <session_key> --message "请继续优化报告"最佳实践
1. 任务描述要清晰
子 Agent 看不到主会话的历史,所以任务描述必须完整:
❌ 错误的任务描述:
--task "处理那个数据"✅ 正确的任务描述:
--task "请处理 /root/data/sales.csv 文件: 1. 读取数据 2. 计算总销售额 3. 按月统计 4. 生成图表 5. 保存到 /root/workspace/sales-report.md"2. 设置合理的超时
根据任务复杂度设置超时时间:
# 简单任务--timeoutSeconds 60
# 中等复杂度--timeoutSeconds 300
# 复杂任务--timeoutSeconds 12003. 根据需求选择 cleanup
# 不需要查看结果--cleanup delete
# 需要查看或继续交互--cleanup keep4. 选择合适的模型
简单任务用快模型,复杂任务用强模型:
# 简单任务--model "zhipu/glm-4"
# 复杂任务--model "zhipu/glm-4.7" --thinking on5. 使用标签便于管理
--label "数据处理-20260205"--label "代码审查-v1.0"与其他功能的配合
Cron + Sessions
定时任务中使用 sessions_spawn:
openclaw cron add \ --name "每周代码审查" \ --cron "0 9 * * 1" \ --tz "Asia/Shanghai" \ --session isolated \ --message "使用 sessions_spawn 启动代码审查子任务,审查 /root/project/ 目录" \ --deliver \ --channel qqbot \ --to "EF8BB6C433AD64C02811E441F9E47CB9"Memory + Sessions
子 Agent 写入记忆:
--task "完成任务后,将结果写入 /root/memory/2026-02-05.md,并更新 MEMORY.md 中的相关条目"注意事项
- 内存限制:大量并发子 Agent 可能消耗大量内存
- 超时处理:任务超时会自动终止,需要检查是否完成
- 结果同步:子 Agent 完成后不会自动合并结果,需要手动处理
- 权限隔离:子 Agent 无法访问主会话的敏感信息
总结
OpenClaw 的子 Agent 协作机制让 AI 可以分工合作,处理复杂任务。通过 sessions_spawn,你可以:
- 创建独立的子 Agent 处理隔离任务
- 并发运行多个任务提高效率
- 使用不同模型配置优化性能
- 通过定时任务实现自动化工作流
关键要点:
- 任务描述要完整:子 Agent 看不到主会话历史
- 合理设置超时:根据任务复杂度选择时间
- 选择合适的 cleanup:决定是否保留会话
- 善用标签管理:便于识别和跟踪任务
让 AI 分工合作,就像人类团队一样,效率会大幅提升。
辉哥说: 一个聪明的机器人,不如一群聪明的机器人。🤖
OpenClaw 子 Agent 协作机制:让 AI 分工合作
https://www.599.red/posts/openclaw-sub-agent/