AI-агент может успешно выполнить задачу, но сделать это неэффективно: лишние поисковые запросы, повторное чтение файлов или ошибки инструментов, которые агент исправляет сам. Успешный финальный ответ скрывает эти издержки, которые увеличивают задержку (latency) и расходуют токены. Для разработчиков критически важно понимать не только результат, но и путь его достижения.
NVIDIA NeMo Relay предоставляет единый слой наблюдаемости (observability) для агентов, захватывая упорядоченные события жизненного цикла и структурированные траектории. Интеграция с агентным фреймворком Hermes Agent позволяет получать потоки событий ATOF, пошаговые траектории ATIF и спаны OpenTelemetry с метками OpenInference. Это дает возможность детально инспектировать поведение модели, использование ресурсов и ошибки в таких инструментах, как Arize Phoenix.
01Форматы трассировки NeMo Relay
NeMo Relay генерирует три основных формата данных, каждый из которых решает свою задачу в отладке:
- Agent Trajectory Observability Format (ATOF): JSONL-лог событий начала и завершения сессий (scopes) с метками времени. Идеально для аудита отдельных событий, проверки таймингов и иерархии «родитель-потомок».
- Agent Trajectory Interchange Format (ATIF): Пошаговый JSON-рекорд взаимодействий агента, вызовов инструментов и наблюдений. Используется для анализа пути агента шаг за шагом.
- OpenTelemetry с OpenInference: Запись выполнения в виде древовидных спанов. Позволяет использовать стандартные инструменты мониторинга (например, Phoenix) для визуализации вызовов LLM, инструментов, длительности, расхода токенов и ошибок.
02Настройка изолированной среды
Для тестирования используется репозиторий nemoclaw-community, который создает изолированную среду. Это гарантирует, что тесты не зависят от вашей локальной установки Python или других версий Hermes. Скрипты создают окружение с Python 3.11, Hermes и NeMo Relay.
Для работы потребуется ключ API NVIDIA для модели Nemotron 3.5 Lightning. Ниже приведена последовательность команд для развертывания тестового стенда:
# Клонирование репозитория с примерами
git clone https://github.com/NVIDIA/nemoclaw-community
# Переход в папку с примером трассировки
cd nemoclaw-community/examples/tools/hermes-relay-tracing
# Создание изолированного окружения
./scripts/setup_tutorial_runtime.sh
# Копирование шаблона ключей
cp keys.env.example keys.env
# ВАЖНО: Добавьте ваш NVIDIA_API_KEY в файл keys.env перед запуском
# nano keys.env # или любой другой редактор
# Проверка работы Docker
docker version
# Сборка Docker-образа для изолированного терминала
./scripts/build_tutorial_image.sh
# Запуск задачи и генерация трасс (ATOF и ATIF)
./scripts/run_tutorial.sh03Практика: Анализ простой задачи (Terminal Tool)
Первый эксперимент проверяет базовую функциональность. Агент Hermes должен выполнить Python-скрипт внутри изолированного Docker-контейнера. Скрипт выводит фиксированное значение VALUE=42. Это позволяет точно верифицировать успех выполнения.
После завершения задачи runner проверяет ответ и сгенерированные файлы трасс. Пример успешного вывода демонстрирует наличие вызовов LLM, использование токенов и отсутствие ошибок инструментов:
ATOF summary
events: ...
completed llm scopes: ...
llm scopes with usage: ...
prompt tokens: ...
completion tokens: ...
total tokens: ...
tool calls: ...
tool errors: 0
correlated events: ...
ATIF summary
agent: Hermes Agent
model: ...
steps: ...
llm calls: ...
requested tool calls: ...
Task verified: VALUE=42Ключевые метрики здесь включают количество вызовов LLM, вызовов инструмента и отсутствие ошибок. Строка Task verified: VALUE=42 подтверждает корректность работы агента и генерацию артефактов трассировки.
uuid и проверяйте отсутствие ошибок в этих событиях.04Сложный сценарий: Исследование через веб
Во втором эксперименте агенту дается задача: прочитать файл с записями о путешествиях, выполнить веб-поиск, проверить информацию на официальном сайте конференции, написать отчет и вернуть название события. Ожидаемый результат — COLT 2026.
В этом сценарии особенно полезна интеграция с Arize Phoenix. Запустив локальный сервис Phoenix в Docker, вы можете загрузить OpenTelemetry-спаны и визуализировать:
- Дерево вызовов: какой инструмент вызывался после какого промпта.
- Тайминги: где агент «завис» или потратил лишнее время.
- Расход токенов: сколько ушло на промпт и сколько на ответ.
- Ошибки: если веб-поиск вернул ошибку, агент мог попытаться повторить запрос. Это видно в виде повторяющихся спанов с ошибками.
05Оптимизация через сравнение версий (ToolPerf)
Главная ценность NeMo Relay — возможность объективно сравнивать изменения в «шасси» (harness) агента. В кейсе Hermes ToolPerf разработчики сравнивали базовую версию и исправленную ревизию на 108 запусках.
Анализ трасс показал, что модель Qwen Coder 30B в исправленной версии успешно восстановила больше задач, но это произошло ценой увеличения количества вызовов, объема переданных данных и задержки.
Источник: NVIDIA Developer ↗
