Concept internals
輸入狀態指示器
正在輸入指示器會在執行處於作用中時傳送到聊天通道。使用
agents.defaults.typingMode 控制正在輸入何時開始,並使用 typingIntervalSeconds
控制多久重新整理一次。
預設值
當 agents.defaults.typingMode 未設定時,OpenClaw 會保留舊有行為:
- 直接聊天:模型迴圈開始後,正在輸入會立即開始。
- 有提及的群組聊天:正在輸入會立即開始。
- 沒有提及的群組聊天:只有在訊息文字開始串流時,正在輸入才會開始。
- Heartbeat 執行:如果解析後的 heartbeat 目標是支援正在輸入的聊天,且正在輸入未被停用,則正在輸入會在 heartbeat 執行開始時啟動。
模式
將 agents.defaults.typingMode 設為下列其中之一:
never- 永遠不顯示正在輸入指示器。instant- 模型迴圈一開始就開始顯示正在輸入,即使該執行稍後只回傳靜默回覆權杖。thinking- 在第一個推理 delta 時開始顯示正在輸入(該執行需要reasoningLevel: "stream")。message- 在第一個非靜默文字 delta 時開始顯示正在輸入(忽略NO_REPLY靜默權杖)。
「觸發得多早」的順序:
never → message → thinking → instant
設定
設定代理層級的預設值:
{ agents: { defaults: { typingMode: "thinking", typingIntervalSeconds: 6, }, },}針對每個工作階段覆寫模式或節奏:
{ session: { typingMode: "message", typingIntervalSeconds: 4, },}備註
- 當整個負載是確切的靜默權杖(例如
NO_REPLY/no_reply,不區分大小寫比對)時,message模式不會對純靜默回覆顯示正在輸入。 thinking只會在執行串流推理(reasoningLevel: "stream")時觸發。 如果模型未發出推理 delta,正在輸入不會開始。- Heartbeat 正在輸入是解析後傳遞目標的活躍訊號。它會在 heartbeat 執行開始時啟動,而不是依循
message或thinking的串流時機。設定typingMode: "never"可停用。 - 當
target: "none"、無法解析目標、heartbeat 的聊天傳遞已停用,或通道不支援正在輸入時,Heartbeat 不會顯示正在輸入。 typingIntervalSeconds控制的是重新整理節奏,不是開始時間。 預設值是 6 秒。