It Isn't Object-Oriented. It's Typed.
NVIDIA labs published OO Agents, proposing that an
agent should be a Python class. Fields hold state. Docstrings are prompts. Type annotations are
validated contracts. A method whose body is literally ... gets completed at runtime by
an LLM loop, while methods with real bodies stay deterministic.
That last mechanism is genuinely good. The framing is not.
Search the paper for what object-orientation actually means and it is absent. No inheritance. No subclassing, no overriding, no polymorphism. No agent held as a field of another agent. One class, one level deep, every time. The word in the title describes nothing the design does.
Anyone who has sat through a modelling review knows this shape. It is a profile, not a metamodel — stereotypes applied to an existing thing rather than new structure. Often that is the right move. But you do not get to call it a class model because you drew a box around four annotations.
The paper is disarmingly honest about its own reasoning, which makes the framing stranger. Its stated argument for Python is distributional: Python sits close to the distribution of code the models were trained on. That is a real claim, and it has nothing to do with objects.
Then there is the number underneath. On ARC-AGI-3 the same unchanged model scores 13.3% raw and 85.1% inside their harness — a 6.4× effect the authors state and never decompose. Whatever produced that, it was not inheritance. It was scaffolding: the typed contract, the validation, the memory. The paper's largest result is an argument about harnesses, not about objects.
Which is the part I would actually take. My own systems are markdown, not classes, and a class hierarchy would buy me nothing. A validated typed return — a subagent that must produce a declared shape, checked before anyone trusts it — would buy me a great deal.
Rename it Typed Agents and every result in it survives.