Google AI представляет EnvHarness: программируемый слой, превращающий статические среды агентов в адаптивные обучающие миры
Команда исследователей из Google Cloud AI Research, Университета Вашингтона в Сент-Луисе и UNC Chapel Hill выпустила EnvHarness — программируемый слой, который превращает статический бенчмарк агентов в среду, адаптирующуюся под обучение политики на ней.
LLM-агенты теперь учатся меньше на курируемых текстах и больше на интерактивных средах, но эти среды собраны вручную и заморожены: они ведут себя одинаково, независимо от того, какой агент действует и насколько он улучшился. Обычное решение — генерировать новые среды, что привязывает вас к доменно-специфичным пайплайнам и написанным LLM верификаторам, которые приходится перегенерировать и фильтровать. EnvHarness переворачивает подход: он оборачивает существующую среду в подключаемые компоненты, работающие строго через стандартный интерфейс reset()/step(), меняя то, где начинается эпизод, что агент может делать и что видит, при этом базовый симулятор, задачи и созданный человеком верификатор остаются нетронутыми.
LLM-дизайнер EnvRigger автоматически пишет эти обёртки против недостатков, которые он диагностирует в собственных роллаутах политики. На пяти бенчмарках в четырёх доменах навыки, добытые таким образом, дают до 9,0 баллов на отложенных задачах при 9,8% меньшем числе шагов выполнения.
Можно ли разворачивать? Да, если у вас уже есть цикл оценки агентов. EnvHarness распространяется как Python под лицензией Apache-2.0 с драйверами воспроизведения для шести сред. Новый бенчмарк подключается реализацией одного интерфейса (reset/step/observe/evaluate/get_env_state/save_state/from_state); ниже по течению ничего не меняется. Жёсткое предусловие — среда с возможностью сброса, что исключает живые пользовательские аккаунты и физических роботов.
Среды, которые перестают учить
LLM-агенты теперь учатся меньше на курируемых текстах и больше на интерактивных средах. Эти среды собраны вручную и статичны: они ведут себя одинаково независимо от того, какой агент действует или насколько он улучшился, поэтому не могут нацелиться на слабость политики и нечему учить, когда решены.
Обычный ответ — генерировать больше сред. Статья EnvHarness называет две издержки: пайплайны генерации доменно-специфичны и не переносятся, а написанные LLM верификаторы приходится перегенерировать и сильно фильтровать, так и не становясь полностью заслуживающими доверия.
Обёртывание, а не создание
Команда предлагает противоположный ход. Агентный харнесс делает замороженную LLM способной через подключаемые инструменты, память и навыки. EnvHarness применяет эту идею к другой стороне цикла, оборачивая замороженную среду в подключаемые компоненты, работающие строго через стандартный интерфейс reset()/step().
Формально компонент — это преобразование E’ = w(E), переписывающее члены состояния, действия, наблюдения и перехода. Член вознаграждения намеренно не трогается. Поскольку никакое вмешательство не достигает бэкенда симулятора, каждая переформированная задача сохраняет исходный, созданный человеком верификатор, а поскольку ничто не касается кода конкретного бенчмарка, одна реализация покрывает все домены.
Поставляются три компонента, и они свободно комбинируются:
- Stage — воспроизводит фиксированный список действий после reset(), так что эпизод начинается в другом месте. Прятание целевой кружки в закрытом ящике вынуждает искать, а не тянуться.
- Contract — устанавливает пошаговые хуки на оси действия, перехода и наблюдения: заблокировать действие, переписать ответ, усечь наблюдение.
- Chain — компонует вторую среду в тот же эпизод под общим бюджетом шагов, а совокупный вердикт — конъюнкция обоих верификаторов.
EnvRigger: цикл дизайнера
Компоненты агностичны к политике; их выбор — нет. EnvRigger относится к политике как к чёрному ящику и выполняет четыре стадии: наблюдает пять базовых роллаутов, диагностирует системный недостаток, пишет компоненты как настоящий Python и валидирует на пяти свежих роллаутах. Неразрешимые и тривиально разрешимые кандидаты отвергаются, с до пяти раундов правок на задачу. Сгенерированные хуки компилируются в изолированном подпроцессе, поэтому неудачная мутация становится записанным трейсом, а не мёртвым прогоном.
Производительность
На ALFWorld, WebArena, SWE-bench Verified, OfficeQA и SpreadsheetBench навыки, добытые индукцией в стиле ReasoningBank, превосходят оба контроля на нетронутых отложенных задачах. Средний показатель ALFWorld растёт с 62,4 до 68,3 против навыков исходной среды, с +9,0 баллов на вне-распределённом (OOD) сплите. Уровень решённых задач SWE-bench Verified движется с 49,88 до 52,58, а среднее число шагов падает с 55,01 до 49,61 — заявка статьи на 9,8% эффективности.
На SpreadsheetBench и WebArena навыки из немодифицированных сред оказываются ниже базового уровня без навыков; переформирование — вот что делает добычу стоящей. Против доменно-специфичных генераторов EnvHarness превосходит SWE-smith на 2,46 балла при 5,11 меньшем числе шагов.
Под GRPO на Qwen3-8B-base RL в переформированных средах превосходит RL в исходных по трём из четырёх метрик (ALFWorld внутри распределения 81,4 → 87,9), с небольшим регрессом на OOD-сплите (89,6 → 88,8). Масштабирование среды достигает 54,79 при 300 средах против 52,13 у исходных и 50,37 у сгенерированных, потому что дизайнер совместно эволюционирует каждый батч против текущей политики. А при запросе направить пошаговую частоту успеха в [0,4; 0,6] покрытие внутри диапазона растёт с 6% до 80%.
Ключевые выводы
- EnvHarness оборачивает замороженные среды только через reset()/step(), поэтому верификаторы остаются созданными человеком.
- Три компонента — Stage, Contract, Chain — покрывают начальное состояние, правила взаимодействия и композицию эпизодов.
- EnvRigger диагностирует недостатки политики по роллаутам и пишет целевые обёртки, валидируя их на свежих роллаутах.
- Выигрыши держатся на пяти бенчмарках: +9,0 баллов OOD на ALFWorld, 9,8% меньше шагов на SWE-bench Verified.
- Код Apache-2.0 уже доступен; цена — токены дизайнера и жёсткое требование сред с возможностью сброса.
