Switchyard:专为大语言模型流量打造的 Rust 代理与库,功能强大!

📅 2026/8/13 12:22:34
Switchyard:专为大语言模型流量打造的 Rust 代理与库,功能强大!
1. Switchyard 简介Switchyard 是一款用 Rust 编写的代理和库专为处理大语言模型LLM的流量而设计。它能够在不同的模型提供商之间路由请求实现 OpenAI 和 Anthropic API 之间的转换记录操作指标并提供类型化、可组合的路由算法。2. 为何选择 Switchyard你可以将像 Claude Code 或 Codex 这样的编码代理指向开源模型。Switchyard 能在 OpenAI Chat、Anthropic Messages 和 OpenAI Responses 等格式之间进行转换这样编码代理可以继续使用其原生 API而请求则由 vLLM、NVIDIA NIM、Ollama 或任何兼容 OpenAI 的端点来处理。同一个代理还能将流量分散到多个模型用于 A/B 测试、应用基于信号的阶段路由或者运行你自己编写的自定义算法。3. 主要特性协议转换支持在 OpenAI Chat、Anthropic Messages 和 OpenAI Responses 格式之间进行转换。多后端路由提供随机路由、以大语言模型作为分类器的路由、基于信号的阶段路由也支持你自定义算法。操作指标通过 Prometheus 指标记录请求、错误、延迟、令牌数量和路由开销等信息。4. 成熟度Switchyard 目前处于预 alpha 阶段仍在快速发展。在达到 v1.0 版本之前其 API 和算法预计会有重大变化。请注意这是实验性软件请勿用于生产环境。5. 快速开始你可以根据需求选择以下三种使用方式启动器方式通过 Switchyard 运行 Claude Code、Codex CLI 或 OpenClaw。若尚未安装 uv需先进行安装然后安装已发布的 Switchyard 工具curl -LsSf https://astral.sh/uv/install.sh | shsource $HOME/.local/bin/envuv tool install --python 3.10 nemo-switchyard[cli]你启动的编码代理也必须安装并在系统的 PATH 环境变量中。此方式不会安装独立的 switchyard - server 二进制文件若要安装请使用服务器方式。设置 OpenRouter 密钥并针对打包部署进行启动export OPENROUTER_API_KEYyour - openrouter - keyswitchyard launch claude --model switchyardswitchyard launch codex --model switchyardswitchyard launch openclaw --model switchyard若要使用你自己的原生 TOML 部署需传递其路由 ID 和配置switchyard launch claude --model my - route --config routes.toml服务器方式用于安装和运行独立的 Rust 代理。使用 Cargo 安装 Rust然后安装已发布的二进制文件cargo install --locked switchyard - serverswitchyard - server --helpCargo 默认会将发布版二进制文件构建并安装到 ~/.cargo/bin 目录。根据快速上手指南创建 routes.toml 文件然后验证并启动服务器export OPENROUTER_API_KEYyour - openrouter - keyswitchyard - server --config routes.toml --dry - runswitchyard - server --config routes.toml --host 127.0.0.1 --port 4000在另一个终端中验证代理curl http://localhost:4000/health若要获取完整配置和测试请求请参考快速上手指南。库方式switchyard - libsy 可将路由算法嵌入到你自己的 Rust 应用程序中。它本身不会调用模型而是由算法决定使用哪个目标并将每个模型调用返回给你这样它可以集成到现有的代理、网关或代理运行时中无需拥有自己的 HTTP 栈。当你希望自动进行模型调用时可以将其与 switchyard - llm - client 配合使用。在 Cargo.toml 中添加以下依赖[dependencies]switchyard - libsy { git https://github.com/NVIDIA - NeMo/Switchyard.git }switchyard - protocol { git https://github.com/NVIDIA - NeMo/Switchyard.git }有关设置和算法列表请参考快速上手指南或 switchyard - libsy 包文档。6. 路由策略| 策略 | 使用场景 | 路由类型 || ---- | ---- | ---- || LLM 分类器 | 请求内容应决定某个回合需要使用弱层级还是强层级模型。 | llm_classifier || 阶段路由 | 对话中已有的信号如工具结果和错误应在无需额外模型调用的情况下对大多数回合进行路由。 | stage_router || 升级路由 | 每个回合先在弱层级模型上运行然后由评判器根据结果决定是否将相同请求发送到强层级模型。 | llm_classifier模式为 escalation || 随机路由 | 你需要为 A/B 测试、基线测试或成本实验进行固定的流量分配。 | random |直通路由会在一个模型 ID 下注册一个目标无需进行路由决策。有关常见路由形状和自托管目标的详细信息请参考路由概述。7. 架构客户端保持其原生的 OpenAI 或 Anthropic API 格式。Switchyard 会选择一个已配置的后端将请求以该后端的格式转发并将响应转换回客户端期望的格式。服务器支持 OpenAI Chat Completions、OpenAI Responses 和 Anthropic Messages。每个配置的大语言模型客户端会选择一种上游格式。8. 文档快速上手提供完整的启动器和独立服务器使用指南。核心概念介绍大语言模型客户端、目标、路由、模型 ID 和路由算法等概念。路由概述帮助你选择和配置路由算法。switchyard - server介绍服务器配置、路由算法和指标。switchyard - libsy说明如何将路由算法嵌入到 Rust 应用程序中。switchyard - protocol提供与提供商无关的请求、响应和流式传输类型。switchyard - translation介绍请求、响应和流的转换。9. 社区问题反馈可在 GitHub Issues 上提交问题。行为准则请遵守行为准则。10. 许可证采用 Apache 2.0 许可证版权归 NVIDIA Corporation 所有。