vLLM 会话感知代理路由(SAAR)发布
vLLM 会话感知代理路由(SAAR)发布
vLLM 已引入 会话感知代理路由(SAAR),这是 vLLM 语义路由器内的一种会话感知模型选择策略。SAAR 通过引入路由器拥有的会话内存、工具循环的硬锁以及前缀缓存感知的切换定价,解决了单轮提示路由器在长时程代理场景中的失效,模型切换减少了 79.29%,并在确定性测试中消除了不安全的切换。
从提示路由到会话路由的转变
传统的提示路由基于当前请求的信号选择模型。然而,LLM 代理在会话中运行——规划、调用工具和处理观察——其中每个轮次只有在前序轨迹的上下文中才有意义。
为什么单轮路由对代理失效
单轮路由可能在局部最优但会话层面不正确。这会导致几种失效模式:
- 工具循环断裂: 工具结果可能被路由到未发起该工具调用的模型。
- 状态丢失: 非可移植的提供者管理的延续 ID 可能被发送到错误的物理后端。
- 低效率: 前沿模型的温暖前缀缓存可能因为特定轮次的消息较短而被丢弃,导致成本增加。
- 可观测性空白: 当每个轮次服务的物理模型未知时,逻辑模型(例如
auto)难以调试。
SAAR 设计与架构
SAAR 在现有的语义路由器流水线上添加了一个会话控制层。它利用五个主要组件来管理模型选择:
| Component | Function | Purpose |
|---|---|---|
| Router Memory | 跟踪最后的物理模型、匹配的决策、阶段和缓存证据 | 提供会话上下文而不成为应用内存 |
| Hard Locks | 在活跃的工具循环或非可移植提供者状态期间防止切换 | 确保正确性,优先于成本/质量优化 |
| Reset Boundaries | 允许在空闲超时或决策漂移后重新选择 | 防止路由变成永久的“粘滞” |
| Switch Economics | 定价交接成本和前缀缓存提取 | 根据会话长度和模型层级使切换具有非对称性 |
| Replay Traces | 记录留存/切换决策背后的理由 | 使类似 auto 的逻辑模型可检查 |
硬连续性约束
SAAR 强制执行两个“硬锁”,在这些情况下路由器禁止切换模型,无论基础选择器的得分如何:
- 工具循环连续性: 工具结果必须返回到发起该工具调用的物理模型。
- 提供者管理的状态: 具有非可移植延续状态的请求必须停留在之前的物理后端。
相反,重置边界(空闲超时和决策漂移)允许路由器在连续性价值衰减或任务形状变化时重新打开模型选择。
前缀缓存和切换经济学
对于长会话,切换模型是一个系统决策。SAAR 为 缓存输入提取增量 定价——即普通提示输入定价与候选模型的缓存输入定价之间的差异。随着会话变得更长且成本更高,该政策在丢弃前缀局部性以避免高输入成本方面变得更加严格。
操作工作流和可观测性
当客户端使用稳定的 x-session-id 向逻辑模型(例如 auto)发送请求时,SAAR 处理该轮次的步骤如下:
- 提取信号并运行语义路由器流水线以获得基础模型选择。
- 从路由器内存加载会话状态。
- 应用硬锁(工具循环/提供者状态)。
- 评估重置边界(空闲/漂移)。
- 根据前缀缓存成本和切换历史调整分数。
- 选择物理模型并发出重放跟踪。
重放跟踪使操作员能够审计路由器为何保持或切换模型,从而判断决策是由硬锁、重置边界还是缓存经济驱动的。
性能与评估结果
评估在确定性策略矩阵、实时 AMD ROCm 服务以及代理任务跟踪中进行。
策略矩阵结果(21,600 轮)
| Policy | Switches | Unsafe Switches | Est. Cost Reduction | Quality Delta |
|---|---|---|---|---|
| Single-turn | 9,709 | 3,836 | 0.00% | +0.0000 |
| Sticky session | 340 | 0 | 98.65% | -0.1433 |
| Full SAAR | 2,011 | 0 | 78.71% | -0.0453 |
正确性和可靠性
- 硬锁效能: 工具循环切换违规从 3,404 次降至 0;提供者状态违规从 432 次降至 0。
- 实时服务: 在 AMD ROCm 上的 2,896 个实时请求中,未观察到任何连续性违规。
- 故障恢复: 在注入的 HTTP 503 后端故障后,受影响的会话(32/32)中有 100% 恢复。
- 任务完成: 18/18 个精确评分的任务实例成功完成,所有路由轮次均存在重放头。