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