Cursor пишет целые модули, Claude Code чинит баги по одной фразе, а ассистент в редакторе сам лезет в базу и приносит готовый отчет. А внутри сидит та же языковая модель, которая умеет ровно одно, предсказывать следующее слово. Откуда у нее берутся руки, память и упорство дотащить дело до конца, на первый взгляд непонятно. Весь фокус в тонком слое поверх модели, его в индустрии и прозвали harness.
Harness (обвязка) - это весь код вокруг языковой модели: цикл, набор инструментов, память, песочница и права доступа. Сама LLM только предсказывает токены, агентом ее делает именно обвязка. Насколько она важна, видно по цифрам: на одной и той же модели смена harness двигала агента более чем на 20 позиций в бенчмарке TerminalBench. Формула простая, модель плюс harness равно агент.
Коротко
- Модель только генерирует текст. Действовать в реальном мире ее заставляет harness - слой кода вокруг нее.
- Сердце обвязки - цикл: подумал, вызвал инструмент, посмотрел результат, скорректировал курс, повторил.
- Тонкий harness опирается на сильную модель, толстый берет логику на себя, чтобы вытянуть слабую.
- Главный враг агента - раздутый контекст. Хороший harness подсовывает модели только то, что нужно сейчас.
- Для рутинного постинга агент избыточен: повторяемую задачу дешевле и надежнее отдать узкому боту.
- Что такое harness простыми словами
- Зачем агенту цикл и при чем тут надежность
- Из чего состоит harness: анатомия обвязки
- Тонкий и толстый harness: в чем разница
- Восемь уровней агентности: от автодополнения до роев
- Как harness спасает контекст
- Как агент работает в реальном времени
- Нужен ли harness маркетологу
- Типичные ошибки при сборке обвязки
- Частые вопросы
Что такое harness простыми словами
Harness - это обвязка вокруг большой языковой модели, все, что крутится около нее, а не она сама. В переводе с английского слово значит "сбруя" или "упряжь", и метафора тут на удивление точная: модель это сила, а обвязка задает направление и не дает разнести округу.

Сама по себе LLM это математический алгоритм, и только. Команды она не запускает, не помнит, что сгенерировала пять минут назад, за пределы своего текстового окна не выходит. Все, что она делает, получает стартовый текст, предсказывает следующий токен, возвращает его в контекст и крутит так дальше, пока не выпадет токен остановки. Чтобы эта слепая генерация превратилась в работу, модель надо зациклить саму на себя и дать ей инструменты. Вот это и есть harness.
Слои важно не путать. Сама модель это еще не harness, а обвязка без модели вообще пустой каркас, ей нечем думать. Агент рождается на стыке, когда живую модель сажают в обвязку, а та дает ей состояние, инструменты, петлю обратной связи и рамки. Если хочется освежить базу, у нас есть отдельный разбор, чем AI-агент отличается от нейросети и чат-бота.

Чтобы стало совсем наглядно, инженеры любят две метафоры. Первая - автомобиль: модель тут двигатель, harness - это колеса, руль и трансмиссия, а промпт - водитель, который говорит, куда ехать. Вторая - компьютер: модель это процессор, обвязка - материнская плата, память, диск и операционная система, а пользователь за клавиатурой - запрос. Двигатель без машины никуда не везет, как ни газуй.
Само слово пришло из обычного тестирования софта, где "testing harness" значил тестовый стенд для проверки куска кода. В мир нейросетей термин затащили через системы оценки моделей - например, известный LM Evaluation Harness от EleutherAI. А ближе к 2026 году инженеры из OpenAI, Anthropic и LangChain стали официально называть этим словом саму архитектуру агентов.
Зачем агенту цикл и при чем тут надежность
Цикл нужен, чтобы модель не строила весь план вслепую, а сверялась с реальностью после каждого шага. Самый ходовой паттерн такого зацикливания называется ReAct (Reasoning plus Action). Модель думает над задачей, выбирает инструмент (поиск, терминал, запрос к базе), harness выполняет вызов и возвращает результат обратно в контекст. Дальше модель снова думает, оценивает, что вышло, и решает, какой шаг следующий. И так по кругу, пока задача не закрыта или не сработал стоп.
Тут напрашивается вопрос, почему нельзя попросить модель выдать всю цепочку действий разом, одним длинным сообщением. Ответ лежит в теории надежности, в законе Лусера (Lusser`s law). Он выведен задолго до нейросетей и гласит простую вещь: надежность последовательной цепочки без самопроверок равна произведению надежностей звеньев.

Посчитаем на пальцах. Пусть агент делает 10 шагов подряд, и каждый отдельный шаг верен в 99 случаях из 100. Кажется, почти идеально. Но 0,99 в десятой степени - это уже около 0,90, то есть итоговая вероятность успеха проседает до 90 процентов. Чем длиннее цепочка без проверок, тем выше шанс, что где-то по дороге модель начнет фантазировать и совершит фатальную ошибку. Именно поэтому harness не дает генерировать план целиком. После каждого маленького шага он принудительно останавливает модель, скармливает ей настоящий результат (ответ сервера, ошибку компилятора, содержимое файла) и заставляет скорректировать курс. Самопроверка тут не бюрократия, а математическая необходимость.
Из чего состоит harness: анатомия обвязки
Под капотом любая обвязка собрана из одних и тех же блоков, будь то Cursor, Claude Code или самописный скрипт на сто строк. Меняется реализация, но набор узлов один. Вот он целиком.
- Системный промпт
- базовое описание поведения агента, его роли и границ.
- Правила проекта
- точечные настройки под конкретную задачу: файлы вроде agents.md, cursorrules или памяти проекта.
- Инструменты
- руки агента: работа с файлами, терминал, SSH, браузер, доступ к базам.
- Цикл и стоп-условия
- тот самый ReAct, который крутит агента до цели или до лимита итераций.
- Песочница и права
- изолированное окружение и контроль доступа. Критичный для безопасности слой.
- Менеджер сессий
- хранит историю шагов, чтобы агент помнил, что делал на прошлом ходу.
- Контекстная память
- то, что подается в модель в момент генерации: куски кода, выдача из базы знаний, правила.
- Наблюдаемость
- видимость происходящего: какой инструмент вызван, какой файл прочитан, какой патч наложен.
Отдельно стоят скиллы и MCP, их часто валят в одну кучу, а это разные вещи. Скилл - это овеществленное знание модели, шпаргалка или исполняемый скрипт: например, "чтобы сжать видео, используй вот такие параметры ffmpeg". MCP (Model Context Protocol) сложнее. Это "ручки", через которые агент безопасно работает с закрытыми внешними системами, скажем, с корпоративным Confluence, и при этом API-токены не утекают в саму языковую модель. Если коротко, скилл учит модель что делать, а MCP дает ей безопасный канал куда ходить.
Про песочницу стоит сказать злее. Это не формальность из чек-листа безопасника. Стоит выдать агенту полные права в обход подтверждений (тот самый режим "dangerously skip permissions"), и он способен снести базу или положить боевой сервер, искренне считая, что выполняет задачу. Наблюдаемость работает в паре с песочницей: хорошая обвязка показывает каждый шаг вживую, чтобы человек успел нажать стоп, если агент свернул не туда.
Тонкий и толстый harness: в чем разница
Тонкий harness несет минимум логики и полагается на ум модели, толстый берет логику на себя ради слабых моделей. Выбор между ними напрямую зависит от того, насколько умную нейросеть вы ставите за спину агента.

Тонкий harness - это Claude Code или Cursor, за которыми стоят мощные модели. Дай такому агенту ссылку на базу знаний и попроси найти статью - встроенного плагина под эту базу у него нет, и не надо. Модель сама напишет скрипт на Python, разберется с API платформы, сделает запрос и вытащит нужное. Обвязка тут не мешает, она просто не лезет.
Толстый harness делают под слабые, локальные или опенсорсные модели, которые звезд с неба не хватают. Такая модель путает аргументы функции, если их больше трех, и не вытягивает сложный скрипт. Поэтому разработчик берет всю логику на себя: пишет кучу узких MCP-серверов и предельно простых инструментов с однозначными именами. Модели остается сказать "нажми кнопку А", а тяжелую работу harness делает сам.
| Критерий | Тонкий harness | Толстый harness |
|---|---|---|
| На что опирается | На ум сильной модели | На логику в коде обвязки |
| Инструменты | Немного универсальных (терминал, файлы) | Много узких, с однозначными именами |
| Под какие модели | Топовые облачные | Слабые, локальные, on-premise |
| Цена ошибки | Модель сама выкручивается | Все предусматривает разработчик |
Инженеры формулируют это так: умная модель компенсирует слабый harness, а умный harness вытягивает слабую модель. Вывод практичный: грамотная настройка обвязки способна заметно поднять качество ответов вообще без замены нейросети. Иногда дешевле причесать harness, чем платить за модель помощнее.
Восемь уровней агентности: от автодополнения до роев
Обвязки появились не вдруг, а доросли через несколько ступеней, и harness - примерно шестая из них. Удобная классификация (ее предлагали в инженерных блогах, например у Басима Али) выглядит так.

- Табы. Автодополнение строки по нажатию Tab. Самый базовый уровень.
- Агентные IDE. Даешь кусочек контекста, среда генерирует целый блок, например класс по интерфейсу.
- Контекст-инжиниринг. Разработчики начали вручную подсовывать модели куски текста, примеры и тестовые данные, задавая рамки генерации.
- Компаундинг. Системы научились сохранять удачные решения в файлы (agents.md и им подобные), чтобы в следующий раз читать готовое, а не гадать с нуля.
- MCP и скиллы. Сохраненные знания превратились во внешние инструменты, которые агент вызывает синхронно, один за другим.
- Harness-инженерия. Текущий этап. Полноценные обвязки, где модель сама работает с контекстом и правилами, динамически подключает MCP и крутится в цикле самопроверок.
- Фоновые агенты, рои. Ближайшее будущее. Сабагенты массово накидываются на одну задачу в несколько потоков, решают ее параллельно и сливают результат в общий отчет.
- Автономные агенты. Вершина. Системам не нужны команды человека, они сами знают, что делать. Пока к этому не готовы ни модели, ни обвязки.
Лестница полезна не как пророчество, а как карта. По ней видно, что harness - это не маркетинговое слово, а конкретная ступень зрелости, на которой агент перестает быть умным автодополнением и становится исполнителем. Кстати, шаги шестой ступени мы разбирали отдельно, на живом примере GitHub-набора для проектирования цикла агента с классами риска и проверками.
Как harness спасает контекст
Главная боль больших моделей - работа с контекстным окном, и хорошая обвязка лечит ее лучше, чем рост окна. У модели может быть окно на миллион токенов, но эффективно она держит в голове куда меньше, на практике ближе к нескольким десяткам тысяч. Дальше внимание расплывается.
Есть и отдельный эффект, его называют "проклятием середины" (lost in the middle). Если важный кусок (нужный фрагмент кода или описание инструмента) лежит в середине гигантского окна, качество ответа заметно проседает. Модель будто забывает то, что в центре, цепляясь за начало и конец. Хороший harness про это знает и не сваливает все в одну кучу.
Цифры говорят сами за себя. В одном из разборов команда Vercel выкинула из контекста около 80 процентов неиспользуемых инструментов перед отправкой запроса модели - и качество работы обвязки выросло в два-три раза. Отсюда главный враг производительности агента: раздутые правила. Разработчики любят написать один гигантский agents.md на тысячи строк, модель потом долго "прогревает" этот контекст, медленно отвечает и тупит. Современный подход обратный: резать инструкции на десятки мелких скиллов, грузить в контекст только их короткие описания, а модель пусть сама решит, какой скилл прочитать целиком под текущую задачу.
- Было
- один файл правил на тысячи строк, модель греет его на каждом запросе и вязнет.
- Стало
- десяток коротких скиллов, в контекст идут только заголовки, целиком читается нужный.
- Эффект
- меньше токенов на старте, быстрее ответ, меньше галлюцинаций на ровном месте.
Как агент работает в реальном времени
Проще один раз увидеть цикл на бытовой задаче, чем читать про него абзацами. Возьмем консольного агента и попросим: "создай файл test.txt, запиши в него слово test, потом выведи его вес". Дальше harness разбивает это на шаги и проходит их сам.
- Обвязка перехватывает запрос и заставляет модель составить план. Модель решает, что шагов три.
- Вызывается инструмент правки файла, он физически создает на диске пустой test.txt и рапортует модели: файл создан.
- Модель видит статус и отправляет команду записать внутрь строку test. Harness выполняет запись.
- Модель вызывает инструмент проверки размера, harness спрашивает операционную систему и возвращает ответ.
- Модель собирает все воедино: "файл test.txt создан, содержит слово test, весит 5 байт".
Пока агент гоняет этот цикл ошибок и проверок, человек может пить кофе, ни единого клика по дороге не требуется. И еще одна сильная штука современных обвязок - протокол ACP (Agent Client Protocol). Он позволяет встраивать консольных агентов в любые графические оболочки: подключить агента прямо внутрь редактора заметок Obsidian или IDE от JetBrains. Агент получает корневую папку редактора как свою домашнюю директорию и работает с вашими заметками и кодом всей мощью своих инструментов.
Нужен ли harness маркетологу
Честный ответ: напрямую почти никогда, а вот понимать его логику полезно, чтобы не переплачивать за сложность. Harness и агент оправданы там, где задача меняется от раза к разу: ресерч, аналитика, черновики под разные сегменты, разбор обращений. Там автономность и цикл самопроверок реально экономят время.
А вот рутину с понятным сценарием городить через агента - перебор. Выложить один пост сразу в Telegram, VK, Threads и MAX - это повторяемая операция без развилок, и ей не нужен ни ReAct, ни восемь слоев обвязки. Тут выигрывает узкий специализированный инструмент: по сути тонкая обвязка под одну задачу. Для перепоста из Telegram в MAX это бесплатный бот @pereposter_free_bot, для всех площадок разом - платный AIsha-Poster. Дешевле и надежнее, чем учить полноценного агента нажимать одни и те же кнопки. Если же хочется разобраться, где в SMM агент уместен, а где хватает автопостинга, мы раскладывали это в материале про выбор бота для постинга в соцсети.
Типичные ошибки при сборке обвязки
Harness имеет свойство разрастаться. Со временем агент обрастает сотнями инструментов, костылями под обработку текста и забытыми скриптами. Получается снежный ком, который съедает контекст и провоцирует галлюцинации. Вот грабли, на которые наступают чаще всего.
- Гигантский файл правил. agents.md на тысячи строк греется вечность и топит важное в шуме. Лечится нарезкой на скиллы.
- Пропуск прав доступа. Режим "пропустить все подтверждения" ради скорости рано или поздно стоит удаленной базы. Песочница не опция, а страховка.
- Дублирующиеся инструменты. Отдельно "прочитать папку" и "прочитать файл" - это лишний выбор для модели и лишние токены. Такое сливают в один инструмент.
- Цепочка без самопроверок. Длинная последовательность шагов без сверки с фактом обваливает надежность по закону Лусера. Останавливайте модель чаще.
- Нет наблюдаемости. Если не видно, что агент делает прямо сейчас, поймать момент, когда он свернул не туда, уже не получится.
Чек-лист: ревизия harness
Частые вопросы
Чем harness отличается от промпта?
Промпт говорит агенту, что делать в этот конкретный раз. Harness отвечает за то, чтобы агент действовал правильно каждый раз без новых указаний: дает цикл, инструменты, память и ограничения. Промпт - разовая команда, обвязка - постоянная инфраструктура вокруг модели.
Harness и агент - это одно и то же?
Нет. Агент - это модель плюс harness в работе. Сама обвязка без модели - пустой каркас, она ничего не генерирует. А модель без обвязки не умеет действовать, только предсказывает текст. Агентом систему делает именно их соединение.
Что такое тонкий и толстый harness?
Тонкий harness несет минимум логики и полагается на сильную модель, она сама пишет скрипты и разбирается с API. Толстый harness берет логику на себя ради слабых моделей: много узких инструментов с простыми именами, чтобы модели оставалось лишь нажать готовую кнопку.
Зачем агенту цикл, почему не выдать план разом?
Из-за надежности. По закону Лусера цепочка из 10 шагов с точностью 99 процентов на шаге дает итог около 90 процентов. Цикл заставляет модель сверяться с реальным результатом после каждого действия и исправлять курс, не накапливая ошибки.
Чем скилл отличается от MCP?
Скилл - это знание модели в готовом виде: текстовая шпаргалка или скрипт под конкретную операцию. MCP (Model Context Protocol) - это безопасный канал к закрытым внешним системам, через который агент работает с ними, не получая на руки секретные токены. Скилл учит что делать, MCP открывает куда ходить.
Нужен ли harness, чтобы постить в соцсети?
Для рутинного постинга нет. Выложить пост сразу на несколько площадок - повторяемая задача без развилок, ей хватает узкого бота-автопостера. Полноценный агент с обвязкой оправдан там, где задача меняется и нужны планирование и самопроверки, а не одни и те же действия по кругу.








