Ваш агент на базе LLM может идеально работать в демо-режиме, но затем начать тормозить и раздувать счета всего после нескольких итераций. Скрытая причина не в нестабильной модели — это дрейф токенов (token drift), постепенное раздувание промпта, который модели приходится обрабатывать каждый раз.

Дрейф токенов происходит, когда каждое взаимодействие добавляет всё больше текста в контекст ввода модели. История диалога, схемы инструментов, ответы API и извлеченные документы накапливаются, поэтому каждый последующий вызов несет в себе всё больший объем данных. Поскольку время обработки и стоимость модели растут вместе с количеством входных токенов, затраты увеличиваются квадратично, а не линейно.

Почему проблема проявляется в продакшене, а не в демо

В реальных условиях развертывания сохраняется всё: каждое высказывание пользователя, каждый результат работы инструмента, каждый фрагмент извлеченных знаний. Накопление остается незаметным до тех пор, пока не произойдет скачок задержки (latency) и не придет счет.

Распространенные источники дрейфа токенов

  • Повторяющиеся транскрипты — хранение каждого старого сообщения в промпте вместо того, чтобы резюмировать или удалять его.
  • Тяжелые схемы инструментов — отправка больших JSON-определений возможностей инструментов при каждом шаге.
  • Громоздкие результаты инструментов — включение полных ответов API или строк из базы данных, которые содержат больше данных, чем на самом деле нужно агенту.
  • Раздувание RAG — использование Retrieval-augmented generation (RAG), которое добавляет множество фрагментов документов, некоторые из которых устарели или нерелевантны.
  • Дублирование памяти — упаковка резюме, объекта состояния и необработанного транскрипта вместе, что трижды повторяет одну и ту же информацию.

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

Как держать бюджет токенов под контролем

1. Используйте многоуровневый дизайн контекста

  • Стабильные инструкции — держите системные промпты и правила безопасности в начале и ссылайтесь на них, а не пересылайте их каждый раз.
  • Структурированное состояние — храните компактное представление целей, решений и идентификаторов, которые агент может быстро прочитать.
  • Сжатая история — резюмируйте старые итерации в короткий, понятный человеку абзац, обновляя его только при достижении определенного порога.
  • Последние итерации — включайте последние несколько сообщений дословно, чтобы сохранить непрерывность диалога.

Разделение постоянного текста и контента, подлежащего резюмированию, избавляет от необходимости повторно отправлять одни и те же слова.

2. Сокращайте выходные данные инструментов

  • Извлекайте только те поля, которые агент действительно использует; отбрасывайте избыточные описания.
  • Заменяйте большие результаты кратким резюме или идентификатором ссылки (ID), а полный объем данных храните в базе данных, кэше или объектном хранилище.
  • Когда инструмент возвращает список, отправляйте только топ-N элементов, важных для текущего решения.

3. Применяйте умное резюмирование

  • Не делайте резюме после каждого шага; дополнительная обработка создает накладные расходы.
  • Обновляйте резюме только тогда, когда накопленное количество токенов старых итераций превышает заданный лимит.
  • Храните критически важные факты (ID, суммы, временные метки) в структурированном хранилище, а не в виде текста, чтобы резюме оставалось коротким.

4. Отслеживайте правильные метрики

  • Логируйте использование токенов на каждый вызов модели, а не только на каждый запрос пользователя. Это выявит скрытый рост на стороне входных данных.
  • Отслеживайте количество входных токенов, добавляемых на каждом шаге; резкий скачок указывает на источник дрейфа.
  • Отделяйте кэшированные токены (используемые повторно из предыдущих вызовов) от вновь сгенерированных; только первые вызывают дрейф.

Относитесь к промпту как к конечному ресурсу, а не к бесконечному транскрипту. Благодаря осознанному измерению, резюмированию и сокращению данных, вы сохраните своего LLM-агента быстрым, доступным и готовым к масштабированию в продакшене.

Главный вывод: Дрейф токенов незаметно увеличивает расходы и замедляет работу агентов. Определите части вашего промпта, которые разрастаются, сожмите или вынесите их вовне, и следите за использованием токенов на каждый вызов. Дисциплинированный подход превратит непредсказуемые скачки счетов в управляемый и бюджетный процесс.