Tailor Gemini CLI to your workflow with hooks
Gemini CLIにHooks機能が導入され、エージェントのライフサイクルにおける特定のポイントでカスタムスクリプトを実行可能になった。
これにより、プロジェクト固有のコンテキスト注入、セキュリティポリシーの適用、テストワークフローの自動化などが容易になる。
主な特徴:
- コンテキストの追加
- gitのコミットログやJiraチケットなどをリクエスト処理前に注入可能。
- アクションの検証
- 危険な操作(APIキーの書き込みなど)をブロックしたり、要件を満たすまで再試行させたりすることが可能。
- ポリシーの適用
- 組織全体のセキュリティ要件などを自動的に適用できる。
- ログと最適化
- ツール使用状況の追跡やモデル精度の向上に活用可能。
- 通知
- アイドル状態や確認待ちなどのステータス変更を通知可能。
活用例(シークレットスキャン): BeforeToolフックを使用することで、AIが誤って機密データをコードベースに書き込むのを防ぐことができる。
設定例(.gemini/settings.json):
json
{
"hooks": {
"BeforeTool": [
{
"matcher": "write_file|replace",
"hooks": [
{
"name": "secret-scanner",
"type": "command",
"command": "$GEMINI_PROJECT_DIR/.gemini/hooks/block-secrets.sh",
"description": "Prevent committing secrets"
}
]
}
]
}
}注意点: Hooksは同期的に実行されるため、処理が遅延するとエージェントの応答も遅れる点に注意が必要である。 実行にはユーザー権限が使用されるため、プロジェクトレベルのHooksを有効にする際はソースを確認することが推奨される。