为什么需要整理会话

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 返回里每条都有 sessionKeylabelkindsarchived 这些字段,后面整理都要用 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 实操技巧:

公众号二维码