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