会话管理
OpenClaw 支持多种会话类型,理解它们的区别很重要。
会话类型
1. Main Session(主会话)
- 定义:直接与用户对话的会话
- 特点:
- 用户直接发消息
- 可以加载 MEMORY.md
- 最高权限级别
- 用途:日常对话、重要任务
2. Sub-Agent(子智能体)
- 定义:为特定任务创建的临时会话
- 特点:
- 独立的上下文
- 独立的工具权限
- 可以隔离运行
- 用途:
- 复杂任务的分解
- 并行处理
- 隔离风险操作
3. ACP Session(编程会话)
- 定义:运行编码助手的独立会话
- 特点:
- 专门为编程优化
- 支持代码执行
- 独立的文件访问
- 用途:
- 代码开发
- 调试任务
- 项目构建
会话状态查询
查看所有会话
bash
/sessions list
输出示例:
Session Key Type Model Last Message
main Main glm-4.7 2 min ago
coder-sub-1234 Sub gpt-4 1 hour ago
查看会话详情
bash
/sessions show <session-key>
发送消息到会话
bash
/sessions send <session-key> <message>
示例:
bash
/sessions send coder-sub-1234 "帮我重构这个函数"
会话隔离
每个会话都有:
独立的上下文
- 不共享对话历史
- 独立的 System Prompt
- 隔离的记忆空间
独立的工具权限
- 可以限制特定工具
- 不同的安全级别
- 独立的资源访问
独立的内存空间
- 不同的 Workspace
- 独立的文件系统访问
- 隔离的变量环境
会话管理最佳实践
使用 Main Session 当:
- 处理重要任务
- 需要长期记忆
- 用户直接对话
使用 Sub-Agent 当:
- 需要并行处理
- 任务可以分解
- 需要隔离风险
使用 ACP Session 当:
- 开发代码
- 执行构建
- 调试程序
清理会话
定期清理不活跃的会话可以释放资源:
bash
/sessions clean --days 7
这将删除 7 天未活动的会话。