NVIDIA-labs OO Agents: Native Python Object-Oriented Agents
Paul Furgale, Severin Klingler, James Nolan, Matt Staats, Gaia Di Lorenzo, Elisa Martinez Abad, Christian Schüller, Razvan Dinu, Alessio Devoto, Pascal Berard, Gal Kaplun, Elad Sarafian, Riccardo Roveri, Leon Derczynski, Ricardo Silveira Cabral
arXiv:2607.20709 · 2026-07-24 공개 · arXiv · PDF
swe-bench terminal-bench model-agnostic agent-framework arc-agi python object-oriented llm-loop
Abstract
Traditional agent development is split across prompt templates, tool schemas, callback code, and workflow graphs. We present NVIDIA Object-Oriented Agents (NOOA), a model-agnostic Python framework for building reliable AI agents. NOOA takes a simpler approach: an agent is a Python object. Its methods are the actions the model can take, fields are its state, docstrings are its prompts, and its type annotations are contracts. A method whose code body consists of "..." is completed at runtime by an LLM-driven agent loop, while methods with normal bodies remain standard deterministic Python. This gives developers and agents the same interface, so agent behavior can be tested, traced, refactored, and improved just like other software.
This paper makes three contributions. (1) We present the agent-as-a-Python-object programming model and the design principles behind it. Where Python has existing abstractions, we adopt them directly. Agent-specific capabilities--context, events, state rendering, long-term memory, and validated LLM loops--are exposed through simple Pythonic APIs, so both developers and agents share one familiar programming model. (2) We identify six model-facing ideas that NOOA is, to our knowledge, the first to combine on a single surface: 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. We find the community already converging on several of these ideas--often as experimental or partial features--and present the comparison to encourage further adoption. (3) We demonstrate that current models use this interface effectively, both in targeted capability tests and on agentic and reasoning benchmarks such as SWE-bench Verified and Terminal-Bench 2.0 and ARC-AGI-3.
한국어 요약
한 줄 요약
NVIDIA OO Agents(NOOA)는 AI 에이전트를 Python 객체로 표현하는 모델-비관련 프레임워크로, 개발자와 에이전트가 동일한 인터페이스를 공유하여 테스트 및 개선이 용이하다.
핵심 기여도
- **Agent-as-a-Python-object 프로그래밍 모델** 제시: Python의 기존 추상화(클래스, 메서드, 타입 어노테이션 등)를 활용한 에이전트 설계.
- **6가지 모델-향상 아이디어 통합**: typed I/O, pass-by-reference, code-as-action, programmable loop engineering, explicit object state, model-callable harness APIs.
- **SWE-bench Verified, Terminal-Bench 2.0, ARC-AGI-3**에서 성능 증명: 단일 에이전트로 다중 에이전트 시스템을 압축하고 벤치마크 점수-비용 최적화를 달성.
핵심 아이디어
NOOA는 기존 에이전트 개발이 프롬프트 템플릿, 툴 스키마, 콜백 코드, 워크플로우 그래프로 분산되어 있다는 문제를 해결하기 위해, **에이전트를 Python 객체로 표현**하는 새로운 프로그래밍 모델을 제시한다. 이 모델은 Python의 기존 추상화(클래스, 메서드, 타입 어노테이션, 비동기 처리 등)를 그대로 활용하며, 에이전트 고유 기능(컨텍스트, 이벤트, 상태 렌더링, 장기 메모리, 검증된 LLM 루프 등)은 **간단한 Pythonic API**로 노출된다.
핵심 아이디어는 **에이전트 행동을 테스트, 추적, 리팩토링, 개선할 수 있도록 소프트웨어와 동일한 인터페이스를 제공**하는 것이다. 예를 들어, 메서드의 코드 본문이 `...`로 구성된 경우, 런타임 시 LLM-드라이븐 에이전트 루프로 완성되며, 일반적인 코드 본문은 결정론적 Python으로 실행된다. 이는 개발자와 에이전트가 동일한 프로그래밍 모델을 공유하게 만든다.
기술적 접근법
- **에이전트는 Python 클래스**: 상태는 클래스 필드, 행동은 메서드, 프롬프트는 docstring, 계약은 타입 어노테이션.
- **LLM-드라이븐 루프**: `...`로 구성된 메서드는 런타임 시 LLM에 의해 완성.
- **pass-by-reference**: `Order` 객체처럼 직렬화되지 않고 참조로 전달.
- **six model-facing ideas**: typed I/O, pass-by-reference, code-as-action, programmable loop engineering, explicit object state, model-callable APIs.
- **harness**: `asyncio`를 사용한 비동기 작업 처리, `CodeAct`와 `Predict` 메서드 구분.
주요 결과
- **SWE-bench Verified, Terminal-Bench 2.0, ARC-AGI-3**에서 성능 평가.
- **ARC-AGI-3**에서 다중 에이전트 시스템을 단일 에이전트로 압축하며, **점수-비용 최적화 경계(Pareto frontier)**를 향상.
- **14개 에이전트 프레임워크 비교**: NOOA가 6가지 핵심 기능을 통합한 유일한 프레임워크로 나타남.
의의 및 한계
NOOA는 기존 에이전트 개발이 복잡한 프레임워크와 추상화로 인해 개발자 학습 곡선이 높았던 문제를 해결한다. Python의 기존 추상화를 활용함으로써, **에이전트를 일반 소프트웨어처럼 개발·테스트·개선**할 수 있는 기반을 제공한다. 또한, LLM이 이 인터페이스를 효과적으로 활용할 수 있음을 실험적으로 입증했다는 점에서 학술적 의의가 있다.
그러나 한계도 존재한다. NOOA는 **에이전트 프로세스 내에서 모델이 작성한 코드를 실행**하므로, 보안상 격리가 필요하다. 이는 OpenShell과 같은 외부 격리 환경과 결합되어야 안전하게 운영될 수 있다. 또한, 모델이 인터페이스를 완전히 이해하고 활용하는 데에는 여전히 개선의 여지가 있다.
실용적 활용
NOOA는 **AI 에이전트 기반의 소프트웨어 엔지니어링, 터미널 인터랙션, 사이버보안, 인터랙티브 추론** 등 다양한 분야에 적용 가능하다. 특히, **LLM 기반 에이전트 개발자, 연구자, 프로덕션 환경에서 에이전트를 운영하는 엔지니어**에게 유용한 도구로 활용될 수 있다.