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 强制执行两个“硬锁”,在这些情况下路由器禁止切换模型,无论基础选择器的得分如何:

  1. 工具循环连续性: 工具结果必须返回到发起该工具调用的物理模型。
  2. 提供者管理的状态: 具有非可移植延续状态的请求必须停留在之前的物理后端。

相反,重置边界(空闲超时和决策漂移)允许路由器在连续性价值衰减或任务形状变化时重新打开模型选择。

前缀缓存和切换经济学

对于长会话,切换模型是一个系统决策。SAAR 为 缓存输入提取增量 定价——即普通提示输入定价与候选模型的缓存输入定价之间的差异。随着会话变得更长且成本更高,该政策在丢弃前缀局部性以避免高输入成本方面变得更加严格。

操作工作流和可观测性

当客户端使用稳定的 x-session-id 向逻辑模型(例如 auto)发送请求时,SAAR 处理该轮次的步骤如下:

  1. 提取信号并运行语义路由器流水线以获得基础模型选择。
  2. 从路由器内存加载会话状态。
  3. 应用硬锁(工具循环/提供者状态)。
  4. 评估重置边界(空闲/漂移)。
  5. 根据前缀缓存成本和切换历史调整分数。
  6. 选择物理模型并发出重放跟踪。

重放跟踪使操作员能够审计路由器为何保持或切换模型,从而判断决策是由硬锁、重置边界还是缓存经济驱动的。

性能与评估结果

评估在确定性策略矩阵、实时 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 个精确评分的任务实例成功完成,所有路由轮次均存在重放头。

Sources