Skip to content
Rush Commerce
Software & Dev3 min read

NVIDIA's NOOA makes an AI agent one Python class

NVIDIA open-sourced NOOA, an agent framework where methods are actions and type hints are enforced contracts. A 253-line agent hit 82.2% on SWE-bench Verified.

Most agent frameworks ask you to learn a graph DSL, a YAML schema, and a prompt-templating language before you write a line of logic you can test. NVIDIA Labs open-sourced an agent framework that goes the other way: NOOA makes the whole agent one ordinary Python class, and the parts you already know how to test stay testable.

What actually happened

NVIDIA-NeMo/labs-OO-Agents shipped under Apache 2.0, with a technical writeup on NVIDIA's developer blog dated July 27 and a paper at arXiv 2607.20709. The mapping is the whole idea:

  • Methods are the actions the model can take
  • Fields are agent state
  • Docstrings are the prompts
  • Type annotations are contracts the runtime enforces

A method whose body is ... gets completed at runtime by an LLM-driven loop. A method with a real body stays deterministic Python. You decide, per method, which parts of your agent are a model call and which parts are code — and both live in the same class.

The reported numbers: a general-purpose 253-line agent with no benchmark-specific prompts reached 82.2% on SWE-bench Verified with GPT-5.5, above the 79.2% published state of the art at submission, and 79.8% with Opus 4.6. It is model-agnostic through LiteLLM — Anthropic, OpenAI, Ollama, vLLM. NVIDIA's own docs tell you to run it sandboxed and isolated from your primary filesystem, which is the correct warning and one most frameworks bury.

Standard caveat: SWE-bench Verified is a benchmark, and a 253-line harness that wins on it is not automatically a 253-line harness that fixes your billing bug.

Why an agent framework you can actually test matters for your business

The reason agent projects stall in month three is not model quality. It is that nobody can answer "why did it do that" and nobody can write a regression test for the answer. When your agent's behavior lives in a prompt string inside a YAML file inside a graph builder, you are debugging by vibes.

NOOA's bet is that the interface the model sees and the interface your developers see should be the same object. That has practical consequences a small team feels immediately. You can unit-test a deterministic method without paying for a model call. You can diff agent behavior in a pull request because the behavior is code. You can put a typed contract on a return value and have the runtime enforce it, instead of parsing JSON out of prose and hoping. And when you swap models — which you will do, repeatedly — the class does not change.

We are not telling you to adopt NVIDIA's framework. We are telling you to adopt its constraint. Whatever you build on, the test is: can a developer who has never seen this agent read one file and know what it can do to your systems? If not, the framework is an abstraction you rent, not a system you own.

Key takeaways

  • NOOA is Apache 2.0 and model-agnostic via LiteLLM — Anthropic, OpenAI, Ollama, vLLM
  • Methods are actions, fields are state, docstrings are prompts, type hints are enforced contracts
  • A ... method body is filled by an LLM loop; a real body stays deterministic Python
  • A 253-line agent hit 82.2% on SWE-bench Verified with GPT-5.5 (79.8% with Opus 4.6)
  • NVIDIA says to run agents sandboxed and isolated from your primary filesystem

An agent you can't test is a liability with good demos. We build agent workflows as reviewable code — typed contracts, deterministic steps where determinism matters, and a model layer you can swap. See how we build them or show us the agent that keeps surprising you.

Sources: NVIDIA Developer Blog, GitHub: NVIDIA-NeMo/labs-OO-Agents.

  • #nvidia
  • #ai-agents
  • #developer-tools
  • #python
  • #open-source
TR

Tommy Rush — Founder, Rush Commerce

Operator turned builder. 15+ years running operations — now shipping the systems businesses run on. More

Get The Rush Report weekly — one email, zero fluff.