OpenClaw 实现了不同的流式机制来优化消息传递体验。
两层流式架构
OpenClaw 实现了两种不同的流式机制:
- 块流式(频道):在模型生成时通过普通频道消息传递完成的文本块
- Token 级流式(仅 Telegram):在生成过程中更新草稿气泡显示部分文本;完成后发送最终消息
注意
目前没有真正的 Token 流式传输到外部频道消息。
块流式架构
系统通过分块管道处理模型输出:
- 模型事件触发
EmbeddedBlockChunker - 分块器应用最小/最大字符边界
- 输出在
text_end(立即)或message_end(完成后)处中断 - 频道发送块回复
关键控制参数
blockStreamingDefault:启用/禁用该功能blockStreamingBreak:确定刷新时机blockStreamingChunk:设置字符边界和中断偏好- 频道特定上限防止消息过大
分块算法
分块器遵循层次化的中断偏好:
- 段落边界
- 换行符
- 句子
- 空白
- 强制中断
它智能处理 Markdown 代码围栏,在需要拆分时关闭并重新打开它们以保持有效语法。
块合并
连续的块可以在空闲间隙期间合并(可配置 idleMs),减少碎片化同时保持渐进输出。
对于 Signal、Slack 和 Discord,默认最小字符阈值会增加,除非被覆盖。
Telegram 草稿流式
Telegram 支持通过三种模式更新草稿气泡:
- partial:连续文本更新
- block:使用标准规则的分块更新
- off:禁用
这独立于其他频道的块流式运行。
提示
更多流式和分块的详细信息请参考 官方英文文档。