Трассировки агентов имеют большой объем, мультимодальны и насыщены информацией. Они фиксируют ключевые детали, такие как пользовательский ввод, реакция агентов и сбои в логике. Это делает трассировки исключительно ценными для понимания поведения пользователей и повышения производительности агентов, однако традиционные платформы данных не были рассчитаны на столь крупные и неструктурированные объемы информации.
Чтобы данные трассировок приносили пользу, командам необходима инфраструктура, поддерживающая весь их жизненный цикл: прием и хранение высоконагруженных запусков, гибкие запросы к трассировкам и преобразование их в представления для отладки, продуктового анализа и операционных рабочих процессов, таких как аннотирование. Именно поэтому мы создали SmithDB — базу данных, созданную специально для трассировок в LangSmith, а совсем недавно — Custom Apps, которые позволяют командам создавать специализированные представления на основе своих трассировок.
Сегодня мы представляем AI Search — новый способ запроса трассировок с использованием естественного языка.
Почему мы создали AI Search
Каждая трассировка содержит пользовательский ввод, рассуждения агента, вызовы инструментов и ответы — всю информацию, необходимую для понимания того, где агенты работают хорошо, а где допускают ошибки. Команды, использующие LangSmith, часто изучают трассировки своих агентов, чтобы найти примеры для оценочного набора данных (eval dataset) или диалоги для проверяющего в очереди аннотаций.
Однако поиск нужных трассировок может оказаться громоздким процессом. Такие вопросы, как «происходила ли утечка PII?» или «расстроился ли пользователь?», не сопоставляются напрямую с отдельным атрибутом трассировки, таким как теги или метаданные, и на них нельзя ответить с помощью полнотекстового поиска. Они требуют понимания содержимого трассировки. До сих пор это означало необходимость заранее настраивать оценщик (evaluator) или вручную просматривать трассировки.
Именно поэтому мы создали AI Search. Вы описываете поведение, которое ищете, а LangSmith возвращает трассировки, в которых оно проявилось. Это позволяет находить редкие трассировки по принципу «иголки в стоге сена» и выполнять ad-hoc поиск проблемных паттернов.
Что можно искать
Вы можете искать все, что отображается в содержимом трассировки. Вы можете искать агента, который заявил о завершении задачи, но не выполнил ее, пользователя, который казался расстроенным или возражал против ответа, запрос к модели, в котором произошла утечка PII, или человека, пытающегося отменить подписку. Продуктовые команды могут искать «запросы на интеграции, которые мы не поддерживаем», «упоминания конкурентов» или «пользователей, запутавшихся в онбординге», и видеть, где продукт не дорабатывает, прямо со слов пользователей.
AI Search также работает в сочетании с уже используемыми вами фильтрами, поэтому поиск можно запустить только для трассировок с ошибками или только с определенным тегом.
Как мы это создали
Почему модель читает каждую трассировку
Векторный поиск — это привычный способ поиска по смыслу, а не по точным словам. Он преобразует ваш запрос и каждую трассировку в эмбеддинг — короткий набор чисел, отражающий суть текста. Затем он возвращает трассировки, эмбеддинги которых наиболее близки к вашему запросу. Это отлично работает для поиска по темам, например для нахождения разговоров о выставлении счетов. Но эмбеддинг упаковывает целую трассировку в один небольшой вектор, и такое сжатие происходит с потерями. Важные детали, связанные с вашим запросом, могут затеряться. Трассировка, в которой агент успешно выполнил работу, и та, в которой он только заявил об этом, могут в итоге иметь практически одинаковые эмбеддинги. Чтобы их различить, требуется модель, которая читает фактические слова трассировки вместе с вашим вопросом, чтобы иметь возможность анализировать произошедшее.
До недавнего времени делать это во время поиска было слишком медленно и дорого. Быстрые модели принятия решений изменили ситуацию. Они отвечают на один узкий вопрос о входных данных достаточно быстро и недорого для запуска в масштабе. AI Search объединяет инференс модели принятия решений со SmithDB — нашим уровнем данных для наблюдаемости агентов. По мере поступления трассировок SmithDB превращает их в траектории. Когда вы запускаете поиск, ваши фильтры сужают круг кандидатов, а модель принятия решений проверяет каждую оставшуюся траекторию на соответствие вашему описанию.
Трассировки имеют большой размер и множество форматов
Трассировки поступают из разных источников: из SDK OpenAI и Anthropic, LangChain, LangGraph, Vercel AI SDK, OpenTelemetry и других. Каждый из них записывает сообщения немного по-своему. Трассировки также дублируют сами себя. Агенты часто повторно отправляют историю разговоров при каждом вызове LLM, поэтому первое сообщение появляется снова в каждом последующем вызове.
SmithDB превращает эти трассировки в траекторию для каждого сеанса. Траектория представляет собой очищенное представление работы агента: каждое сообщение, вызов инструмента и результат выполнения инструмента перечислены один раз. SmithDB формирует ее по мере поступления трассировок и приводит все поддерживаемые форматы к единой структуре.
AI Search анализирует траектории вместо сырых трассировок. Поскольку каждый формат имеет одинаковую структуру траектории, один и тот же поиск работает для агентов, созданных на разных SDK. Удаление повторяющихся сообщений снижает перегрузку контекста, поэтому поиск выполняется быстрее. Траектория также охватывает весь сеанс целиком, поэтому, если вы ищете «пользователь пытался отменить подписку», модель видит, о чем просил пользователь, что сделал агент и чем закончился разговор.
Траектории по-прежнему остаются длинными
Удаление дубликатов помогает, но траектории агентов все равно остаются длинными. Чтобы понять, насколько они длинные, мы выбрали случайную выборку из 150 разговоров из Open SWE — кодирующего агента с открытым исходным кодом, который команда LangChain использует каждый день. Каждая задача выполняется в собственной песочнице с доступом к оболочке и может передавать работу субагентам, поэтому разговоры получаются объемными.
Некоторые из них превысили миллион токенов даже в такой небольшой выборке. Поиск редкого поведения означает необходимость просматривать множество разговоров, поэтому AI Search регулярно сталкивается с такими объемами и не может прочитать каждый токен.
Однако для большинства вопросов требуется далеко не миллион токенов. Многие вопросы касаются того, о чем попросил пользователь и как ответил агент. В среднем разговоре около 2 тысяч из 72 тысяч токенов приходилось на сообщения пользователя и ответы агента. Около 85% составляли результаты работы инструментов, в основном чтение файлов и команды оболочки.
💡 Даже когда трассировка превышает миллион токенов, на многие вопросы о поведении агента можно ответить с помощью нескольких тысяч.
Каждой траектории выделяется фиксированный бюджет токенов, который заполняется в порядке приоритета. Сообщения пользователя и ответы агента пользователю добавляются в первую очередь. Остаток бюджета идет на все остальное: промежуточные сообщения ИИ (рассуждения агента и вызовы инструментов), результаты работы инструментов и системные сообщения. Если следующее сообщение помещается лишь частично, оно обрезается для заполнения бюджета, а все, что идет после него, отбрасывается.
Поиск должен оставаться быстрым при масштабировании
SmithDB создан для приема и сканирования больших объемов данных трассировок агентов. Когда вы запускаете поиск, ваши структурированные фильтры сначала сужают круг кандидатов. Затем модель принятия решений проверяет каждую оставшуюся траекторию на соответствие вашему описанию, причем множество траекторий проверяется параллельно. Пока модель проверяет одну группу траекторий, SmithDB уже загружает и подготавливает следующую группу. Совпадения передаются в реальном времени по мере их обнаружения, поэтому вам не нужно ждать завершения полного сканирования.
Что дальше
Мы все еще изучаем, какие вопросы пользователи задают чаще всего. Самые сложные для классификации разговоры — это те, которые имеют едва уловимые различия. Отличить ситуацию «пользователь сдался» от «пользователь получил то, что ему было нужно, и ушел» может зависеть от пары реплик в длинной траектории. Мы хотим проверить, сможет ли модель, настроенная на трассировки, более надежно различать их.
Бюджет токенов работает хорошо, когда ответ находится в том, что сказали пользователь и агент. Для других вопросов требуются другие доказательства. Ошибка инструмента, проигнорированная агентом, обнаруживается только в результатах работы инструмента. Мы изучаем способы выбора контекста на основе вопроса, а также сигналы, которые показывают, когда модель не уверена, чтобы она могла сделать второй проход с большим количеством контекста.
Мы также хотели бы выйти за рамки простого списка совпадений, группируя похожие результаты или суммируя то, что у них общего.
Начать работу
AI Search находится в стадии публичного бета-тестирования в LangSmith Cloud в регионах GCP US, EU и APAC без дополнительных затрат. Администраторы организации могут включить его в настройках, после чего он появится на странице трассировки. Подробности читайте в документации AI Search. Расскажите нам, что вы ищете.









