Back
Kevin Riedl

8 min read · 11 Aug 2026
Last reviewed

Next
Made on your device, with no Instagram connection. We copy the post link for Instagram’s Link sticker.

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.

PathBest first useWhat actually runs
Agent launcherLocal Codex, Claude Code or OpenClaw experimentA Python-distributed CLI starts the packaged native Rust server
Standalone serverShared HTTP proxy with explicit routesswitchyard-server reads TOML and serves three compatible API surfaces
Embedded libraryExisting Rust gateway or agent runtimeswitchyard-libsy returns routing decisions to the host application
Python bindingsPython-owned model clients or transition from 0.1Rust 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.

  1. Choose the default posture. capable_first protects quality; efficient_first protects cost.
  2. Score recent tool signals. One signal is usually not decisive. Corroborating signals must cross confidence_threshold.
  3. Apply hard overrides. A critical error can force the capable model even when other signals are weak.
  4. Resolve ambiguity. A low-confidence turn uses the default tier or an optional LLM classifier.
  5. 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 switchyard

For 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 choiceRecommended defaultWhy
Model pairOne proven capable model plus one materially cheaper efficient modelToo many targets hide why quality or cost changed
Pickercapable_firstIt creates a conservative baseline before widening the cheap path
Threshold0.5, then calibrateIt is the documented starting point, not a universal optimum
TrafficApproved repositories with reversible tasksPre-alpha infrastructure should not own irreversible production actions
FallbackDirect-provider profile outside SwitchyardThe 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.

GateMeasureRelease question
Task qualityAccepted tasks by route and risk classDoes the efficient path preserve the capable baseline where it is allowed?
EconomicsCost per accepted task, including classifier and retry callsDo savings survive review and rework?
Routing precisionSafe, loss, rescue and hard task quadrantsWhich signals create harmful downgrades or useful escalations?
LatencyTime to first token and end-to-end p95Does the router or optional classifier break the user budget?
Resilience429, timeout, 5xx, broken stream and context overflow drillsCan the system fail once without duplicating a side effect?
OperationsDecision rationale, selected model, token totals and bypass drillCan 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?
NeMo Switchyard is NVIDIA's open-source proxy and library for routing LLM traffic across configured models. It translates OpenAI and Anthropic API formats, supports several routing algorithms and exposes operational metrics.
Can Switchyard route every step of a coding agent?
Yes. Its stage router can make a decision on each model call using recent tool results, errors, exploration and production signals. A single task may move between capable and efficient tiers as its execution state changes.
Does Switchyard require router training?
The default signal-only stage router and random routes do not require a trained router model. Teams still need representative evaluations and threshold calibration. Optional LLM classifiers add runtime model calls, and custom algorithms may have different requirements.
Is NeMo Switchyard ready for production?
The project says it is pre-alpha and not for production use. Use version 0.2 for bounded pilots with capped spend, reversible tasks, a direct-provider fallback and explicit quality gates.
Is Switchyard a Python or Rust project?
Both, with an important distinction. Version 0.2 makes the native Rust server and Rust library the primary deployment paths. The launcher is distributed as a Python package with a Rust extension, Python bindings remain available, and the older Python server is deprecated.

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.

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:

Inbox, without the noise

Follow the work that matters to you

Get a short email when we publish something new. Follow the whole blog or only the problems you care about.

What would you like to receive?
Choose your topics

Free, double opt-in, no tracking pixels.

Back
Kevin Riedl

8 min read · 11 Aug 2026
Last reviewed

Next

Get new posts by email

A short email when we publish. Free, no tracking.

Free, double opt-in, no tracking pixels.