概述
OpenClaw 的消息处理是一条从入站消息到回复的完整流水线,涵盖会话解析、队列、流式传输、工具执行和推理可见性。
核心要点
消息流水线:
入站消息 -> routing/bindings -> session key
-> queue(如有 run 在运行)
-> agent run(streaming + tools)
-> 出站回复(channel 限制 + chunking)
入站去重:channel 重连后可能重复投递同一消息,OpenClaw 通过短期缓存(channel/account/peer/session/message id)防止重复触发 agent run。
入站防抖(debounce):同一发送方的快速连续消息可合并为单次 agent turn,按 channel 可分别配置(如 WhatsApp 5000ms、Slack 1500ms)。媒体/附件立即触发,不受防抖影响。
会话归属:
- 直接聊天 → 归入 agent main session key
- 群组/频道 → 各自独立 session key
- 会话 store 和 transcript 存在 Gateway 主机上
队列模式(messages.queue.mode):steer(默认)、followup、collect、steer-backlog、interrupt、queue
工具结果元数据:toolResult.content 是模型可见内容,toolResult.details 是 UI 渲染/诊断元数据,在 provider replay 和 compaction 前会被剥离。
静默回复:NO_REPLY/no_reply 表示不投递用户可见回复。直接对话默认不允许静默(会改写为简短回复),群组/频道默认允许静默。
配置/使用
入站防抖配置:
{
messages: {
inbound: {
debounceMs: 2000,
byChannel: { whatsapp: 5000, slack: 1500, discord: 1500 }
}
}
}流式传输关键配置:
agents.defaults.blockStreamingDefault(on/off,默认 off)agents.defaults.blockStreamingBreak(text_end/message_end)agents.defaults.humanDelay(模拟人类停顿)
相关页面
- streaming - 流式传输与 chunking 详细机制
- queue - 命令队列与 steering 模式
- queue-steering - 队列 steering 详细行为
- session - 会话管理与 transcript 存储