Concepts 导读

一条消息怎么找到它的会话?

OpenClaw 按来源(私聊、群聊、定时任务等)把消息分到不同会话。多人私聊同一个 agent 时务必开启 DM 隔离,否则所有人的对话会混在一起。会话每天凌晨 4 点自动重置,也可以设置空闲超时或手动输入 /new 来重置。

先讲这一页到底在解决什么

一条消息怎么找到它的会话?

OpenClaw 按来源(私聊、群聊、定时任务等)把消息分到不同会话。多人私聊同一个 agent 时务必开启 DM 隔离,否则所有人的对话会混在一起。会话每天凌晨 4 点自动重置,也可以设置空闲超时或手动输入 /new 来重置。

原文共 10 节,先看 Start Here 路径:/concepts/session 查看官方原文

第一站

📚 先想画面:每种聊天,都可能有自己的一本本子

OpenClaw 不会把所有地方说过的话都硬抄进同一本本子里。私聊、群聊、频道、定时任务,都可以有自己的记录格子。

💬

主私聊本

默认情况下,很多直接聊天会收进一本文本叫 main 的主本子里,这样连续聊起来最顺。

👥

群聊本

群聊通常会有自己的本子。这样群里的讨论不会和你私聊里的碎碎念混成一锅。

定时任务本

像 cron、hook、node 这种来源,也会用自己的专门本子,不会挤进普通聊天里。

🧠

为什么要这样

因为“方便连续聊”和“别串台”要同时兼顾。session 就是在做这个平衡。

第二站

🚪 dmScope 在做什么?就是决定“私聊是不是都记进同一本”

原文里最值得先记住的词就是 dmScope。它决定不同私聊到底要不要共用一本聊天本。

📓 main

默认模式。所有私聊都像记进同一本主本子,连续感最好,但多人使用时最容易串内容。

🙋 per-peer

像一人一本。谁来聊,就记到谁自己的那本里。

📱 per-channel-peer

像“同一个人,不同平台也分开记”。Telegram 一本、Discord 一本、WhatsApp 再一本。

⚠️ 官方为什么一直提醒“多用户 DM 要开安全模式”

因为如果几个人都共用同一本私聊本,甲昨天说的私事,乙今天就可能被它当成“前文”继续聊下去。

第三站

🧾 Session key 像每本聊天本贴在封面上的门牌号

原文列了很多 key 形状,不是为了吓人,而是为了让你知道系统到底怎么区分这些本子。

agent:<agentId>:<mainKey>

像主私聊本的封面门牌。只要你还在同一个主会话里聊,它就一直沿用这本。

agent:<agentId>:<channel>:group:<id>

像某个群聊自己的专属本子。群名会变,但这里更认数字门牌号。

cron:<jobId> / hook:<uuid>

像系统自己开的工作本,不是给人聊天用的,而是给定时任务和 webhook 留痕。

🎈 一句话收住

session key 就是“这段对话到底该记进哪一本”的门牌号。

第四站

🔄 Reset 像换新本,不是把整间书柜烧了

原文花了不少篇幅讲 reset、idle、daily、/new、/reset。翻成人话,就是“什么时候该开一本新本子”。

🌙

daily reset

像每天固定时间换一本新本子。默认常见是凌晨某个点,这样隔天就不会把昨天的旧纸条全背着。

😴

idle reset

像太久没聊,这本本子就先收起来。下次再来,重新开一本。

/new / /reset

像你亲自说“这页翻过去,重新开始”。不是全盘失忆,而是给当前会话换一个新 session id。

🎯

谁先到谁算

如果你既设了 daily 又设了 idle,那谁先过线,就谁先触发换本。

第五站

🛠 命令不是术语,它们是在“看本子、清本子、换本子”

这一页的 CLI 命令很多,但动作都很具体。

openclaw status

像去柜子前看一眼:最近有哪些会话本子、当前本子放在哪儿。

openclaw sessions --json

像把整排书架清单导出来,看看每本本子最近有没有更新。

/status

像在当前聊天里低头看看:这本本子用了多少上下文、现在还活着没、开了哪些模式。

/new / /reset

像对当前聊天本说:“这一页到这里结束,我们换一本干净的继续写。”

第六站

🧹 Maintenance 在做什么?在给旧本子收纳和打扫

会话多了以后,书柜会越来越满。官方这段就是在讲怎么别让它一直堆到天花板。

🗑 pruneAfter

像“多少天没翻过的本子,可以准备收掉了”。

📚 maxEntries

像规定书柜最多放多少本。超了就得把最旧的先挪走。

📦 maxDiskBytes

像给书柜总重量设上限。再多就会逼着你先清老的。

openclaw sessions cleanup --dry-run

像先演习一遍看看如果真收拾,会拿走哪些旧本子,还没真的动手。

最后总结

🎈 把 Session 这页压成一句最好记的话

Session 就是 OpenClaw 给不同聊天准备的不同本子,而这整页都在教你怎么分本、换本、和收本。

如果你下一页只想继续看一页,我建议看 /concepts/queue/concepts/compaction。因为一本本子写久了,接下来最容易碰到的问题就是“消息怎么排队”和“旧内容怎么收拾”。