Спор «какая модель умнее» почти всегда оказывается спором о другом. И это уже не мнение, а измеренная величина.

Вышла работа с прямолинейным названием — «Хватит сравнивать агентов, не раскрывая обвязку». Авторы взяли одни и те же модели и прогнали их под разными обвязками. Разброс результатов, вызванный обвязкой, оказался примерно в восемь раз больше разброса от выбора модели. В шести случаях из девяти при смене обвязки менялся сам рейтинг моделей: та, что была лучше, становилась хуже.

ФункцияОписаниеПример
ConstrainОграничить, что агент физически может сделатьПрава доступа, песочница, лимиты итераций
InformСообщить, что он должен сделатьПромпт, системные инструкции
VerifyПроверить, что он сделал это правильноИнварианты, эвристики, LLM-судья
CorrectПоправить, когда пошло не такАвтоматические исправления, эскалация

Отдельно исследователи из Фуданьского и Пекинского университетов дали обвязке эволюционировать самостоятельно: на каждой итерации система смотрела на провалы агента и правила собственные правила и инструменты. На бенчмарке Terminal Bench 2 это дало рост с 70 до 77 процентов, тогда как обвязка, собранная вручную, остановилась около 72. Модель при этом не трогали.

В 6 из 9 случаев смена обвязки меняла рейтинг моделей.

И самый показательный случай — не из лаборатории. Полтора месяца пользователи жаловались, что Claude поглупел. Разбор показал три независимых бага в обвязке: понизили reasoning effort, сломали очистку истории так, что она срабатывала каждый ход, и добавили ограничение многословности в системный промпт. Модель не меняли вообще.

Что такое harness

Harness — это весь код вокруг модели. Модель делает ровно одну вещь: принимает контекст и выдаёт следующий шаг. Всё, что происходит до и после, — обвязка: инструменты, память, лимиты, проверки, оркестрация, наблюдаемость, политики доступа.

Слово не новое: harness-тестирование — обвязка вокруг тестируемого кода — существует не первый десяток лет. Новое здесь только то, что у обвязки появился новый потребитель.

Термин закрепился в феврале 2026 года, когда Митчелл Хашимото — основатель HashiCorp и создатель Terraform — опубликовал разбор собственной работы с агентом и назвал это harness engineering. Сформулированный им принцип стоит того, чтобы привести его целиком: Каждый раз, когда агент ошибается, ошибку нужно сделать структурно невозможной. Не промптом и не инструкцией, а кодом.

Логика простая. Агент эффективен, когда выдаёт правильный результат с первого раза. Надёжнее всего этого добиться не уговорами, а инструментами, которые сами сообщают ему, где он ошибся. Линтер, тесты, CI — обратная связь приходит автоматически, без человека в цикле.

Четыре функции: определение OpenAI

В феврале 2026 OpenAI описали обвязку как систему из четырёх функций. Формулировка Райана Лопополо:

Constrain — ограничить, что агент физически может сделать. Inform — сообщить, что он должен сделать. Verify — проверить, что он сделал это правильно. Correct — поправить, когда пошло не так.

За каждым словом стоит конкретный инженерный слой и конкретная цена за его отсутствие. Разберём по порядку — и заодно станет видно, откуда берётся статистика провалов.

Constrain: ограничение — это когда физически нельзя

Ключевая ошибка в этом слое формулируется так: ограничение, написанное в промпте, ограничением не является.

Агент с широкими правами доступа, которому в инструкции сказано «не удаляй ничего в продакшене», удалит. А потом процитирует эту инструкцию в объяснении, почему так делать было нельзя. Уверенность модели в собственной правоте не коррелирует с правотой.

Что реально относится к этому слою: токен-бюджеты на пользователя и на сессию, жёсткие лимиты итераций цикла, детектор повторяющихся вызовов с теми же аргументами, права доступа на уровне инфраструктуры, песочница, circuit breaker на внешние API, деградация вместо падения. Всё то же самое, что вы ставите на обычный сервис — только защищает оно не от падения, а от бесконечной уверенной активности.

Inform: промпт как инженерный артефакт

Промпт — это должностная инструкция агента, и относиться к нему нужно соответственно: он лежит в репозитории, версионируется, и у каждой версии есть измерение.

Отсюда неочевидное следствие. Промпт — не документ, который постепенно растёт по мере накопления пожеланий. Это система уравнений, где каждое новое условие может сломать предыдущие. Больше инструкций не значит лучший результат: новые правила конфликтуют со старыми, и модель не объяснит, какое из них выбрала и почему.

Практический вывод: каждое правило должно прослеживаться до конкретного сбоя, из-за которого оно появилось. Правила, добавленные «на всякий случай», ухудшают результат и при этом невидимы для отладки.

Verify: три уровня, и они стоят по-разному

Самый содержательный слой. Проверки бывают принципиально разного типа, и главная ошибка — пытаться делать их одним инструментом.

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

Уровень второй: эвристики и эмбеддинги. Проверяют, что ответ похож на то, что ожидалось. Стоят дёшево, но могут ошибаться. Например, проверка, что сумма в ответе совпадает с суммой в заказе, — это эвристика, которая не ловит все случаи.

Уровень третий: LLM-судья. Дорогой, но гибкий. Может оценить, соответствует ли ответ намерению пользователя. Однако LLM-судья сам может быть обманут, поэтому его нужно использовать как дополнение, а не замену.

Correct: как чинить, когда сломалось

Когда проверка не прошла, агент должен уметь исправиться. Это может быть повторный запрос с уточнением, вызов инструмента для получения дополнительных данных, или эскалация человеку. Важно, чтобы процесс исправления был автоматическим и не требовал ручного вмешательства.

Практические выводы

Если вы меряете две модели на своём агенте, а обвязка при этом разная — вы меряете не модели. Вы меряете обвязки. Это главный вывод исследования.

Для тех, кто строит агентов, это означает: инвестиции в обвязку окупаются больше, чем в саму модель. Улучшение обвязки может дать рост на 7 процентных пунктов (как в эксперименте с Terminal Bench 2), тогда как смена модели на более новую часто даёт меньше.

Прогноз о том, что 40% агентских проектов закроют к 2027 году, основан на том, что многие команды не уделяют должного внимания обвязке. Они фокусируются на выборе модели, а проблемы возникают из-за плохой обвязки.

Чтобы избежать провала, нужно:

1. Инвестировать в обвязку как в инженерный артефакт. 2. Использовать принцип Митчелла Хашимото: делать ошибки структурно невозможными. 3. Разделять функции обвязки: Constrain, Inform, Verify, Correct. 4. Версионировать промпты и связывать правила с конкретными сбоями. 5. Использовать автоматические проверки на всех уровнях.