Хуки
Хуки — действия, привязанные к событиям жизненного цикла агента: началу сессии, вызову инструмента, сжатию контекста. Список событий и где хранится конфиг.
Что это
Хук — это действие, которое WorkAI выполняет автоматически, когда в сессии происходит определённое событие: началась сессия, агент собирается вызвать инструмент, контекст сжимается. Вместо того чтобы каждый раз реагировать на такой момент вручную, вы один раз привязываете к нему действие — и дальше оно срабатывает само.
События
Ниже — события, на которые можно повесить хук. Набор зависит от формата конфигурационного файла.
| Событие | Когда срабатывает |
|---|---|
SessionStart | Сессия чата началась |
SessionEnd | Сессия чата завершилась |
UserPromptSubmit | Вы отправили сообщение агенту |
PreToolUse | Перед тем как агент вызовет инструмент |
PostToolUse | После того как инструмент отработал |
PreCompact | Перед сжатием контекста (см. Сжатие контекста) |
SubagentStart | Запустился субагент |
SubagentStop | Субагент завершил работу |
Stop | Агент закончил ход и вернул ответ |
Что можно делать
Хук позволяет выполнить команду перед определённым действием агента или после него, а также получить уведомление о событии жизненного цикла сессии — не вмешиваясь в то, как модель формирует ответ.
Фильтра по инструменту в конфиге нет: хук на PreToolUse запускается перед каждым вызовом инструмента, а нужный инструмент скрипт выбирает сам по полю tool_name.
Как работает команда хука
WorkAI передаёт команде на вход (stdin) JSON с описанием события: hook_event_name, workspace_roots, conversation_id, cwd; для UserPromptSubmit — текст сообщения в prompt, для PreToolUse — tool_name и tool_input, для PostToolUse — tool_name и tool_output.
- Запретить действие (
PreToolUse,UserPromptSubmit) — выйти с кодом2или вывести{"permission": "deny", "user_message": "почему"}. - Разрешить — выйти с кодом
0без вывода. agent_messageпередаёт агенту заметку,updated_inputподменяет аргументы инструмента,followup_messageнаStopпродолжает работу этим сообщением.- Любой другой код выхода или превышение таймаута (по умолчанию 30 секунд) — ошибка хука: действие не блокируется. Если хук служит предохранителем, включите настройку
workai.hooks.failClosed— тогда сбой хука останавливает действие.
При первом запуске новой команды WorkAI спросит подтверждение; в недоверенной папке хуки не запускаются. Готовый хук по описанию словами собирает встроенная команда /create-hook.
Как настроить
Команда /hooks в чате открывает диалог настройки: он спрашивает, на какое событие реагировать и какую команду выполнить, и сохраняет результат в конфигурационный файл. Тот же мастер доступен из настроек WorkAI — пункт Хуки в списке разделов (он не открывает свой экран, а сразу вызывает этот диалог).
Где хранится конфиг
| Путь | Область действия |
|---|---|
.github/hooks | Проект |
.claude/settings.local.json | Проект, локальный файл (не для git) |
.claude/settings.json | Проект |
~/.copilot/hooks | Все проекты текущего пользователя |
~/.claude/settings.json | Все проекты текущего пользователя |
Дальше
- Как WorkAI сжимает контекст и на каком событии срабатывает
PreCompact— Сжатие контекста - Делегирование работы субагентам, чьи старт и завершение тоже видны хукам — Подагенты
- Где ещё в настройках лежат смежные разделы — Настройки