简要总结
Messages
这页说明书讲的是 OpenClaw 这个聪明的机器人是怎么处理我们发给它的消息的。就像一个邮递员叔叔,他会把收到的信(消息)分类、排队,然后让机器人(Agent)一件一件地处理,最后再把回信(回复)送回来。如果你想知道机器人是怎么收信、排队和回信的,就看这一页。
五岁小孩版解释
OpenClaw 就像一个聪明的邮局,专门处理你发给它的消息。它会接收消息,安排机器人去思考,然后把答案送回来。
消息是怎么流动的? 消息会按照一个固定的路线走,就像坐滑梯一样:
- 收到一条新消息。
- 邮局(Gateway)会看看这条消息是谁发的、要去哪里,给它贴上一个“会话”标签。
- 如果机器人正在忙,新消息就需要在“排队区”等一会儿。
- 等轮到它了,机器人就开始工作,一边想一边说(这叫“流式回复”),还会用一些小工具。
- 最后,把想好的回答,切成合适的大小,通过原来的通道(比如 WhatsApp 或 Telegram)送回去。
重要的控制开关在哪里? 控制这个流程的开关,都放在一个叫“配置”的大盒子里:
messages.*开头的开关:管怎么给消息加前缀、怎么排队、群聊怎么处理。agents.defaults.*开头的开关:管机器人是不是可以一边想一边说,以及怎么把长回答切成小块。channels.whatsapp.*或channels.telegram.*这样的开关:是给每个聊天软件单独设置的,比如限制回复长度,或者打开/关闭“一边想一边说”的功能。
小心重复和太快的消息 有时候,网络不好,同一个消息可能会被送来两次。OpenClaw 有个小本子会记住最近收过的信,这样就不会让机器人重复处理同一封信了。 如果同一个人发消息太快了,比如“哒哒哒”连着发好几条,OpenClaw 可以把它们攒一攒,变成一条再交给机器人处理。这个等待时间可以设置。但是要注意哦:
- 只有纯文字消息会被攒起来,如果发了图片或文件,会立刻交给机器人。
- 控制命令(比如
/reasoning on)不会被攒,会立刻处理。
会话和聊天窗口 OpenClaw 的“会话”是存在它自己家里的,不是存在你的手机或电脑里。
- 你单独和机器人聊天,就用一个主会话。
- 在群里或频道里聊天,每个群都有自己的会话。
- 你可以在不同的设备上和同一个机器人聊天,但它们看到的聊天记录可能不完全一样。所以,最好用一个主要的设备进行长对话,这样不容易乱。控制界面(Control UI 或 TUI)里显示的记录是最准的。
机器人看到的消息是什么样子的? 机器人看到的“问题”和它要执行的“命令”是分开的。
Body:是机器人看到的完整问题,里面可能包含了之前的聊天记录。CommandBody:是你打的原原本本的字,用来分析你是不是下了什么命令(比如“画只猫”)。 当机器人被加到群里时,它会看到这样的格式:“[从你上次回复后的聊天记录 - 给你看看背景]”和“[当前的新消息 - 请回复这个]”。这样它就知道上下文和现在要回答什么了。在群里,当前消息前面还会加上是谁说的。
排队和接着聊 如果机器人正在忙,新消息来了怎么办?有几种办法:
- 可以打断它(
interrupt)。 - 可以把新消息“塞”进它正在想的那个问题里(
steer)。 - 可以让新消息排队,等它忙完这一个再处理下一个(
followup)。 这些都可以通过设置messages.queue来调整。
一边想一边说,和把长话切短
你可以让机器人“一边想一边说”(block streaming),这样你就能很快看到它开始打字了,不用等它全想完。但是默认这个功能是关着的,需要打开。
因为有些聊天软件(比如 WhatsApp)一次不能发太长的消息,所以 OpenClaw 会把机器人的长回答自动切成几段发出来,并且会尽量保持完整,比如不把一段代码从中间切开。
控制这个功能的开关主要是 agents.defaults.blockStreamingDefault(打开或关闭“一边想一边说”)和 agents.defaults.blockStreamingChunk(控制怎么切分长消息)。
让机器人把它“想”的过程也说出来
你可以用 /reasoning on 这个命令,让机器人把它思考的步骤也说出来给你看。用 /reasoning off 就关掉。虽然你能看到它在想什么,但这些“想法”也是要花“脑力”(tokens)的。在 Telegram 里,这些想法甚至会直接显示在它正在打的字的气泡里。
给回复加个小前缀
你可以在机器人每次回复的开头,加一个固定的词,比如“助手:”。这样你就知道哪些话是机器人说的了。这个可以通过设置 messages.responsePrefix 来实现。在 WhatsApp 里,还可以设置一个前缀来识别哪些消息是发给机器人的。