跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

正在输入指示器

OpenClaw 何时显示输入状态指示器以及如何调整它们

运行处于活动状态时,会向聊天渠道发送输入状态指示。使用 agents.defaults.typingMode 控制输入状态在何时开始,使用 typingIntervalSeconds 控制其刷新频率(保活间隔,默认为 6 秒)。

默认值

当 agents.defaults.typingMode 未设置时:

  • 私信:模型循环开始后立即显示输入状态。
  • 包含提及的群聊:立即显示输入状态。
  • 不包含提及的群聊:当已准入的运行产生活跃的用户可见活动(例如 harness 执行活动或消息文本)时,开始显示输入状态。
  • Heartbeat 运行:如果解析后的 Heartbeat 目标是支持输入状态的聊天,并且未禁用输入状态,则在 Heartbeat 运行开始时显示输入状态。

模式

将 agents.defaults.typingMode 设置为以下值之一:

  • never - 永远不显示输入状态指示。
  • instant - 模型循环一开始就显示输入状态,即使运行最终只返回静默回复令牌。
  • thinking - 在出现第一个推理增量时,或轮次被接受后 harness 开始活跃执行时,显示输入状态。
  • message - 在出现第一个用户可见的回复活动时显示输入状态,例如活跃的 harness 执行或非静默文本增量。NO_REPLY 等静默回复令牌不计为文本活动。

按“触发时间从早到晚”排序:never -> message/thinking -> instant。

配置

设置 Agent 级别的默认值:

{
  agents: {
    defaults: {
      typingMode: "thinking",
      typingIntervalSeconds: 6,
    },
  },
}

为单个 Agent 覆盖该策略:

{
  agents: {
    entries: {
      support: {
        typingMode: "message",
      },
    },
  },
}

注意事项

  • message 模式不会因静默回复令牌而开始显示输入状态,但在任何助手文本可用之前,活跃执行仍然可以显示输入状态。
  • thinking 仍会响应流式推理(reasoningLevel: "stream"),也可以在推理增量到达之前因活跃执行而开始显示输入状态。
  • Heartbeat 输入状态是解析后投递目标的活跃性信号。它在 Heartbeat 运行开始时启动,而不是遵循 message 或 thinking 的流式传输时序。将 typingMode: "never" 设置为禁用它。
  • 当 Heartbeat 目标为 "none"、无法解析目标、已禁用 Heartbeat 的聊天投递,或渠道不支持输入状态时,Heartbeat 不会显示输入状态。
  • agents.defaults.typingIntervalSeconds 控制每个 Agent 的刷新间隔,而非开始时间。默认值:6 秒。

相关内容

  • 在线状态:Gateway 网关如何跟踪已连接的客户端,以供 Control UI 的设备页面和 macOS 实例标签页使用。
  • 流式传输和分块:出站流式传输行为、分块边界和特定于渠道的投递。