Экономия на токенах ИИ-агентов: практические кейсы
Ведущие разработчики активно ищут способы повышения эффективности работы ИИ-агентов, сталкиваясь с проблемой избыточного потребления токенов. Эта проблема особенно актуальна при выполнении сложных или многошаговых задач, где стоимость одной сессии может достигать значительных сумм из-за постоянно передаваемого контекста.
Снижение стоимости сессии с 48 до 8 рублей
В одном из показательных кейсов, на тридцатом шаге выполнения задачи, ИИ-агент отправлял нейросети до 123 856 входных токенов. Большая часть этой информации представляла собой избыточный или уже переданный контекст, включая логи, прочитанные файлы, предыдущие ответы инструментов и описания неиспользуемых в данный момент инструментов. Инициативы по сокращению этого повторного контекста привели к значительным улучшениям. Разработчики внедрили локальный архив, систему оглавления сессии, загрузку схем инструментов по требованию и вычислительную песочницу. В результате, на том же 30-шаговом сценарии, стоимость сессии снизилась с 48,26 до 8,40 рубля, а объем входных токенов уменьшился с 2,4 миллиона до 419 тысяч. Важно отметить, что синтетические тесты показали 100% успешность выполнения 30 из 30 задач, однако при адаптации движка к реальным задачам на коротких сценариях оптимизация может, парадоксально, увеличить затраты.
Сокращение контекста на 60% при правке кода
Другой пример демонстрирует, как чрезмерный контекст влияет на рутинные задачи разработки. В одном мобильном проекте, для корректировки отступа кнопки, ИИ-агент изначально потреблял 39 000 токенов фиксированного слоя еще до начала работы над запросом. Это было вызвано постоянной загрузкой объемных файлов правил, таких как CLAUDE.md и AGENTS.md, а также доменных документов и хуков, каждый из которых ранее решал определенную проблему. Один лишь CLAUDE.md весил 70 килобайт и составлял 69% от постоянно загружаемого пакета, что приводило к быстрому исчерпанию контекста и необходимости суммаризации для крупных задач.
Для решения этой проблемы был реализован четырехфазный подход:
- Файл CLAUDE.md был преобразован в индекс из 114 строк вместо 409-строчного учебника.
- Основной кодекс из 417 строк был разделен по шаблонам globs, чтобы исключить загрузку правил, не относящихся к текущей задаче (например, правила для оффлайн-режима при редактировании профиля).
- Проведена ревизия постоянно применяемых (alwaysApply) правил и очистка от избыточных вендорных навыков.
- Введены новые привычки чата и механизмы защиты от нежелательного отката изменений.
Эти меры привели к сокращению контекста на 64% для легких задач, уменьшению постоянно загружаемого контекста на 60%, а размер CLAUDE.md сократился на 77%. Теперь даже самые сложные зоны проекта требуют меньше контекста, чем ранее для любой однострочной правки.
Очень интересно, что синтетические тесты показали 100% успешность, но в реальных задачах оптимизация иногда увеличивает затраты. Хотелось бы поглубже понять, почему так происходит на коротких сценариях. Может, кто-то сталкивался с подобным и может рассказать о своих наблюдениях? И как именно локальный архив и система оглавления сессии влияют на общую производительность, помимо сокращения токенов?