Как заставить ИИ-агента включать нужные навыки: Claude Code hooks
У ИИ-агента может быть хорошая память, набор навыков, доступ к проекту и понятные правила. Но есть неприятная практическая проблема: агент не всегда сам понимает, что конкретный навык нужно включить прямо сейчас.
Например, вы просите поправить статью. В проекте уже есть навык для публикации, проверка текста, правила SEO и запрет на служебные строки в теле статьи. Но агент может начать писать сразу, а вспомнить про ревью только в конце. Для человека это выглядит как "он же знал, почему не применил". Для системы это другой вопрос: где стоит gate перед началом работы?
Claude Code hooks как раз интересны не как очередная настройка, а как способ поставить маленький обязательный шаг перед действием. Hook может сработать на событие, например перед отправкой пользовательского запроса в агентный контур, и добавить инструкцию: сначала проверь доступные навыки, правила проекта и риск задачи, потом работай.
Что такое hook простыми словами
Hook - это автоматическая реакция на событие в рабочем процессе. В Claude Code hook можно привязать к моменту, когда пользователь отправляет запрос, когда агент собирается вызвать инструмент или когда завершается действие. В документации есть разные события и варианты команд, но для навыков особенно понятен сценарий UserPromptSubmit: пользователь только отправил задачу, агент еще не начал действовать.
Именно в этот момент удобно поставить проверку:
- какая это задача;
- какие навыки есть в проекте;
- какие из них обязательны;
- какие правила нельзя нарушать;
- нужна ли проверка перед публикацией, отправкой, удалением или изменением данных.
В источнике из нашего журнала был пример скрипта skill-forced-eval-hook.sh, который заставляет агента явно оценить навыки перед работой. Сам скрипт можно написать по-разному, но идея важнее реализации: если навык критичен, он должен быть частью входного контроля, а не надеждой на внимательность.
Почему это не просто "напоминалка"
Обычная инструкция в проекте работает как текст на стене. Агент может ее прочитать, а может утонуть в задаче, особенно если контекст большой. Hook работает ближе к турникету: пока не пройдена короткая проверка, процесс не должен идти дальше.
Это особенно полезно в четырех случаях.
| Ситуация | Что часто ломается | Что дает hook |
|---|---|---|
| В проекте много навыков | агент выбирает общий путь | просит явно выбрать подходящий навык |
| Есть опасные действия | агент слишком быстро запускает команду | напоминает о ревью, dry-run или подтверждении |
| Есть правила публикации | служебные поля попадают в публичный текст | требует отделить тело статьи от SEO и логов |
| Есть повторяемый процесс | каждый раз вспоминают вручную | превращает правило в постоянный шаг |
В этом смысле hooks полезны и для разработчика, и для редакции, и для контент-завода. Они не делают агента умнее сами по себе. Они делают начало работы менее случайным.
Какой навык отсюда собрать
Главный навык: описывать не только задачу, но и входной фильтр перед задачей.
Если агент должен писать статью, входной фильтр может сказать: проверь источники, не клади SEO в тело статьи, после черновика запусти ревью. Если агент должен менять код, фильтр может сказать: найди тесты, прочитай локальные правила, не трогай чужие изменения. Если агент должен отправлять посты, фильтр может сказать: не отправляй напрямую, передай задачу в очередь.
Хороший hook отвечает на три вопроса:
- Что агент обязан вспомнить до начала работы.
- Что агенту запрещено делать без проверки.
- Какой артефакт должен остаться после работы.
Для Claude Code это может быть маленькая команда в настройках. Для другой системы это может быть preflight-подсказка, локальный скрипт, policy-файл или первый шаг в очереди задач. Форма меняется, смысл остается.
Мини-шаблон для своего проекта
Начать можно без сложной архитектуры. Достаточно сформулировать один preflight-текст:
Перед началом работы определи тип задачи, проверь доступные навыки проекта, выбери обязательные, назови рискованные действия и только после этого переходи к выполнению.
Потом этот текст можно перенести в hook, project instruction или локальный агентный шаблон. Важно не копировать чужой скрипт вслепую, а собрать свой маленький контракт: какие навыки есть, когда они обязательны, что считается ошибкой.
Рабочая карточка:
Что это меняет в работе с агентами
| Поле | Что записать |
|---|---|
| Когда использовать | Когда агент часто забывает навык, ревью или правило проекта |
| Что подать на вход | Список навыков, правила безопасности, типы задач |
| Что сделать | Поставить preflight-проверку перед началом работы |
| Как проверить качество | Агент явно выбирает навык до выполнения, а не после ошибки |
| Когда не использовать | Для случайных экспериментов, где жесткий процесс только мешает |
Мы часто думаем об ИИ-агентах как о "модели, которая умеет больше". Но на практике полезность часто появляется не от большей модели, а от меньшего количества случайных пропусков.
Hooks дают простой урок: если действие важно, оно должно стоять в процессе. Не в памяти человека, не в надежде на внимательность агента, не в длинном документе на двадцатой странице, а прямо перед началом работы.
Для маленького проекта это дисциплина. Для агентной фабрики это уже инфраструктура: навык выбирается до действия, проверка запускается до публикации, очередь получает задачу после ревью, а не когда пользователь заметил ошибку в ленте.
Источники: