會話感知的智能體路由:面向長週期任務的連續性感知模型選擇
SAAR(會話感知的智能體路由)是一種會話感知的模型選擇策略,專為解決長週期LLM智能體中的路由問題而設計。它通過添加路由器擁有的會話記憶、工具循環和非可移植提供者狀態的硬鎖定、安全重置邊界、前綴緩存感知的切換定價以及可重放蹤跡,將模型切換減少了79.29%,消除了3,836次不安全切換,並將估計的物理模型成本降低了78.71%。在2,896個實時AMD ROCm請求中,SAAR保持了會話連續性,觀測到0次違規。
長週期LLM智能體引入了一個路由問題,而單輪提示路由器並非為此設計。路由器仍然需要知道哪個模型最適合當前請求,但它也需要知道何時切換模型會破壞會話。
本文介紹了會話感知的智能體路由(SAAR),這是vLLM語義路由器中的一種會話感知模型選擇策略。SAAR保留了語義路由,但增加了路由器擁有的會話記憶、工具循環和非可移植提供者狀態的硬鎖定、安全重置邊界、前綴緩存感知的切換定價以及可重放蹤跡。
在21,600個確定性輪次中,SAAR將模型切換減少了79.29%,消除了3,836次不安全切換,並將估計的物理模型成本降低了78.71%。在2,896個實時AMD ROCm請求中,它保持了會話連續性,觀測到0次違規。
從提示路由到會話路由
vLLM語義路由器始於一個簡單的系統觀察:並非每個請求都應通過推理堆棧的同一路徑。簡短的事實性問題、安全敏感提示、多模態請求、硬推理任務和領域特定查詢可能都需要不同的處理。
該思想的第一代是提示路由。路由器從當前請求中提取信號,匹配路由決策,並選擇合適的路徑。Iris使這些信號可組合。Athena通過擴展模型選擇、記憶、重放、長上下文信號、多模態原語和AMD ROCm部署路徑,使路由器更具戰略性。
智能體再次改變了路由的單位。
編碼或研究智能體不是一個提示。它是一個會話。它規劃、調用工具、接收工具輸出、編輯文件、運行測試、從錯誤中恢復、暫停、恢復,並經常發送非常短的後續消息,如“繼續”、“修復它”、“再運行一次”或“使用之前的結果”。這些輪次之所以有意義,只是因為它們之前的軌跡。
這就是為什麼這個里程碑對語義路由器如此重要。路由器不再僅僅回答“哪個模型應該處理這個請求?”。對於智能體流量,路由器還必須回答“在當前會話中切換模型是否安全?”。第二個問題正是SAAR旨在處理的。
為什麼單輪路由對智能體失效
單輪路由在局部可能是正確的,但對會話來説可能是錯誤的。
考慮一個典型的工具使用智能體循環:
- 第1輪:客户端發送“重構這個模塊並運行測試。”提示路由器看到編碼任務;會話路由器必須記住會話已在某個物理模型上開始。
- 第2輪:模型發出工具調用。模型響應;下一個工具結果屬於同一模型。
- 第3輪:客户端發送工具結果。簡潔的觀察;發出工具調用的模型應接收結果。
- 第4輪:用户説“修復失敗的情況”。簡短跟進;指令依賴於之前的代碼、測試輸出和路由狀態。
- 第5輪:會話空閒後恢復。新的短消息;路由器可以重新考慮舊模型是否仍然值得保留。
僅憑最新消息不足夠。提示路由器可能認為工具結果看起來廉價,並將其發送給較小的模型。它可能看到一個通用的“繼續”並重新運行正常選擇器。它可能錯過提供者管理的延續狀態屬於一個物理後端。它可能因為當前消息短而丟棄前沿模型的預熱前綴緩存。
每個錯誤都有不同的失敗模式:
- 工具結果可能發送給未發出工具調用的模型。
- 非可移植的延續ID可能發送給錯誤的物理後端。
- 長時間的熱會話可能失去前綴局部性並變得不必要昂貴。
- 邏輯模型(如auto)可能變得難以調試,因為用户不再知道哪個物理模型實際服務了該輪次。
重點不是智能體永遠不應切換模型。它們應該切換。好的路由器仍應在任務變難時從廉價模型切換到更強模型,並在會話達到安全邊界時切換回來。問題是路由器需要會話上下文來知道哪些時刻是安全的。
SAAR設計
SAAR保留了現有的語義路由器決策管道。仍從請求中提取信號,仍匹配決策,模型選擇算法仍在匹配的決策內對候選模型進行排序。
SAAR在該結果周圍添加了一個會話控制層。
它包含五個部分:
- 路由器記憶:存儲上一個物理模型、匹配的決策、階段、切換次數、空閒時間、緩存證據和重放元數據。為路由器提供會話上下文,而無需成為應用記憶。
- 硬鎖定:防止在活動工具循環或非可移植提供者管理狀態期間切換。在優化成本或質量之前保持正確性。
- 重置邊界:在空閒超時或決策漂移後允許重新選擇。防止會話感知路由退化為粘性會話。
- 切換經濟:定價交接成本、切換歷史、剩餘輪次先驗和前綴緩存結賬。使跨模型層級和會話長度的切換不對稱。
- 重放蹤跡:記錄路由器為何停留、切換或拒絕切換。使邏輯模型(如auto)可檢查。
這是一個模型選擇策略,而不是端點負載均衡器。語義路由器可以通過網關合同選擇模型或集羣。端點成員資格、健康檢查和集羣內的負載均衡仍是基礎設施職責。
最重要的規則:有時路由器必須不切換
最安全的模型切換並不總是最新提示得分最高的那一個。對於智能體流量,某些輪次受連續性約束。
SAAR將兩種情況視為硬鎖定:
- 工具循環連續性:如果物理模型發出了工具調用,工具結果應返回給該物理模型。後續觀察不是新提示;它是本地執行循環的一部分。
- 提供者管理狀態:如果請求攜帶非可移植的延續狀態,如屬於一個後端的響應標識符,SAAR保持上一個物理模型,而不是靜默地將狀態移到別處。
這些規則故意比成本規則更強。如果切換不安全,路由器不應通過更便宜的模型“買”出來。
SAAR還定義了相反邊界:路由器何時可以再次切換。空閒超時和決策漂移重新打開選擇。如果智能體暫停足夠長,連續性的價值衰減。如果匹配的決策改變(如用户從代碼編輯轉向綜合或從檢索轉向調試),舊模型選擇不應永遠固定。
路由器記憶不是用户記憶
“路由器記憶”可能誤導,因此邊界很重要。SAAR記憶不是對話記憶、檢索記憶或用户檔案記憶。它不會總結對話,也不會嘗試為模型記住事實。它的職責更窄:保留足夠的路由狀態,使下一個模型選擇決策安全且可解釋。
對於每個會話,路由器跟蹤諸如:邏輯模型背後最後選擇的物理模型;最後匹配的路由決策;會話是否處於正常、工具循環、提供者狀態、空閒重置或漂移重置階段;最近發生的切換次數;最新的上下文長度和緩存證據;將響應鏈接迴路由器決策蹤跡的重放ID。
這個範圍使系統操作上有用,而無需將路由器變成第二個智能體記憶層。應用記憶應留在應用中。檢索記憶應留在檢索堆棧中。SAAR記憶僅用於使跨輪次的路由連貫。
前綴緩存使模型切換不對稱
對於長智能體會話,模型切換不僅是質量決策,也是輸入側系統決策。
短重試在廉價模型上和40輪熱會話在前沿模型上不應被同等對待。後者累積了有價值的前綴。切換離開它可能需要下一個物理模型支付更大的輸入成本,即使可見的用户消息很短。
因此,SAAR定價一個緩存輸入結賬增量:正常提示輸入價格與所考慮物理模型的緩存輸入價格之間的差距。會話越長越昂貴,策略關於丟棄前綴局部性就越嚴格。
這也澄清了路由邏輯模型的緩存令牌會計。如果用户調用auto,路由器可能隨時間將邏輯名稱映射到不同的物理模型。一個後端報告的緩存命中是該後端的物理證據。它不能自動轉移到另一個後端。SAAR保持後端報告的緩存令牌與路由器估計的重用分開,並且不會重寫上游使用字段。
這種分離在操作上有用。運營商可以檢查物理緩存行為,而路由器使用自己的記憶來決定切換是否值得結賬成本。
請求如何通過SAAR
服務路徑保持熟悉。客户端發送請求到OpenAI兼容網關,通常使用邏輯模型名稱如auto。為了啓用會話感知路由,它們還發送穩定的會話標識符如x-session-id。
SAAR然後按順序處理每個輪次:
- 讀取當前請求、會話ID、工具調用上下文、提供者狀態標記和候選模型集。
- 運行正常的語義路由器信號和決策管道。
- 從配置方法(如混合評分)產生基本模型選擇結果。
- 從路由器記憶加載上一個會話路由狀態。
- 應用工具循環和提供者管理狀態的硬鎖定。
- 檢查空閒超時和決策漂移邊界。
- 使用前綴緩存結賬成本和切換歷史調整切換分數。
- 選擇物理模型併發出診斷信息。
- 更新路由器記憶並寫入重放蹤跡。
配置存在於路由決策的模型選擇算法內:
routing:
decisions:
- name: agentic_routing
modelRefs:
- model: qwen3-8b
- model: qwen3-32b
algorithm:
type: session_aware
session_aware:
base_method: hybrid
idle_timeout_seconds: 300
tool_loop_hard_lock: true
context_portability_hard_lock: true
decision_drift_reset: true
prefix_cache_weight: 0.20
switch_history_weight: 0.04這些值是有意的策略旋鈕,不是一刀切的常量。客户服務助手使用短會話可能使用更寬鬆的空閒超時。