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 компонентов — в Анатомии каркаса агентной системы.


📈 Почему термин важен

Полезно различать три уровня фокуса (это аналитическая схема, а не общепринятая периодизация):

  1. Prompt Engineering — как правильно просить модель.
  2. Context Engineering — какую информацию ей давать.
  3. Harness Engineering — как строить систему вокруг неё.

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


🛠 Харнесы на практике

Когда ты открываешь Claude Code — ты работаешь не «с моделью», а с харнесом поверх модели. Именно харнес решает, какие файлы модель увидит, какие команды ей можно запускать и когда остановиться. То же относится к Cursor, Codex CLI и агентным фреймворкам (LangChain, CrewAI, AutoGen) — это разные ответы на вопрос «каким должен быть харнес».


Связанные концепции