Hooks 很强,但不是越早用越好。
这一篇只解决一个问题:
``
这个需求到底该不该用 Hooks?
`
> 前置教程:Hooks 是什么,为什么不能一上来乱配
> 如果你还不清楚 Hooks 的风险边界,先看前置教程。
只有当你需要在 Codex 的关键动作前后做稳定、自动、可审查的检查时,才考虑 Hooks。
如果只是工作流程,优先用 Skill。
如果只是项目规则,优先用 AGENTS.md。
| 需求 | 更合适的方式 |
| ------------------ | --------- |
| 当前任务只改一个文件 | 当前提示词 |
| 项目里不要修改某个目录 | AGENTS.md |
| 修 Bug 时按固定步骤走 | Skill |
| 查询外部 issue 或文档 | MCP |
| Codex 每次请求权限时做额外审查 | Hooks |
| 工具调用后自动扫描敏感信息 | Hooks |
| 高风险命令执行前拦截或提示 | Hooks |
比如:
- 文件修改后扫描密钥。
- 命令执行前检查危险参数。
- 读取文件前检查是否涉及敏感目录。
这些如果只靠提示词,很容易漏。
场景 2:每次权限请求都要统一处理
Section titled “场景 2:每次权限请求都要统一处理”
比如 Codex 请求更高权限时,你希望自动输出:
- 请求来源。
- 要执行的命令。
- 为什么需要权限。
- 是否命中团队规则。
这类适合 PermissionRequest 相关 Hooks。
比如:
- 不能读取某些路径。
- 不能执行某些命令。
- 不能把某些文件发给外部工具。
如果这是团队硬规则,可以考虑 Hooks。
比如记录:
- 调用了哪些工具。
- 运行了哪些高风险命令。
- 哪些 Hook 拦截过操作。
这属于生命周期审计。
如果项目已经有:
- 清晰的 AGENTS.md
。 - 稳定的 Skills。
- 明确的构建 and 检查命令。
- 团队安全规则。
这时再加 Hooks,价值更高。
不适合 Hooks 的 7 类场景
Section titled “不适合 Hooks 的 7 类场景”
场景 1:你只是想让 Codex 更听话
Section titled “场景 1:你只是想让 Codex 更听话”
不要用 Hooks 解决模糊要求:
`
让 Codex 更认真。
`
应该改进任务描述 and 验收标准。
如果一个流程还在试错,不要直接做成 Hook。
先用提示词 and Skill 跑稳定。
教程结构适合 Skill,不适合 Hook。
项目说明适合 AGENTS.md。
场景 5:你看不懂 Hook 命令
Section titled “场景 5:你看不懂 Hook 命令”
如果一个 Hook 的命令你看不懂,不要信任。
先问 Codex:
`
请解释这个 Hook 会在什么事件触发,会执行什么命令,可能有什么风险。不要信任,也不要运行。
`
场景 6:Hook 需要高权限但收益不明确
Section titled “场景 6:Hook 需要高权限但收益不明确”
高权限 Hook 要非常谨慎。
如果收益只是“可能方便一点”,先不要配。
配置任何 Hook 前,都要知道:
- 它在哪里。
- 怎么禁用。
- 怎么撤销信任。
- 怎么排查失败。
不知道就先不配。
配 Hooks 前的 10 个问题
Section titled “配 Hooks 前的 10 个问题”
每次准备配置 Hook 前,先问:
- 这是提醒、流程,还是必须自动执行的检查?
- 判断它更适合当前提示词、AGENTS.md、Skill、MCP、config.toml 还是 Hooks。
- 解释它在哪个事件触发。
- 什么时候提示词就够。
2. 当前提示词能不能解决?
3. AGENTS.md 能不能解决?
4. Skill 能不能解决?
5. 是否真的需要在工具调用前后触发?
6. Hook 会执行什么命令?
7. 命令是否只读或低风险?
8. Hook 来自用户级还是项目级?
9. 项目是否可信?
10. 我能不能解释如何关闭它?
如果你答不上第 6、7、10 条,不要配。
推荐提示词:判断是否需要 Hooks
Section titled “推荐提示词:判断是否需要 Hooks”
可以复制:
`
请帮我判断下面这个需求是否适合用 Codex Hooks。
需求:
【写你的需求】
要求:
2. 如果适合 Hooks,请说明应该在哪个生命周期事件触发。
3. 判断它应该用户级还是项目级。
4. 判断第一次应该做只读、低风险还是高风险 Hook。
5. 如果不适合 Hooks,请说明原因。
6. 不要创建或修改任何配置。
`
`
请帮我审查下面这个 Codex Hook。
Hook 配置或命令:
【粘贴 hooks.json 片段或命令】
要求:
2. 解释 matcher 会匹配什么。
3. 解释它会执行什么命令。
4. 判断是否会读取、修改、删除文件,或访问网络。
5. 判断是否适合信任。
6. 如果有风险,请给出不运行的替代方案。
7. 不要执行这个 Hook。
``
读完后你应该能判断:
2. 什么时候用 Skill。
3. 什么时候才需要 Hooks。
4. 为什么看不懂 Hook 命令不能信任。
5. 配 Hook 前必须问哪几个安全问题。
下一篇看:第一次查看和审查 Hooks。