NVIDIA-labs OO 에이전트: 네이티브 파이썬 객체 지향 에이전트
NVIDIA-labs OO Agents: Native Python Object-Oriented Agents
July 22, 2026
저자: 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
cs.AI
초록
기존 에이전트 개발은 프롬프트 템플릿, 도구 스키마, 콜백 코드, 워크플로우 그래프로 분할되어 있다. 본 논문에서는 신뢰할 수 있는 AI 에이전트를 구축하기 위한 모델-불가지론적 Python 프레임워크인 NVIDIA 객체 지향 에이전트(NOOA)를 제시한다. NOOA는 더 간단한 접근 방식을 취한다. 즉, 에이전트는 Python 객체이다. 해당 객체의 메서드는 모델이 수행할 수 있는 액션이며, 필드는 상태, 독스트링은 프롬프트, 타입 어노테이션은 계약(contract)이다. 코드 본문이 "..."으로 구성된 메서드는 런타임에 LLM 기반 에이전트 루프에 의해 완료되는 반면, 일반적인 본문을 가진 메서드는 표준 결정론적 Python으로 유지된다. 이를 통해 개발자와 에이전트가 동일한 인터페이스를 공유하므로, 에이전트 동작은 다른 소프트웨어와 마찬가지로 테스트, 추적, 리팩터링 및 개선이 가능하다.
본 논문은 세 가지 기여를 한다. (1) 에이전트-As-A-Python-객체 프로그래밍 모델과 그 이면의 설계 원칙을 제시한다. Python에 기존 추상화가 존재하는 경우, 이를 직접 채택한다. 에이전트 특화 기능(컨텍스트, 이벤트, 상태 렌더링, 장기 메모리, 검증된 LLM 루프)은 간단한 Pythonic API를 통해 노출되어, 개발자와 에이전트 모두 하나의 친숙한 프로그래밍 모델을 공유한다. (2) NOOA가 최초로 단일 표면(surface)에 결합한 여섯 가지 모델 지향 개념을 식별한다: 타입화된 입출력, 라이브 객체에 대한 참조 전달(pass-by-reference), 코드로서의 액션, 프로그래밍 가능한 루프 엔지니어링, 명시적 객체 상태, 컨텍스트 및 이벤트를 위한 모델 호출 가능 하네스 API. 커뮤니티가 이미 이러한 개념 중 여러 가지(종종 실험적이거나 부분적인 기능으로)를 수렴하고 있음을 발견하고, 이를 비교하여 추가 채택을 장려한다. (3) 현재 모델들이 SWE-bench Verified, Terminal-Bench 2.0, ARC-AGI-3과 같은 에이전트 및 추론 벤치마크에서 이러한 인터페이스를 효과적으로 사용함을 입증한다.
English
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.