Google и Purdue убрали из ИИ-агента историю шагов: на длинной задаче токенов в 21 раз меньше
Обычный ИИ-агент на каждом шаге заново отправляет модели всё, что уже произошло, от вывода команд до собственных рассуждений. Исследователи Google и Университета Пердью заменили эту историю коротким состоянием в JSON, и на задаче в 200 шагов агент потратил 122 тыс. токенов вместо 2,6 млн. Разбираю, где тут синтетика, где открытые тесты и что перенести в свой агент.
Как устроен SKILL.state
Препринт вышел в конце августа, работу приняли на конференцию EMNLP. Модель на каждом шаге получает неизменную инструкцию навыка, текущее состояние задачи и последний ответ среды. Истории в запросе нет совсем: ни прошлых команд с их выводом, ни прошлых рассуждений. В ответ модель пишет рассуждение и JSON с двумя ключами: state_patch с правкой состояния и action со следующим действием.
Правку проверяет обычная программа. Она вливает её в состояние, выполняет действие и выбрасывает рассуждение, а кривую правку откатывает и просит модель ответить ещё раз. Схему состояния пишут один раз на область задач. Для всех 100 задач InterCode CTF, где агент ищет флаги через bash, хватило пяти полей. Это найденные флаги, проверенные гипотезы, файлы в работе, рабочая папка и сводка команд.
Цифры и с чем их сравнивают
Основные опыты поставлены на Gemini 3 Flash. На синтетическом складе в 500 полок за 200 шагов агент с полной историей потратил 2 608 755 токенов и сделал верно 74% действий. SKILL.state потратил 122 384 токена при 94% верных действий.
Запрос у SKILL.state держится около 1 800 знаков что на 10 шагах, что на 200; у агента с историей он за те же 200 шагов в среднем 48 тыс. знаков. Цифра «в 50 раз» из пересказов в таблице тоже есть, но это сравнение со схемой, где агент держит сводку и последние три шага: за 200 шагов она раздулась до 6,2 млн токенов. Против агента с полной историей выходит примерно в 21 раз.
На открытых тестах, которые ближе к реальной работе, разрыв скромнее:
- InterCode CTF: агент справился с 54,2% задач против 43,2% у агента с историей, токенов на 60,4% меньше
- τ-Bench, поддержка авиакомпании: 32,4% против 21,8%, токенов на 40,5% меньше
- τ-Bench, поддержка магазина: 58,3% против 48,2%, токенов примерно на 22% меньше.
Для практики, по-моему, полезнее всего опыт с равным бюджетом. Обычным схемам дали тот же размер запроса, что у SKILL.state, и прогнали склад на 100 шагов. Скользящее окно дало 18% верных действий, сжатие через LLMLingua 22%, сводка с жёстким лимитом 52%, SKILL.state 94%. Окно теряло ранние записи о полках, а сжатие вырезало их номера как лишние. В SKILL.state важное хранится в отдельных полях и при коротком запросе не теряется.
Чего в работе нет
Claude Code и Codex не проверялись. Все схемы, включая обычного агента с историей, авторы написали сами, и стенды, где получены самые большие цифры, тоже свои. Кода на странице arXiv нет.
Считаются токены, а не деньги, и кэш промпта не упоминается. Дальше моё мнение. У агента с историей начало запроса от шага к шагу повторяется, и многие API берут за повтор по цене чтения из кэша, которая ниже обычной. У SKILL.state состояние меняется каждый шаг, и в кэш попадает в основном инструкция. Поэтому разница в счёте будет меньше разницы в токенах, а насколько меньше, из работы не понять.
Сами авторы пишут, что схема нужна заранее, а факт, который агент не счёл важным в момент, когда увидел, в состояние не попадёт и потеряется. Для задач, где нужна сама история, вроде аудита или разбора прошлых действий, подход не годится. Проверен он только на одиночном агенте.
Слабые модели держат схему хуже. У Gemma 4 31B на 100 шагах склада SKILL.state набрал 42%, как и схема с состоянием и полной историей, хотя токенов ушло в 8,5 раза меньше. В 68% ошибок модель при правке затирала или удаляла нужные поля.
Что можно взять себе уже сейчас
Посмотрите в логах, сколько входных токенов уходит на шаг в начале длинной сессии и сколько в конце. Если к концу разница в разы, запросы тащат за собой историю, и вы платите за её перечитывание на каждом шаге.
Выпишите отдельными полями, что агент обязан помнить; схема для CTF выше годится как черновик для агента в терминале. Шлите модели только инструкцию, состояние и последний вывод инструмента. Правку проверяйте кодом и не разрешайте модели переписывать состояние целиком: у Gemma две трети ошибок были именно такими. Простой обрезкой истории не экономьте: опыт с равным бюджетом показал, чем это кончается.
Эффект удобнее мерить в деньгах. В Kosareva Cloud расход виден по каждому API-ключу, так что агенту можно выдать отдельный ключ и сравнить неделю до переделки с неделей после.
На синтетике в 200 шагов разница выходит в 21–50 раз, на открытых тестах от 22 до 60% токенов. По-моему, вторая оценка ближе к тому, что вы увидите у себя, а с кэшем разница в рублях будет ещё меньше. Обе получены на той же Gemini 3 Flash: поменялось только то, что агент пересылает модели на каждом шаге.