Главная/Блог/Гайд/NOOA от NVIDIA: 6 принципов создания…
Гайд10 мин чтения · 27 июля 2026 г.

NOOA от NVIDIA: 6 принципов создания эффективных AI-агентов

Разбираем архитектуру NOOA от NVIDIA Labs: как объектно-ориентированный подход, управление памятью и передача ссылок повышают точность и снижают стоимость работы AI-агентов.

NOOA от NVIDIA: 6 принципов создания эффективных AI-агентов

Создание надежного и эффективного AI-агента — это задача, которая выходит далеко за рамки простого выбора мощной языковой модели. Часто разработчики фокусируются исключительно на промптах или выборе LLM, забывая, что именно архитектура, окружающая модель, определяет конечный результат. Эта архитектура, или «хarness» (harness), отвечает за то, как контекст подается модели, как выполняются действия, как управляется состояние и как определяется завершение задачи. Исследования показывают, что качество дизайна harness может обеспечить двузначный прирост в результатах бенчмарков и существенную экономию токенов, даже при использовании одной и той же базовой модели.

Именно на этом принципе строится NOOA (NVIDIA Labs Object-Oriented Agents) — фреймворк с открытым исходным кодом, разработанный NVIDIA Labs. NOOA предлагает революционный взгляд на создание агентов, рассматривая их не как набор разрозненных скриптов и графов, а как единые объектно-ориентированные Python-классы. Этот подход позволяет интегрировать возможности, состояние и промпты через методы, поля и docstrings, где аннотации типов выступают в роли строгих контрактов. В этой статье мы подробно разберем шесть ключевых возможностей NOOA, которые обеспечивают высокую производительность, и посмотрим, как это работает на практике.

NOOA (NVIDIA Labs Object-Oriented Agents) — фреймворк для создания агентов на базе Python.
NOOA (NVIDIA Labs Object-Oriented Agents) — фреймворк для создания агентов на базе Python.

01Агент как единый Python-объект

Традиционная разработка AI-агентов часто сопряжена с координацией множества движущихся частей: шаблоны промптов, схемы инструментов, код обратных вызовов и графы рабочих процессов. NOOA упрощает этот процесс до минимума: агент — это один Python-класс. Его методы становятся его возможностями (capabilities), поля — состоянием, а docstrings — промптами. Аннотации типов служат enforced-контрактами, гарантируя корректность данных.

Ключевая особенность NOOA заключается в том, как обрабатываются методы. Стандартный метод Python, тело которого состоит из многоточия (…), заполняется во время выполнения с помощью цикла, управляемого LLM. Методы с обычным телом выполняются как обычный детерминированный Python-код. Это означает, что разработка агентов становится традиционной разработкой программного обеспечения. Агента можно сравнивать через diff, проверять кодом, юнит-тестировать, отслеживать, версионировать и рефакторить — как людьми, так и AI-агентами для написания кода, используя те же инструменты, что и для любого другого кода.

terminalpython
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 < 30

    @strategy(PredictStrategy())
    async def classify(self, message: str) -> 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."""
        ...
Пример кода агента SupportAgent с типизированными методами и состоянием.
Пример кода агента SupportAgent с типизированными методами и состоянием.

02Шесть идей, одна поверхность

Архитектура NOOA выделяет шесть ключевых идей интерфейса, ориентированных на модель, которые напрямую влияют на производительность агента. Эти принципы не просто абстракции, а конкретные механизмы, обеспечивающие эффективность:

  1. Типизированный ввод/вывод (Typed input/output): Вызовы агентов имеют типизированные аргументы и проверенные возвращаемые значения, а не свободный текст. Это снижает вероятность галлюцинаций и ошибок парсинга.
  2. Передача по ссылке (Pass by reference): Модель работает с живыми Python-объектами, видя ограниченные превью, а не сериализованные дампы. Это экономит токены и сохраняет контекст.
  3. Код как действие (Code as action): Модель действует, написывая Python-код, с контролем потока и встроенными вызовами методов. Это делает действия предсказуемыми и проверяемыми.
  4. Программируемая инженерия циклов (Programmable loop engineering): Оркестрационные циклы — это обычный Python, который могут писать как разработчики, так и сама модель.
  5. Явное состояние объекта (Explicit object state): Долговременное, типизированное состояние живет на объекте агента, а не только в истории разговора.
  6. API harness, вызываемые моделью (Model-callable harness APIs): Контекстные блоки и история событий — это API, которые модель может проверять и управлять ими.
Шесть ключевых возможностей архитектуры NOOA для повышения производительности.
Шесть ключевых возможностей архитектуры NOOA для повышения производительности.

03Агент сам курирует свою память

Одной из самых больших проблем в разработке агентов является управление памятью. NOOA предлагает подсистему долговременной памяти, которая кардинально отличается от автоматических фоновых пайплайнов суммаризации. В NOOA память — это хранилище, которое агент курирует сам через вызываемые моделью инструменты. Агент намеренно записывает, запрашивает и исправляет записи как часть своей работы, в то время как «спонтанные воспоминания», релевантные текущему шагу, автоматически появляются в контексте.

Записи имеют типы, важность и теги. Типизированные отношения, такие как «поддерживает» (supports), «противоречит» (contradicts) и «выведено из» (derived-from), связывают записи в граф знаний, а не в плоский журнал. Фоновый процесс «рефлексии» (reflection) консолидирует хранилище, объединяя дубликаты, связывая связанные записи, обобщая эпизоды в инсайты и удаляя информацию, которая больше не актуальна.

💡
Ключевое преимущество. Агенты накапливают знания между сессиями без переобучения. Все сохраняется в одном читаемом человеком файле SQLite, который команды могут проверять, резервировать и просматривать с помощью стандартных практик. Хранимые воспоминания могут ссылаться на живое состояние агента, сохраняя знания актуальными.

В оценке ARC-AGI-3 система улучшила средний балл RHAE на +11.8 пунктов по сравнению с тем же агентом, использующим файловые заметки. Это демонстрирует, как структурированная память превосходит простые текстовые логи.

04Больше возможностей от той же модели

Шесть возможностей NOOA измеримы в различных доменах, где общий интерфейс обеспечивает продвинутые результаты. Давайте посмотрим на конкретные бенчмарки, чтобы понять масштаб улучшений.

Программная инженерия: SWE-bench Verified

На бенчмарке SWE-bench Verified NOOA достигает 82.2% с моделью GPT-5.5, что выше опубликованного SOTA на момент подачи (79.2%). Примечательно, что с моделью Opus 4.6 результат составляет 79.8%. Все это достигается с помощью универсального агента длиной всего в 253 строки кода, без специфичных для бенчмарка промптов. Это доказывает, что архитектура может превзойти специализированные настройки.

Кибербезопасность: CyberGym L1

На CyberGym L1 NOOA решает 86.8% задач с GPT-5.5. Это лучший результат среди открытых агентов, опережающий большинство ведущих закрытых систем. Важно отметить, что тест проводился при заблокированном доступе к сети и с правилом «проверки на читерство» (cheat check) над каждой траекторией. Результат получен за счет рассуждений над кодом, а не поиска раскрытых уязвимостей. Никакой специфической настройки для кибербезопасности не использовалось.

Общее рассуждение: ARC-AGI-3

На ARC-AGI-3, где агент должен открыть правила неизвестной сеточной игры, один агент NOOA достигает 50.2% среднего RHAE с GPT-5.5 (прирост +8.5 пунктов над гипотезо-ориентированной базовой линией и +11.8 пунктов над файловыми заметками). С моделью GPT-5.6-sol результат возрастает до 85.1%, продвигая границу Парето «счет-стоимость» бенчмарка. При этом стоимость составляет менее $20 за игру в среднем ($17.85 для GPT-5.5 и $13.3 для GPT-5.6-sol).

05Та же производительность, половина токенов и без сжатия контекста

Инженерия harness покупает не только точность, но и эффективность. С GPT-5.5 NOOA достигает 82.2% на SWE-bench Verified, используя 29 вызовов LLM и около 1.1M токенов на задачу. Для сравнения, конкурирующие harness требуют 66 вызовов и 2.2M токенов для достижения 78.2%, или 29 вызовов при 1.3M токенов для 78.6%. Таким образом, NOOA обеспечивает паритет или лучшее качество при примерно половине стоимости.

Эта эффективность достигается за счет двух механизмов. Во-первых, передача по ссылке: результаты инструментов становятся живыми переменными Python, составленными непосредственно в коде, а не проходящими обратно через окно контекста в виде текста. Модель видит типизированное ограниченное превью, а полное значение остается живым в среде выполнения.

Во-вторых, это свойство означает, что NOOA не нуждается в сжатии контекста (context compaction) для решения SWE-Bench с моделями уровня frontier: медианные сессии достигают пика в 22–72k промпт-токенов против окон в 200–400k. Поскольку NOOA передает результаты инструментов по ссылке, а не сериализует их в окно контекста, транскрипты остаются только для добавления (append-only) и сохраняют валидность кэша на протяжении всей сессии. Не нужен проход суммаризации, и хиты кэша префилла накапливаются на протяжении всей задачи.

Сравнение стоимости и эффективности NOOA с конкурирующими решениями.
Сравнение стоимости и эффективности NOOA с конкурирующими решениями.

06Применение NOOA к обнаружению уязвимостей

Обнаружение уязвимостей — это суровый тест для фреймворка агентов. Агент должен найти кандидата на баг в большом кодовом базе, а затем доказать, что он реален, создав входные данные, которые вызывают сбой уязвимого кода. Шаг доказательства не прощает ошибок: сбой должен быть правильным и воспроизводимым, иначе находка бесполезна.

NOOA упрощает этот рабочий процесс. Детерминированные проверки и рассуждения модели живут на одном типизированном объекте, поэтому каждый шаг проверки выполняется как enforced-код, а не как инструкция промпта, которой модель может или не может следовать. В недавних внутренних исследованиях NVIDIA валидационный конвейер был реализован как единый объект NOOA. Модель пишет и запускает Python, который вызывает собственные методы агента, сохраняя исследование и проверки в одном месте.

Три из этих методов являются детерминированными воротами (gates). Первая превращает сырой вывод верификатора в четкий вердикт «сбой/нет сбоя». Вторая подтверждает, что сбой соответствует сообщаемой уязвимости. Третья повторно запускает входные данные, чтобы проверить их воспроизводимость. Поскольку ворота — это обычные типизированные методы, а не свободный текст, передаваемый между отдельными процессами, находка принимается только тогда, когда так говорит код, а весь запуск представляет собой единый трассируемый процесс, который можно проверить и протестировать.

⚠️
Важно для безопасности. Для развертывания в продакшене NOOA сочетается с NVIDIA OpenShell — безопасным рантаймом. Флоты NOOA работают под многослойной песочницей: cell-guard в процессе, снижение привилегий ОС для каждого запуска, сквозная анонимизация идентификаторов игр и песочница на уровне ядра. Аудиты red-team (18 проходов для GPT-5.5 и 9-сканерный аудит для GPT-5.6-sol) не выявили утечек ни по одному из 13,335 и 10,107 журналов соответственно.

07Исследовательский превью для открытой экосистемы агентов

Экосистема агентов быстро развивалась благодаря вкладу в оркестрацию, инструменты, память, интерфейсы моделей и оценку. NOOA — это вклад в этот прогресс: открытое исследование агентных harness в виде объектно-ориентированного фреймворка, достигающего state-of-the-art результатов в программной инженерии, кибербезопасности и бенчмарках рассуждений. NVIDIA делает фреймворк, тесты, агентов для бенчмарков и методологию оценки публичными.

Открытые реализации имеют значение, потому что команды могут проверять подход, а не доверять ему вслепую. Они могут строить на прозрачных, типизированных, проверяемых агентах с читаемым состоянием в одном хранилище, запрашиваемыми историями событий и стандартными интерфейсами, которые поддерживают существующие практики проверки безопасности, контроля доступа и наблюдаемости.

NOOA доступен как открытая экспериментальная поверхность, а не как замена существующим harness. Техники в отчете задокументированы так, что любой проект может принять, оспорить или улучшить их. Если вы хотите начать работу, вы можете прочитать технический отчет, получить код с фреймворком, тестами возможностей и агентами для бенчмарков, запустить примеры ARC-AGI-3 с решателем мировых моделей и развернуть безопасно с помощью NVIDIA OpenShell.

08Что это значит на практике

Для разработчиков и компаний, внедряющих AI-агентов, NOOA предлагает четкий путь к созданию более надежных и экономичных систем. Во-первых, отказ от «черных ящиков» в пользу объектно-ориентированного подхода позволяет использовать стандартные инструменты разработки Python (Git, pytest, линтеры), что снижает порог входа и упрощает поддержку. Во-вторых, передача по ссылке и отсутствие необходимости в сжатии контекста радикально снижают затраты на токены, что критично при масштабировании. В-третьих, встроенная система памяти с графом знаний позволяет агентам накапливать опыт, что особенно важно для сложных задач, таких как кибербезопасность или долгосрочные проекты.

NOOA демонстрирует, что архитектура имеет такое же значение, как и сама модель. Используя типизацию, детерминированные проверки и живое состояние, разработчики могут создавать агентов, которые не только умнее, но и дешевле, и безопаснее. Это важный шаг к промышленному применению AI-агентов, где надежность и стоимость являются ключевыми факторами.

Источник: NVIDIA Developer ↗