The AI / news

Microsoft представляет TokenEconomizer — плагин, снижающий затраты на кодирующих агентов до 30,9%

Microsoft представляет TokenEconomizer — плагин, снижающий затраты на кодирующих агентов до 30,9%
3 min de lecture

Исследователи из Microsoft Research и Калифорнийского университета в Беркли представили TokenEconomizer — плагин с открытым исходным кодом для контроля затрат программирующих агентов. Он обучается на прошлых сессиях в одном репозитории кода, чтобы сократить потери в последующих. Согласно опубликованным результатам, он снижает среднюю стоимость задач SWE-Bench на 18,4–30,9% в пяти конфигурациях «агент–модель».

Программирующие агенты автономно выполняют задачи разработки, отправляя языковой модели непрерывный поток текста, разбитый на токены (единицы текста, за которые взимается плата). Каждый цикл агента повторно оплачивает системный промпт, схемы каждого загруженного инструмента и полную историю. TokenEconomizer размещается вне агента, рассматривая его как «черный ящик»: он не изменяет ни веса моделей, ни код агентов. Он работает с Claude Code, Codex, GitHub Copilot CLI и Pi на машине с Python 3.10 или новее, без GPU и собственного API-ключа.

Куда уходят деньги

Чтобы понять потери, исследователи проанализировали 60 задач SWE-Bench из 6 репозиториев, выполненных с помощью Claude Code и Opus 4.8. Они выявили три повторяющиеся причины растрат. Первая — повторное открытие: после выполнения 5 предыдущих задач 30% вызовов инструментов повторяют уже выполненное действие. Вторая — неиспользуемые инструменты: каждый цикл загружается 23 схемы инструментов, из которых 16 никогда не вызываются, а 3 покрывают 98% вызовов. Третья — циклы неудач: 10 неудачных выполнений составляли 17% задач, но 32% общих расходов.

Исследователи также протестировали три существующие стратегии с открытым кодом: RTK, Serena и RepoMap от Aider. Ни одна не оказалась дешевле во всех случаях: все три снизили затраты на Django, но увеличили на SymPy.

Три механизма

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

Вторая политика — обрезка инструментов — всегда сохраняет инструменты для shell, чтения, записи и редактирования. Остальные скрываются после 3 последовательных задач без использования или если LLM-судия сочтет их нерелевантными. Полный каталог возвращается каждые 5 задач для переоценки. На Django с Claude Code первый вызов задачи 2 сократился с 43 351 до 16 295 токенов в промпте.

Третья — вмешательство в циклы неудач. Контроллер устанавливает бюджет циклов, равный 1,25 от 90-го процентиля длительностей успешных выполнений. Простые правила обнаруживают повторяющиеся неудачи, затем LLM-судия решает, заблокирован ли агент, с уверенностью не менее 0,7. Заблокированный агент получает одно перенаправление, после чего останавливается, если цикл повторяется.

Неоднозначные результаты

На SWE-Bench плагин снизил затраты во всех 30 протестированных ячейках «репозиторий–конфигурация», тогда как RTK и RepoMap увеличили их в 12 и 15 случаях соответственно. Лучший результат — снижение на 30,9% с Claude Code и Opus 4.8, которое возрастает до 33,2% в комбинации с RTK. Показатель Pass@1, измеряющий успех с первой попытки, вырос в 4 из 5 конфигураций, но снизился на 1,0 пункт с Opus 4.8. Экономия особенно заметна со временем: большинство репозиториев изначально обходились дороже, но все стали дешевле уже к шестой задаче.

Плагин опубликован под лицензией Apache 2.0. Обучаемые данные хранятся локально в папке ~/.tokeneconomizer, а установка на Claude Code доступна из репозитория проекта на GitHub. Обрезка инструментов и защита от циклов включены по умолчанию, а микрон��авыки отключены, поскольку их предложение добавляет вызовы к модели.