概念内部机制
正在输入指示器
运行处于活动状态时,会向聊天渠道发送输入状态指示。使用 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 秒。
相关内容
Was this useful?