Выпуск новостей завершён 15 сентября 2026. Материалы сохранены на дату публикации. Перейти к инструкциям →

Архив · Полный материал · Tproger

Google и Университет Пердью показали SKILL.state: в складской симуляции на 200 шагов агент тратит в 50 раз меньше токенов и ошибается реже

Исследователи Google и Purdue University предложили SKILL.state: агент хранит вместо полной истории компактное JSON-состояние и патчит его на каждом шаге. На 200 шагах 122 тысячи токенов вместо 6,2 млн, точность 94% вместо 84%. Разбираем механизм, ограничения и что можно повторить у себя. — Читать…

Разработка · TprogerАнна Летова5 минут
Перейти к тексту ↓
Google и Университет Пердью показали SKILL.state: в складской симуляции на 200 шагов агент тратит в 50 раз меньше токенов и ошибается реже
Tproger
Коротко о главномРазвернутьСвернуть
  1. Исследователи из Google и Университета Пердью опубликовали работу SKILL.
  2. state , в которой предлагают ИИ-агенту не хранить в контексте всю историю действий.
  3. Вместо неё модель на каждом шаге получает три вещи: неизменную инструкцию навыка, компактное JSON-состояние задачи и последнее наблюдение, а отвечает патчем к состоянию и следующим действием.

Исследователи из Google и Университета Пердью опубликовали работу SKILL.state , в которой предлагают ИИ-агенту не хранить в контексте всю историю действий. Вместо неё модель на каждом шаге получает три вещи: неизменную инструкцию навыка, компактное JSON-состояние задачи и последнее наблюдение, а отвечает патчем к состоянию и следующим действием. В складской симуляции на 200 шагов это дало 122 тысячи токенов вместо 6,2 млн у агента с памятью-сводкой при росте точности с 84% до 94%.

Если вы пишете агентов с накапливаемой историей (append-only), вы знаете эту боль: чем дольше сессия, тем дороже каждый следующий шаг, потому что модель заново перечитывает всё, что было. Работа интересна тем, что предлагает не сжимать историю, а заменить её структурой, и показывает на цифрах, что структура работает лучше сжатия.

Как это устроено

Обычный агент в стиле ReAct на шаге t получает весь журнал: системный промпт, все прошлые команды, все ответы инструментов и свои рассуждения. Суммарно за T шагов это O(T²) токенов, потому что каждый шаг перечитывает всё предыдущее. В SKILL.state промпт шага состоит из трёх частей, размер которых не зависит от номера шага (при условии, что состояние и наблюдение ограничены по объёму): спецификация навыка P (что агент умеет и как должен себя вести), структурированное состояние Σ (JSON с тем, что важно для задачи) и последнее наблюдение O. Модель отвечает рассуждением, JSON-патчем к состоянию и действием; патч детерминированно проверяется и применяется, рассуждение после этого выбрасывается, действие исполняется.

Патч применяется операцией слияния: новые ключи добавляются, существующие перезаписываются, значение null удаляет ключ. Итог — суммарные затраты O(T) по токенам, а размер одного промпта почти не растёт: в экспериментах он держался в диапазоне 1 736–1 905 токенов при горизонте от 10 до 200 шагов.

// условный пример редакции: патч и действие в формате SKILL.state
{
"state_patch": {
"orders_pending": 3,
"last_scanned_shelf": "B-12",
"blocked_aisle": null
},
"action": "scan_shelf B-13"
}

Цифры из работы

Основной эксперимент — SkillExecBench, среда Warehouse Management: симуляция склада с длинными последовательностями действий, модель Gemini 3 Flash, пять случайных сидов, температура 0. При 100 шагах ReAct потратил 1 245 413 токенов при точности 0,84, baseline с явным состоянием в стиле LangGraph — 1 062 387 токенов и 0,91, SKILL.state — 65 408 токенов и 0,94. При 200 шагах агент с памятью-сводкой (Memory) ушёл в 6 175 509 токенов при точности 0,84, а SKILL.state уложился в 122 384 токена при 0,94. Именно отсюда «в 50 раз меньше» из пересказов; в дополнительном эксперименте с репозиторием кода при 100 шагах разница составила 1 848 500 против 90 200 токенов.

Авторы связывают выигрыш в точности не с сокращением текста, а с тем, что состояние сохраняет отношения между сущностями: кто кому что должен, какой шаг уже выполнен, что заблокировано.

Два результата важнее заголовочных. Первый: при одинаковом бюджете около 1 800 токенов на промпт обычное усечение истории дало точность 0,18, сжатие через LLMLingua — 0,22, а SKILL.state — 0,94. То есть дело не в размере промпта, а в том, что в нём лежит. Второй: в тесте с 50 нерелевантными событиями на каждом шаге обычный агент упал до 0,53, а SKILL.state удержал 0,98, потому что шум не попадает в состояние. После внешнего изменения среды и корректирующего уведомления SKILL.state в трёх сценариях из четырёх восстанавливался за 0 шагов, остальные подходы ошибались ещё 5–8 шагов; со сценарием отменённого заказа не справился никто.

На более привычных бенчмарках выигрыш скромнее, но есть: на InterCode CTF 54,2% Pass@1 против 43,2% у ReAct, на τ-Bench Retail 58,3% и Airline 32,4% при снижении токенов до 3,47 млн и 2,88 млн соответственно.

Чего в работе нет

Ограничения авторы называют сами. Метод предполагает, что всё важное для будущих шагов можно вовремя записать в заранее заданную схему состояния: если структура задачи заранее неизвестна, если значимость детали осознаётся позже или если нужна сама история (аудит, происхождение данных, объяснение действий), подход не подходит. Второе: реализация рассчитана на одного агента, для нескольких понадобится разрешение конфликтов при одновременных записях в состояние. Третье, практическое: публичного репозитория авторы на 1 сентября не указали, хотя в статье есть промпты, псевдокод рантайма и детали реализации.

Что можно повторить у себя

  • Опишите для своей задачи схему состояния из полей, которые реально нужны для следующего шага (в InterCode CTF авторам хватило пяти: найденные флаги, проверенные гипотезы, активные файлы, рабочий каталог, сводка команд), и просите модель возвращать патч к ней, а не свободный текст.
  • Отбрасывайте рассуждения модели после шага: они нужны для выбора действия, а не для памяти.
  • Передавайте только последнее наблюдение целиком; всё, что из прошлых наблюдений имеет значение, должно уже лежать в состоянии.
  • Заведите тест на шум: подмешивайте в наблюдения нерелевантные события и смотрите, не тащит ли агент их в состояние.
  • Не ждите тех же 50×: в статье это симуляция склада на Gemini 3 Flash; на τ-Bench экономия заметно меньше, и ваш случай ближе ко второму.
Для читателей из России. Работа лежит в открытом доступе на arXiv, публичного кода нет, воспроизводить придётся самим. Архитектура не привязана к Gemini, но качество сильно зависит от модели: при 100 шагах Gemini 3 Flash дала точность 0,94, Gemma — 0,42, Qwen — 0,34.

Контекст

Идея держать в контексте состояние вместо истории не нова: похожие приёмы есть в LangGraph и в собственных рантаймах команд, которые строят агентов в проде. Вклад работы в том, что она измеряет разницу на длинных горизонтах и сравнивает с методами сжатия при равном бюджете. Вторая версия статьи вышла 28 августа, обсуждения на Hacker News и в блоге Google Research пока нет; русскоязычный пересказ появился на vc.ru 1 сентября.

Источники: SKILL.state: Scalable Long-Horizon Agent Skills (arXiv:2608.26263) , Пересказ vc.ru

Изображение на обложке: иллюстрация сгенерирована ИИ для Tproger