第5集:核心差异(3)——Hooks 事件钩子深拆
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)
(申请发送: agentupdate)
Hooks(钩子)允许你在 AI 执行任务的关键节点自动插入自定义脚本。这是实现“硬约束”和“自动化流”的最强工具。
1. 事件覆盖面对比
| 事件类型 | Claude Code | Gemini CLI | Antigravity |
|---|---|---|---|
| 工具调用前/后 | ✅ | ✅ | ❌ |
| 会话启动/结束 | ✅ | ✅ | ❌ |
| 回复生成后 | ✅ | ✅ | ❌ |
| 模型推理前/后 | ❌ | ✅ 独有 | ❌ |
| 上下文压缩前 | ✅ | ✅ | ❌ |
- Gemini CLI 是粒度之王:它拥有独有的
BeforeModel和BeforeToolSelection钩子。这意味着你可以在 AI 决定调用工具之前,先运行脚本修改它的上下文或约束它的选择。 - Antigravity 的短板:它原生不支持任何事件钩子,所有的流程必须通过规则文件引导,属于“软约束”。
2. 实战场景:安全拦截
在 Claude Code 或 Gemini CLI 中,你可以编写一个 PreToolUse 钩子:
- 当 AI 试图运行
rm -rf命令时。 - 钩子脚本被触发,通过退出码 (exit code) 拦截该操作。
- 提示用户手动确认。
3. 示例代码 (Gemini CLI Hook)
"hooks": {
"BeforeTool": {
"command": "bash",
"args": ["scripts/security-check.sh"],
"matcher": "Bash"
}
}
💡 总结
如果你需要构建一个高度受控、具备自动化合规检查的 AI 工作站,Claude Code 或 Gemini CLI 的 Hooks 系统是不可或缺的。Gemini CLI 提供的模型层钩子甚至允许你观察和干预 AI 的思考过程。