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):

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

Сегодняшний прирост качества агентов идёт в основном не от «более умных» моделей, а от более продуманных харнесов: ограничивать вместо инструктировать, выносить состояние на диск, верифицировать каждый шаг, падать локально.


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

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


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