Содержание
«Prompt engineering мёртв» — этот рефрен начал расходиться примерно в 2025 году. На освободившееся место пришла концепция «Harness Engineering». Термин, предложенный исследователями Anthropic и инженерами, создающими агентов вроде Claude Code и Cursor, быстро стал одной из центральных инженерных дисциплин эпохи ИИ-агентов.
В этой статье мы разбираем, что на самом деле такое harness engineering, чем он отличается от prompt engineering, какие шесть компонентов составляют упряжь, даём практический чек-лист проектирования и конкретные примеры из ведущих сегодня инструментов — фундамент, который нужен, если вы всерьёз используете или строите ИИ-агентов.
Упряжь = 4 слоя вокруг LLM
— как лошадиная упряжь, оснастка, направляющая мощное животное к вашей цели
При одной и той же 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 engineering | Harness 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
Ядро, благодаря которому «ИИ-агент» вообще работает. Базовая форма — цикл «воспринять → рассудить → действовать → наблюдать»:
- Принять цель пользователя.
- Проанализировать текущее состояние (при необходимости собрать информацию инструментами).
- Спланировать следующее действие.
- Действовать через инструмент.
- Наблюдать результат; проверить, достигнута ли цель.
- Если нет — повторить, если да — завершить.
Насколько умным окажется ваш агент, зависит от того, заложите ли вы перепланирование, самокритику и декомпозицию подцелей.
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 контрольных точек хорошей упряжи
6. Сравнение основных «упряжей»
Дизайн-тенденции основных упряжей ИИ-агентов
Каждая из этих упряжей работает на примерно одних и тех же 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 году это, по всей видимости, оформится в самостоятельную профессиональную категорию.