Джеффри Хантли чинит кодинг-агентов pre-commit хуком и получает 10 из 10
Джеффри Хантли описал способ заставить кодинг-агента пользоваться внутренней библиотекой диагностики. Обновлять AGENTS.md он считает ненадёжным: между файлом и реальным поведением агента остаётся разрыв, и он будет расти. Вместо этого Хантли пишет pre-commit хук. Хук проверяет git diff на прямые вызовы модулей observability в обход его diagnostics-модуля. Если находит, коммит падает, а агенту уходит промпт с требованием использовать библиотеку. По оценке автора, соблюдение правила выросло до «десяти из десяти». Цитату опубликовал Саймон Уиллисон. • Правило проверяет код, а не память модели. • Отказ коммита сразу превращается в инструкцию для агента. • Методики измерения «10/10» автор не приводит.
AI-обработка оригинала Simon Willison; редакция Hamidun News
Джеффри Хантли описал приём, который, по его словам, довёл соблюдение агентом внутреннего правила до «десяти из десяти». Он не стал уговаривать модель очередной строчкой в инструкциях, а поставил на пути коммита pre-commit хук. Цитату из его эссе «nobody should type code by hand anymore. here's what's left» опубликовал Саймон Уиллисон. Метрика здесь субъективная: методики измерения автор не приводит. Но сама механика заслуживает разбора.
Где ломается AGENTS.md
Ситуация знакомая каждому, кто работал с кодинг-агентами. В проекте есть собственная библиотека диагностики, обёртка над наблюдаемостью. Агент вместо неё вызывает модули observability напрямую. Очевидный ход — дописать правило в AGENTS.md и надеяться, что модель его учтёт.
Хантли объясняет, почему этого мало. Можно заставить агента проанализировать собственное поведение и обновить файл, но между инструкцией и реальной практикой всё равно остаётся разрыв («delta»), и он будет дрейфовать. Текстовые правила вероятностны: контекст разрастается, формулировки конкурируют между собой, сменилась модель или версия. Файл с инструкциями остаётся пожеланием.
Как устроен хук
Хантли переносит правило из текста в код. Схема короткая:
- Триггер: попытка сделать git commit.
- Проверка: скрипт читает git diff и ищет прямые вызовы модулей observability, которые обходят diagnostics-модуль.
- Реакция: при совпадении коммит падает.
- Обратная связь: в агента инжектится промпт с требованием использовать diagnostics library.
- Результат по оценке автора: десять из десяти.
Важна последняя связка. Отказ коммита без пояснений агент мог бы обойти случайным способом. Здесь же сообщение об ошибке одновременно говорит, что именно не так, и что делать. Агент получает исправление в момент, когда оно ему нужно, а не в начале сессии среди сотен строк контекста.
Проверка при этом детерминирована. Она не зависит от того, что модель «помнит» из AGENTS.md, и работает одинаково на любой модели и в любом агентном инструменте, который делает коммиты через git.
Как применить у себя
Вывод из подхода Хантли инженерный. Правила для агентов делятся на две группы: те, что можно проверить механически, и те, что нельзя. Первые стоит переносить в хуки, линтеры и CI. Вторые, например архитектурный вкус или нюансы предметной области, остаются в AGENTS.md.
Кандидаты на перенос видны сразу: запрет прямых вызовов в обход внутренней обёртки, обязательный логгер, единый способ работы с конфигами, запрещённые зависимости. Если нарушение находится регулярным выражением или разбором diff, оно не должно жить в текстовой инструкции.
Несколько оговорок, которые стоит учесть самому (это мои соображения, в цитате их нет):
- Текст ошибки пишите как промпт: что найдено, почему нельзя, чем заменить.
- Локальный хук можно обойти флагом --no-verify, поэтому ту же проверку разумно продублировать в CI.
- Следите за ложными срабатываниями: если хук блокирует легитимные коммиты, агент начнёт «лечить» код вокруг проверки, а не по существу.
- Ведите счётчик срабатываний. Он покажет, какие правила агент нарушает чаще всего, и заодно даст ту метрику, которой не хватает оценке «10/10».
Теги записи у Уиллисона, agentic-engineering и coding-agents, точно описывают направление. Инженерия вокруг агента, то есть хуки, проверки и обратная связь, начинает значить не меньше, чем подбор модели.
Делегируйте ресёрч, код и рутину автономному AI-агенту
Интеллектуальная агентная среда NomadNet Agent (agent.nomadnet.ai) выполняет многошаговые задачи: глубокий веб-ресёрч, анализ данных, написание кода и автоматизацию браузера.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.