Router Flow 工作流
状态: 已实现 · 创建日期: 2026-06-30
问题
多步模型工作流通常需要独立的编排服务和客户端特定 API。这使模型池、路由策略、轨迹和失败行为更难与普通推理一起管理。
Router Flow 通过与其他路由相同的 OpenAI 兼容网关和配方策略暴露有界编排。
已实现设计
Router Flow 有三个公开概念:
| 概念 | 表面 | 用途 |
|---|---|---|
| Flow model | vllm-sr/flow | 映射到包含 workflow 决策的 recipe 的普通入口名。 |
| Workflow algorithm | algorithm.type: workflows | 决策本地的编排策略。 |
| Worker pool | modelRefs | 工作流步骤可以调用的唯一模型。 |
公开名称不会按算法隐式筛选决策。请显式配置入口到 recipe 的映射与匹配规则;其他公开名称也可以暴露同一个 workflow recipe。
规划器创建计划;worker 模型执行任务步骤。规划器不能添加不在 modelRefs 中的模型。
静态工作流
静态模式使用运营方编写的角色计划。当步骤、模型、依赖和综合行为应确定且可审阅时适用。
当计划声明步骤之 间没有依赖时,独立步骤可以并发运行。依赖步骤只接收工作流声明的有界输出。
动态工作流
动态模式请配置的规划器模型给出结构化计划。路由器在任何 worker 调用之前解析并验证该计划:
- 步骤标识符必须唯一;
- 依赖必须形成无环图;
- 角色和模型必须由决策允许;
- 工具循环、步骤、调用和输出大小有界;以及
- 无效计划通过配置的错误策略失败。
规划器输出是不受信任的数据,不是可执行配置。
函数调用边界
每个工作流步骤有自己的消息和工具调用状态。工具结果只返回给请求它们的步骤。路由器强制每步和整个工作流的限制,使规划器不能创建无界智能体循环。
工具仍需要语义相关性之外的授权。只有当路由和调用方都被允许使用某工具时,工作流才可以选择它。
失败与可观测性
工作流轨迹应区分规划、验证、worker 执行、工具调用和最终综合。部分 worker 失败遵循决策策略;它不得从轨迹中悄悄消失。
超时同时适用于单次调用和完整工作流。取消会传播到未完成的 worker 调用。
范围与非目标
已实现边界支持网关内带有界 worker 的静态和动态工作流。它不:
- 训练协调器;
- 提供通用智能体框架;
- 允许任意代码执行;
- 扩大决策的 worker 池;
- 承诺工作流优于其最佳 worker;或
- 把工作流成本隐藏在单模型响应之后。
评估
在同一任务集上比较 Flow 与最佳单个 worker 以及其他 looper 算法。报告任务成功、必要时的评判标准、延迟、token、上游调用、计划验证失败、工具循环失败和轨迹完整性。
待决问题
- 哪些工作负载值得用动态规划而不是静态计划?
- 最终综合应使用规划器还是 worker?
- 哪些轨迹字段对面向用户的响应是安全的?
- 什么证据能证明训练或蒸馏协调器是合理的?