Harness (Харнес)
Определение
Харнес (Harness) — это инженерная обвязка вокруг LLM: цикл оркестрации, инструменты, память, управление контекстом, проверки и права доступа. Модель только генерирует текст; всё, что превращает её в работающего агента — читает файлы, запускает команды, помнит прогресс, восстанавливается после ошибок, — делает харнес.
🐎 Откуда слово
Буквально harness — «упряжь»: то, что надевают на лошадь, чтобы её сила тянула повозку, а не разбегалась куда попало. Метафора точная: модель — лошадь, харнес — упряжь. Когда агент «тупит», чаще всего проблема не в лошади, а в поводьях.
Ключевая формула из разбора анатомии харнеса:
“If you’re not the model, you’re the harness.” Всё, что не веса модели, — это харнес.
🧩 Модель ≠ Агент ≠ Харнес
| Слой | Что это | Пример |
|---|---|---|
| Модель | Веса + инференс: принимает токены, возвращает токены | Claude Opus, GPT |
| Харнес | Код вокруг модели: цикл, инструменты, память, проверки | Claude Code, Codex CLI, Cursor |
| Агент | Поведение, которое возникает из связки «модель + харнес» | «сам нашёл баг и починил» |
Отсюда практическое следствие: одна и та же модель в разных харнесах даёт сильно разный результат. Сравнивать «Claude против GPT» без учёта харнеса — почти бессмысленно.
⚙️ Из чего состоит
Минимальное ядро любого харнеса — цикл: промпт → модель → вызовы инструментов → наблюдения → повтор. Вокруг него наращиваются слои:
- Инструменты (Tools) — схемы, валидация, sandbox.
- Память — краткосрочная (сессия) и долгосрочная (файлы вроде
CLAUDE.md). - Управление контекстом — сжатие истории, чтобы не упереться в Context Window.
- Верификация — тесты, линтеры, judge-агенты, проверяющие результат.
- Безопасность — permission gates, guardrails, лимиты шагов.
Полный разбор 12 компонентов — в Анатомии каркаса агентной системы.
📈 Почему термин важен
Индустрия прошла три эры фокуса (подробно — в Harness Engineering):
- Prompt Engineering — как правильно просить модель.
- Context Engineering — какую информацию ей давать.
- Harness Engineering — как строить систему вокруг неё.
Сегодняшний прирост качества агентов идёт в основном не от «более умных» моделей, а от более продуманных харнесов: ограничивать вместо инструктировать, выносить состояние на диск, верифицировать каждый шаг, падать локально.
🛠 Харнесы на практике
Когда ты открываешь Claude Code — ты работаешь не «с моделью», а с харнесом поверх модели. Именно харнес решает, какие файлы модель увидит, какие команды ей можно запускать и когда остановиться. То же относится к Cursor, Codex CLI и агентным фреймворкам (LangChain, CrewAI, AutoGen) — это разные ответы на вопрос «каким должен быть харнес».
Связанные концепции
- Agent — поведение, которое харнес делает возможным.
- Context Window — главный дефицитный ресурс, которым управляет харнес.
- MCP (Model Context Protocol) — стандартный способ подключать инструменты к харнесу.
- Анатомия каркаса агентной системы — 12 компонентов production-харнеса.
- Harness Engineering — принципы проектирования хорошей «узды».