Перейти к содержимому
AI-агенты

Правило, навык или хук: куда положить инструкцию для Claude

Правило, навык или хук: куда положить инструкцию для Claude

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

Три слота и что каждый гарантирует

Файл контекста — это факты и предпочтения, которые нужны всегда. Он подаётся модели как обычное сообщение и читается в каждой сессии. Гарантия здесь вероятностная: модель почти всегда учитывает такое правило, но может не учесть, и чем длиннее файл, тем выше шанс.

Навык — это процедура. Файл SKILL.md с описанием, по которому агент понимает, когда навык уместен, и телом, которое загружается только при вызове. Гарантия та же вероятностная, но с важным плюсом: длинный материал не занимает контекст постоянно, а значит не разбавляет остальные правила.

Хук — это код, который выполняется на определённом событии независимо от решения модели. Гарантия детерминированная: если хук блокирует действие, действие не произойдёт, что бы модель ни решила.

Признак, по которому строку пора выносить

Раздел файла контекста превратился в последовательность шагов — ему место в навыке. Формулировка звучит как «сначала, затем, после этого», занимает больше десяти строк и нужна в одной задаче из двадцати: каждый раз, когда она лежит в файле, вы платите контекстом за то, чем почти не пользуетесь.

Другой признак: вы копируете один и тот же чеклист в чат руками. Это готовый навык, просто он пока живёт в вашем буфере обмена.

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

Почему запрет в файле контекста не запрет

Файл контекста не является настройкой доступа. Он не ограничивает набор инструментов и не проверяется перед выполнением действия — он лишь входит в текст, который читает модель. Модель, читающая «никогда не делай Х», в девяти случаях из десяти не делает Х. Десятый случай — тот, ради которого вы и писали правило.

Разница между «почти всегда» и «всегда» несущественна для стиля заголовков и критична для удаления данных. Поэтому разделение простое: обратимые последствия можно доверить правилу, необратимые — только механизму, который не зависит от решения модели.

Пять признаков, что инструкции разложены неправильно

Первый: файл контекста больше двухсот строк и в нём есть пошаговые процедуры. Второй: одно требование встречается в двух местах в разных формулировках — рано или поздно версии разойдутся. Третий: в файле есть запреты на необратимые действия и нет ни одного хука. Четвёртый: навык написан так, что его описание не позволяет понять, когда его вызывать, и агент не вызывает его сам. Пятый: правила проекта лежат в личном файле, поэтому переезжают вместе с вами в чужие проекты, где мешают.

Как переразложить за один вечер

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

Если работаете в облачном агенте, учтите ограничения на формат навыков и на то, что локальные файлы туда не доезжают: разбор в материале Cowork не видит локальные навыки. Тест на проверяемость для оставшихся строк — в материале Каждая строка меняет поведение.