NeMo Switchyard 0.2: Agent Model Routing Without Training?
NeMo Switchyard is an open-source control plane that can choose a model for each turn of an AI agent, translate between OpenAI and Anthropic API formats, and expose routing, token, latency and cost signals. Version 0.2 arrived on 10 August 2026. It is interesting because its stage router can use the agent's own tool results and progress instead of requiring a separately trained routing model.
That does not make it a free production optimizer. Switchyard is explicitly pre-alpha, the route still needs calibration, and a cheaper model is only cheaper when the completed task remains acceptable. This review answers one narrow commercial question: should an engineering team pilot NeMo Switchyard now? For category selection, use our LLM gateway and router comparison. For the wider team design, use the multi-model coding-agent buying guide. Research was reviewed on 11 August 2026.
Independence and trademarks: Wavect publishes this page and is itself a provider, so we have a commercial interest in it. We are not affiliated with, endorsed by or partnered with the other companies named here, and all third-party company names, brands and trademarks are the property of their respective owners. Statements about other providers are taken from publicly available sources, primarily their own published pages, as of the review date shown on this page, and may have changed since. Please verify them directly before you decide. This page was written to the best of our knowledge and with the intent to remain objective. If you believe anything here is inaccurate or unfair, write to us and we will correct it: [email protected]
What is NeMo Switchyard?
NeMo Switchyard is NVIDIA's Apache-2.0 model-routing proxy and library for agent and LLM traffic. A client sends OpenAI Chat Completions, OpenAI Responses or Anthropic Messages requests to one route ID. Switchyard selects a configured target, calls that backend in its native format, and translates the response back to the client.
The current NeMo Switchyard 0.2 package record dates the latest release to 10 August 2026 and requires Python 3.12 or newer for the packaged tool. The official Switchyard repository describes four routing choices: weighted random traffic, an LLM classifier, a signal-driven stage router and escalation after a weak-model attempt. It also warns that the project is pre-alpha and not for production use.
What changed in Switchyard 0.2?
Switchyard 0.2 changes the architecture more than the version number suggests. The native Rust server and switchyard-libsy are now the primary deployment paths. Python still matters, but mainly as the distribution and integration surface around the Rust core.
| Path | Best first use | What actually runs |
|---|---|---|
| Agent launcher | Local Codex, Claude Code or OpenClaw experiment | A Python-distributed CLI starts the packaged native Rust server |
| Standalone server | Shared HTTP proxy with explicit routes | switchyard-server reads TOML and serves three compatible API surfaces |
| Embedded library | Existing Rust gateway or agent runtime | switchyard-libsy returns routing decisions to the host application |
| Python bindings | Python-owned model clients or transition from 0.1 | Rust algorithms are exposed in process; the older Python server remains but is deprecated |
This distinction matters for procurement. “Python library” is not wrong, but it is incomplete for 0.2. A new deployment should budget for a Rust-native service or library, versioned TOML configuration, native observability and the operational ownership of another traffic control point.
How does stage routing choose a model for every agent turn?
Stage routing reads the history an agent already produces. The official stage-router specification scores recent errors, repeated activity without progress, exploration, writes and passing tests. Error recovery and uncertain exploration push a turn toward the capable tier. Settled mechanical work pushes it toward the efficient tier.
- Choose the default posture.
capable_firstprotects quality;efficient_firstprotects cost. - Score recent tool signals. One signal is usually not decisive. Corroborating signals must cross
confidence_threshold. - Apply hard overrides. A critical error can force the capable model even when other signals are weak.
- Resolve ambiguity. A low-confidence turn uses the default tier or an optional LLM classifier.
- Record the decision. Response headers expose the selected model and a human-readable rationale.
This is more agent-native than classifying only the initial prompt. The same task can begin on a capable model during discovery, move to an efficient model after the plan settles, and return to the capable tier after a failed test. The router is reacting to execution state, not pretending the whole trajectory was knowable at turn one.
Does NeMo Switchyard really need no training?
The default signal-only stage router needs no separately trained router model. Its rules and threshold work from tool-call history. Random routing also needs no training. An LLM-classifier route uses another model at runtime, while custom algorithms may introduce their own data or training requirements.
No training does not mean no evidence. NVIDIA recommends starting around a 0.5 threshold, then calibrating on representative tasks. Its documented minimum-data path uses roughly 40 to 75 capable-model runs and about 20 efficient-model probes. That is evaluation and policy calibration rather than model training, but it still costs tokens, engineering time and reviewer attention.
What is the fastest responsible setup?
Use the launcher for a local experiment and the standalone server for a team pilot. Keep the first route to two models and one objective.
uv tool install --python 3.12 "nemo-switchyard[cli,server]"
switchyard launch codex --model switchyardFor a custom route, install switchyard-server, declare one capable target and one efficient target in TOML, validate with --dry-run, then bind to localhost. Do not expose port 4000 directly to a team or the internet. Put authentication, TLS, rate limits and network policy in an approved gateway boundary.
| Pilot choice | Recommended default | Why |
|---|---|---|
| Model pair | One proven capable model plus one materially cheaper efficient model | Too many targets hide why quality or cost changed |
| Picker | capable_first | It creates a conservative baseline before widening the cheap path |
| Threshold | 0.5, then calibrate | It is the documented starting point, not a universal optimum |
| Traffic | Approved repositories with reversible tasks | Pre-alpha infrastructure should not own irreversible production actions |
| Fallback | Direct-provider profile outside Switchyard | The team can compare and bypass the router during incidents |
Is NeMo Switchyard production-ready?
No, not as a drop-in production dependency today. The project's own maturity warning is unambiguous. The Switchyard 0.2 changelog also lists known gaps: upstream work may continue after a client disconnects, some fallback decisions lack tier attribution in stats, retry recovery can be undercounted, native session stats omit a session header, and the native server does not send one documented version header upstream.
Those are not reasons to ignore the project. They are reasons to scope it honestly. A developer-tool pilot with capped spend and no customer data is different from a support agent that issues refunds or an autonomous workflow that changes production systems.
What does the NeMo Relay integration add?
The experimental NeMo Relay 0.6 Switchyard integration shows a useful production pattern. Switchyard makes the routing decision, while Relay owns credentials, target bindings, protocol translation, dispatch, retries, trusted fallback and observability. It also offers observe_only, which records the hypothetical route while still sending traffic to a trusted default.
That separation is the strongest adoption idea in the current stack. Shadow the decision first. Compare what Switchyard would have selected against task outcomes. Enforce only after the cheap route has passed the same acceptance criteria as the direct baseline.
What should a 30-day Switchyard pilot measure?
A router should optimize accepted outcomes, not cheap calls. Use the evaluation approach from our LLM evaluation ROI guide and keep failed attempts, judge calls and retries inside the cost calculation.
| Gate | Measure | Release question |
|---|---|---|
| Task quality | Accepted tasks by route and risk class | Does the efficient path preserve the capable baseline where it is allowed? |
| Economics | Cost per accepted task, including classifier and retry calls | Do savings survive review and rework? |
| Routing precision | Safe, loss, rescue and hard task quadrants | Which signals create harmful downgrades or useful escalations? |
| Latency | Time to first token and end-to-end p95 | Does the router or optional classifier break the user budget? |
| Resilience | 429, timeout, 5xx, broken stream and context overflow drills | Can the system fail once without duplicating a side effect? |
| Operations | Decision rationale, selected model, token totals and bypass drill | Can an engineer explain and reverse one route quickly? |
When should you choose Switchyard, a gateway or custom routing?
- Pilot Switchyard when per-turn coding-agent signals are the main opportunity and your team can operate pre-alpha Rust infrastructure.
- Choose a broader gateway when identity, quotas, policy, provider failover and audit administration matter more than agent-stage signals. Our OmniRoute setup and production checklist covers that product-specific path.
- Build a narrow custom route when the workflow has a small number of stable task classes, strict side-effect rules or application-owned evaluation signals.
- Keep one model when traffic volume is low, tasks are uniformly sensitive or the routing layer would cost more to evaluate and operate than it saves.
Self-hosting Switchyard does not make remote inference local. Prompts still reach every configured upstream, and a router becomes a privileged point in the data path. Classify repository and customer data before routing, isolate credentials by environment, minimize stored prompts, and include the router in incident response and supplier review.
Production AI help
Building an AI product and worried about inference cost, architecture, or production readiness? Wavect helps founders turn AI prototypes into reliable production systems.
Explore the service path:
Frequently Asked Questions
What is NeMo Switchyard?
Can Switchyard route every step of a coding agent?
Does Switchyard require router training?
Is NeMo Switchyard ready for production?
Is Switchyard a Python or Rust project?
Final thoughts
NeMo Switchyard is a timely infrastructure idea because an agent's hardest step is not always its first one. Stage routing can reserve capable models for exploration and recovery, then move settled work to an efficient tier without training a separate router model.
The responsible move is a shadowed pilot, not a production shortcut. Start with two models, a quality-first default, representative tasks and a direct bypass. Measure cost per accepted task and enforce routing only when the evidence shows that cheaper turns remain safe.
