OC
OpenClaw 中文解释版

给五岁小朋友也能看懂的说明书

简要总结

Messages

这页说明书讲的是 OpenClaw 这个聪明的机器人是怎么处理我们发给它的消息的。就像一个邮递员叔叔,他会把收到的信(消息)分类、排队,然后让机器人(Agent)一件一件地处理,最后再把回信(回复)送回来。如果你想知道机器人是怎么收信、排队和回信的,就看这一页。

五岁小孩版解释

OpenClaw 就像一个聪明的邮局,专门处理你发给它的消息。它会接收消息,安排机器人去思考,然后把答案送回来。

消息是怎么流动的? 消息会按照一个固定的路线走,就像坐滑梯一样:

  1. 收到一条新消息。
  2. 邮局(Gateway)会看看这条消息是谁发的、要去哪里,给它贴上一个“会话”标签。
  3. 如果机器人正在忙,新消息就需要在“排队区”等一会儿。
  4. 等轮到它了,机器人就开始工作,一边想一边说(这叫“流式回复”),还会用一些小工具。
  5. 最后,把想好的回答,切成合适的大小,通过原来的通道(比如 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 里,还可以设置一个前缀来识别哪些消息是发给机器人的。