Write an AI agent as a Python class: NVIDIA open-sources NOOA
Leave a method body as `...` and the model fills it at runtime; write real code and it stays plain Python. Apache-2.0, model-agnostic, installs via uv.

Copy markdown
The `...` body is the whole trick
In NOOA an agent is just a Python object: fields are its state, docstrings are its prompts, type annotations are its contracts. Any method you leave as `...` becomes an action the model runs at runtime; methods with real code stay deterministic Python.
One line to install, any model
`uv add "nooa @ git+https://github.com/NVIDIA-NeMo/labs-OO-Agents.git@main"` and you're running — Apache-2.0 and model-agnostic. It ships a quickstart, worked examples, a trace viewer, and optional CLI, memory and eval sub-packages. A typed feedback-analyzer or research agent is a tonight-sized build.
Contracts, not prompt spaghetti
The design rests on six ideas: typed inputs/outputs, pass-by-reference over live objects, code as action, programmable loop engineering, explicit object state, and model-callable harness APIs. You and the model share the same typed object, so agents break less on brittle string parsing.
The catch: it's a 'labs' drop
This is research-stage from NVIDIA-NeMo — 14 stars, no stable release tag, git-install only, APIs may shift. The July 22 paper reports evaluating it on SWE-bench Verified, Terminal-Bench 2.0 and ARC-AGI-3, but treat it as a prototype tool, not production infra.