NVIDIA сделала агента обычным классом в репозитории

Иллюстрация: NVIDIA сделала агента обычным классом в коде

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

Точнее, куски есть. А где «настоящая» логика и что именно сейчас исполняет модель — при каждой правке непонятно.

NVIDIA в NOOA сжимает этот зоопарк до одного жеста: агент — обычный класс на питоне в репозитории. Сравнение изменений и ревью — как с любым кодом.

Один класс вместо кучи обвязок

Схема: один класс агента против кучи обвязок

NOOA — агенты как обычные объекты в коде: так назвала их лаборатория NVIDIA. В научной статье ещё встречается вариант с «двойным О». Это фреймворк на питоне без привязки к одной модели и исследовательский харнесс от команды NeMo.

Открытый репозиторий — на гитхабе у NVIDIA-NeMo, пакет на индексе питоновских пакетов — nooa.

Это не гайд «как создать агента в Cursor» и не продолжение других историй NVIDIA про доучивание. Здесь харнесс формально сделал агента классом.

Соответствие кусков обычному питону простое:

  • методы — действия;
  • поля — состояние объекта;
  • описание в docstring — промпт;
  • аннотации типов — контракты, которые среда исполнения проверяет.

Два вида методов решают боль «где модель, а где жёсткий код». Тело с тремя точками — ход модели. Обычное тело — обычный питон, который модель может вызвать как инструмент. Точные правила остаются кодом рядом; модель пишет питон в интерактивной консоли, а не прячет логику в отдельном зоопарке конфигов.

Стратегии исполнения тоже без магии. PredictStrategy — один типизированный вызов модели с локальным повтором, если проверка не прошла. CodeActStrategy (по умолчанию в AGENTS.md) — цикл в консоли: выполнить код, вернуть результат, проверить тип возврата.

Все просто: агент лежит в репозитории как класс, а не как папка с обвязками.

Живые объекты и короткий preview, не весь JSON в промпт

Схема: живые объекты и короткий preview вместо всего JSON

NVIDIA заявляет шесть идей на одной поверхности: типизированный ввод-вывод; передача живых объектов по ссылке; код как действие; программируемый цикл; явное состояние объекта; программный доступ к харнессу, который модель может вызвать. В сравнении с десятком других харнессов и фреймворков — LangGraph, Google ADK, PydanticAI, smolagents, Claude Agent SDK, OpenAI Codex, OpenHands и другие — у остальных покрытие частичное. Так пишет NVIDIA в tech blog.

Передача по ссылке здесь не значит «модель видит весь объект в промпте». Аргументы остаются живыми объектами; модель получает короткий preview — тип, длина, начало и хвост, — а полный объект доступен в консоли. Пример из обзоров: список примерно из ста элементов — около тридцати токенов preview.

Опционально — память nooa-memory: агент сам пишет и читает записи, связи «поддерживает / противоречит / выведено из», один человекочитаемый SQLite. На ARC-AGI-3 память дала плюс 11,8 против заметок в файлах — цифра с блога NVIDIA, не универсальная гарантия.

Цифры на бенчмарках — и честные оговорки

Карточка: цифры бенчмарков и оговорки про альфу

Заявленные результаты привязаны к конкретным моделям и режимам усилия. Не «любая модель даст то же».

  • SWE-bench Verified: 82,2% с GPT-5.5 (около 1,1 млн токенов и примерно 28–29 вызовов модели) против PI 78,2% (около 2,2 млн / 66 вызовов) и OpenCode 78,6% (около 1,3 млн) — примерно половина токенов относительно PI при более высоком score;
  • CyberGym L1: 86,8% (сеть заблокирована) — в материалах NVIDIA названо top open-source;
  • Terminal-Bench 2.0: 73,0% (high); на xhigh у PI выше — 75,3%, это стоит сказать прямо;
  • ARC-AGI-3: средний RHAE 50,2% (GPT-5.5) / 85,1% (GPT-5.6-sol), меньше двадцати долларов за игру;
  • тесты capabilities: 88×5×10 моделей → 4309 из 4400 (97,9%).

Свежая волна новостей — седьмое августа. Сам релиз шире по календарю: репозиторий создан двадцатого июля, научная статья на arXiv — двадцать второго, tech blog и анонс Open Secure AI Alliance — двадцать седьмого, пакет nooa версии 0.0.8 — тридцатого июля. На восьмое августа у репозитория порядка тысячи девяноста двух звёзд и ста пятидесяти семи форков.

Какой смысл схлопывать всё в «вышло ровно седьмого»? Никакого.

Как поставить — и где границы

Установка: pip install nooa или uv add nooa; доппакеты — cli, memory, bench. Python от 3.12 до 3.13. Модели через LiteLLM — hosted, Ollama, vLLM. Лицензия Apache 2.0. Статус — research preview, alpha. NVIDIA прямо: это не замена уже используемому харнессу — открытая экспериментальная поверхность.

Безопасность: агент может исполнять код, который написала модель. Проверки AST и списки запрещённых модулей — глубина защиты, не клетка. Граница — контейнер, виртуальная машина или NVIDIA OpenShell.

Обзоры на Habr и у Selectel отдельно предупреждают: аудируйте методы с тремя точками и считайте радиус поражения от prompt injection. Это мнение обзора, не claim NVIDIA.

Практика на вечер: прочитать официальный tech blog и README репозитория, поставить alpha-пакет, попробовать один класс с методом из трёх точек и обычным методом рядом — и сразу заложить песочницу на уровне ОС, если модель пишет код.

Не ждать «замены LangGraph, n8n или Cursor завтра».

Если собираете агентов и автоматизацию без зоопарка обвязок — канал Ковчег в Telegram: t.me/maya_pro. Тот же ритм в MAX: max.ru/maya_pro (автоматизация с нейросетями, Make, Cursor AI). Обучение Cursor + Make + AI: kv-ai.ru/obuchenie-po-make.