目录
【高级玩法】OpenClaw 多会话管理与子代理:让 AI 团队为你打工
**目录** 前言:一个不够用?那就来一队! 一、什么是多会话? 1.1 会话的概念 1.2 为什么需要多会话? 1.3 会话类型 二、会话管理基础 2.1 查看会话列表 2.2 创建新会话 2.3 切换到指定会话 2.4 查看会话状态 2.5 结束会话 三、子代理(Sub-agents)详解 3.1 什么是子代理? 3.2 子代理的工作流程 3.3 什么时候用子代理? 3.4 创建子代理 3.5…

**目录** 前言:一个不够用?那就来一队! 一、什么是多会话? 1.1 会话的概念 1.2 为什么需要多会话? 1.3 会话类型 二、会话管理基础 2.1 查看会话列表 2.2 创建新会话 2.3 切换到指定会话 2.4 查看会话状态 2.5 结束会话 三、子代理(Sub-agents)详解 3.1 什么是子代理? 3.2 子代理的工作流程 3.3 什么时候用子代理? 3.4 创建子代理 3.5…

目录
各位老铁好,我是攀哥!前三篇咱们从部署安装、人格定制讲到技能开发,相信大家的 AI 助手已经能干活儿了。但有朋友问:"攀哥,我想让 AI 同时干好几件事,比如一边帮我写代码,一边查资料,还能顺便回消息,怎么办?"
简单!一个 AI 不够用,那就搞一队啊!😎
今天攀哥就聊聊 OpenClaw 的多会话管理和**子代理(Sub-agents)**功能,让你的 AI 从"单兵作战"升级为"团队协作"!
会话(Session),简单说就是 AI 和你的一次"对话上下文"。每次你跟 AI 聊天,都会创建一个会话,它会记住你们聊过的内容。
默认情况下,你只有一个主会话(main session),就是你直接跟 AI 聊天的那个。
想象这些场景:
这时候,多会话就派上用场了!每个会话有独立的上下文,互不干扰。
OpenClaw 中的会话主要分为:
# 查看所有会话 openclaw sessions list
输出示例:
Session ID Type Status Last Active ───────────────────────────────────────────────── main:001 main active 2 minutes ago sub:code-001 sub running 5 minutes ago sub:research-001 sub idle 1 hour ago
# 创建新会话 openclaw session new --label=my-task
--label 参数给会话起个名字,方便后续识别。
# 切换到某个会话 openclaw session switch sub:code-001
# 查看会话详情 openclaw session status sub:code-001
输出包括:
# 结束指定会话 openclaw session end sub:code-001 # 结束所有子会话 openclaw sessions end --all
子代理是主会话创建的"下属"AI,它们:
主会话 → 创建子代理 → 分配任务 → 子代理执行 → 返回结果 → 主会话处理
攀哥给你几个典型场景:
| 场景 | 是否需要子代理 | 理由 |
|---|---|---|
| 简单问答 | ❌ 不需要 | 主会话直接处理 |
| 长时间任务 | ✅ 需要 | 不阻塞主会话 |
| 独立上下文 | ✅ 需要 | 避免污染主对话 |
| 并行多任务 | ✅ 需要 | 同时执行多个任务 |
| 敏感操作 | ✅ 需要 | 隔离风险 |
在对话中,AI 可以自动创建子代理。你也可以手动创建:
// 在技能或配置中 const subAgent = await sessions_spawn({ label: 'code-reviewer', model: 'qwen-portal/coder-model', task: 'Review this PR and provide feedback' });
// 发送消息到子代理 await sessions_send({ sessionKey: subAgent.sessionKey, message: '请帮我 review 这个 Pull Request,关注代码质量和潜在 bug' });
子代理完成任务后,会自动通知主会话。你也可以主动查询:
// 获取子代理的历史消息 const history = await sessions_history({ sessionKey: subAgent.sessionKey, limit: 50 });
假设你有 3 个 PR 需要 review,可以创建 3 个子代理并行处理:
// 创建 3 个子代理 const agents = await Promise.all([ sessions_spawn({ label: 'reviewer-1', task: 'Review PR #101' }), sessions_spawn({ label: 'reviewer-2', task: 'Review PR #102' }), sessions_spawn({ label: 'reviewer-3', task: 'Review PR #103' }) ]); // 分配任务 agents.forEach((agent, i) => { sessions_send({ sessionKey: agent.sessionKey, message: `请 review PR #${101+i},关注代码风格和潜在 bug` }); }); // 等待结果(子代理完成后会自动通知)
写文章时需要查资料,可以这样分工:
主会话:负责整体构思和写作 ↓ 子代理 A:搜集相关资料 ↓ 子代理 B:整理数据成表格 ↓ 主会话:整合内容完成文章
创建子代理定期执行检查任务:
// 创建监控子代理 const monitor = await sessions_spawn({ label: 'heartbeat-monitor', task: '每 30 分钟检查一次邮件和日历' }); // 子代理会定期向主会话汇报
使用 sessions_send 发送消息:
await sessions_send({ sessionKey: 'sub:code-001', message: '任务更新:请优先处理这个 bug' });
子会话完成任务后,自动推送结果:
// 子会话中 await sessions_send({ label: 'main', // 发送回主会话 message: '任务完成!发现 3 个潜在问题,详情如下...' });
会话之间默认不共享上下文,这是为了保护独立性。如需共享数据:
子代理虽好,但别滥用:
任务完成后及时结束子会话:
# 结束已完成的子会话 openclaw session end sub:completed-task
给会话起个有意义的名字:
✅ 好:code-reviewer-001, research-agent, email-monitor ❌ 差:sub-1, agent-abc, temp-session
子代理可能会失败,主会话要能处理:
try { const result = await sessions_send({ ... }); if (result.status === 'error') { // 处理错误 } } catch (error) { // 异常处理 }
可以让子代理再创建子代理,形成层级:
主会话 └── 子代理 A(协调者) ├── 子代理 A-1(执行者) └── 子代理 A-2(执行者)
默认会话在结束后会销毁,如需持久化:
// 配置会话持久化 await sessions_spawn({ label: 'persistent-agent', persist: true // 保持会话不销毁 });
不同会话可以用不同模型:
// 主会话用高级模型 main: model='claude-sonnet' // 子代理用经济模型 sub: model='qwen-portal/coder-model'
这样可以平衡效果和成本。
A: 不会!每个会话有独立的上下文和记忆,互不影响。
A: 理论上没有限制,但建议同时运行的不超过 5 个,避免资源浪费。
A: 默认会保留一段时间,建议手动结束不需要的会话。
A: 使用 sessions_history 命令或 API。
A: 可以访问工作区文件,但会话上下文是隔离的。
好了,今天的多会话管理和子代理就讲到这里!攀哥总结一下:
下一篇咱们聊聊《OpenClaw 安全最佳实践:保护你的 AI 和数据》,敬请期待!🦞
【攀哥小贴士】
openclaw sessions list 随时查看会话状态
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online