Хуки
Запускайте свои скрипты до или после действий Agent Nine.
Настройка
Создайте файл .agent-nine/hooks.json в проекте:
json
{
"hooks": [
{
"event": "pre_tool_use",
"match": { "tool_name": "bash" },
"command": "echo 'Сейчас будет выполнена bash-команда'",
"timeout_ms": 5000
},
{
"event": "post_tool_use",
"match": { "tool_name": "edit_file" },
"command": "npx prettier --write $FILE_PATH",
"timeout_ms": 10000
},
{
"event": "session_start",
"command": "echo 'Сессия началась $(date)' >> .agent-nine/log.txt"
}
]
}События хуков
| Событие | Когда срабатывает |
|---|---|
pre_tool_use | Перед выполнением любого инструмента |
post_tool_use | После завершения инструмента |
session_start | При начале новой сессии |
session_end | При закрытии сессии |
Фильтры
Хуки с match срабатывают только при совпадении фильтра:
json
{
"match": {
"tool_name": "bash",
"pattern": "npm *"
}
}Контекст
Хук-команды получают JSON-контекст через stdin:
json
{
"event": "pre_tool_use",
"tool_name": "bash",
"tool_input": { "command": "npm test" },
"session_id": "abc-123"
}Таймауты
- По умолчанию: 60 секунд
- Максимум: 10 минут
- Если хук не успевает, он завершается принудительно, и выполнение инструмента продолжается
