快速开始
通过streaming.mode: "progress" 为每个频道启用进度草稿:
用户会看到什么
进度草稿由两部分组成:| 部分 | 作用 |
|---|---|
| 标签 | 一个简短的起始/状态行,例如 Working 或 Shelling。 |
| 进度行 | 使用与详细输出相同的工具图标和详情格式化器生成的紧凑运行更新。 |
🛠️ Bash: run tests、🔎 Web Search: 用于 "discord edit message",或 ✍️ Write: to /tmp/file。
默认情况下,它们使用与 /verbose 相同的简洁 explain 模式;如果你在调试时还想附加原始命令/详情,可以设置 agents.defaults.toolProgressDetail: "raw"。
最终答案会在可能时替换草稿;否则,OpenClaw 会正常发送最终答案,并根据频道的传输方式清理或停止更新草稿。
选择一种模式
channels.<channel>.streaming.mode 控制可见的进行中行为:
| 模式 | 适用场景 | 聊天中会出现什么 |
|---|---|---|
off | 安静的频道 | 只有最终答案。 |
partial | 观察答案文本逐步出现 | 一个草稿被编辑为最新的答案文本。 |
block | 较大的答案预览块 | 一个预览以较大的块更新或追加。 |
progress | 工具较多或耗时较长的轮次 | 一条状态草稿,然后是最终答案。 |
progress。
当答案本身就是进度信号时,选择 partial。
当你希望用较大的文本块更新草稿预览时,选择 block。在 Discord 和 Telegram 上,streaming.mode: "block" 仍然是预览流式,而不是普通分块发送。若你想要普通的分块回复,请使用 streaming.block.enabled 或旧版 blockStreaming。
配置标签
进度标签位于channels.<channel>.streaming.progress 下。
默认标签为 auto,它会从 OpenClaw 内置的单词标签池中进行选择:
控制进度行
在进度模式下,进度行默认启用。它们来自真实的运行事件:工具开始、项目更新、任务计划、批准、命令输出、补丁摘要以及类似的代理活动。 工具也可以在单个工具调用仍在运行时发出类型化进度。这样,缓慢的获取或搜索就能在工具返回最终结果之前更新可见草稿。进度更新是一个部分工具结果,具有空的模型内容和显式的公共频道元数据:progress.text。正常的工具结果仍然会稍后以 content 和 details 的形式到达,并且是唯一返回给模型的部分。
为工具添加进度时,请使用简短、通用的消息,并将其延迟到操作已挂起足够长时间、足以产生价值之后:
/verbose 使用相同的格式化器:
"explain" 是默认值,它会用简洁标签保持草稿稳定,例如
🛠️ check JS syntax for /tmp/app.js。"raw" 会在可用时附加底层
命令/详情,这在调试时很有用,但在聊天中会更嘈杂。
例如,同一条命令会根据详细程度模式显示得不同:
| 模式 | 进度行 |
|---|---|
explain | 🛠️ check JS syntax for /tmp/app.js |
raw | 🛠️ check JS syntax for /tmp/app.js, node --check /tmp/app.js |
toolProgress: false 时,OpenClaw 仍然会抑制该轮次中较旧的独立工具进度消息。除非配置了标签,否则频道会保持视觉上安静,直到最终答案出现。
频道行为
每个频道都会使用其支持的最简洁传输方式:| 频道 | 进度传输方式 | 说明 |
|---|---|---|
| Discord | 先发送一条消息,再编辑它。 | 如果最终文本能安全地放入一个预览消息中,就会原地编辑。 |
| Matrix | 先发送一个事件,再编辑它。 | 账户级流式配置控制账户级草稿。 |
| Microsoft Teams | 在个人聊天中使用原生 Teams 流。 | streaming.mode: "block" 映射为 Teams 分块发送。 |
| Slack | 原生流或可编辑草稿发布。 | 线程可用性会影响是否能使用原生流式。 |
| Telegram | 先发送一条消息,再编辑它。 | 较旧的可见草稿可能会被替换,以便最终时间戳仍然有用。 |
| Mattermost | 可编辑草稿发布。 | 工具活动会折叠进同一条草稿式发布。 |
最终化
当最终答案准备好时,OpenClaw 会尽量保持聊天整洁:- 如果草稿可以安全地变成最终答案,OpenClaw 会原地编辑它。
- 如果频道使用原生进度流式,OpenClaw 会在原生传输接受最终文本时完成该流。
- 如果最终答案包含媒体、批准提示、显式回复目标、过多分块,或者编辑/发送失败,OpenClaw 会通过正常的频道发送路径发送最终答案。
故障排查
我只看到了最终答案。 检查channels.<channel>.streaming.mode 是否针对处理该消息的账户或频道设置为 progress。某些群聊或引用回复路径在频道无法安全编辑正确消息时,可能会为该轮次禁用草稿预览。
我看到了标签,但没有工具行。
检查 streaming.progress.toolProgress。如果它是 false,OpenClaw 会保留单一草稿行为,但会隐藏工具和任务进度行。
我看到的是一条新的最终消息,而不是编辑后的草稿。
这是安全回退。它可能发生在媒体回复、长答案、显式回复目标、旧的 Telegram 草稿、缺失的 Slack 线程目标、已删除的预览消息,或原生流最终化失败时。
我仍然看到了独立的进度消息。
当草稿处于活动状态时,进度模式会抑制默认的独立工具进度消息。如果独立消息仍然出现,请确认该轮次确实在使用进度模式,而不是 streaming.mode: "off",或者是一个无法为该消息创建草稿的频道路径。
Teams 的行为与 Discord 或 Telegram 不同。
Microsoft Teams 在个人聊天中使用原生流,而不是通用的“发送并编辑”预览传输。Teams 也将 streaming.mode: "block" 视为 Teams 分块发送,因为它没有与 Discord 和 Telegram 相同的草稿预览分块模式。