为什么需要整理会话
OpenClaw 的会话会一直留在侧边栏里:
- 每天 03:00 的定时发文会留下一个
cron会话 - 你开过的子智能体(
sessions_spawn)会留下subagent会话 - 群聊里拉起来的对话、临时测试都算一个 session
跑上几周,侧边栏就会变成几十上百条的"历史垃圾堆"。找正经对话像翻垃圾桶,而且会话越多,sessions_list 也越慢。
好消息是:sessions 工具自带整理能力,不用碰数据库,也不用删文件。
先看清楚有哪些会话
清理前先列一遍,别误删:
# 列出可见会话,带最后一条消息预览
sessions_list(includeLastMessage=true, messageLimit=1)
# 只看某类:kinds 可填 main / group / cron / hook / node / other
sessions_list(kinds=["cron","other"])
sessions_list 返回里每条都有 sessionKey、label、kinds、archived 这些字段,后面整理都要用 sessionKey 定位。
归档:不删但眼不见为净
cron 会话、跑完的子智能体,其实还有保留价值(出错了要查日志),但不想占着侧边栏——归档最合适:
# 把某个 cron 会话归档(不会删,archived=true 后默认不显示在活跃列表)
sessions(action="patch", sessionKey="agent:main:cron:83dffd13-...", archived=true)
归档后 sessions_list 默认不显示,想看时加参数:
sessions_list(archived=true)
经验:每周把 7 天前的 cron 会话批量归档一次,侧边栏立刻清爽,出事还能翻。
删除:真·不要了的会话
明确是测试、误开、垃圾会话,才用删除。deleteTranscript 默认 true(连聊天记录一起删),要保留记录就设 false:
# 彻底删除一个测试会话(连同记录)
sessions(action="delete", sessionKey="agent:main:other:abc123", deleteTranscript=true)
⚠️ 删除不可恢复,先 sessions_list 确认 sessionKey 再动手。主会话(main)不要删。
置顶:把重要对话钉在最上面
正在盯的长任务、关键客户对话,可以 pin 住:
sessions(action="patch", sessionKey="agent:main:group:xyz", pinned=true)
pin 之后它在列表里排前面,不会被新会话挤下去。
分组:用自定义分组给会话贴标签
sessions_list 支持按 group 归类。你可以把同类会话归到一个组,或在 UI 侧边栏新建分组后把会话挪进去:
# 把会话归到 "客户A" 分组
sessions(action="patch", sessionKey="agent:main:group:xyz", group="客户A")
# 查看当前所有分组目录
sessions(action="group_list")
# 重命名一个分组
sessions(action="group_rename", name="客户A", to="客户A-2026Q3")
# 删除空分组(分组里还有会话会被拒绝,需先移走)
sessions(action="group_delete", name="临时测试")
分组是纯 UI 侧边栏整理,不影响会话本身功能,放心用。
一个可落地的整理脚本思路
把上面的操作串成一个"周整理"动作(直接在 exec 里跑或交给 cron):
# 1. 列出所有 cron 类会话
sessions_list(kinds=["cron"], includeLastMessage=false)
# 2. 对 7 天前的 sessionKey 调用 archived=true(逐个)
# 3. 对明确无用的测试会话 deleteTranscript=true 删除
也可以直接让 OpenClaw 自己干:写一条 cron,每天凌晨把 N 天前的 cron 会话自动归档——这就是"让 AI 每周替你打扫"的套路。
避坑清单
| 操作 | 风险 | 建议 |
|---|---|---|
| delete | 不可恢复 | 先 list 确认 key,只删测试/垃圾会话 |
| archived=true | 之后要翻得加参数 | cron/子智能体优先归档而非删除 |
| group 改名 | 全量重命名组内所有会话 | 改名前确认组里没有不想动的会话 |
| 删分组 | 组内有会话会被拒 | 先 group_rename 或移走会话再删 |
小结
- 清理三板斧:归档(保留可查)、删除(彻底不要)、分组/置顶(归类排序)
- 用
sessionKey精确定位,别靠肉眼猜 - 定时任务类会话优先归档,留着排错用
- 把这些动作本身交给 cron,实现"零手动整理"
会话清爽了,OpenClaw 跑起来也更顺。
扫码关注公众号,获取更多 OpenClaw 实操技巧:
