サブエージェントの起動・終了をフックしたい
11. フックコマンド / 機能
SubagentStart / SubagentStopサブエージェントのライフサイクル
概要
SubagentStart はサブエージェントが起動した時、SubagentStop は完了した時に発火します。エージェントタイプ名でマッチングでき、特定のエージェントの前後処理を実装できます。
設定例
// .claude/settings.json
{
"hooks": {
"SubagentStart": [
{
"matcher": "code-reviewer",
"hooks": [
{
"type": "command",
"command": "echo 'コードレビュー開始' >> ~/.claude/agent.log"
}
]
}
],
"SubagentStop": [
{
"hooks": [
{
"type": "command",
"command": "echo 'サブエージェント完了' >> ~/.claude/agent.log"
}
]
}
]
}
}こんな時に使う
- 特定のサブエージェントの実行をログに記録したい時
- サブエージェント起動前に環境を準備したい時
- サブエージェント完了後にクリーンアップしたい時
使い方
- 1hooks.SubagentStart / hooks.SubagentStop にフックを定義
- 2matcher にエージェント名を指定(省略で全エージェント)
- 3SubagentStop の decision で次のアクションを制御可能
Tips
- matcher なしで全サブエージェントを対象にできる
- フックはメインセッションで動作する(サブエージェント内ではない)