Nemotron 3 Super is the base model behind Salesforce's new Koa, and it reasons on every request unless you turn it off. Four chat template arguments control that behavior, and three of them are the difference between a cheap pipeline and an expensive one.
NVIDIA's Nemotron 3 Super became load bearing this week. Salesforce announced Koa, its first CRM reasoning model, and named Nemotron 3 Super as the base it post trained. If you are evaluating open weight models for agent work, this is the one that just acquired a marquee production reference, and it has four reasoning controls that almost nobody configures because the defaults are quiet about them.
Start with the shape. Nemotron 3 Super 120B A12B carries 120 billion total parameters with 12 billion active per token, a hybrid LatentMoE design combining Mamba-2, mixture of experts and attention layers, with multi token prediction for native speculative decoding. It supports up to 1 million tokens of context and ships under the NVIDIA Nemotron Open Model License, which permits commercial deployment.
The control that costs the most money is enable_thinking, and it defaults to True. Every request reasons unless you tell it not to. That is the right default for agent planning and the wrong default for the high volume work that surrounds it: classification, extraction, routing, field normalization, intent tagging. Pass enable_thinking as False on those calls and you stop paying for a reasoning trace nobody reads.
The dial most teams never find is low_effort. Set inside the same chat template arguments alongside enable_thinking as True, it produces reasoning that uses significantly fewer tokens than full thinking mode. This is the missing middle setting. Most pipelines get built as a binary, thinking on for hard work and off for easy work, when a large share of real traffic wants a short chain rather than no chain at all.
Then there is reasoning_budget, which sets a hard token ceiling on the reasoning trace. The behavior underneath it is what makes it usable: the model attempts to close its reasoning at the next newline before reaching the budget, so it lands on a boundary rather than getting cut mid thought. A budget is therefore a graceful degradation mechanism, not a truncation, which means you can set one on latency sensitive paths without the usual fear of mangled output.
Two deployment details worth catching before they catch you. The Hugging Face configuration defaults to 256k of context rather than the full 1 million, because of the VRAM the larger window requires, so a team assuming a million token window will silently get a quarter of it. Serving the full context on vLLM requires setting VLLM_ALLOW_LONG_MAX_MODEL_LEN to 1. And if you are wiring this into a coding agent, NVIDIA documents force_nonempty_content as a chat template argument for exactly that case.
Try it today
- Audit your Nemotron 3 Super call sites and split them into planning calls and mechanical calls. Classification, extraction, routing and normalization are mechanical.
- On every mechanical call, pass chat_template_kwargs with enable_thinking set to False. Reasoning is on by default, so silence here means you are paying for it.
- On mid difficulty calls, keep enable_thinking as True and add low_effort as True. Measure the token delta against full thinking before deciding which tier each route belongs in.
- Set reasoning_budget on any latency sensitive path. The model closes its reasoning at the next newline before hitting the ceiling, so the output lands cleanly rather than truncating.
- Confirm your served context length. The Hugging Face config defaults to 256k, not 1 million, and the full window on vLLM needs VLLM_ALLOW_LONG_MAX_MODEL_LEN set to 1.
- If Nemotron 3 Super backs a coding agent, add force_nonempty_content as True in chat_template_kwargs, which NVIDIA documents for that case.