据科技媒体MarkTechPost 9月2日报道,英伟达发布了Switchyard,一款用Rust编写的LLM流量代理与库。该软件用于在不同服务商之间路由请求,并在OpenAI与Anthropic的API格式间双向转换,主要面向运行编码智能体的团队。项目采用Apache 2.0许可证,文档托管在英伟达官方站点。

Switchyard并不要求客户端改写自身API。其处理流程是:将入站请求解码为与提供商无关的Rust类型,由路由算法选定后端,再按该后端自身的线上协议重新编码并调用,最后把响应连同流式事件翻译回客户端期望的格式。服务器接受三种入站格式:OpenAI Chat Completions、OpenAI Responses和Anthropic Messages。三种格式都能寻址任意路由;每个被配置的LLM客户端再自行选择一种上游格式。这种解耦打破了智能体API与后端API必须匹配的限制。

在路由层面,Switchyard提供四种算法。直通(passthrough)将所有请求发往单一目标;随机(random)按权重在多个目标间分配流量,可设置随机种子以复现选择序列,适用于A/B测试和成本实验。llm_classifier算法先让一个分类器目标给出能力判定,再路由到弱或强目标,需配置base_threshold等参数,也可以设置mode为escalation,先由弱模型执行每一轮,再由裁判决定是否用强模型重跑。stage_router则依据最近若干轮中的工具结果和智能体进度信号挑选胜任或高效目标,多数轮次无需额外调用分类器。强、弱、胜任、高效都是路由内的角色,而非模型固有属性;同一上游模型可在不同路由中服务不同角色。

Switchyard提供三种运行方式。启动器模式面向编码智能体,安装命令行工具后可直接启动Claude Code、Codex CLI或OpenClaw客户端;独立的代理服务器可通过cargo安装switchyard-server,支持配置校验后按指定地址提供服务;库模式通过switchyard-libsy将路由算法嵌入Rust应用,不占有HTTP栈,也不直接调用模型,模型调用会交还给调用方。

在可观测性方面,代理服务器的GET /metrics端点以Prometheus格式暴露指标,覆盖请求数、错误数、模型调用延迟、整轮延迟、各类token数量以及上游HTTP尝试等。其中switchyard_routing_overhead_ms反映路由算法运行时间与模型调用时间的差值;对使用LLM分类器的路由,该指标会包含分类耗时。此外可通过--routing-log-file为每个完成的响应追加一行JSON记录,并通过GET /v1/routing/session-stats查询每会话累计调用次数与token数。

配置上,Switchyard的TOML部署文件分三层:llm_clients定义基础URL、线上格式、凭据环境变量名和重试策略;targets将一个模型ID绑定到一个客户端;routes对外暴露一个客户端可见的模型ID及其算法。API密钥不会写入文件。重试默认最多两次,覆盖传输失败、超时、HTTP 408/429及5xx响应。英伟达目前把该项目标记为预alpha和实验性,强调不应用于生产,并预计API和算法在1.0之前会有重大变化。该工具可通过crates.io安装二进制,也可从PyPI安装启动器,并可部署在自托管环境中。