消息与投递
消息
本页面将带你了解 OpenClaw 如何处理入站消息、会话、队列、流式传输以及推理内容的可见性控制。
消息处理流程
消息从进入系统到最终回复,大致经历以下环节:
入站消息
-> 路由/绑定 -> 会话标识
-> 排队等待(若当前有正在执行的任务)
-> 智能体执行(流式输出 + 工具调用)
-> 出站回复(遵守通道限制 + 分块发送)
相关配置项分布在以下几个位置:
messages.*:控制消息前缀、排队策略和群聊行为agents.defaults.*:设置流式输出和分块的默认参数- 通道级配置(如
channels.whatsapp.*、channels.telegram.*):覆盖各通道的限制和流式开关
完整配置说明请参阅配置参考。
入站消息去重
通道在断线重连后可能会重复投递同一条消息。OpenClaw 通过一个短期缓存来解决这一问题——缓存以"通道/账户/对端/会话/消息ID"组合为键,确保重复投递不会触发新的智能体执行。
入站消息防抖
当同一发送者快速连续发送多条消息时,你可以通过 messages.inbound 将它们合并为一次智能体处理。防抖按"通道 + 会话"维度生效,并以最新消息作为回复的线程锚点。 配置示例如下:
{
messages: {
inbound: {
debounceMs: 2000,
byChannel: {
whatsapp: 5000,
slack: 1500,
discord: 1500,
},
},
},
}
几点说明:
- 防抖仅对纯文本消息生效,媒体和附件会立即处理
- 控制命令不受防抖影响,始终独立执行