提供者切換
這是什麼
根據任務選擇模型,並在提供者失敗或成本過高時自動回退。
白話解釋
這有點像一通電話,在第一個號碼無人接聽時會自動轉接到備用線路,讓打電話的人甚至聽不到忙線音。提供者切換讓 Hermes 可以在當前模型失敗時,在對話進行中交換由哪個模型來回應,使失敗變得不可見,而不是變成死胡同。
為什麼重要
在提供者切換下,處理特定任務的模型選擇在設定時並非固定不變——它可以根據任務類型或成本預算進行路由,並在提供者出錯或超時時自動回退。成本感知自動化高度依賴這一點:一個便宜且快速的模型可以處理例行檢查,而功能更強大的模型則保留給實際需要它的任務。重試和回退在模型呼叫完全失敗時依賴相同的機制,而不是讓對話回合直接報錯。
運作方式
Hermes 將每個失敗的 API 呼叫分類為特定的原因——速率限制、計費或配額、伺服器超載、超時等——而這個分類決定了下一步做什麼,而不是對每個錯誤進行相同處理(agent/error_classifier.py)。當一個呼叫失敗時,try_activate_fallback() 會逐一遍歷備用提供者/模型配對的有序列表,跳過任何在本工作階段中已標記為不可用的條目,或者會重試已經失敗的相同提供者/模型的條目,並在整個鏈條耗盡後啟動一個短暫的冷卻時間(agent/chat_completion_helpers.py)。該鏈條由使用者配置:hermes fallback add 將一個提供者/模型配對附加到 fallback_providers 列表中。