Вопрос «какая нейросеть лучше пишет код» — это лишь половина вопроса. Помимо самой модели есть ещё и обвязка вокруг неё — она же harness, «харнесс». Разбор харнессов ИИ-агентов показывает, что именно обвязка определяет, насколько эффективно модель справляется с задачами в реальном проекте.

Принято выделять четыре слоя агентной системы: модель, скаффолд, харнесс и агент. Модель — это функция «текст на входе → текст на выходе», которая живёт в пределах одного вызова. Памяти между вызовами у неё нет, и она не видит ваш репозиторий. Скаффолд (scaffold, «строительные леса») — всё, что окружает модель до первого вызова: системный промпт вендора, описания инструментов, файл правил проекта вроде CLAUDE.md или AGENTS.md, список подключённых внешних инструментов через MCP и формат ответа. Скаффолд на типичном проекте — от нескольких до десятков тысяч токенов текста, которые попадают в каждый вызов модели ещё до вашей первой фразы.

СлойЧто этоПример на проекте
МодельФункция «текст на входе → текст на выходе», без памяти и контекста репозиторияClaude Opus, GPT-5.x, Gemini, DeepSeek
СкаффолдВсё, что задано заранее: промпты, схемы инструментов, правилаСистемный промпт, CLAUDE.md, описания Read/Edit/Bash
ХарнессЦикл исполнения: вызов, парсинг, запуск инструментов, остановкаClaude Code, Codex, Cursor
АгентСвязка модели и харнесса, гоняющая инструменты ради цели«Агент сделал PR»

Харнесс — исполнительная машина вокруг вызова. Он собирает промпт из скаффолда, истории и вашей задачи; зовёт модель; разбирает ответ — модель попросила прочитать cart.ts или запустить pnpm test?; исполняет запрошенное: читает файл, запускает команду, спрашивает разрешение на опасное вроде rm -rf или DROP DATABASE; подкладывает результат обратно в историю; решает, продолжать или остановиться. Сюда же относится всё, что помогает циклу пережить длинную задачу: обрезка контекста, кэширование промптов, песочница, отказы, хуки. В типичном проекте харнесс — это готовый продукт: Claude Code, Codex или Cursor.

Агент — то, что получается, когда модель посадили в этот цикл с инструментами. Когда говорят «агент сделал PR», имеют в виду всю связку целиком. Если взять авто как метафору: модель — двигатель, харнесс — трансмиссия, педали, приборка и водитель разом. Более мощный двигатель не разгонит машину, если сцепление не схватывает или водитель не в себе.

Вклад обвязки можно измерить. Академическая работа «Stop Comparing LLM Agents Without Disclosing the Harness» (arXiv 2605.23950) от исследователей из Тулейна, Ратгерса и Virginia Tech целиком посвящена тому, что сравнения агентов без раскрытия harness некорректны. В ней показано, что одна и та же модель с разной обвязкой может показывать существенно разные результаты. Это подтверждает и практика: на реальном проекте замеры показали, что изменение правил в скаффолде или настроек харнесса даёт больший прирост, чем смена модели на более новую.

Границу между скаффолдом и харнессом проводят по-разному, а часто не проводят вовсе. Но понимание этих слоёв помогает разработчикам: если агент «не понял, как у нас принято», обычно меняют скаффолд — дописывают правила. Если агент зависает или делает лишние шаги — смотрят на харнесс. Для команд, внедряющих ИИ-агентов в разработку, это означает: не гонитесь за самой мощной моделью, сначала настройте обвязку под свой проект.