概念内部机制

正在输入指示器

运行处于活动状态时,会向聊天渠道发送输入状态指示。使用 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 级别的默认值:

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

为单个 Agent 覆盖该策略:

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

注意事项

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

相关内容

Was this useful?
On this page

On this page