Как читать трейс

Трейс - это дерево вызовов, которое описывает логику работы, отображает ошибки и время выполнения операций. Каждый узел дерева называется спан или observation - он соответствует определенному шагу или событию в работе агента.

Схема воркшопа

  • Трейс читается сверху вниз - от наиболее ранних к наиболее поздним событиям
  • На скриншоте мы видим спаны: run-agent, list-tools, choose-model и т.д.
  • Самый первый спан run-agent называют корневым или root спаном
  • Спаны вложены друг в друга, образуя иерархию. Например, если функция А вызвала функцию Б, то спан для Б будет вложен в А. Говорят, что спан Б является дочерним для А. Или что Б является родительским для А.
  • Рядом с каждым спаном отображено время выполнения шага в секундах, например 9.42s. Это позволяет проводить диагностику производительности.
  • Ошибки (необработанные исключения) отображаются в трейсе красным маркером ERROR
  • У каждого спана есть иконка, соответствующая типу спана. Список доступных типов
  • Выбрав спан можно изучить более детальну информацию...

Схема воркшопа

  • У каждого спана есть детали, в которых отображается метаинформация и точное время события
  • В спане так же могут быть зафиксированы входящие input и исходящие output данные шага. Например, запрос и ответ от LLM. Это очень полезно для диагностики работы агента.

В общем случае, для диагностики дефекта:

  1. Смотрим, есть ли в спане явные ошибки ERROR и изучаем их.
  2. Если явных ошибок нет - находим спан с результатом (часто последний)
  3. Изучаем input спана, чтобы понять - насколько корректную информацию мы получили на вход. Если на вход была подана неверная информация - идем выше по дереву, чтобы найти источник некорректных данных
  4. Изучаем output спана, чтобы убедиться, что внешняя система или шаг алгоритма ответили правильно.