«Prompt engineering мёртв» — этот рефрен начал расходиться примерно в 2025 году. На освободившееся место пришла концепция «Harness Engineering». Термин, предложенный исследователями Anthropic и инженерами, создающими агентов вроде Claude Code и Cursor, быстро стал одной из центральных инженерных дисциплин эпохи ИИ-агентов.

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

КАРТА ПОНЯТИЙ

Упряжь = 4 слоя вокруг LLM

— как лошадиная упряжь, оснастка, направляющая мощное животное к вашей цели

1
ЯДРО — LLM
Сам движок рассуждений (Claude / GPT / Gemini). Промпты направляют его поведение.
2
СЛОЙ УПРЯЖИ
Определения инструментов, управление контекстом, память, agent loop. Ключевая конструкция, решающая, что LLM на самом деле делает.
3
СЛОЙ БЕЗОПАСНОСТИ
Hooks, sandbox, ограничения прав, режим подтверждений. Физически блокирует неконтролируемое поведение и ущерб.
4
UX-СЛОЙ
Рендеринг markdown, цитаты, стриминг, видимые рассуждения. Выводы, которым пользователь может доверять и которые может проверить.

При одной и той же LLM один лишь дизайн упряжи может радикально менять и качество, и безопасность.
Это и есть поле битвы «Harness Engineering» — совершенно новой инженерной дисциплины.

1. Что такое harness engineering?

«Harness» (упряжь) изначально означает сбрую и снаряжение для лошади — оснастку, направляющую силу животного туда, куда нужно вам. Термин в ИИ работает ровно как метафора того же рода: полный набор «снаряжения», который заставляет мощную, но неуправляемую LLM приносить пользу.

Конкретно сюда входит:

  • Инструменты: операции с файлами, веб-поиск, выполнение кода — средства, которыми LLM может действовать.
  • Управление контекстом: стратегия того, что попадает в промпт, а что сжимается или отбрасывается.
  • Системы памяти: устойчивые знания и пользовательские предпочтения, переживающие сессии.
  • Agent loop: цикл «воспринять → рассудить → действовать → наблюдать».
  • Guardrails: права, sandbox, Hooks, потоки подтверждений.
  • Формат вывода: markdown, JSON, цитаты, стриминг.

Совместное проектирование всего этого мы и называем harness engineering. Вместо обучения или улучшения самой LLM это ремесло повышения практической полезности через инженерию всего, что окружает LLM. Claude Code, Cursor, Devin, Codex CLI — все они работают примерно на одних и тех же моделях, и тем не менее их поведение и производительность резко расходятся именно из-за разницы в упряжах.

2. Harness engineering против prompt engineering

Prompt engineering никуда не делся — но область применения принципиально иная.

ИзмерениеPrompt engineeringHarness engineering
ОбъектТекст ввода в одной репликеВся система (инструменты, память, цикл)
Основная работаОптимизация формулировок промпта, подбор few-shot примеровДизайн инструментов, стратегия контекста, дизайн цикла
РезультатТекстовые шаблоныКод, конфигурация, архитектура системы
Нужные навыкиЯзыковое чутьё, интуиция о поведении LLMОбщая software-инженерия
Зона влиянияКачество одного ответаЗавершаемость, стоимость и безопасность длинных задач
Пример«Думай шаг за шагом»Определить инструмент-калькулятор и дать LLM его вызвать

Если prompt engineering — это ремесло того, «что сказать LLM», то harness engineering — это ремесло того, «что дать LLM и как ею оперировать». Они не конкурируют — они наслаиваются. Промпт — лишь один компонент внутри упряжи.

3. Шесть компонентов «упряжи»

1. Tool Use

Средства, которыми LLM действует на мир: чтение и запись файлов, выполнение кода, поиск в вебе, вызовы API. Ошибитесь в интерфейсе инструмента — именах, аргументах, возвращаемых значениях — и LLM не сможет им корректно пользоваться. Конкретно:

  • Однозначные имена-глаголы (например, read_file).
  • Явное разделение обязательных и необязательных аргументов, со значениями по умолчанию.
  • Структурированные сообщения об ошибках при сбое (говорите модели, что делать дальше).
  • Явные предупреждения об операциях с побочными (разрушительными) эффектами.

2. Управление контекстом

Внимание LLM конечно — то, что вы ей показываете, определяет то, что она говорит. Конкретно:

  • Фильтрация по релевантности: подтягивайте только части, относящиеся к задаче, а не файлы целиком.
  • Сжатие: суммируйте длинные диалоги, чтобы их сохранить.
  • Интеграция RAG: подтягивайте нужное через векторный поиск.
  • Кеширование: режьте стоимость повторных системных промптов с помощью таких средств, как prompt cache от Anthropic.

Связанное: Что такое RAG?

3. Система памяти

Удержание знаний между сессиями. CLAUDE.md у Claude Code, .cursor/rules у Cursor и AGENTS.md у Codex — всё это примеры проектной памяти. Помимо этого:

  • Краткосрочная память: недавняя история диалога.
  • Долгосрочная память: профиль пользователя, прошлые решения.
  • Фактические знания: доменные базы знаний.

4. Agent Loop

Ядро, благодаря которому «ИИ-агент» вообще работает. Базовая форма — цикл «воспринять → рассудить → действовать → наблюдать»:

  1. Принять цель пользователя.
  2. Проанализировать текущее состояние (при необходимости собрать информацию инструментами).
  3. Спланировать следующее действие.
  4. Действовать через инструмент.
  5. Наблюдать результат; проверить, достигнута ли цель.
  6. Если нет — повторить, если да — завершить.

Насколько умным окажется ваш агент, зависит от того, заложите ли вы перепланирование, самокритику и декомпозицию подцелей.

5. Guardrails

Механизмы, не дающие поведению пойти вразнос. Как разбирается в статье Почему ИИ игнорирует ваши .md-правила, форсировать поведение через окружение значительно надёжнее, чем вежливо просить в прозе:

  • Режим подтверждений: опасные операции требуют человеческого подтверждения (например, Plan mode у Claude Code).
  • Sandbox: ограничьте доступ к файловой системе и сети.
  • Hooks: произвольные проверки до и после вызовов инструментов.
  • Rate limiting: минимизируйте ущерб, если что-то пойдёт не так.

6. Output UX

Подача результатов в форме, которую пользователь способен понять и проверить. Рендеринг markdown, цитирование источников, блоки кода с подсветкой синтаксиса, потоковый вывод, видимые рассуждения (thinking), структурированный вывод (JSON) и так далее. Получить «правильный ответ» недостаточно — задача упряжи в том, чтобы доставить его в форме, которой пользователь может доверять и которую может проверить.

4. Почему harness engineering и почему именно сейчас?

Всплеск интереса к работе над упряжью двигают три силы.

1. Потолок «сырой» способности LLM стал виден. С появлением моделей класса GPT-5, Claude Opus 4.7 и Gemini 3.1 Pro прирост на бенчмарках начал выравниваться. Реальная производительность для фиксированной модели может меняться в 2 и более раз в зависимости от упряжи, а это значит, что мы вошли в эпоху, когда смена упряжи окупается сильнее, чем смена модели.

2. Накапливаются проблемы, которые промптами в одиночку не решить. «Слишком много инструментов, модель выбирает не тот». «Контекст набит так, что важный сигнал зарыт». «На длинных задачах агент теряет нить на полпути». Это не проблемы, которые чинятся более удачной формулировкой в одной реплике — это проблемы дизайна.

3. Узкое место для продакшен-ИИ-агентов сместилось в упряжь. 2024 год был гонкой за то, чтобы сделать LLM умнее. 2025–2026 — гонка за то, чтобы сделать умнее упряжь. Каждый крупный продукт — Claude Code от Anthropic, Codex от OpenAI, Cursor, Devin — конкурирует именно на поле harness engineering.

5. Практический чек-лист проектирования упряжи

7 контрольных точек хорошей упряжи

1. ДИЗАЙН ИНСТРУМЕНТОВ
Глаголы в именах, явные аргументы
Ошибки возвращаются структурированными сообщениями, которые говорят: «дальше делай так».
2. КОНТЕКСТ
Подавайте только релевантное, динамически
Prompt cache плюс RAG: достаточно, чтобы прочитать, и не настолько, чтобы захлебнуться.
3. ПАМЯТЬ
Один источник истины для устойчивой памяти
Держите CLAUDE.md / AGENTS.md короткими, детали выносите в SPEC.md.
4. ЦИКЛ
Делайте условия завершения явными
Всегда задавайте максимум итераций, максимум токенов и таймаут.
5. БЕЗОПАСНОСТЬ
Разрушительные операции — только с предварительным одобрением
Hooks блокируют автоматически; sandbox ограничивает радиус поражения.
6. НАБЛЮДАЕМОСТЬ
Логируйте каждый вызов инструмента
Прослеживаемость, чтобы постфактум восстановить, что произошло.
7. СТОИМОСТЬ
Проектируйте с учётом экономики токенов
Кеширование, batch API, sub-agents — всё это удерживает месячные расходы в рамках.

6. Сравнение основных «упряжей»

Дизайн-тенденции основных упряжей ИИ-агентов

Claude Code
Anthropic
Сильные стороны
Богатые Hooks / sub-agents / Plan mode / slash commands.
Память
CLAUDE.md на уровне пользователя и проекта.
Идеальная ниша
Сложный код, длительные задачи
Cursor
Anysphere
Сильные стороны
Интеграция с IDE, выбор контекста через @-mention.
Память
.cursor/rules/*.mdc применяются по glob-шаблонам.
Идеальная ниша
Интерактивные правки кода, мгновенная обратная связь
Codex CLI
OpenAI
Сильные стороны
Переключаемый режим подтверждений, принудительный sandbox.
Память
AGENTS.md (модели класса GPT-5 терпят более длинные файлы).
Идеальная ниша
CLI-воркфлоу, интеграция в код-пайплайны
Devin
Cognition
Сильные стороны
Полностью автономный агент с интеграцией браузера, IDE и shell.
Память
Собственная устойчивая память плюс функция Knowledge.
Идеальная ниша
Задачи «передал и забыл», end-to-end доставка

Каждая из этих упряжей работает на примерно одних и тех же LLM (Claude / GPT / Gemini), и тем не менее их сильные стороны резко расходятся из-за различий в философии дизайна упряжи. «Какая упряжь?» важнее, чем «какая LLM?» — вот настоящее поле битвы эпохи агентов.

7. Антипаттерны

1. Слишком много инструментов

Как только вы переходите рубеж примерно в 20 инструментов, шанс LLM выбрать не тот резко возрастает. Безжалостно оставляйте только реально нужные инструменты, а похожие сливайте.

2. Запихивать всё подряд в контекст

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

3. Реализовывать безопасность одними промптами

«Пожалуйста, не выполняй опасных операций» рано или поздно проигнорируется — в зависимости от ситуации. Правильный ответ — сделать это физически невозможным на уровне окружения: sandbox, Hooks, ограничения прав.

Итог

Harness engineering — это ремесло проектирования слоя «снаружи» LLM. Prompt engineering — лишь один компонент внутри упряжи. Осознанная работа над шестью элементами — определением инструментов, управлением контекстом, памятью, циклом, guardrails, output UX — может преобразить реальную производительность одной и той же базовой LLM.

На 2026 год основное поле битвы для продакшен-ИИ-агентов однозначно сместилось в упряжь. Создание «умных упряжей» — а не просто написание «умных промптов» — станет тем, что отличит инженеров следующего поколения.

FAQ

Q1. Значит, prompt engineering больше не нужен?

Неверно. Он по-прежнему критичен — как один компонент внутри упряжи. Описания инструментов, системные промпты, сообщения об ошибках — всё это поверхности дизайна промптов. Устарел сам подход «починю это лучшим промптом».

Q2. С чего начать изучение harness engineering?

Возьмите Claude Code или Cursor и не просто пользуйтесь ими — меняйте их поведение, подкручивая конфиг. Напишите CLAUDE.md / .cursor/rules. Попробуйте Hooks. Соберите slash command. Это и есть практический опыт того, что такое упряжь.

Q3. Упряжь — это то же, что фреймворки вроде LangChain?

Близко, но не одно и то же. Фреймворк — это набор инструментов реализации; упряжь — это инженерная дисциплина и образ мышления. LangChain, LlamaIndex, Claude Agent SDK и им подобное — это инструменты для построения упряжей.

Q4. Строить свою упряжь или использовать готовую?

В большинстве случаев готовая упряжь (Claude Code, Cursor и т.п.) плюс кастомизация достаточна. Строить с нуля имеет смысл только под корпоративные требования, нишевые домены или экстремальную оптимизацию стоимости.

Q5. Станет ли «harness engineer» реальной должностью?

Признаки уже есть. Anthropic, OpenAI, Cursor и другие компании, строящие агентов, начали нанимать на роли вроде «Agent Engineer», «Tool Designer» и «Context Engineer». К 2027–2028 году это, по всей видимости, оформится в самостоятельную профессиональную категорию.