OpenClaw 通过结构化管道处理入站消息,本文档详细介绍消息处理的完整流程。
核心消息处理流程
消息按以下流程处理:
入站消息 -> 路由/绑定 -> 会话密钥 -> 队列(如果运行中) -> Agent 运行(流式 + 工具) -> 出站回复
去重和防抖
系统维护缓存以防止因频道重连导致的重复消息处理。同一发送者的快速连续消息可以批量处理,时间可配置:
- 全局默认:2000ms
- 按频道调整:可为每个频道单独配置
会话管理
会话由网关拥有,而非客户端拥有:
- 直接聊天:使用主会话密钥
- 群组/频道:接收单独的密钥
Control UI 和 TUI 显示权威的网关支持的记录。
消息体处理
平台区分:
- 提示词体:发送给 Agent 的内容
- 命令体:用于解析指令的内容
群聊消息包含发送者标签,以保持实时消息和排队消息之间的一致性。
排队模式
活动运行可以通过以下模式处理新消息:
- interrupt:中断当前执行
- steer:将消息引导到当前执行中
- followup:为后续轮次收集消息
- collect:收集所有消息
流式和输出
块流式允许在文本生成时发送部分回复,分块遵守频道字符限制。推理可见性可通过以下指令控制:
# 开启/关闭/流式推理显示
/reasoning on|off|stream
配置
这些行为通过以下配置集中管理:
messages.*agents.defaults.*- 频道特定覆盖
提示
更多消息处理的详细信息请参考 官方英文文档。