Appearance
OpenClaw 打字指示器默认在私聊和@提及群聊立即启动,无提及群聊等待文本流;心跳打字在运行开始时作为存活信号启动(若频道支持且未禁用)。配置 agents.defaults.typingMode 切换触发模式,typingIntervalSeconds 调整刷新间隔(默认6秒)。若要关闭所有打字指示,设为 never。注意:thinking 模式需模型流式推理(reasoningLevel: "stream"),message 模式忽略纯静默回复。
OpenClaw 打字指示器配置:模式与默认行为
运行中的智能体会向聊天频道发送“正在输入”状态。使用 agents.defaults.typingMode 控制何时开始显示,typingIntervalSeconds 控制刷新频率。
默认行为(私聊/群聊/心跳)
当 agents.defaults.typingMode 未设置时,OpenClaw 保持旧版行为:
- 私聊:模型循环一开始立即显示打字状态。
- 有 @ 提及的群聊:立即显示打字状态。
- 无 @ 提及的群聊:仅在消息文本开始流式传输时才显示打字状态。
- 心跳运行:当心跳目标解析为一个支持打字的聊天频道且打字未被禁用时,在心跳运行开始时即显示打字状态(作为存活信号)。
模式对比与触发顺序
将 agents.defaults.typingMode 设置为以下之一:
never— 永不显示打字状态。instant— 模型循环一开始立即显示打字状态,即使该运行最终只返回静默回复令牌。thinking— 在第一个推理增量时显示打字状态(需要运行的reasoningLevel: "stream")。message— 在第一个非静默文本增量时显示打字状态(忽略NO_REPLY静默令牌)。
触发时机从早到晚的顺序(数值越大触发越早):never → message → thinking → instant
配置方法
设置 Agent 级别的默认行为:
json5
{
agents: {
defaults: {
typingMode: "thinking",
typingIntervalSeconds: 6,
},
},
}按会话覆盖模式或刷新节奏:
json5
{
session: {
typingMode: "message",
typingIntervalSeconds: 4,
},
}注意事项与限制
message模式不会对纯静默回复(如NO_REPLY/no_reply,大小写不敏感)显示打字状态。thinking模式仅在运行流式推理(reasoningLevel: "stream")时生效。如果模型不输出推理增量,打字状态不会启动。- 心跳打字是一种存活信号,它在心跳运行开始时启动,而不跟随
message或thinking的流时序。可通过设为typingMode: "never"完全禁用。 - 心跳在以下情况不会显示打字:
target: "none"、目标无法解析、心跳的聊天投递被禁用、或该频道不支持打字。 typingIntervalSeconds控制的是刷新节奏,而非启动时机。默认值为 6 秒。
常见问题
打字指示器为什么不显示?
检查 agents.defaults.typingMode 是否被设为 never。如果是 message 模式且模型只返回静默回复(如 NO_REPLY),不会显示。若为 thinking 模式,确认模型是否启用了 reasoningLevel: "stream" 并输出了推理增量。还可以检查频道是否支持打字指示。
心跳打字一直显示怎么关上?
将心跳所在工作区的 agents.defaults.typingMode 或会话的 typingMode 设为 never。或者将心跳目标设为 "none" 或确保目标频道不支持打字。
thinking 模式不生效,打字不显示
核实运行的配置中是否包含 reasoningLevel: "stream"。如果模型没有输出 reasoning deltas,thinking 模式不会触发,打字不会启动。可尝试切换为 message 或 instant 模式验证问题是否为模型推理流本身未生效。
相关文档
- Presence — Gateway 如何跟踪已连接的客户端并在 macOS Instances 标签页中显示。
- Streaming and chunking — 出站流式行为、分块边界及频道特定投递。