Harness² от Google: агент улучшается без переобучения модели

Google Cloud AI Research выложила в открытый доступ Harness² — фреймворк рекурсивного «хомутания» агентов (harnessing), который улучшает код и файлы вокруг замороженной модели. Обещание для разработчиков звучит необычно: агент может стать лучше без более сильной модели. Веса не трогают вообще — заявлено 0 обученных параметров, версия 0.1.0, лицензия Apache-2.0.

Что такое harness и почему его правят

Harness — это всё, что окружает модель: промпты, инструменты, память, навыки и оркестрация. Harness² оптимизирует именно эту систему во время развёртывания. Целевой сценарий — открытый мир: задачи приходят невиданные заранее, и никакой верификатор не подсказывает, верен ли ответ. Исследователи исходят из того, что большинство методов самоулучшения опираются на метки или тестовые примеры, а Harness² построен так, чтобы работать без них. Если вы уже следите за тем, как вендоры обвязывают агентов инструментами и политиками, эта работа продолжает ту же линию — см. разбор NVIDIA NeMo Gym: как Siemens ускорил ИИ-агента для проектирования чипов.

Восемь редактируемых компонентов

Фреймворк даёт 8 компонентов, каждый монтируется как файл:

  • системный промпт;
  • guardrails (ограничители);
  • память;
  • руководство по работе с инструментами;
  • субагенты;
  • навыки;
  • скрипты;
  • плагины (middleware).

Вместе они покрывают построение контекста, интерфейс инструментов, делегирование и поведение внутри цикла работы с инструментами. Раскладка расширяет на один компонент прежнее разбиение из 7 файлов в работе Agentic Harness Engineering.

Два уровня рекурсии: задача и сам harness

Рекурсия в Harness² двухуровневая и связанная. На уровне задачи работает контрастный цикл «предложить — проверить — собрать» (Propose, Probe, Compose). Агент один раз проходит задачу с базовым harness. Затем редактор предлагает 2 кандидата: инвариантный бьёт по общим провалам агента вроде планирования или работы с инструментами, доменный — по знаниям и процедурам текущей предметной области. Оба кандидата прогоняются на той же задаче, а композитор сравнивает их траектории с эталонной и оставляет только правки, подкреплённые наблюдаемым поведением.

Уровень самого harnessing включается после каждой задачи. Рефлектор сохраняет принятый harness плюс файл EXPERIENCE.md с извлечёнными уроками. Эта библиотека направляет следующие предложения, но каждая новая задача всё равно стартует от базового harness. Бюджет k масштабирует поиск: в параллельном режиме проверяются k инвариантных и k доменных кандидатов, после чего делается k композиций; последовательный режим выстраивает k шагов уточнения в цепочку.

Результаты на трёх бенчмарках

Проверяли на трёх профессиональных наборах: WorkBuddy-Bench, JobBench и LAB от Harvey. Исполнителями были Gemini 3.5 Flash и GLM-5 под OpenCode и Codex, редактором по умолчанию — Claude Opus 4.8. Результаты усреднены по 3 прогонам.

Конфигурация (один шаг, k=1) WorkBuddy JobBench LAB Partial
Gemini 3.5 Flash, OpenCode 72,4 → 77,5 31,5 → 36,0 79,9 → 81,9
Gemini 3.5 Flash, Codex 74,5 → 77,5 33,9 → 35,3 71,6 → 75,6
GLM-5, OpenCode 64,2 → 75,7 20,6 → 24,2 59,6 → 71,4
GLM-5, Codex 64,4 → 75,3 23,6 → 24,8 58,1 → 65,9

Один шаг уточнения улучшил все 4 связки «модель + harness» на всех 3 бенчмарках. Лучший прирост — GLM-5 под OpenCode на WorkBuddy-Bench: с 64,2 до 75,7, то есть +11,5 балла. Скромнее всего выглядит GLM-5 под Codex на JobBench: 23,6 → 24,8, всего +1,2. Слабые исполнители выигрывали больше: после одного шага GLM-5 обошёл базовый Gemini 3.5 Flash на WorkBuddy-Bench. Параллельная рекурсия при k=5 подняла Gemini под OpenCode до 80,8 на WorkBuddy. В 3 из 4 связок на WorkBuddy-Bench сократилось и число шагов на задачу — у Gemini под OpenCode с 25,4 до 21,9.

Чем отличается от других методов

Авторы сравнивают Harness² с Meta-Harness (Stanford IRIS Lab и соавторы), ReasoningBank (Google Research и соавторы) и Harness Scaling (Wang et al.). Harness² меняет весь восьмикомпонентный harness под каждую задачу и не требует обучающей выборки. Meta-Harness ищет код harness офлайн и без train-сплита не обходится; ReasoningBank подставляет извлечённую память при фиксированном harness; Harness Scaling правит harness под каждый экземпляр, но не учится между задачами. Код Harness² открыт под Apache-2.0, у Meta-Harness — MIT, у двух оставшихся лицензия не раскрыта.

Баллы в сравнительной таблице измерены в самой работе Harness² — другие методы эти бенчмарки сами не публиковали. На WorkBuddy с Gemini/OpenCode у Harness² 77,5 (80,8 при k=5) против 76,4 у Meta-Harness, 73,4 у ReasoningBank и 75,3 у Harness Scaling. На JobBench — 36,0 против 35,8, 30,8 и 32,9. На LAB Partial с Gemini/Codex — 75,6 против 76,5, 74,8 и 67,9, то есть здесь Meta-Harness чуть впереди.

Как запустить

README рассчитан на Linux с Python 3.12 или 3.13 и пакетным менеджером uv. Локальная демонстрация прогоняет оба режима рекурсии без учётных данных модели:

uv venv --python 3.12 .venv
source .venv/bin/activate
uv pip install -e '.[render]'
harness2-demo --output runs/demo --k 2

Запуски с моделями требуют Node.js 20+, Google Cloud CLI и проект Vertex AI. Для LAB нужны Pandoc и Poppler, для WorkBuddy-Bench — Docker. Исполнитель по умолчанию — OpenCode, Codex включается флагом --substrate cx. Требования к GPU не раскрыты.

Практический нюанс: на каждую задачу приходится больше прогонов, а песочницу придётся организовывать самостоятельно. Если строите агентов на Vertex AI, это способ выжать качество из уже выбранной модели, не меняя её веса, — но бюджет прогонов и изоляция среды ложатся на вас. Заодно стоит заранее продумать, как вы будете учитывать самих агентов и их вызовы инструментов: об этом — материал RSA Agent ID: учёт теневых ИИ-агентов и контроль каждого вызова инструмента.

Частые вопросы

Нужно ли дообучать модель, чтобы получить прирост?

Нет. Заявлено 0 обученных параметров: меняются только 8 файлов harness, веса модели остаются замороженными.

Какие модели проверяли?

Gemini 3.5 Flash и GLM-5 в качестве исполнителей под OpenCode и Codex. Редактором по умолчанию был Claude Opus 4.8.

Насколько выросла лучшая связка?

GLM-5 под OpenCode на WorkBuddy-Bench: с 64,2 до 75,7, +11,5 балла за один шаг уточнения.

А где прирост минимальный?

GLM-5 под Codex на JobBench: с 23,6 до 24,8, всего +1,2 балла.

Нужны ли размеченные данные или тесты?

Нет, фреймворк как раз рассчитан на открытый мир без верификатора. Вместо эталонных меток правки отбираются по контрасту наблюдаемого поведения.

Что нужно для установки?

Linux, Python 3.12 или 3.13 и uv. Для запусков с моделями — Node.js 20+, Google Cloud CLI и проект Vertex AI; для LAB — Pandoc и Poppler, для WorkBuddy-Bench — Docker.

Можно ли попробовать без облачных учётных данных?

Да, harness2-demo --output runs/demo --k 2 прогоняет оба режима рекурсии локально без ключей к моделям.

Под какой лицензией код?

Apache-2.0.

Что будет с числом прогонов на задачу?

Оно вырастет: рекурсия добавляет кандидатов и композиции. В 3 из 4 связок на WorkBuddy-Bench при этом сократилось число шагов на задачу, но в целом бюджет прогонов надо закладывать заранее.

Переносится ли библиотека уроков на новые задачи?

Да, рефлектор сохраняет принятый harness и файл EXPERIENCE.md с уроками, и эта библиотека направляет будущие предложения. Но каждая новая задача всё равно начинается от базового harness.

Источник: marktechpost.com