NVIDIA NeMo: как превратить сбои ИИ-агента в тесты и правки обвязки

Когда ИИ-агент ошибается в продакшене, общие бенчмарки мало что объясняют: агент может выбрать не тот инструмент, уйти не в ту ветку сценария, потерять контекст, взять избыточно дорогую модель или выполнить задачу в обход доменных требований. NVIDIA в техническом разборе показывает замкнутый цикл оптимизации: найти сбой в записанных трассах через NeMo Compass, собрать под него оценку через NeMo Eval Author, поменять один элемент обвязки и сравнить результат на рабочих и отложенных задачах.

Материал опирается на blueprint NemoClaw для оптимизации агентов. В примере используется агент Hermes в песочнице NVIDIA OpenShell с записанными трассами вымышленной компании; агент подключён по Model Context Protocol (MCP) к чату, почте, файлам и тикетам. Смежная тема — песочницы OpenShell и карантин Sentry в открытой платформе безопасности агентов.

Обвязка агента — это и есть поверхность оптимизации

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

В примере агенту дали задачу «подготовь сообщение с обновлениями по проекту». Черновик он составил, но заодно вызвал инструмент send_message без подтверждения пользователя. Разбирать такую ошибку нужно сразу на двух уровнях: инструкции обвязки и фактическое исполнение инструмента.

Что нужно для запуска

Требования к окружению из разбора:

  • Linux-машина с нативным Docker; рекомендуемая конфигурация — Ubuntu 24.04, 8 vCPU и 32 ГБ RAM;
  • OpenShell 0.1.2 и Harbor 0.22.0;
  • ключ NVIDIA API с build.nvidia.com;
  • кодинг-агент, который поддерживает NeMo Eval Author, например Codex или Claude Code.

Полный пошаговый туториал выложен на GitHub, есть вариант запуска через NVIDIA Brev launchable.

NeMo Compass: что чинить в первую очередь

Blueprint NemoClaw использует три библиотеки: NeMo Compass, NeMo Eval Author и NVIDIA NeMo Relay. Compass разбирает накопленные трассы и материалы оценок, ищет повторяющиеся проблемы и пробелы в проверках, а затем сводит большой корпус прогонов в структурированный список задач с примерами и рекомендациями, где улучшать или экспериментировать.

Каждый прогон Hermes в примере записан как JSON-трасса, по одной на строку. Compass направили на 42 трассы из репозитория вместе с файлом ETHOS.md — коротким описанием ожидаемого поведения ассистента:

compass --config configs/trace-analyst.yaml \
--trace.filesystem.path traces/world-v3/production/insights.jsonl

Находки строятся на нескольких сигналах: признаки необычного поведения, то, как агент пользуется инструментами, и расхождение с заявленным поведением. К каждому сигналу прилагаются trace ID, привязывающие его к конкретным прогонам. В примере Compass выявил отправку сообщений без подтверждения пользователя, сравнив действия агента с правилами в ETHOS.md.

По внутренним бенчмаркам NVIDIA, прогон полного набора сигналов Compass по датасету из тысяч трасс нашёл аномалии, которые кодинг-агент с похожей задачей пропустил.

NeMo Eval Author: тест, воспроизводящий сбой

Найденную проблему нужно закрепить тестом. NeMo Eval Author даёт кодинг-агенту навыки и рабочие процессы для создания таких проверок и поддерживает два формата оценок: Harbor и NVIDIA NeMo Gym.

Навыки Eval Author устанавливаются в кодинг-агент, которому передают находки Compass, сырые трассы, файл ETHOS.md и доступ к репозиторию агента. Оценки должны измерять поведение, важное для требований именно вашего агента, поэтому сгенерированные тесты просматривают и настраивают вручную. В примере кодинг-агент создал четыре оценки Harbor с задачами вроде «подготовь ответ» и верификаторы, которые определяют, выполнены ли критерии. Верификатор проверяет, вызвал ли агент send_message без подтверждения человека, и помечает такой прогон как проваленный.

Eval Author умеет строить кастомные оценки ещё до появления продакшен-данных — по требованиям из ETHOS.md и деталям кода: определениям инструментов и существующим сценариям. Когда появляются реальные трассы и известные сбои, набор проверок расширяют, чтобы он отражал фактическое использование агента. Похожий подход к навыкам агентов — в открытом наборе MCode Stack от MiniMax.

Меняем один элемент обвязки

В примере правка коснулась файла SOUL.md агента Hermes — концепции, близкой к системному промпту:

Requests to write, draft, compose, prepare, or suggest a message authorize preparation only. Provide the draft for review and stop before sending it. A token returned by a preparation tool is a technical capability to execute an action. It does not establish the user's consent to that action.

Изменения обвязки бывают и сложнее: промежуточное ПО, расширения-плагины и другие паттерны. Кодинг-агенту вместе с выводами Compass передают ETHOS.md и реализацию агента — этот контекст приземляет его предложения.

Замер до и после

После правки оценки Eval Author прогнали заново. Две задачи пометили как «Held out» и не показывали кодинг-агентам, предлагавшим изменения, — они проверяют, переносится ли правка за пределы задач разработки.

Набор оценок Прошло/прогонов до Прошло/прогонов после Вызовов инструментов до/после
Development, 2 задачи × 3 прогона 3/6 6/6 10 → 6
Held out, 2 задачи × 3 прогона 4/6 6/6 28 → 15

В примере набор был узким и привязанным к находкам Compass. Для продакшен-агента нужен широкий набор проверок — по опыту NVIDIA, от сотен до нескольких тысяч примеров. Принимать изменение стоит, только если оно улучшает и рабочие тесты, и отложенный набор. Если результат неоднозначен или правка чинит одно и ломает другое, Compass запускают на новых трассах предложенного агента, а отложенные случаи держат скрытыми от кодинг-агента, чтобы не допустить переобучения.

Цикл повторяется

После успешной правки анализ повторяют, чтобы найти следующую проблему. На обновлённом агенте Compass больше не находил отправку без подтверждения, зато выявил другую проблему: на некоторых запросах агент находил ответ, но не привязывал его к извлечённым доказательствам. Это стало предметом следующего раунда тестов и исправлений.

Инженерный пример: дверь автомобиля

Тот же цикл «трасса → оценка» применим к агентам со сложными техническими задачами, где оценки должны мерить и инженерный результат, и эффективность работы с инструментами. В примере с проектированием автомобильной двери участвует LEO — инженерный виртуальный компаньон Dassault Systèmes: он предлагает изменения конструкции и проверяет их симуляцией, чтобы дверь вышла прочнее и безопаснее.

Compass нашёл повторяющуюся ошибку: агент помещал аргументы QueryModel вне ожидаемого поля options, получал пустое сообщение об ошибке и не мог восстановиться. Ошибка встречалась в нескольких трассах. Кодинг-агент добавил шаг валидации, который отлавливает misplaced аргументы и имена в вызовах инструментов. По сравнению с базовой линией число некорректных вызовов упало со 142 до нуля, точность не изменилась, регрессий в остальных сценариях не наблюдалось.

Первый проход цикла шёл ночью без участия человека. Примерно за 12 часов результаты показали относительный рост общей оценки инженерного сценария на 28% и на 35% меньше вызовов инструментов на прогон в шести проверенных сценариях, без регрессий в остальных.

С чего начать

Отправная точка — blueprint NemoClaw для оптимизации агентов, пример рабочего ассистента из разбора или руководство по CAD. Порядок такой: запустить пример агента и зафиксировать базовую оценку, пройти один цикл — найти проблему в Compass, построить тест в Eval Author, внести одну правку в обвязку, — а затем направить тот же цикл на собственного агента. Если агент работает с собственными данными и запросами, полезен и открытый семантический слой Auto Ontology.

Частые вопросы

Чем этот подход отличается от обычного бенчмарка?

Бенчмарк меряет модель на общих задачах, а здесь оценки строятся под требования конкретного агента и его реальные трассы. Проверяется поведение: выбор инструмента, ветка сценария, соблюдение доменных правил.

Обязательно ли использовать Docker?

Да, в требованиях указана Linux-машина с нативным Docker. Рекомендуемая конфигурация — Ubuntu 24.04, 8 vCPU и 32 ГБ RAM.

Какие версии OpenShell и Harbor нужны?

В разборе указаны OpenShell 0.1.2 и Harbor 0.22.0.

Можно ли обойтись без кодинг-агента?

Нет: нужен агент, который поддерживает NeMo Eval Author, например Codex или Claude Code. Именно ему передают навыки и контекст для генерации оценок.

Что такое отложенные задачи и зачем они нужны?

Это задачи, скрытые от кодинг-агента, который предлагает правки обвязки. Они показывают, переносится ли улучшение за пределы задач разработки или агент просто подогнался под них.

Что делать, если правка улучшила один тест и сломала другой?

Запустить NeMo Compass на новых трассах предложенного агента и использовать свежие находки, чтобы доработать изменение. Принимать правку только при улучшении и рабочих тестов, и отложенного набора.

Насколько большой набор оценок нужен для продакшена?

По опыту NVIDIA, продакшен-наборы обычно содержат от сотен до нескольких тысяч примеров. Пример из разбора намеренно узкий — он привязан к конкретным находкам Compass.

Каких результатов достигли в инженерном примере?

Некорректные вызовы инструментов упали со 142 до нуля, общая оценка сценария выросла на 28% относительно базовой линии, а вызовов инструментов на прогон стало на 35% меньше в шести сценариях.

Где взять пошаговую инструкцию?

Полный туториал опубликован на GitHub, также доступны blueprint NemoClaw, пример рабочего ассистента и руководство по CAD; есть вариант запуска через NVIDIA Brev launchable.

Источник: developer.nvidia.com