본문으로 건너뛰기

NOOA: 객체지향 에이전트 하니스로 정확도와 토큰 비용을 동시에 개선한 NVIDIA 연구 미리보기

NOOA는 에이전트를 단일 Python 클래스와 참조 전달 메모리로 구현해 동일 모델에서 정확도와 토큰 비용을 동시에 개선한 객체지향 에이전트 하니스이다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

NOOA는 에이전트를 단일 Python 클래스 단위로 구조화하고 타입화된 입출력과 참조 전달 메모리 등을 결합해 동일한 LLM에서 정확도와 토큰 비용을 동시에 개선한 객체지향 에이전트 하니스이다. 에이전트의 능력은 메서드, 상태는 필드, 프롬프트는 도크스트링, 계약은 타입 주석으로 표현되며 런타임에 LLM이 점(...)으로 표시된 메서드 바디를 Python 코드로 완성해 결정형 출력과 검사 가능한 트레이스를 생성한다. 인간 판독 가능한 SQLite 기반 장기 메모리는 에이전트가 기록을 명시적으로 관리하고 관계를 통해 지식을 누적하게 하며 배경 리플렉션으로 중복 제거·요약·연결을 수행해 정보 신선도를 유지한다. 다양한 벤치마크에서 NOOA는 SWE-bench 82.2%, CyberGym L1 86.8%, ARC-AGI-3에서 50.2%~85.1% 구간의 성과와 더불어 토큰 사용량을 대폭 절감한 점을 보였고 샌드박싱·레드팀 감사를 통해 런타임 보안성을 확보한 상태로 오픈 리서치 표면으로 공개되었다.

빠른 이해

새로운 점

객체지향적 에이전트 설계와 참조 전달 메모리 조합으로 동일 모델에서 정확도와 토큰 비용을 동시에 개선했다는 점

핵심 메커니즘

사용자는 에이전트를 Python 클래스 형태로 정의하면 런타임에서 LLM이 점(...)으로 표기된 메서드 바디를 Python 코드로 완성하고, 도구 결과는 참조 전달로 라이브 객체로 제공되어 모델은 타입화된 입력을 받아 코드 작성과 메서드 호출을 통해 결정형 출력과 영속적 레코드를 생성한다.

핵심 수치

  • SWE-bench Verified (GPT-5.5): 82.2%- 제출 시점 공개 리더보드의 79.2% 대비 우위
  • SWE-bench (Opus 4.6): 79.8%- 범용 253행 에이전트로 달성
  • CyberGym L1 (취약점 재발견, 모델 제한된 환경): 86.8%- 네트워크 접근 차단 상태에서 측정
  • ARC-AGI-3 (GPT-5.5 fleet): 50.2% mean RHAE- 기술적 기여: world-model skill +8.5, memory +11.8
  • ARC-AGI-3 (GPT-5.6-sol fleet): 85.1% mean RHAE- 게임 당 비용 약 $13.3, 25게임 중 19게임 완전 해결
  • 토큰·호출 수 비교 (SWE-bench, GPT-5.5): NOOA: 29 호출 / 약 1.1M 토큰 vs 비교 하니스: 66 호출 / 2.2M 토큰- 동일 모델에서 NOOA가 더 적은 토큰으로 동등 또는 더 나은 성능 달성

섹션별 상세

01

연구 개요와 핵심 인사이트

NOOA는 에이전트 하니스가 모델 성능과 비용에 결정적 영향을 준다는 관찰에서 출발한 연구 미리보기이다. 이 프레임워크는 에이전트를 단일 Python 클래스 단위로 정의하고 메서드, 필드, 도크스트링, 타입 주석으로 능력·상태·프롬프트·계약을 표현하도록 설계되었다. 구현물은 오픈 소스 코드·테스트·벤치마크 에이전트를 포함하며 재현 가능한 평가와 커뮤니티 확장을 목표로 공개되었다.
02

에이전트를 단일 클래스 객체로 설계하는 방법

NOOA는 에이전트의 능력을 클래스의 메서드로, 상태를 필드로, 프롬프트를 도크스트링으로, 인터페이스 계약을 타입 주석으로 명시한다. 본문 예시에서 점(...)으로 비워둔 메서드 바디는 런타임에 LLM 구동 루프가 코드를 생성해 완성하며, 일반 Python 메서드는 결정론적 로직으로 그대로 실행된다. 이 구조는 코드 리뷰·유닛 테스트·버전 관리 같은 소프트웨어 공학 도구를 그대로 에이전트 개발에 적용할 수 있게 하여 개발·검증 흐름을 인간과 자동화 모두에서 일관되게 만든다.
python
class SupportAgent(Agent):
    """You are a support agent for a customer service system."""
    order_db: OrderDB # object state: model-visible, passed by reference

    def is_refund_eligible(self, order: Order) -> bool:
        """Return whether an order is eligible for a refund."""
        return order.delivered and order.days_since_delivery

    TicketKind: """Classify the customer message into the best ticket kind."""
    ...

    async def triage(self, message: str, photo: Image | None, order: Order | None) -> Ticket:
        """Triage a customer message and create a support ticket."""
        ...

이 코드는 에이전트를 단일 Python 클래스로 표현하고 메서드 바디를 런타임에 LLM이 완성하도록 하는 NOOA의 객체지향적 설계 예시로, 상태는 필드로 유지되고 일부 메서드는 점(...)으로 표기되어 모델이 해당 부분을 생성하도록 한다.

03

여섯 가지 모델 인터페이스 설계 원칙

NOOA는 모델과 상호작용하는 인터페이스로서 타입화된 입출력, 참조 전달, 코드 기반 액션, 프로그래머블 루프, 명시적 객체 상태, 모델 호출 가능 하니스 API의 여섯 가지 아이디어를 제시한다. 타입화된 입출력은 인수와 반환값을 검증된 타입으로 제한해 모델 산출물을 구조화하고, 참조 전달은 도구 결과를 직렬화하지 않고 실행 환경의 객체로 제공해 토큰 비용을 낮춘다. 코드 기반 액션과 프로그래머블 루프는 모델이 Python 코드를 작성해 제어 흐름과 도구 호출을 직접 수행하게 하여 재현 가능한 행동과 검사 가능한 트레이스를 생성한다.
04

장기 메모리 설계와 운영 방식

NOOA의 메모리 서브시스템은 자동 요약 파이프라인 대신 에이전트가 명시적으로 기록·질의·수정하는 인간 판독 가능한 SQLite 저장소로 구현되어 있다. 메모리 레코드는 타입·중요도·태그와 관계(예: supports, contradicts, derived-from)를 포함해 지식 그래프처럼 연결되며, 배경 리플렉션 패스가 중복 병합·링크·에피소드 증류·불필요 정보 삭제를 수행한다. 이 방식은 세션 간 지식 누적을 가능하게 하고 저장된 레코드가 라이브 에이전트 상태를 참조함으로써 정보의 신선도를 유지하게 만든다.
05

벤치마크 결과와 비용·토큰 효율성

NOOA는 SWE-bench Verified, CyberGym L1, ARC-AGI-3 같은 다양한 벤치마크에서 동일 모델 대비 정확도와 토큰 비용 면에서 우수한 결과를 보였다. 구체적으로 SWE-bench에서 GPT-5.5로 82.2%를 기록해 제출 시점 공개 리더보드의 79.2%를 상회했으며 ARC-AGI-3에서 GPT-5.5는 50.2% mean RHAE를, GPT-5.6-sol는 85.1%를 달성해 비용 대비 성능 곡선을 앞당겼다. 토큰 효율성 측면에서는 동일한 GPT-5.5 기준으로 NOOA가 약 29 LLM 호출·약 1.1M 토큰으로 목표를 달성한 반면 비교 하니스는 더 많은 호출과 토큰을 요구해 대체로 비용 절감 효과가 확인되었다.
06

취약점 탐지 워크플로와 검증 메커니즘

취약점 발견 작업에서 NOOA는 탐색·증명 절차를 모두 타이핑된 메서드와 결정론적 게이트로 구현해 모델 산출물이 코드로 직접 실행되고 재현 가능 여부가 자동으로 검증되도록 설계되었다. 검증 파이프라인은 충돌 여부 판정, 충돌이 보고된 취약점과의 일치 확인, 동일 입력 재실행을 통한 재현성 확인의 세 단계 게이트를 포함해 결과가 코드적 판정에 의해 수용될 때만 보고가 인정된다. 내부 연구에서는 네트워크 접근이 차단된 상태에서도 CyberGym L1에서 86.8%를 달성해 코드 기반 검증이 실용적임이 확인되었다.
07

보안·배포·오픈 연구 관점

NOOA 실행은 계층화된 샌드박싱과 런타임 보안 조치(셀 가드·권한 강등·엔드투엔드 익명화·커널 강제 샌드박스) 아래에서 운영되었으며, 레드팀 감사를 통해 많은 로그를 검사한 결과 규칙 위반이나 정보 유출이 식별되지 않았다. 연구팀은 상업적 배포를 위해 OpenShell 같은 보안 런타임과의 결합을 권장하며 프레임워크·테스트·에이전트·평가 방법론을 공개해 투명한 검증과 커뮤니티 확장을 의도했다. NOOA는 기존 하니스 대체가 아니라 오픈 실험 표면으로 제시되며 프로젝트별 요구에 따라 채택·검증·개선될 수 있게 문서화되었다.

용어 해설

참조 전달(Pass by Reference)
데이터를 문자열로 직렬화해 모델에 전달하는 대신 실행 환경의 객체 주소를 모델이 참조하도록 하는 기법으로, 모델이 전체 값을 컨텍스트로 불러오지 않고도 객체의 미리보기와 메타데이터만 보고 판단하거나 코드에서 직접 조작하게 해 토큰 사용량을 줄이고 캐시 유효성을 유지한다.
타입화된 상태 기반 장기 메모리(Typed State Memory)
에이전트의 상태와 장기 기억을 타입 주석과 구조화된 레코드로 관리하는 메커니즘으로, 각 레코드는 중요도·태그·관계(예: supports, contradicts)를 가지며 SQLite 같은 인간 판독 가능한 저장소에 유지되어 재훈련 없이 지식 누적과 검증 가능한 감사가 가능하게 만든다.
프로그래머블 루프 엔지니어링(Programmable Loop Engineering)
에이전트의 제어 흐름을 외부 워크플로 그래프나 고정된 오케스트레이션이 아니라 일반 Python 루프로 구현해 개발자와 모델이 루프를 수정·생성·재사용할 수 있게 하는 방식으로, 모델이 자체적으로 반복적 의사결정 구조를 생성하고 호출 흐름을 제어할 수 있게 한다.
컨텍스트 압축(Context Compaction)
대화나 도구 결과가 늘어남에 따라 입력 컨텍스트 창이 가득 차는 문제를 해결하기 위해 요약하거나 핵심만 추출해 토큰을 줄이는 절차로, NOOA는 참조 전달과 지속 가능한 캐시로 이 절차를 크게 줄여 세션 중 전반적 토큰 소비를 낮춘다.

기술

  • Python
  • SQLite

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

수집 2026. 07. 27.출처 타입 WEB

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.