Часть I · Основы · Глава 00
00

Харнесс и модель мышления

Прежде чем учить команды, агентов и скиллы, стоит понять одну вещь, которая переворачивает половину споров: фичи Claude Code — не «просто промпты в обёртке». Разберём, почему, и заодно соберём правильную картину того, что вообще происходит, когда ты жмёшь Enter.

~14 минут источник: reports/why-harness-is-important Claude Code v2.1.179
§1 · Соблазнительное упрощение

«Это же всё равно просто промпты»

Опытные пользователи рано или поздно приходят к мысли: скиллы, команды, субагенты, хуки — всё это в конце концов превращается в токены для модели. Значит, достаточно одного сильного промпта, а остальное от лукавого. На уровне финального вызова модели это правда. Модель и впрямь видит только токены.

На всех остальных уровнях, там, где и живёт настоящая инженерия, это упрощение разваливается. Возьми атомарную задачу в вакууме: «напиши рекурсивный flatten». Тут харнесс не добавляет ничего. Те же токены, та же модель, тот же разброс ответов, как ни доставь их: скиллом, командой или голым промптом.

Где упрощение верно

Для одношаговой атомарной задачи качество вывода ≈ качество промпта. Это ровно тот режим, где Claude Code мало чем лучше обычного чат-бота. И ровно тот режим, в котором реальная работа над кодом не находится.

Как только задача перестаёт быть атомарной, «сильное слово» упирается в потолок. Чтобы увидеть почему, надо честно разделить два совершенно разных смысла, которые мы прячем в одном слове «промпт».

§2 · Два «промпта»

То, что ты напечатал, и то, что видит модель

В чат-боте это одно и то же. В Claude Code различие огромное. Ты печатаешь шесть слов. Модель на инференсе получает пятнадцать тысяч токенов. Работа харнесса в том и состоит, чтобы превратить (а) в (б).

Одно слово, два смысла
СмыслКто управляетРазмер
(а) То, что ты напечаталты~6–60 токенов
(б) То, что модель видит на инференсехарнесс~5 000–50 000+ токенов

Вывод простой и неудобный для спорщика: качество ответа на нетривиальной задаче — функция от (б), а не от (а). Большую часть (б) пишет не пользователь. «Один сильный промпт» физически не может воспроизвести то, что собрал харнесс, потому что бо́льшую часть этого пользователь не печатал.

§3 · Чего промпт не умеет

Десять способностей за пределами слов

Харнесс — это не «доставщик промптов». Это система сборки промпта, детерминированного исполнения и архитектуры контекста. Вот где формулировка категорически не заменяет инфраструктуру.

Возможности харнесса, которым промпт не ровня
СпособностьЧто делаетПочему промпт не повторит
Изоляция контекстаСубагенты в отдельных окнахПромпт заполняет одно окно. N агентов дают ~N× контекста.
Запрет инструментовallowed-tools режут доступ до вызоваИнструкции в промпте — совет, его можно проигнорировать. Deny-правило — нет.
Ленивая загрузкаПравила по paths: грузятся при касании файловПромпт статичен, он не грузит контент условно в рантайме.
ХукиКод на событиях сессии, может блокировать вызовПромпт не перехватывает собственные вызовы инструментов.
Роутинг моделейmodel: haiku/opus на вызовНи один токен не меняет, какая модель отвечает.
ПараллелизмНесколько агентов одновременноПромпт последовательный. Харнесс планирует и собирает результаты.
Память между сессиямиПамять и настройки переживают разговорПромпт умирает с концом сессии.
Предзагрузка скилловskills: вшивает контент в старт агентаПользователь не нашпигует чужой контекст, только загрузчик харнесса.

Плюс ещё две: модульный системный промпт (110+ фрагментов под включённые фичи) и классификатор разрешений в режиме auto.

Аналогия, которая всё ставит на место

Промпт — это рецепт. Харнесс — это кухня: инструменты, хуки, память, параллельные работники, события жизненного цикла. Можно написать лучший рецепт в мире. Без кухни на нём не приготовить ничего в масштабе.

§4 · Один промпт, три качества

Разницу делает петля, а не слово

Тот же запрос «напиши рекурсивный flatten» в трёх средах даёт три разных результата. Модель одна. Промпт один.

Одинаковый промпт, разный харнесс
СредаЧто видит модельРезультат
Чат-бот, без инструментоводно предложениеУчебниковая рекурсия, общий стиль.
Claude Code, без чтения+ CLAUDE.mdСовпадает с заявленными конвенциями проекта.
Claude Code, агентная петля+ соседние файлы + прогон тестовСовпадает с реальными паттернами кода, проходит тесты, держит те же краевые случаи.

Отсюда честная формула для всего, что сложнее одной функции:

модель качества
Качество вывода = f( эффективный контекст,  способности модели,  петля итераций )

         ▲ сливер контролируешь ты      ▲ остальное и петлю — харнесс

Петля — это то, ради чего вообще стоит агент. Дай модели способ проверить свою работу, и она сама поймает ошибки. Создатель Claude Code ставит это первым пунктом.

Пожалуй, самое важное для отличного результата — дать Claude способ проверять свою работу. С этой обратной связью качество финала вырастает в 2–3 раза. Claude тестирует каждое изменение, которое я отправляю.
Boris Cherny · создатель Claude Code
Схема цикла вызова инструментов: модель выбирает инструмент, харнесс исполняет его, результат возвращается в контекст, и цикл повторяется до завершения задачи.
Плашка 4.1 · Петля «инструмент → результат → следующий шаг». Именно её собирает харнесс, и именно её нет у голого промпта. Из презентационных материалов репозитория.
§5 · Что с этим делать

Правильная установка на всю книгу

Промпты управляют тем, что модель просят сделать. Харнесс управляет тем, что система делает на уровнях, до которых модель не дотягивается: до прихода токенов, после их выхода, между сессиями, между контекстами и между процессами. Из этого следуют рабочие привычки.

Три привычки, которые эксплуатируют харнесс

Plan mode на старте (Shift+Tab дважды): гоняй план, пока он не нравится, потом переключайся в авто-правки. Лучшая модель с размышлением: её надо меньше направлять, и на дистанции она быстрее. Ручной /compact около 50% контекста: не жди, пока окно забьётся под завязку.

Шпаргалка главы

Пять тезисов на вынос

  1. «Фичи — это просто промпты» верно только для атомарной задачи в вакууме. Реальная работа над кодом не там.
  2. Слово «промпт» означает два разных: твои 6 слов и 15 000 токенов, которые собрал харнесс. Качество зависит от второго.
  3. Десять способностей (изоляция, запрет инструментов, хуки, роутинг, память, параллелизм…) промпт не повторит ни при какой формулировке.
  4. Качество = f(эффективный контекст, модель, петля). Пользователь держит сливер контекста; харнесс — всё остальное и петлю целиком.
  5. Рецепт против кухни. Сильный промпт необходим, но без харнесса на нём не готовят в масштабе.