OpenClaw 会话管理完全指南
引言
在使用 OpenClaw 时,常会遇到话题切换、会话管理以及上下文压缩等困惑。下面的指南帮你快速理清思路,省去反复查文档的时间,让你专注于业务本身,提升工作效率。
话题切换与延续
/new 之后怎么继续上一个话题?
| 方案 | 操作 | 适用场景 |
|---|---|---|
| 不用 /new | 直接在同一个会话里换话题 | 话题切换不频繁(推荐) |
| 子代理隔离 | 长任务用 sessions_spawn 跑,主会话保持 | 长任务不污染主会话 |
| 手动总结衔接 | /new 前让 Agent 把上下文总结写入文件,新会话读取 | 确实要换会话时 |
| sessions_send | 用 sessions_send(sessionKey, message) 往旧会话发消息 | 需要继续旧会话的特定话题 |
| sessions_history | Agent 用 sessions_history(sessionKey) 读取旧会话内容 | Agent 需要回顾旧会话上下文 |
推荐:直接说新话题,无需使用 /new。OpenClaw 的 compaction 会自动压缩长对话。
如果确实需要 /new:
| |
新会话启动时,Agent 会自动读取这些文件。
会话生命周期
| 机制 | 说明 | 配置项 |
|---|---|---|
| 每日重置 | 默认每天凌晨 4:00(Gateway 本地时间)自动新建会话 | session.reset.daily |
| 空闲重置 | 可选:空闲多久后重置 | session.reset.idleMinutes |
| 手动重置 | /new 或 /reset 命令 | — |
| /new + 模型切换 | /new <model> 同时新建会话并切换模型 | — |
重置优先级:每日重置和空闲重置哪个先到就先触发。heartbeat、cron、exec 等系统事件不会延长空闲重置的计时。
Compaction(上下文压缩)
当对话接近上下文窗口上限时,OpenClaw 会自动压缩历史消息。
| 模式 | 说明 |
|---|---|
safeguard(当前配置) | 只在快溢出时压缩,尽量保留原始内容 |
rolling | 持续压缩较早的消息 |
off | 不压缩(不推荐,会溢出) |
压缩后的影响:早期的工具调用结果会被摘要替换,细节丢失但大意保留。
会话维护配置
当前配置(openclaw.json):
| |
| 参数 | 说明 |
|---|---|
pruneAfter | 会话记录超过多久后清理(当前 72 h) |
maxEntries | 最多保留多少条会话记录(当前 10) |
mode: "enforce" | 自动执行清理;"warn" 只报告不清理 |
Agent 工具(跨会话操作)
| 工具 | 说明 | 示例 |
|---|---|---|
sessions_list | 列出可见会话 | 查看最近活跃的会话列表 |
sessions_history | 读取另一个会话的对话历史 | 回顾旧会话的对话内容 |
sessions_send | 往另一个会话发消息 | 在旧会话中继续对话 |
sessions_spawn | 创建隔离子代理会话 | 长任务不污染主会话 |
session_status | 查看当前会话状态 | 模型、token、费用 |
会话存储位置
| 文件 | 路径 | 说明 |
|---|---|---|
| 会话索引 | ~/.openclaw/agents/<agentId>/sessions/sessions.json | 所有会话的元数据 |
| 对话记录 | ~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonl | 完整对话记录(JSONL) |
实用 CLI 命令
| 命令 | 说明 |
|---|---|
openclaw sessions | 列出所有会话(默认 100 条) |
openclaw sessions --agent xiaomi | 列出指定 agent 的会话 |
openclaw sessions --all-agents | 列出所有 agent 的会话 |
openclaw sessions --active 120 | 最近 120 分钟活跃的会话 |
openclaw sessions --limit 25 | 限制返回数量 |
openclaw sessions --limit all | 返回全部 |
openclaw sessions --verbose | 详细信息 |
openclaw sessions --json | JSON 格式输出 |
openclaw sessions export-trajectory --session-key "agent:xiaomi:main" | 导出完整对话轨迹 |
openclaw sessions export-trajectory --session-key "…" --output my-export | 导出到指定目录 |
openclaw sessions cleanup --dry-run | 预览清理(不执行) |
openclaw sessions cleanup --enforce | 执行清理 |
openclaw sessions cleanup --active-key "agent:xiaomi:main" | 清理时保留指定活跃会话 |
实用聊天命令
会话管理
| 命令 | 说明 |
|---|---|
/new | 新建会话(清空上下文) |
/new <model> | 新建会话并切换模型 |
/reset | 重置当前会话 |
/status | 查看当前会话状态(模型、token、费用) |
/context list | 查看系统提示中包含的内容 |
/export-trajectory | 导出当前对话轨迹(需 owner 确认) |
指令(Directives)
| 指令 | 说明 | 持久性 |
|---|---|---|
/model <model> | 切换模型 | 仅当前消息(或指令单独发送时持久) |
/think | 切换思考模式 | 同上 |
/reasoning | 切换推理显示 | 同上 |
/verbose | 切换详细模式 | 同上 |
/fast | 快速模式(降低质量换速度) | 同上 |
/elevated | 提权模式 | 同上 |
/queue | 队列模式 | 同上 |
持久规则:指令单独作为消息发送(如只发 /verbose)→ 持久生效。指令嵌在普通消息中(如 /verbose 帮我写代码)→ 仅当次生效。
FAQ
Q:对话太长了怎么办?
A:不需要手动处理,compaction 会自动压缩。如想主动重置,可使用 /new。
Q:怎么查看之前的对话?
A:直接询问 Agent “之前聊过什么”,或使用 openclaw sessions --agent xiaomi 查看会话列表,再通过 sessions_history 读取具体内容。
Q:/new 之后旧对话还在吗?
A:在。旧会话记录保存在 ~/.openclaw/agents/<agentId>/sessions/ 目录下,直至被 maintenance 清理。
Q:怎么防止重要对话被清理?
A:让 Agent 把要点写入 memory/ 文件。该文件不受会话清理影响。
Q:子代理的对话会保存吗?
A:默认 cleanup: "delete" 会清理。如需保留,spawn 时设 cleanup: "keep"。
Q:怎么切换模型?
A:使用 /new <model> 新建会话并切换,或使用 /model <model> 临时切换。
保持关注,记得把网址 (17you.com) 加收藏夹!有空经常来网站看看!我们每天都分享最新鲜、最实用的AI知识、最新动态、最新技术,以及最新的应用场景。
相关内容
- OpenClaw升级方法与回滚教程
- OpenClaw v2026.4.26发布:Google Meet集成与安全增强
- OpenClaw 2026.4.11版本更新:记忆维基与主动记忆功能详解
- OpenClaw源码深度解析:队列、缓存与性能优化全攻略
- OpenClaw队列模式配置指南
- OpenClaw 2026.4.9 更新:记忆系统强化,视频图像生成进核心