Skip to main content
  1. Articles/

NVIDIA Wants Your AI Agent to Be a Single Python Class

·1013 words·5 mins·
Florent Clairambault
Author
Florent Clairambault
CTO & software engineer — writing daily about spec-driven development and agentic coding

NVIDIA Wants Your AI Agent to Be a Single Python Class

Most agent frameworks make you learn their vocabulary before you write a line of agent logic: chains, graphs, executors, tool schemas defined as JSON, callback registries, a workflow DSL bolted on top of regular Python. NVIDIA’s answer, released as an alpha on July 30 and picked up broadly by trade press this past week, is to throw most of that out: an agent is just a Python class, and the language’s own features — method signatures, docstrings, type annotations — do the work that a separate configuration layer usually handles.

What NOOA Actually Is
#

NOOA — NVIDIA Object-Oriented Agents — ships as pip install nooa (currently v0.0.8, Apache 2.0 license, Python 3.12–3.13), with the source at github.com/NVIDIA-NeMo/labs-OO-Agents and a companion paper on arXiv led by Paul Furgale with 14 co-authors, submitted July 22.

The core idea, per NVIDIA’s own framing: an agent is one Python class where methods are the actions the model can take, fields are the agent’s state, docstrings are the prompts, and type annotations are contracts the runtime actually enforces. The mechanism that makes this more than a naming convention is what NVIDIA calls “generation methods” — a method whose body is just ... gets its implementation filled in by an LLM at runtime, guided by the docstring and constrained by the type signature. Methods with a real body execute as ordinary, deterministic Python. A single class can freely mix both: a search_codebase method the model improvises against a docstring next to a run_tests method that’s just a subprocess call, both callable through the same interface, both operating on the same typed instance state.

The paper describes this as combining six model-facing capabilities: typed input/output, pass-by-reference over live objects (the model can hold and mutate an actual object rather than passing serialized state back and forth), code as action, programmable loop engineering, explicit object state, and model-callable harness APIs. Models are pluggable through LiteLLM, so hosted APIs, Ollama, and vLLM endpoints are all fair game — this isn’t a framework locked to NVIDIA’s own models or hardware.

The Part Worth Taking Seriously: NVIDIA Doesn’t Trust Its Own Guardrails
#

The most interesting design decision in NOOA isn’t the class-as-agent conceit — it’s what the project says about its own safety mechanisms. The README ships AST checks and module deny-lists as in-process guardrails, then explicitly tells you not to rely on them: they’re “defense-in-depth guardrails, not a containment boundary.” The actual containment boundary, per NVIDIA’s own documentation, is OS-level isolation — a container, a VM, or NVIDIA’s own OpenShell — not anything the Python runtime itself can enforce.

That’s a more honest position than a lot of agent tooling takes, and it’s directly relevant to the “who’s actually responsible for containing a misbehaving agent” question this blog keeps returning to. A framework that lets an LLM write and execute arbitrary Python against live object state is a framework where prompt injection or a hostile dependency can, in principle, do real damage — NOOA’s own docs list data leakage, file deletion, and environment modification as risks in scope, not edge cases to wave away. Saying “put this in a container, don’t trust the in-process checks alone” up front is the right instinct, and it’s the same lesson Claude Code’s own sandbox work has been built around: in-process classifiers and validators are a second layer, not the layer that actually stops something bad from touching your filesystem.

The Benchmark Numbers Need an Asterisk
#

NVIDIA’s own reporting puts NOOA at 82.2% on SWE-bench Verified, 86.8% on CyberGym L1, and 85.1% mean RHAE on ARC-AGI-3. Those are competitive numbers on paper — the SWE-bench Verified figure would sit in the same neighborhood as several frontier-model-plus-harness combinations this blog has covered over the past few months. But it’s worth being precise about what’s actually being measured: these are NVIDIA’s self-reported results for its own framework, evaluated by NVIDIA, published in NVIDIA’s own paper, with no independent lab (vals.ai, Scale AI, Artificial Analysis, or otherwise) having reproduced them as of this writing. The paper and README also don’t include head-to-head numbers against LangChain, CrewAI, AutoGPT, or other established frameworks running the same underlying model — so there’s no way yet to tell how much of that score is the framework’s contribution versus the model doing the work underneath it.

That’s not a reason to dismiss NOOA — plenty of genuinely good tools start with self-reported numbers before independent verification catches up, and this blog has covered enough labs walking back inflated self-reported benchmarks this year (Muse Spark 1.1’s Vals AI gap, Grok 4.5’s unreproduced SWE-bench Pro score) to know the pattern is worth flagging every time, regardless of which company is doing the reporting.

Where This Fits
#

NOOA also arrives bundled with a bigger move: NVIDIA is contributing it to the Open Secure AI Alliance, a 37-member industry group NVIDIA formed around building and sharing open-source AI development tooling. That’s the more consequential fact buried in this release — a hardware vendor whose business is renting GPU cycles to everyone else in this space has a structural incentive to keep the agent-framework layer open and fragmented rather than let it consolidate around one vendor’s opinionated stack (which is roughly the opposite incentive Anthropic, OpenAI, and Microsoft each have with their own frameworks and protocols).

For developers, NOOA is worth a look specifically if your agents already lean on typed Python and you’ve been fighting a chain-based framework’s abstractions more than benefiting from them — the object-oriented model maps cleanly onto “an agent that holds state and takes actions on it” in a way graph-based orchestration sometimes obscures. It’s explicitly alpha research software with, in its own words, “rough edges.” Treat the benchmark numbers as a claim to watch, not a settled result, until an independent lab runs the same eval harness against NOOA and a comparable framework side by side.

Sources: NVIDIA-NeMo/labs-OO-Agents on GitHub (primary, README and license verified directly); arXiv:2607.20709 (primary paper, submitted July 22, 2026); secondary coverage via MarkTechPost, The New Stack, and The Hacker News on the Open Secure AI Alliance.

Related