paper web signal

NVIDIA Labs Proposes NOOA: Agents as Plain Python Objects

TL;DR

  • NVIDIA Labs published NOOA, a model-agnostic Python framework that treats an agent as a plain object where methods are actions, fields are state, and docstrings are prompts.
  • A method whose body consists only of "..." is completed at runtime by an LLM-driven agent loop, while methods with normal bodies stay as deterministic Python.
  • The paper positions NOOA as combining six model-facing ideas including typed I/O, pass-by-reference over live objects, code as action, and model-callable harness APIs.

Every few months an agent framework arrives claiming to fix the same mess: prompt templates in one file, tool schemas in another, callback code somewhere else, and a workflow graph pretending to tie it all together. NVIDIA Labs' pitch, posted to arXiv, is that the fix is to stop inventing new abstractions and lean on the ones Python already has.

The framework, called NVIDIA Object-Oriented Agents (NOOA), treats an agent as a plain Python object. Its methods are the actions the model can take, its fields hold state, its docstrings are the prompts, and its type annotations act as contracts. The interesting piece is what happens when you write a method whose body is just "...": at runtime an LLM-driven agent loop fills it in. Methods with normal bodies stay as standard deterministic Python. The claim is that developer and agent end up looking at the same interface, so behavior can be tested, traced, refactored, and improved with ordinary software tooling.

The paper positions NOOA as a combination of six model-facing ideas the authors say no existing framework unifies: typed input/output, pass-by-reference over live objects, code as action, programmable loop engineering, explicit object state, and model-callable harness APIs for context and events. That reads as an assembly pitch rather than a novel primitive pitch, and it aims squarely at the graph and DSL-based frameworks that currently dominate agent tooling.

The honest caveat is that the abstract cites evaluation on SWE-bench Verified, Terminal-Bench 2.0, and ARC-AGI-3 without publishing numeric scores in what's currently visible, so the claim that current models make effective use of the interface has to be taken as the authors' framing rather than a settled result. What the abstract doesn't answer is how the LLM-completed method bodies get debugged when they misbehave, or how model-agnostic the framework really is once you move off NVIDIA's own stack.

If the approach lands, the payoff is for teams that have been chafing at agent frameworks which don't play nicely with linters, debuggers, and standard refactoring: engineering-first shops that want agents to look like the rest of their codebase, not a separate discipline with its own tooling.