Суть
Для обычного сервиса хватает метрик инфраструктуры (инстансы, память, HTTP-коды). Агент недетерминирован и многошагов, поэтому нужен трейс — запись всей траектории выполнения: request → план → tool_call → tool_result → … → финальный ответ. Трейс превращает «гадание, почему агент упал» в наблюдаемый факт.
Зачем это нужно
Главные боли прода, которые ловит именно трейсинг:
- Отказы — агент молча падает или зависает, данных о поведении нет.
- Невизуальность — не видно, где он «тыкается» и деградирует на живом трафике.
- Косты — дорогие/ненужные вызовы LLM не видны без пошагового учёта токенов.
- Каскадные ошибки — трейс работает как «детектор лжи»: вскрывает, что модель не вызвала инструмент, а выдумала данные (например, курс биткоина), и передала их дальше.
Как работает
- Что логировать в span'е шага: вход/выход, какой tool вызван и с какими аргументами, latency, ошибки и ретраи. Это минимум, по которому можно отличить «не тот документ принесли» от «модель проигнорировала верный контекст».
- Трейс как поле state — на уровне графа удобно вести журнал «размышлений» прямо в состоянии (поле
trace), помимо внешнего инструмента (см. LangGraph Observability). - Лучшие практики эксплуатации: версионирование кода (каждый релиз агента — новая версия, хронология в git); раздельные конфиги для dev/staging/prod; горизонтальное масштабирование (k8s); прогон на тестовых экспериментах до прода.
- Аннотации экспертом — UI, где доменный эксперт (не разработчик) накликивает оценки ответов; быстро строится, если инфраструктура данных уже есть.
- Уровни наблюдаемости: на уровне агента/графа — трейсинг шагов и tools; на уровне retrieval — отдельный слой (RAG Observability: какие чанки пришли, версия индекса). Наблюдаемость — вход для оценки качества (Agent Evals) и алертинга при деградации метрик.
Связано с
- AgentOps — observability как первый пиллар дисциплины
- LangSmith vs Langfuse — инструменты, которые собирают трейсы
- Agent Evals — трейс → метрики → оценка качества
- RAG Observability — наблюдаемость на уровне retrieval (дополняет шаговый трейсинг)
- LangGraph Observability — трейсинг шагов графа + поле
traceв state
Открытые вопросы
- минимальный набор полей span'а для прод-дебага агента (tool, args, latency, tokens, error)
- какие пороги деградации метрик ставить триггером алерта