流式传输

流式传输 + 分块

OpenClaw 有两个独立的"流式传输"层:

今天没有真正的 token 流式传输到外部频道消息。Telegram 草稿流式传输是唯一的部分流表面。

块流式传输(频道消息)

块流式传输在助手输出可用时以粗粒度块发送。

模型输出
  └─ text_delta/事件
       ├─ (blockStreamingBreak=text_end)
       │    └─ 分块器在缓冲区增长时发出块
       └─ (blockStreamingBreak=message_end)
            └─ 分块器在 message_end 时刷新
                   └─ 频道发送(块回复)

图例:

控制:

边界语义:

如果缓冲的文本超过 maxCharsmessage_end 仍然使用分块器,因此它可以在末尾发出多个块。

分块算法(低/高边界)

块分块由 EmbeddedBlockChunker 实现:

maxChars 被限制到频道 textChunkLimit,因此你不能超过每频道上限。

合并(合并流式块)

启用块流式传输时,OpenClaw 可以在发送前合并连续的块块
这减少了"单行垃圾邮件",同时仍然提供渐进输出。

块之间的人性化节奏

启用块流式传输时,你可以在块回复之间添加随机暂停(在第一块之后)。这使多气泡响应感觉更自然。