OpenClaw 上下文視窗與限流排查
區分 429 限流、上下文超限與本機模型元資料錯誤,再安全調整 contextWindow、contextTokens 與 maxTokens。
先判斷錯誤類型
API rate limit reached 通常表示上游回傳 429、並發限制或額度限制,不能僅憑這句話判斷是 16k 上下文設定造成的。先看狀態碼與原始錯誤,再決定是否修改設定。
| 現象 | 更可能的原因 | 先做什麼 |
|---|---|---|
429、rate_limit、quota、too many requests | 上游限流、並發或額度不足 | 降低並發並稍後重試,檢查額度與上游狀態 |
context_length_exceeded、請求過大、輸入超限 | 輸入加預留輸出超過模型或閘道上限 | 縮短對話、開啟壓縮,再核對上下文設定 |
| OpenClaw 本機提示視窗過小 | 自訂模型元資料遺失或舊設定殘留 | 檢查 contextWindow、contextTokens、maxTokens |
| 只有一個模型失敗 | 模型路由或該模型參數問題 | 用同一 Key 和 Base URL 換一個模型做最小請求 |
OpenClaw 設定頁中的 Model Window 位置
三個欄位分別代表什麼
contextWindow:模型原生上下文視窗的元資料。contextTokens:OpenClaw 實際允許用於輸入的上限,可小於原生視窗。maxTokens:單次回應的最大輸出 Token 上限,不是總上下文大小。
不要為了「獲得更大上下文」隨意填入 1M。填入的值必須同時符合模型能力、貴數目前路由限制與用戶端版本。
設定位置
主設定通常位於:
~/.openclaw/openclaw.json按 Agent 單獨設定時通常位於:
~/.openclaw/agents/<agentId>/agent/models.json如果設定了 OPENCLAW_AGENT_DIR,請到該目錄查找對應 Agent 設定。
安全修改範例
以下數值只示範欄位關係,不代表所有模型的實際上限。請先在本站模型列表與目前路由說明中確認數值:
{
models: {
mode: "merge",
providers: {
guishu: {
baseUrl: "https://api.llm-token.cn/v1",
apiKey: "YOUR_API_KEY",
api: "openai-completions",
models: [
{
id: "YOUR_MODEL_ID",
name: "YOUR_MODEL_ID",
contextWindow: 128000,
contextTokens: 96000,
maxTokens: 8192,
input: ["text"]
}
]
}
}
}
}保留一部分視窗給系統提示、工具結果與模型輸出。若上游只允許更小的輸入或輸出,應繼續下調,不能只按模型廠商宣傳值填入。
修改與驗證順序
- 備份目前設定檔,不要直接覆蓋唯一副本。
- 只修改目前 provider 與模型條目,保留其他設定。
- 執行
openclaw models list,確認模型被識別。 - 執行
openclaw models set guishu/YOUR_MODEL_ID,確認選取的 provider/model 正確。 - 重啟閘道:
openclaw gateway restart。 - 先發送一則很短的測試請求,再逐步增加上下文。
如果短請求也回傳 429,繼續改大上下文視窗沒有幫助;應轉向檢查並發、帳戶額度與上游狀態。如果只有長請求失敗,再檢查輸入長度、壓縮策略與三個上下文字段。
設定截圖與日誌可能含有 API Key。提交給客服前請遮住完整 Key,只保留錯誤時間、狀態碼、模型 ID 與請求 ID。