Я — продуктовый дизайнер, работаю в команде, которая разрабатывает облачные сервисы для создания ИИ-агентов. Передо мной стояла задача: спроектировать интерфейс трейсинга, который помогает быстро находить проблемные места и понимать, как агент пришёл к тому или иному результату. В этой статье — путь, который я прошёл, и что в итоге получилось.
Как работает ИИ-агент
Пользователь задаёт запрос, агент отвечает. По пути он может обращаться к языковой модели, инструментам и внешним сервисам. Когда результат оказывается неожиданным или ошибочным, понять причину сложно — между запросом и ответом скрывается цепочка действий.
Особенность агентных сценариев в том, что это уже не просто один вызов модели и один ответ. Агент может планировать шаги, пересобирать план, вызывать инструменты каскадом, возвращаться к пройденным шагам и попадать в смысловые циклы. Из-за этого путь выполнения становится непрозрачным и недетерминированным. Без трейсинга разбор ситуации превращается в догадки.
Что такое трейсинг
Трейсинг — это цепочка действий агента по шагам. Он позволяет увидеть, что происходило внутри системы, в каком порядке выполнялись задачи и где возникла проблема. Запись отражает полный путь одного запроса — от входа до результата.
Трейс состоит из последовательности шагов (span), каждый из которых фиксирует отдельную операцию: вызов модели, обращение к инструменту или внешний запрос. Каждый шаг содержит контекст: входные и выходные данные, длительность и статус. Это даёт возможность не просто видеть результат, а анализировать процесс — как агент принимал решения, какие действия выполнял и где возникли отклонения или ошибки.
Кому нужен трейсинг
Трейсинг помогает отслеживать и мониторить работу агента, чтобы быстро находить и устранять причины сбоев. В первую очередь он нужен опытным пользователям: ИИ- и ML-инженерам, бэкенд-разработчикам и платформенным разработчикам.
Основные задачи, которые решает трейсинг:
- Быстро находить сбой — не просто «всё сломалось», а конкретно: на каком шаге, в каком вызове и с каким результатом.
- Восстанавливать ход выполнения — какие шаги делал агент и в каком порядке.
- Разбираться в некорректном поведении — даже если нет явной ошибки, агент может вести себя странно: повторяться, ошибочно вызывать инструменты или терять контекст.
- Выявлять узкие места — в трейсинге хорошо видны аномально долгие шаги и повторяющиеся участки.
Какие задачи решает пользователь
Когда пользователь открывает интерфейс трейсинга, он обычно хочет:
- Понять, на каком этапе возникла проблема. Главный вопрос: «Где именно сломалось?».
- Увидеть, к чему обращался агент: где была языковая модель, где инструменты, MCP-серверы, и что туда передавалось.
- Понять, почему итоговый ответ получился именно таким — какая цепочка решений и результатов привела к финалу.
- Сравнить шаги по длительности, чтобы быстро выявить узкие места и аномалии.
Цель интерфейса — помочь опытному пользователю быстро найти причину проблемы и понять, что именно нужно улучшить: промпт, инструмент, обработку ответа, таймауты или логику агента.
Анализ решений конкурентов
Я изучил несколько существующих решений, чтобы понять, какие UX-паттерны используются в интерфейсах трейсинга.
Langfuse — задаёт ориентир для продакшен-решений: понятная иерархия шагов, визуализация графа, возможность воспроизведения с любого узла. Хорошо читается структура пайплайна и его экономика.
Phoenix — фокусируется на анализе: можно переигрывать отдельные шаги, сравнивать результаты и исследовать, почему агент пришёл к определённому выводу.
OpenLIT — связывает трейсинг с инфраструктурой: шаги агента сопоставляются с GPU-метриками, что помогает понять, где возникают задержки.
Langtrace — предлагает лёгкий и интеграционный подход: трейсы можно встраивать прямо в пользовательские интерфейсы.
LangWatch — добавляет слой аналитики: оценка качества ответов и автоматические проверки поверх трейсов.
Большинство решений используют схожие базовые паттерны: иерархия шагов (traces/spans), возможность провалиться в детали, дополнительные слои анализа — графы, метрики, оценка качества. Однако единого канонического UX пока нет.
Одни продукты работают как быстрый отладчик — помогают быстро найти сбой. Другие — как диагностические системы, дающие глубокий контекст, но требующие больше времени на разбор.
Этот вывод стал ключевым: универсального паттерна нет. Значит, интерфейс нужно проектировать не по аналогам, а под конкретные пользовательские сценарии.
Сбор требований: сложности и выводы
Чтобы спроектировать трейсинг, сначала нужно понять, как система работает внутри. Без этого невозможно решить, что именно показывать в интерфейсе.
Я проводил интервью с инженерами — ML, ИИ, бэкенд, платформы — и изучал их реальные сценарии:
- с чего начинается разбор при сбое,
- что важно увидеть сразу,
- когда и какие детали они проверяют.
Такие беседы помогают выявить реальные боли, а не придуманные. Главный вывод: тreyсинг никто не читает последовательно. В нём ищут конкретную проблему. Поэтому ключевое требование к интерфейсу — помочь быстро сузить поиск: от общей картины к конкретному шагу.
Архитектура интерфейса и навигация
Архитектура получилась иерархической, потому что данные в трейсинге быстро разрастаются, и без структуры в них невозможно ориентироваться.
Список сессий — точка входа. Таблица, где пользователь находит нужный запуск. Здесь сразу видны признаки проблем: ошибки, статусы, длительность.
Сессия — при переходе пользователь видит диалог с агентом в формате чата. Это помогает быстро восстановить контекст: что спросили и что ответил агент. Рядом — список трейсов с краткой сводкой: этап, длительность, наличие ошибки.
Трейс — при необходимости пользователь кликает на трейс и видит детальную цепочку спанов: шаги агента, вызовы модели, инструментов, MCP-серверов, результаты и время выполнения.
Такой путь не даёт утонуть в деталях: сначала — общий контекст и обзор, затем — углубление по запросу.
Два типа пользователей и акцент на ошибках
Я выделил две группы пользователей.
Инженеры — им нужны детали: цепочка шагов, входы и выходы, ошибки, время выполнения, технические нюансы.
Другие пользователи — им важно быстро понять, что произошло в целом. Им не нужно погружение в детали, но нужен общий контекст и понимание, где примерно проблема.
Поэтому я принял ключевое решение — показывать сессию в виде диалога. Это не было требованием, но помогает упростить вход в сложную систему и быстрее восстановить контекст. Дальше пользователь сам решает, насколько глубоко копать.
Поскольку основная задача технических пользователей — найти сбой, я сделал акцент на ошибках на всех уровнях:
- ошибка видна на уровне шага (span);
- весь трейс помечается как проблемный;
- сессия тоже отображает наличие ошибки.
Это позволяет двигаться сверху вниз: сначала заметить проблему в списке, затем найти нужный трейс и быстро дойти до сломанного шага.
Что изменилось в моём подходе
Этот проект показал: дизайн в таких задачах — это в первую очередь работа со структурой данных и пользовательским поиском. Нужно провести человека от сигнала «что-то не так» к конкретной причине, не перегружая его на первых экранах, но сохраняя глубину для тех, кому она нужна.
Трейсинг для ИИ-агентов — молодая область. Паттерны ещё формируются. Поэтому важно опираться не на «как принято», а на реальные сценарии: как люди ищут проблемы и что им нужно видеть в первую очередь.
Работа над трейсингом стала для меня важным опытом. Ключевые выводы:
- UX для ИИ часто ближе к инженерным инструментам, чем к потребительским интерфейсам.
- Задача дизайна — не всегда упрощать, а грамотно структурировать сложность.
- Интервью с экспертами могут быть эффективнее масштабных исследований, особенно когда паттернов ещё нет.
- В молодой сфере дизайнер учится вместе с рынком.
- Хорошие интерфейсы сложных систем почти всегда строятся слоями.