Обучение · Агенты и вайб-кодинг

Глава 13. Хуки и детерминированные гарантии

Правило можно проигнорировать. Скилл можно не загрузить. А способ гарантировать, что шаг реально произойдёт, ровно один: сделать так, чтобы его выполняла не модель.

Это и есть хук.

ЧТО ТАКОЕ ХУК Хук это твой код, который система запускает сама в нужный момент. Не когда модель соблаговолит, а по событию. Событий обычно несколько: перед вызовом инструмента, после вызова, при старте сессии, при завершении задачи, перед сжатием контекста. Вешаешь на событие маленькую программу, и она отрабатывает всегда, без вариантов. Слово утащили из обычного программирования, там так называют любую точку, куда можно вклиниться со своим кодом.

Три причины, по которым хуки выигрывают Он отрабатывает всегда. Вот это главное. Правило это текст, который влияет на вероятности, то есть иногда работает, а иногда хуй там. Хук это код, который просто работает.

Он бесплатный. Хук контекст не жрёт вообще. Правило жрёт на каждом ходу, молча и постоянно.

Он видит то, чего модель не видит. Хук смотрит на реальное состояние системы, а не на пересказ состояния, который модель себе напридумывала.

Цифра, которая продаёт идею лучше любых уговоров, взята из практики восстановления после сжатия контекста. Инструкция вида после сжатия перечитай такие-то документы срабатывала примерно никогда. Тот же самый шаг, повешенный хуком, отрабатывает в восьми случаях из десяти. Разницу видно невооружённым глазом.

ГЛАВНОЕ ПРО ХУКИ Хуки нужны там, где есть процесс. Нет процесса, значит они нахуй не нужны, и не надо себе врать. Это не отговорка, а рабочий критерий. Не можешь назвать событие, после которого должен произойти шаг, значит тебе нужен не хук, а внятная постановка задачи. Хук поверх каши даст кашу по расписанию.

Что на них вешают Список того, что реально висит у людей в проде.

Хуки и детерминированные гарантии

Событие Что делает хук Что закрывает

Перед вызовом инструмента Запрещает поиск по тексту там, Забывчивость модели где есть индекс

Перед вызовом инструмента Блокирует чтение файлов с се- Обход правила кретами

Старт сессии Обновляет индексы, подтягивает Работу по протухшим данным контекст проекта

После сжатия Восстанавливает состояние и пе- Переделывание сделанного речитывает ключевое

Отправка изменений Гоняет проверку на опасные пат- Упрощения, вросшие в код терны

Завершение задачи Пишет отчёт, шлёт уведомление Молчаливый отказ

Механика ошибки тут важнее самого запрета, и на этом спотыкаются все подряд. Скрипт не должен просто говорить нельзя. Он должен вернуть текст ошибки прямо в сессию: вот что не так, вот почему. Модель это видит, понимает причину и меняет поведение. А молчаливый отказ приводит к тому, что агент коноёбится вслепую и с третьей попытки изобретает обход.

Хук вместо простыни в правилах Отдельный случай, который стоит выделить. Инструкции вида после X сделай Y работают ровно до тех пор, пока цепочка линейная и короткая. Как только это превращается в граф, инструкция разрастается в невъебенную простыню, и модель применяет её через раз, по настроению.

Хук здесь выигрывает дважды: контекст не занимает и не зависит от того, вспомнила модель про правило или забила. А совсем пиздато выходит, когда X это внутреннее событие системы, о котором модель вообще ни сном ни духом.

Лишние ветвления как повод для хука Классическая болезнь агентского кода: защитные проверки на всякий случай.

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

Ответ, к которому пришли практики: проверка на коммит, которая ищет опасные паттерны. Не вежливая просьба не делай так, а автоматический проход, который просто не пропускает, и хоть ты тресни.

Хуки и детерминированные гарантии

КАК ЗАКРЫВАТЬ ПОВТОРЯЮЩУЮСЯ ОШИБКУ

Агент раз за разом делает одно и то же не так

Написать в правила ещё раз Повесить проверку на событие

жрёт контекст, работает через раз не жрёт ничего, работает всегда

Когда хуки нахуй не нужны Честная противоположная позиция, её высказывали не раз и по делу.

Современные модели держат правила заметно лучше, чем год назад. Люди, которые раньше вешали хуки на перечитывание документов после сжатия, сейчас без них живут спокойно, потому что проблема рассосалась сама.

И мысль пошире: нет процесса, значит хуки будут ритуалом. Навесишь проверок на события, которые ни о чём не говорят, и получишь торможение без единого грамма выигрыша. Красиво, дорого, бесполезно.

СКОЛЬКО АВТОМАТИКИ НУЖНО Минималист. Модели умные, обвязка устаревает быстрее, чем ты её достраиваешь. Раз в квартал отключай и смотри, стало ли без твоих хуков хуже. Половина окажется мёртвым грузом. Перестраховщик. По контексту хуки бесплатные, а цена пропущенного шага в проде такая, что обсуждать нечего. Вешай на всё, что критично, и спи спокойно. Разделяющий критерий. Обратимость. Шаг откатывается за минуту, живи без хука. Не откатывается ни хуя, ставь.

Память вместо хука не катит Соблазн понятный: зачем код, если можно просто сказать агенту запомни, что после такого-то шага надо делать то-то.

Ограничение, о котором лучше знать заранее, чем выяснять на живом проекте. Память объёмом больше пятнадцати-двадцати тысяч символов начинает сыпаться: агент помнит хуже, а обновление одного несчастного факта требует переписывания здорового куска текста.

Память для того, что меняется и что человек говорит своими словами. Хуки для того, что обязано отработать независимо от того, вспомнил кто-то или нет.

Правило, скилл или хук Сводка, по которой удобно раскидывать каждое новое требование.

Хуки и детерминированные гарантии

Если это Кладёшь в

Нужно знать всегда Правила

Нужно знать в конкретной ситуации Скилл с описанием ситуации

Должно отработать обязательно Хук

Меняется от разговора к разговору Память

Требует надёжного формата Код обвязки, а не текст

ТВОЙ ПЕРВЫЙ ХУК ЗА ПЯТНАДЦАТЬ МИНУТ 1. Вспомни ошибку, которую агент повторил больше трёх раз. 2. Назови событие, после которого её видно: вызов инструмента, коммит, конец задачи. 3. Напиши проверку, которая отвечает да или нет. Никаких оценок по шкале, это не конкурс красоты. 4. Верни текст ошибки в сессию, с объяснением причины, а не сухой отказ. 5. Убери из правил строку, которая пыталась закрыть это словами.

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

Что запомнить Хук отличается от правила ровно одним: он отрабатывает всегда. И контекст не жрёт.

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

Ошибку возвращай в сессию с объяснением, а не молча. Молча она породит обход.

Восстановление после сжатия хуком работает в восьми случаях из десяти, инструкцией примерно никогда.

Разделяющий критерий между хуком и правилом это обратимость шага.

И после установки хука вычищай из правил строку, которая делала то же самое словами. Две реализации одного требования разъедутся, бля буду.

← Скиллы: механика и жизненный цикл · оглавление · Инструменты и когда обвязка вредит →

Спросить книгу может любой, кто вошёл в Neuraldeep Hub: агент ищет ответ по тексту и приводит цитату со ссылкой на главу.