主私聊本
默认情况下,很多直接聊天会收进一本文本叫 main 的主本子里,这样连续聊起来最顺。
Concepts 导读
OpenClaw 按来源(私聊、群聊、定时任务等)把消息分到不同会话。多人私聊同一个 agent 时务必开启 DM 隔离,否则所有人的对话会混在一起。会话每天凌晨 4 点自动重置,也可以设置空闲超时或手动输入 /new 来重置。
先讲这一页到底在解决什么
OpenClaw 按来源(私聊、群聊、定时任务等)把消息分到不同会话。多人私聊同一个 agent 时务必开启 DM 隔离,否则所有人的对话会混在一起。会话每天凌晨 4 点自动重置,也可以设置空闲超时或手动输入 /new 来重置。
第一站
OpenClaw 不会把所有地方说过的话都硬抄进同一本本子里。私聊、群聊、频道、定时任务,都可以有自己的记录格子。
默认情况下,很多直接聊天会收进一本文本叫 main 的主本子里,这样连续聊起来最顺。
群聊通常会有自己的本子。这样群里的讨论不会和你私聊里的碎碎念混成一锅。
像 cron、hook、node 这种来源,也会用自己的专门本子,不会挤进普通聊天里。
因为“方便连续聊”和“别串台”要同时兼顾。session 就是在做这个平衡。
第二站
原文里最值得先记住的词就是 dmScope。它决定不同私聊到底要不要共用一本聊天本。
默认模式。所有私聊都像记进同一本主本子,连续感最好,但多人使用时最容易串内容。
像一人一本。谁来聊,就记到谁自己的那本里。
像“同一个人,不同平台也分开记”。Telegram 一本、Discord 一本、WhatsApp 再一本。
因为如果几个人都共用同一本私聊本,甲昨天说的私事,乙今天就可能被它当成“前文”继续聊下去。
第三站
原文列了很多 key 形状,不是为了吓人,而是为了让你知道系统到底怎么区分这些本子。
agent:<agentId>:<mainKey>像主私聊本的封面门牌。只要你还在同一个主会话里聊,它就一直沿用这本。
agent:<agentId>:<channel>:group:<id>像某个群聊自己的专属本子。群名会变,但这里更认数字门牌号。
cron:<jobId> / hook:<uuid>像系统自己开的工作本,不是给人聊天用的,而是给定时任务和 webhook 留痕。
session key 就是“这段对话到底该记进哪一本”的门牌号。
第四站
原文花了不少篇幅讲 reset、idle、daily、/new、/reset。翻成人话,就是“什么时候该开一本新本子”。
像每天固定时间换一本新本子。默认常见是凌晨某个点,这样隔天就不会把昨天的旧纸条全背着。
像太久没聊,这本本子就先收起来。下次再来,重新开一本。
/new / /reset像你亲自说“这页翻过去,重新开始”。不是全盘失忆,而是给当前会话换一个新 session id。
如果你既设了 daily 又设了 idle,那谁先过线,就谁先触发换本。
第五站
这一页的 CLI 命令很多,但动作都很具体。
openclaw status像去柜子前看一眼:最近有哪些会话本子、当前本子放在哪儿。
openclaw sessions --json像把整排书架清单导出来,看看每本本子最近有没有更新。
/status像在当前聊天里低头看看:这本本子用了多少上下文、现在还活着没、开了哪些模式。
/new / /reset像对当前聊天本说:“这一页到这里结束,我们换一本干净的继续写。”
第六站
会话多了以后,书柜会越来越满。官方这段就是在讲怎么别让它一直堆到天花板。
像“多少天没翻过的本子,可以准备收掉了”。
像规定书柜最多放多少本。超了就得把最旧的先挪走。
像给书柜总重量设上限。再多就会逼着你先清老的。
openclaw sessions cleanup --dry-run像先演习一遍看看如果真收拾,会拿走哪些旧本子,还没真的动手。
最后总结
Session 就是 OpenClaw 给不同聊天准备的不同本子,而这整页都在教你怎么分本、换本、和收本。
如果你下一页只想继续看一页,我建议看 /concepts/queue 或 /concepts/compaction。因为一本本子写久了,接下来最容易碰到的问题就是“消息怎么排队”和“旧内容怎么收拾”。