重試與備援
這是什麼
模型或工具路徑失敗時,先依錯誤類別重試,再於必要時切換到設定好的備援提供者。
白話解釋
建築物的備用發電機在電力閃爍時立即啟動,室內燈光不會熄滅,雖然電力已改由另一來源供應。Hermes 也讓一串備援模型待命;目前負責回答與呼叫工具的模型失敗時,另一個已取得同樣上下文的模型可以接手,對話不必就此中斷。
為什麼重要
單次不穩定的提供者回應不必拖垮整個 cron 執行或對話;模型呼叫可以重試或改送備援提供者,再決定是否放棄。對夜間無人值守的 VPS 工作而言,這可把短暫 API 問題與整份每日簡報遺失區分開。工具呼叫失敗也可採相同復原觀念,例如一次網路搜尋斷線不必自動終止仍可繼續的對話輪次。
運作方式
每次 API 呼叫失敗都會交給 classify_api_error(agent/error_classifier.py),分成十多種原因,例如速率限制、帳務額度用盡、伺服器過載、上下文溢位、找不到模型;每類各自帶有重試、輪替憑證、壓縮或切換備援等建議。單純重試使用含隨機抖動且依提供者調整的退避策略(agent/retry_utils.py),避免多個工作階段同時撞上限制後同步重試。重試耗盡或錯誤本身需要備援時,try_activate_fallback(agent/chat_completion_helpers.py)依序走訪設定鏈,直接替換目前用戶端、模型與提供者,讓對話迴圈其餘部分繼續。速率限制觸發備援後還會設短暫冷卻期,避免立即切回剛拒絕請求的提供者。
具體範例
無人值守的 VPS 在凌晨 2 點執行研究工作,主要提供者進行到一半回傳 429。Hermes 將其分類為速率限制,以帶抖動的延遲重試兩次;仍受限後,啟用先前用 hermes fallback add 設定的下一個備援,於同一輪切換提供者。工作照常完成並寫出報告,日誌只有一行狀態記錄這次波折。
如何連結
「重試與備援」屬於「執行期」系列。最直接相關的概念包括:「模型呼叫」、「上下文壓縮」、「個人作業系統」。這些連結描述教學關係,不取代來源證據。
來源證據
run_agent.py#run_agent.AIAgent— 精確符號對應;已對照釘選版本驗證。
工作流程
- 目前尚無第一輪工作流程對應;此概念仍透過文章與來源證據出現在知識庫圖譜中。
