Вики · Проверка и доверие
Замкнутый цикл
Дока Anthropic формулирует проблему одной фразой: «Claude stops when the work looks done» (Best practices). Если проверки нет, «выглядит готовым» — единственный доступный признак завершения. И тогда проверочным циклом становитесь вы: каждая ошибка ждёт, пока её заметит человек.
Проверка — любой сигнал, который агент прочитает в разговоре: набор тестов, код выхода сборки, линтер, скрипт, сравнивающий вывод с эталоном, скриншот против макета. Требование к ней одно: результат должен появиться в ленте.
Четыре ступени
Ступени отличаются не строгостью, а тем, сколько настройки вы обменяли на своё внимание.
Ступень 1 — внутри промпта. Проверка и требование повторять её стоят в самом задании. Ноль настройки, работает сегодня, действует один запрос. Каркас — в Первый свиток.
Ступень 2 — /goal. Условие живёт на всю сессию. После каждого хода отдельный оценщик решает, выполнено ли оно, и если нет — агент начинает следующий ход сам, без вашего сообщения.
Ступень 3 — Stop-хук. Живёт в файле настроек, а не в сессии, и распространяется на все сессии своей области. Скриптовый вариант детерминированный: он запускает вашу проверку и не даёт ходу закончиться, пока та не прошла.
Ступень 4 — второе мнение. Проверяющий субагент видит дифф и критерии, но не рассуждения, которые к диффу привели (Вторые глаза).
Ступени не заменяют друг друга. Первая нужна всегда, остальные добавляются по мере того, как вы отходите от экрана.
Как устроен /goal
Команда ставит условие завершения; агент работает, пока оно не выполнено. После каждого хода малая быстрая модель получает условие и разговор и возвращает один из трёх вердиктов:
- не выполнено — агент продолжает и берёт причину как подсказку для следующего хода;
- выполнено — цель снимается, в ленте появляется запись о достижении;
- невозможно — оценщик решил, что условие в принципе недостижимо; цель снимается с указанием причины.
/goal все тесты в test/auth проходят и линтер чистУсловие принимает до 4000 символов. Оценщик не запускает команды и не читает файлы — он судит по тому, что агент уже вывел в разговор. Поэтому условие пишется так, чтобы его подтверждал вывод самого агента: «все тесты в <каталог> проходят» годится, потому что агент их запустит и результат окажется в ленте.
Хорошее условие содержит измеримое состояние, названную проверку и ограничения того, что не должно измениться. Чтобы прогон не был бесконечным, впишите в само условие оговорку вроде «или остановись после 20 ходов».
/goal без аргумента показывает состояние: условие, длительность, число оценённых ходов, расход и последнюю причину оценщика. /goal clear снимает цель (принимаются также stop, off, reset, none, cancel). Обычный /clear тоже снимает активную цель — Долгая сессия и точки возврата.
Цель не меняет режим разрешений: в Manual агент по-прежнему спросит перед каждой командой, которую не разрешают ваши правила (Круг дозволенного).
Четыре вида отказа снимают цель, потому что без вас они не исчезнут: провал аутентификации, исчерпанный баланс, переполнение контекста, которое не смогло разгрести автосжатие, и недоступная модель. После прочих сбоев, включая ограничение частоты, цель остаётся активной.
Stop-хук и его предохранитель
/goal — это, по сути, промптовый Stop-хук с областью в одну сессию. Свой собственный Stop-хук даёт две вещи, которых у цели нет: детерминированность (проверяет скрипт, а не модель) и область шире сессии.
У стены есть предохранитель: после восьми блокировок подряд без продвижения Claude Code перебивает хук и завершает ход, иначе цикл был бы бесконечным. Поэтому скрипт хука обязан читать поле stop_hook_active из входного JSON и выходить с нулём, если продолжение уже запущено:
#!/bin/bash
INPUT=$(cat)
if [ "$(echo "$INPUT" | jq -r '.stop_hook_active')" = "true" ]; then
exit 0
fi
# ниже — собственно проверкаПорог поднимается переменной CLAUDE_CODE_STOP_HOOK_BLOCK_CAP. Устройство хуков целиком — Стражи.
Требуйте доказательство
Последнее правило дешевле всех предыдущих: просите доказательство, а не утверждение. «Готово» — не ответ. Ответ — команда, её вывод и код выхода. Читать доказательство быстрее, чем перепроверять работу самому, и это работает даже для прогонов, за которыми вы не следили.
Сверено по
Прокачаться: юниты