
이미지: METAL LAB 생성
摘要
- NVIDIA发布了开源代理"Switchyard",可将LLM流量分散路由到多个模型和提供商
- 无需改变API格式,Claude Code、Codex等智能体即可使用vLLM、NVIDIA NIM、Ollama等模型
- 项目目前处于预alpha阶段,团队表示在正式版发布前API和算法都会有较大变动
- 프로젝트명
- Switchyard
- 개발
- NVIDIA (GitHub 조직 NVIDIA-NeMo, 저작권 NVIDIA Corporation)
- 형태
- Rust로 작성된 프록시 및 라이브러리
- 지원 API 변환
- OpenAI Chat Completions ↔ OpenAI Responses ↔ Anthropic Messages
- 지원 백엔드
- vLLM, NVIDIA NIM, Ollama, OpenAI 호환 엔드포인트
- 실행 방식
- 런처(Claude Code·Codex CLI·OpenClaw), 서버, 라이브러리 3가지
- 개발 단계
- 프리알파(pre-alpha), v1.0 전까지 API·알고리즘 크게 변경 예정
- 라이선스
- Apache 2.0
让编程智能体直接接入开源模型
当开发者出于成本或速度考虑,想把正在使用的Claude Code或Codex等编程智能体切换到开源模型时,通常不得不对智能体本身的设置动大手术。原因在于每个智能体都固定采用OpenAI方式或Anthropic方式中的一种。NVIDIA通过其GitHub组织NVIDIA-NeMo发布的开源项目"Switchyard",是一个基于Rust的代理,可以在不触碰智能体端代码的情况下绕开这一问题。
它解决了什么问题
Switchyard可以将请求分散到多个提供商,在OpenAI和Anthropic API之间相互转换,记录运行指标,并提供类型化的路由算法。举例来说,即便照常打开Claude Code,只要在后端切换为vLLM、NVIDIA NIM、Ollama或兼容OpenAI的端点,智能体仍会以为自己在使用原生API对话。实际处理请求的其实是服务器端选定的另一个模型。基于同样的结构,还可以把流量分散到多个模型上进行A/B基准测试,或根据特定信号分阶段调用不同模型的路由方式,也可以接入自行编写的算法。
如何使用
该项目提供三种运行方式。
- 启动器方式——通过Switchyard运行Claude Code、Codex CLI、OpenClaw等编程智能体。如果尚未安装Python包管理工具uv,需先安装,然后安装已发布的Switchyard工具、设置OpenRouter密钥,再运行打包好的发行版。若要使用自定义的TOML配置,只需指定路由ID和配置文件即可。
- 服务器方式——将Switchyard作为独立代理启动。安装Rust和Cargo后,再安装已发布的二进制文件,默认会在
~/.cargo/bin下生成可执行文件。接下来是创建routes.toml配置文件、验证配置并启动服务器的流程。 - 库方式——将
switchyard-libsy嵌入到自己的Rust应用中。该库本身不直接调用模型,只负责决定使用哪个目标,实际调用交由调用方处理,因此无需在现有代理、网关或智能体运行时上额外搭建HTTP栈即可接入。
| 方式 | 适用对象 | 安装前提 |
|---|---|---|
| 启动器 | Claude Code、Codex CLI、OpenClaw用户 | uv |
| 服务器 | 想以独立代理方式运行的团队 | Rust、Cargo |
| 库 | 需在自有Rust应用中内嵌路由功能 | Rust项目 |
目前处于生产之前的阶段
项目说明中明确写道:"Experimental software. Not for production use."(实验性软件,非生产用途)。同时还说明该项目处于预alpha阶段,预计在达到v1.0之前API和路由算法都会有较大变动。许可证为Apache 2.0,版权方标注为NVIDIA。
可以尝试的应用场景
例如,团队内部可以把Claude Code作为标准工具使用,同时对敏感代码库采用自托管的开源模型处理,普通任务则发送给商用模型,由此实现分流。或者将同一提示词同时发送给多个开源模型,用于比较响应质量和延迟的基准测试。利用基于信号的分阶段路由,还可以搭建在响应失败率升高时自动切换到其他模型的配置。
编辑视角
NVIDIA是芯片公司,不是聊天机器人公司。但它仍在自己的GitHub组织下推出这样的路由代理,理由很简单——开源模型越多,售卖运行这些模型所需硬件的一方就越有利。开发者越容易用自托管模型替代Claude或GPT,运行这些模型所需的GPU需求也会随之增长。Switchyard最终可以被解读为NVIDIA试图让运行在自家芯片上的vLLM、NIM等服务栈,与编程智能体生态系统联系得更紧密的举动。
类似的尝试此前已有不少。Unsloth Desktop推出过将Claude Code和Codex连接到本地LLM的桌面应用,LiteLLM等项目也早已在做API格式转换的工作。Switchyard的不同之处在于它是用Rust编写的底层代理,并且还同时提供了可以直接嵌入自定义路由算法的库形式。不过,把处于预alpha阶段的软件直接接入团队编程智能体的前端,现在还为时尚早。目前更适合的用法是,在个人实验环境中把Claude Code与运行在vLLM或Ollama上的开源模型连接起来做A/B对比。在路由逻辑发生变动的v1.0发布之前,最好不要把生产流量交给它处理。
未来几周内,很可能会有人在GitHub issue或社区中分享把这一代理接入实际公司内部智能体流水线的案例。这些反馈能被多快吸收,将决定这个项目最终只是停留在实验工具阶段,还是真正成为各团队采用的基础设施。




评论