配方
概览
配方是完整的路由策略边界。它拥有一个目标所用的证据和控制流:信号、投影、决策、路由策略、选择或 looper 算法,以及路由局部插件。
解决什么问题?
配方为不同目标隔离策略和运行时状态,同时共享模型端点和服务。它控制路由与有界 多模型工作流;Agent Harness 管 理外层循环、工具和 任务状态。
何时使用
当消费者需要不同的延迟、质量、成本、隐私或安全策略时,添加配方。它们也适用于在当前策略旁边预演新策略,然后再把客户端迁移到其入口。
当单一策略服务全部流量时,保持一个顶层 routing 块即可。Router 将该块视为 default 配方,因此现有配置无需改写。
配置
提供商绑定和 model cards 留在顶层。命名配方从其自身的 routing 块引用这些共享模型名:
routing:
modelCards:
- name: local-model
- name: general-model
entrypoints:
- model_names: [vllm-sr/privacy-v1]
recipe: privacy
recipes:
- name: privacy
description: Keep prompts containing sensitive identifiers on the local model.
routing:
strategy: priority
signals:
pii:
- name: sensitive-input
threshold: 0.5
decisions:
- name: local-sensitive-route
description: Keep detected PII on the local backend.
priority: 200
rules:
operator: AND
conditions:
- type: pii
name: sensitive-input
modelRefs:
- model: local-model
- name: general-route
description: Handle remaining requests with the general backend.
priority: 100
rules:
operator: AND
conditions: []
modelRefs:
- model: general-model
名称在所属配方内解析。两个配方都可以定义名为 sensitive-input 的信号或决策;任何一方都不能引用对方配方中的定义。
隔离什么、共享什么
| 配方局部 | 部署共享 |
|---|---|
| 信号及其阈值 | 提供商模型和后端端点 |
| 投影和依赖图 | 顶层 routing.modelCards |