---
title: "NVIDIA NOOA Review: Object-Oriented AI Agents"
canonical: https://wavect.io/blog/nvidia-nooa-object-oriented-agents-review/
language: en
description: "NVIDIA NOOA review: architecture, benchmarks, security limits, LangGraph and OpenAI alternatives, costs and a production pilot checklist."
image: "https://wavect.io/img/blog/headers/header_nvidia-nooa-object-oriented-agents-review.png"
---

[**Back**](/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/team/kevin-riedl/)

[Kevin Riedl](/team/kevin-riedl/) https://linkedin.com/in/wsdt

13 min read · 9 Aug 2026 Last reviewed August 9, 2026

[**Next**](/blog/strix-ai-pentesting-pilot-guide-2026/)

# NVIDIA NOOA Review: Are Object-Oriented Agents Production-Ready?

TL;DR

NVIDIA Object-Oriented Agents, or NOOA, is an Apache 2.0 research-preview framework that represents an AI agent as one Python class: methods are capabilities, fields are state, docstrings are prompts and type annotations are validated contracts. NVIDIA reports strong results with a compact general-purpose harness, including 82.2% on SWE-bench Verified with GPT-5.5 and 86.8% on CyberGym L1, but these are vendor-authored benchmark results rather than proof that a business workflow will succeed. NOOA is worth a bounded pilot for a Python team that needs live-object access, code-as-action and explicit state. It is not a production security boundary: model-written Python runs in the agent process, so deployments need OS-level isolation, least-privilege credentials, evals, approvals and an owned operating model.

**NVIDIA Object-Oriented Agents, or NOOA, is an open-source Python framework that defines an AI agent as one object.** Methods expose capabilities, fields hold state, docstrings provide instructions and type annotations validate inputs and outputs. It makes agent code easier to inspect and refactor, but it does not make model-generated code safe by itself.

Our verdict after reviewing the paper, repository, release process and alternative framework documentation on 9 August 2026: **NOOA is worth a bounded technical pilot for Python teams building code-heavy agents with large live objects and explicit state.** It is still a 0.x research preview, not a managed runtime, an SLA or a containment boundary. We did not deploy NOOA or reproduce NVIDIA's benchmarks, so this review treats the published results as promising vendor evidence, not independent validation.

This article owns the product-specific production-readiness query. For the broader decision about shared relationships and memory, read our [graph engineering guide for AI agents](/blog/graph-engineering-ai-agents/). For company-wide scopes and policy, compare our [QM agent harness review](/blog/qm-ai-agent-harness-review/). Keeping those intents separate prevents a new NVIDIA review from competing with Wavect's architecture and orchestration pages.

## What is NVIDIA NOOA?

**NOOA is NVIDIA Labs' model-agnostic object-oriented agent harness for Python.** A normal method runs deterministic Python. A method whose body contains an ellipsis is implemented at runtime by an LLM strategy. The method signature becomes a typed contract, the docstring supplies the task and the object exposes state plus helper methods to the model.

```
class RefundAgent(Agent, llm=llm):
    orders: OrderStore

def eligible(self, order: Order) -> bool:
        return order.age_days <= 30 and order.delivered

async def decide(self, order: Order) -> RefundDecision:
        """Return a reviewed refund decision with evidence."""
        ...
```

The important boundary is visible in the class. Eligibility is a deterministic rule. The decision can use model judgment. A production team can unit-test the first method, evaluate the second and validate the returned `RefundDecision` before any side effect runs.

## How do object-oriented agents work?

| Python element | NOOA meaning | Production value |
| --- | --- | --- |
| Class | Agent boundary | One reviewable unit for prompts, tools and state |
| Method | Deterministic helper or agentic loop | Judgment stays separate from exact business rules |
| Type annotation | Input and return contract | Invalid completion can be rejected and retried |
| Field | Explicit object state | Important state is not hidden only in chat history |
| Live argument | Object passed by reference | Large data can remain outside the prompt as a real value |
| Docstring | Model-facing instruction | Prompt changes live beside the method they govern |
| Python cell | Code-as-action step | The model can use loops, conditions and helper calls |

NVIDIA describes six combined capabilities: typed input and output, pass by reference, code as action, programmable loop engineering, explicit object state and model-callable context or event APIs. The [official NVIDIA technical overview](https://developer.nvidia.com/blog/six-agent-harness-capabilities-for-higher-model-performance/) also presents long-term memory as a model-curated SQLite store with typed relationships, retrieval and reflection.

## What do NVIDIA's NOOA benchmarks actually show?

The [NOOA technical report](https://arxiv.org/html/2607.20709v1) evaluates interface fluency and complete agents. Its capability suite contains 88 test instances across 36 families, run five times on ten models. NVIDIA reports 4,309 passes from 4,400 records, or 97.9%. The harder stress subset falls to 84.7%, which matters for long-running batching, recovery and decomposition.

| Published evaluation | NOOA result | Useful interpretation |
| --- | --- | --- |
| Capability suite | 97.9% overall | Current models generally understand the Python object interface |
| Stress subset | 84.7% overall | Multi-step discipline still fails often enough to require evals |
| SWE-bench Verified, GPT-5.5 xhigh | 82.2% | The compact generic harness is competitive on repository work |
| Terminal-Bench 2.0, GPT-5.5 high | 73.0% | Typed termination and live values can help terminal tasks |
| CyberGym L1, GPT-5.5 | 86.8% | Deterministic validation around model exploration is promising |
| ARC-AGI-3, GPT-5.6-sol | 85.1% mean RHAE | Harness design and memory can strongly change agent performance |

The most commercially interesting comparison is cost per accepted result, not a raw score. On SWE-bench Verified with GPT-5.5 xhigh, NVIDIA reports about 28 model calls and 1.1 million tokens per NOOA task for 82.2%. Its PI comparison used 66 calls and 2.2 million tokens for 78.2%. That supports the thesis that live values and bounded previews can reduce context churn.

It does not prove that NOOA cuts your production bill in half. The paper is authored by the framework team, models and benchmarks differ from business workflows, and its strongest runs still consume substantial inference. Treat the numbers as a reason to test the architecture, not as a procurement forecast.

## Is NVIDIA NOOA safe for production?

**NOOA is not a security sandbox.** Its model-written Python can execute in the agent process so it can work with live objects. The [official NOOA README and safety note](https://github.com/NVIDIA-NeMo/labs-OO-Agents/blob/main/README.md) says AST validation and module deny-lists are defense-in-depth controls, not containment, and recommends isolation through a container, VM or NVIDIA OpenShell.

| Risk | Why the object model changes it | Required control |
| --- | --- | --- |
| Arbitrary code effects | Generated Python can reach powerful libraries and object methods | OS sandbox, blocked egress and explicit capability allowlist |
| Live sensitive objects | Pass by reference avoids prompt copies but grants runtime reach | Narrow wrappers, least privilege and redacted previews |
| State poisoning | The model can modify object state or long-term memory | Typed schemas, provenance, review and reversible writes |
| False completion | A valid type can still contain a wrong business answer | Evidence fields, deterministic verification and acceptance evals |
| Trace exposure | Prompts, outputs and values may contain customer data | Retention policy, access control and sensitive-field filtering |
| Dependency change | The documented install currently targets a Git repository | Pin a reviewed commit, scan dependencies and control upgrades |

A type check answers "does this value have the expected shape?" It does not answer "was this refund authorized?" or "may this agent send it?" Keep authentication, authorization, idempotency, approval and audit outside the probabilistic loop. Our [MCP authorization analysis](/blog/mcp-security-boundary-data-level-access-control/) explains the same separation at the tool and data layer.

## How mature is NOOA in August 2026?

NOOA is public, Apache 2.0 licensed and accompanied by examples, tests, a CLI, a trace viewer, a memory package and benchmark tooling. That is stronger evidence than a paper-only prototype. It is still initial-development software. The [official release documentation](https://github.com/NVIDIA-NeMo/labs-OO-Agents/blob/main/RELEASING.md) describes a 0.x research preview whose public API can change between releases.

Plan for adapter code, version pins and migration tests. Do not let business services import framework internals everywhere. Put NOOA behind an application-owned interface so a future upgrade or replacement does not rewrite the whole product.

## NOOA vs LangGraph vs OpenAI Agents SDK: which should you choose?

These options overlap but optimize different boundaries. [LangGraph's official overview](https://docs.langchain.com/oss/python/langgraph/overview) positions it as a low-level orchestration runtime for long-running, stateful agents with durable execution, streaming and human-in-the-loop control. The [OpenAI Agents SDK documentation](https://openai.github.io/openai-agents-python/) emphasizes a small production-ready set of agent, tool, handoff, guardrail, session, sandbox and tracing primitives.

| Option | Strongest fit | Main trade-off to test |
| --- | --- | --- |
| NOOA | Python objects, code-as-action, live data and model-visible state | Research maturity and in-process execution boundary |
| LangGraph | Explicit durable workflows, checkpoints and human intervention | Graph and middleware complexity for a simple agent |
| OpenAI Agents SDK | Small primitive set, hosted-model integration and built-in tracing | Provider and runtime choices against your portability needs |
| Custom deterministic loop | Narrow workflow with fixed rules and few tools | You own every retry, trace, state and evaluation contract |

Do not select a framework from a feature matrix alone. Start from failure recovery, data sensitivity, deployment ownership, model portability, required human gates and the state you must preserve. The buying decision resembles [custom software versus an off-the-shelf platform](/software-development-guide/custom-software-vs-off-the-shelf/), even when every candidate is open source.

## What does a NOOA production pilot cost?

The license fee is zero, but a credible pilot has six cost lines:

- **Agent design:** typed methods, deterministic helpers, state boundaries and model strategy.
- **Isolation:** sandbox images, filesystem policy, network egress, secrets and resource limits.
- **Evaluation:** representative tasks, acceptance criteria, adversarial cases and regression runs.
- **Observability:** traces, cost attribution, retention, redaction and incident investigation.
- **Integration:** application adapters, identity, data authorization, queues and approval paths.
- **Ownership:** dependency review, upgrades, on-call response and rollback.

Open source removes a software license, not system responsibility. Our [AI enablement and RAG architecture service](/services/ai-enablement/) starts with the workflow, trust boundary and measurable baseline before selecting a harness. The [Twinsoft AI case study](/case-studies/twinsoft-ai/) shows the product-engineering discipline required around an AI feature, while our [AI agent cost-per-action model](/blog/ai-agent-cost-per-action-2026/) keeps model spend tied to accepted business output.

## Who should pilot NOOA, and who should wait?

| Pilot NOOA when | Wait or choose a simpler route when |
| --- | --- |
| Your team is strong in Python and ordinary software testing | Your production stack cannot comfortably own Python |
| Agents must work over large live objects without prompt serialization | Inputs are small and a few typed function tools already work |
| You need model-written control flow and explicit object state | The process is fixed enough for deterministic code or a state machine |
| You can deploy an OS-level sandbox and narrow capabilities | You expect the framework's AST checks to be the security boundary |
| You will benchmark alternatives on your own task set | You want to adopt directly from vendor leaderboard results |
| You can absorb 0.x API movement behind an adapter | You require stable APIs, managed support and an SLA now |

## How should a team run a 30-day NOOA pilot?

1. **Choose one reversible, valuable workflow.** Start with analysis, classification or draft creation, not payments or production writes.
2. **Create a 50-task evaluation set.** Include routine cases, ambiguous inputs, long objects, tool failures, prompt injection and invalid returns.
3. **Build the smallest NOOA object.** Keep deterministic rules in ordinary methods and expose only the capabilities the model needs.
4. **Put the process in a sandbox.** Use a disposable environment, narrow filesystem mounts, blocked-by-default egress and low-value credentials.
5. **Run a relevant baseline.** Compare the same model and task set against the current workflow and one mature alternative.
6. **Measure accepted outcomes.** Track completion rate, review minutes, cost per accepted task, unsafe attempts, retries and recovery time.
7. **Make a go or no-go decision.** Scale only if NOOA improves the workflow enough to pay for security, migration and operating ownership.

Use our [AI agent pilot plan](/blog/ai-agent-pilot-30-60-90-days/) to extend a successful experiment into a governed rollout. If you want a vendor-neutral architecture decision before implementation, [book a technical discovery](/contact/).

## Frequently Asked Questions

### What does NVIDIA NOOA stand for?

NOOA refers to NVIDIA Object-Oriented Agents, also written as NVIDIA double-O Agents. It is a Python framework that represents an agent as an object with methods, fields, docstrings and typed contracts.

### Is NVIDIA NOOA an AI model?

No. NOOA is a model-agnostic agent harness. It can use hosted or local models through supported model clients; the framework defines execution, context, state, memory and validation behavior around a model.

### Is NOOA open source?

Yes. NVIDIA publishes the framework under Apache 2.0 with source code, examples, capability tests, benchmark agents and companion packages in the NVIDIA-NeMo repository.

### Does NOOA require an NVIDIA GPU?

Not inherently. The framework can call hosted models or local model servers. Hardware requirements depend on the selected model and deployment, not on the object-oriented programming model itself.

### Is NOOA safer than a tool-calling agent?

Typed contracts and deterministic methods can improve validation, but NOOA also executes model-written Python. It still needs OS-level containment, least privilege, approval and output verification.

### Should a company replace LangGraph with NOOA?

Not without a task-specific benchmark. NOOA is attractive for live Python objects and code-as-action. LangGraph is established around durable graph execution and human intervention. Compare both on the same workflow, security boundary and recovery requirements.

## Research boundary

*Status checked 9 August 2026. We reviewed public documentation, source and published benchmark evidence. We did not deploy NOOA, audit its complete codebase or reproduce the benchmark runs. Repository APIs, versions and performance can change, so pin and re-evaluate the exact revision used for a pilot.*

## Final thoughts

NVIDIA NOOA makes a sharp argument: an AI agent can look like ordinary Python software instead of a collection of prompt files, JSON tool schemas and hidden callbacks. Typed methods, live objects, explicit state and validated termination are useful ideas, and NVIDIA's published results justify serious evaluation.

The production decision is less glamorous. NOOA is young, model-written Python is powerful, and in-process access makes external containment non-negotiable. Pilot it when its object model solves a real workflow problem. Keep deterministic business controls outside the model, compare accepted outcomes against a mature baseline and budget for the security and operational boundary the license does not provide.

## You may also like..

[**QM Agent Harness Review** Compare NOOA's developer-facing object model with an organization-facing agent control plane.](/blog/qm-ai-agent-harness-review/) [**AI enablement vs generic AI consulting** Choose between system delivery with governance and a strategy-only engagement.](/compare/ai-enablement-vs-generic-ai-consultancy/)

Agent engineering

## Continue through this cluster

[Start with the cornerstone**Graph Engineering for AI Agents: When Does a Knowledge Graph Pay Off?**](/blog/graph-engineering-ai-agents/)

- [How to Make AI Writing Sound Human with Agent Skills](/blog/ai-writing-agent-skills/)
- [Strix AI Pentesting: 30-Day Pilot and Buying Guide for 2026](/blog/strix-ai-pentesting-pilot-guide-2026/)
- [Hark Handoff Review: The Agent That Actually Clicks](/blog/hark-handoff-computer-use-agent-review/)
- [Meta Muse Code Pricing: Is the Contributor Tier Safe for Client Code?](/blog/meta-muse-code-pricing-contributor-tier/)
- [PII Redaction Before LLM Prompts: A Practical Pipeline](/blog/pii-redaction-before-llm-prompts/)

Inbox, without the noise

## Follow the work that matters to you

Get a short email when we publish something new. Follow the whole blog or only the problems you care about.

[**Back**](/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/team/kevin-riedl/)

[Kevin Riedl](/team/kevin-riedl/) https://linkedin.com/in/wsdt

13 min read · 9 Aug 2026 Last reviewed August 9, 2026

[**Next**](/blog/strix-ai-pentesting-pilot-guide-2026/)

New posts by email ×

×

Get new posts by email

A short email when we publish. Free, no tracking.

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/blog/nvidia-nooa-object-oriented-agents-review/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-08-09",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-08-09",
      "url": "https://wavect.io/blog/nvidia-nooa-object-oriented-agents-review/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "abstract": "NVIDIA Object-Oriented Agents, or NOOA, is an Apache 2.0 research-preview framework that represents an AI agent as one Python class: methods are capabilities, fields are state, docstrings are prompts and type annotations are validated contracts. NVIDIA reports strong results with a compact general-purpose harness, including 82.2% on SWE-bench Verified with GPT-5.5 and 86.8% on CyberGym L1, but these are vendor-authored benchmark results rather than proof that a business workflow will succeed. NOOA is worth a bounded pilot for a Python team that needs live-object access, code-as-action and explicit state. It is not a production security boundary: model-written Python runs in the agent process, so deployments need OS-level isolation, least-privilege credentials, evals, approvals and an owned operating model.",
  "articleBody": " Blog overview/AI and agents/Agent engineering NVIDIA NOOA Review: Are Object-Oriented Agents Production-Ready? TL;DR NVIDIA Object-Oriented Agents, or NOOA, is an Apache 2.0 research-preview framework that represents an AI agent as one Python class: methods are capabilities, fields are state, docstrings are prompts and type annotations are validated contracts. NVIDIA reports strong results with a compact general-purpose harness, including 82.2% on SWE-bench Verified with GPT-5.5 and 86.8% on CyberGym L1, but these are vendor-authored benchmark results rather than proof that a business workflow will succeed. NOOA is worth a bounded pilot for a Python team that needs live-object access, code-as-action and explicit state. It is not a production security boundary: model-written Python runs in the agent process, so deployments need OS-level isolation, least-privilege credentials, evals, approvals and an owned operating model. NVIDIA Object-Oriented Agents, or NOOA, is an open-source Python framework that defines an AI agent as one object. Methods expose capabilities, fields hold state, docstrings provide instructions and type annotations validate inputs and outputs. It makes agent code easier to inspect and refactor, but it does not make model-generated code safe by itself. Our verdict after reviewing the paper, repository, release process and alternative framework documentation on 9 August 2026: NOOA is worth a bounded technical pilot for Python teams building code-heavy agents with large live objects and explicit state. It is still a 0.x research preview, not a managed runtime, an SLA or a containment boundary. We did not deploy NOOA or reproduce NVIDIA's benchmarks, so this review treats the published results as promising vendor evidence, not independent validation. This article owns the product-specific production-readiness query. For the broader decision about shared relationships and memory, read our graph engineering guide for AI agents. For company-wide scopes and policy, compare our QM agent harness review. Keeping those intents separate prevents a new NVIDIA review from competing with Wavect's architecture and orchestration pages. What is NVIDIA NOOA? NOOA is NVIDIA Labs' model-agnostic object-oriented agent harness for Python. A normal method runs deterministic Python. A method whose body contains an ellipsis is implemented at runtime by an LLM strategy. The method signature becomes a typed contract, the docstring supplies the task and the object exposes state plus helper methods to the model. class RefundAgent(Agent, llm=llm): orders: OrderStore def eligible(self, order: Order) -> bool: return order.age_days <= 30 and order.delivered async def decide(self, order: Order) -> RefundDecision: \"\"\"Return a reviewed refund decision with evidence.\"\"\" ... The important boundary is visible in the class. Eligibility is a deterministic rule. The decision can use model judgment. A production team can unit-test the first method, evaluate the second and validate the returned RefundDecision before any side effect runs. How do object-oriented agents work? Python elementNOOA meaningProduction value ClassAgent boundaryOne reviewable unit for prompts, tools and state MethodDeterministic helper or agentic loopJudgment stays separate from exact business rules Type annotationInput and return contractInvalid completion can be rejected and retried FieldExplicit object stateImportant state is not hidden only in chat history Live argumentObject passed by referenceLarge data can remain outside the prompt as a real value DocstringModel-facing instructionPrompt changes live beside the method they govern Python cellCode-as-action stepThe model can use loops, conditions and helper calls NVIDIA describes six combined capabilities: typed input and output, pass by reference, code as action, programmable loop engineering, explicit object state and model-callable context or event APIs. The official NVIDIA technical overview also presents long-term memory as a model-curated SQLite store with typed relationships, retrieval and reflection. What do NVIDIA's NOOA benchmarks actually show? The NOOA technical report evaluates interface fluency and complete agents. Its capability suite contains 88 test instances across 36 families, run five times on ten models. NVIDIA reports 4,309 passes from 4,400 records, or 97.9%. The harder stress subset falls to 84.7%, which matters for long-running batching, recovery and decomposition. Published evaluationNOOA resultUseful interpretation Capability suite97.9% overallCurrent models generally understand the Python object interface Stress subset84.7% overallMulti-step discipline still fails often enough to require evals SWE-bench Verified, GPT-5.5 xhigh82.2%The compact generic harness is competitive on repository work Terminal-Bench 2.0, GPT-5.5 high73.0%Typed termination and live values can help terminal tasks CyberGym L1, GPT-5.586.8%Deterministic validation around model exploration is promising",
  "articleSection": "Engineering",
  "author": {
    "@id": "https://wavect.io/team/kevin-riedl/#person",
    "@type": "Person",
    "name": "Kevin Riedl",
    "sameAs": [
      "https://www.wikidata.org/wiki/Q139796365",
      "https://www.linkedin.com/in/wsdt",
      "https://github.com/wsdt"
    ],
    "url": "https://wavect.io/team/kevin-riedl/"
  },
  "citation": [
    {
      "@type": "WebPage",
      "name": "official NVIDIA technical overview",
      "url": "https://developer.nvidia.com/blog/six-agent-harness-capabilities-for-higher-model-performance/"
    },
    {
      "@type": "WebPage",
      "name": "NOOA technical report",
      "url": "https://arxiv.org/html/2607.20709v1"
    },
    {
      "@type": "WebPage",
      "name": "official NOOA README and safety note",
      "url": "https://github.com/NVIDIA-NeMo/labs-OO-Agents/blob/main/README.md"
    },
    {
      "@type": "WebPage",
      "name": "official release documentation",
      "url": "https://github.com/NVIDIA-NeMo/labs-OO-Agents/blob/main/RELEASING.md"
    },
    {
      "@type": "WebPage",
      "name": "LangGraph's official overview",
      "url": "https://docs.langchain.com/oss/python/langgraph/overview"
    },
    {
      "@type": "WebPage",
      "name": "OpenAI Agents SDK documentation",
      "url": "https://openai.github.io/openai-agents-python/"
    }
  ],
  "dateModified": "2026-08-09",
  "datePublished": "2026-08-09",
  "description": "NVIDIA Object-Oriented Agents, or NOOA, is an Apache 2.0 research-preview framework that represents an AI agent as one Python class: methods are capabilities, fields are state, docstrings are prompts and type annotations are validated contracts. NVIDIA reports strong results with a compact general-purpose harness, including 82.2% on SWE-bench Verified with GPT-5.5 and 86.8% on CyberGym L1, but these are vendor-authored benchmark results rather than proof that a business workflow will succeed. NOOA is worth a bounded pilot for a Python team that needs live-object access, code-as-action and explicit state. It is not a production security boundary: model-written Python runs in the agent process, so deployments need OS-level isolation, least-privilege credentials, evals, approvals and an owned operating model.",
  "headline": "NVIDIA NOOA Review: Are Object-Oriented Agents Production-Ready?",
  "image": "https://wavect.io/img/blog/headers/header_nvidia-nooa-object-oriented-agents-review.svg",
  "inLanguage": "en",
  "keywords": "AI Agents, Python",
  "mainEntityOfPage": {
    "@id": "https://wavect.io/blog/nvidia-nooa-object-oriented-agents-review/",
    "@type": "WebPage"
  },
  "publisher": {
    "@id": "https://wavect.io/#organization",
    "@type": [
      "Organization",
      "ProfessionalService",
      "LocalBusiness"
    ]
  },
  "url": "https://wavect.io/blog/nvidia-nooa-object-oriented-agents-review/",
  "wordCount": 2358
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/",
      "name": "Home",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/overview/",
      "name": "Blog overview",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/topics/ai-agents/",
      "name": "AI and agents",
      "position": 3
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/clusters/agent-engineering/",
      "name": "Agent engineering",
      "position": 4
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/nvidia-nooa-object-oriented-agents-review/",
      "name": "NVIDIA NOOA Review: Object-Oriented AI Agents | ",
      "position": 5
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "NOOA refers to NVIDIA Object-Oriented Agents, also written as NVIDIA double-O Agents. It is a Python framework that represents an agent as an object with methods, fields, docstrings and typed contracts."
      },
      "name": "What does NVIDIA NOOA stand for?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. NOOA is a model-agnostic agent harness. It can use hosted or local models through supported model clients; the framework defines execution, context, state, memory and validation behavior around a model."
      },
      "name": "Is NVIDIA NOOA an AI model?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. NVIDIA publishes the framework under Apache 2.0 with source code, examples, capability tests, benchmark agents and companion packages in the NVIDIA-NeMo repository."
      },
      "name": "Is NOOA open source?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Not inherently. The framework can call hosted models or local model servers. Hardware requirements depend on the selected model and deployment, not on the object-oriented programming model itself."
      },
      "name": "Does NOOA require an NVIDIA GPU?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Typed contracts and deterministic methods can improve validation, but NOOA also executes model-written Python. It still needs OS-level containment, least privilege, approval and output verification."
      },
      "name": "Is NOOA safer than a tool-calling agent?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Not without a task-specific benchmark. NOOA is attractive for live Python objects and code-as-action. LangGraph is established around durable graph execution and human intervention. Compare both on the same workflow, security boundary and recovery requirements."
      },
      "name": "Should a company replace LangGraph with NOOA?"
    }
  ]
}
```
