NVIDIA-NeMo/Switchyard

Switchyard lets LLM applications route traffic across models and providers while preserving native OpenAI and Anthropic API compatibility - enabling flexible model selection, benchmarking, and cost/performance optimization.

NVIDIA NeMo Switchyard – 快速概览

它是什么 – Switchyard 是一个来自 NVIDIA NeMo 的开源路由库,位于 AI 代理(或任何 LLM 驱动的服务)与语言模型池之间。Switchyard 不会将每个请求都发送到单一且通常昂贵的模型,而是决定哪个模型应该处理每个请求,让您能混合使用廉价、快速的模型与大型、能力更强的模型。

为什么它很重要 – 在生产环境的 LLM 部署中,您必须不断权衡三件事:

  • 任务成功率(模型是否产生了好的答案?)
  • 成本(您为每个 token 或 API 调用支付多少费用)
  • 延迟(用户等待的时间)。 Switchyard 为您提供了一种可编程的方式来自动优化这些权衡,而不是硬编码单一模型。

运作方式(高阶流程)

  1. 定义模型池 – 列出您可以访问的模型(例如:廉价的 7B 模型、大型的 70B 模型、Anthropic Claude 等)。
  2. 选择路由算法 – Switchyard 附带多种策略(Auto、Task-based、Execution-based、Composite,以及更进阶的如 escalation 或 sub-agent)。该算法会查看传入的请求,并可选择性地参考代理最近的工具使用信号。
  3. 路由决策 – 算法会回传应该处理该请求的模型 ID。
  4. 您的网关转发请求 – 周边服务(OpenRouter、LiteLLM、NeMo Relay 或自定义应用)会实际调用所选模型并将响应传回给用户。
  5. 迭代 – 当代理继续其工作时,路由器可以在必要时于对话中途重新评估并切换模型。

主要功能

功能 您获得的好处
多种整合点 通过现有网关(OpenRouter、LiteLLM、NeMo Relay)使用 Switchyard,执行本地代理服务器进行快速演示,或直接将 Rust/Python 库嵌入您自己的服务中。
可插拔路由算法 • Auto – 合理的默认值(效率优先、信心度 0.5、无分类器)。
• Task – 分类器模型决定廉价模型是否能处理该请求。
• Execution – 查看最近的工具使用情况和结果(stage-router)。
• Composite – 结合 Task 和 Execution 以做出更稳健的决策。
• 其他策略:Plan/Execute、Escalation、Advisor、Sub-agent、Random。
配置驱动 所有路由行为都在 TOML 文件中定义,无需更改代码即可轻松进行实验。
成本与准确度评估 内置基准测试文档和可视化工具(例如:成本-准确度图表),用于比较路由设置与单一模型基准。
可扩展组件 独立的 crate:库 (switchyard-libsy)、HTTP 客户端 (switchyard-llm-client)、执行器 (switchyard-runner) 以及演示代理服务器 (switchyard-server)。
开源,Apache-2.0 可免费使用、修改并嵌入商业产品中(受 NVIDIA 授权条款约束)。

入门选项

路径 典型用户 步骤(简述)
OpenRouter 网关 已经使用 OpenRouter API 的任何人 在您的 API 调用中设置 model=nvidia/switchyard;OpenRouter 会托管路由服务。
LiteLLM 插件 执行自己推理堆栈的开发者 Clone 仓库,遵循 examples/litellm 快速入门,锁定 LiteLLM 1.102.0。注意:仅支持 Stage 和 Random 路由。
NeMo Relay 插件 NVIDIA NeMo Relay 服务框架的用户 使用 Rust 工具链和 Python 3 构建 Rust 插件 (crates/switchyard-nemo-relay-plugin),然后配置 Relay 服务器。
本地代理服务器 快速演示、评估或个人使用 执行 switchyard-server(参见 docs/getting_started.md#server-path)并将您的客户端指向本地端点。
嵌入式库 构建自定义网关或代理应用的团队 加入 switchyard-libsy (Rust) 或使用 Python 示例 examples/libsy.py;提供您的 TOML 配置并直接调用路由 API。

谁应该使用 Switchyard?

  • 产品团队:需要在保持质量的同时降低 LLM 成本。
  • RAG / 代理开发者:希望模型能根据工具使用情况在任务中途变更。
  • 研究人员:评估路由策略或构建新路由算法。
  • 运维工程师:寻找一个可与单一模型基准进行比较且即插即用的代理。

限制与成熟度

  • 该项目为 pre-1.0;API 和行为可能会变更。生产环境请锁定特定版本。
  • 部分整合(例如:LiteLLM)被标记为 experimental,且缺乏某些算法所需的中间模型调用支持。
  • 使用 NeMo Relay 时,0.8.x/0.9.0 版本可能会丢失 Switchyard 路由之外的上游错误详细信息。

授权与社区

  • Apache 2.0 – 宽松的开源授权。
  • 问题与贡献通过 GitHub 处理(issues、PRs、行为准则)。

总结

Switchyard 是一个路由层,让您能为每个请求从模型池中动态选择最佳 LLM,平衡成本、延迟和成功率。它可通过热门网关使用、作为本地演示服务器,或直接嵌入您自己的服务中,并提供多种可通过 TOML 配置的现成路由策略。

相关

  • 项目
  • 项目
  • Dispatch
  • 项目
  • 项目