跳转到内容

什么时候应该用 Hooks,什么时候不要用

什么时候应该用 Hooks,什么时候不要用

Section titled “什么时候应该用 Hooks,什么时候不要用”

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。
  • 明确的构建和检查命令。
  • 团队安全规则。

这时再加 Hooks,价值更高。

场景 1:你只是想让 Codex 更听话

Section titled “场景 1:你只是想让 Codex 更听话”

不要用 Hooks 解决模糊要求:

让 Codex 更认真。

应该改进任务描述和验收标准。

如果一个流程还在试错,不要直接做成 Hook。

先用提示词和 Skill 跑稳定。

教程结构适合 Skill,不适合 Hook。

项目说明适合 AGENTS.md

如果一个 Hook 的命令你看不懂,不要信任。

先问 Codex:

请解释这个 Hook 会在什么事件触发,会执行什么命令,可能有什么风险。不要信任,也不要运行。

场景 6:Hook 需要高权限但收益不明确

Section titled “场景 6:Hook 需要高权限但收益不明确”

高权限 Hook 要非常谨慎。

如果收益只是“可能方便一点”,先不要配。

配置任何 Hook 前,都要知道:

  • 它在哪里。
  • 怎么禁用。
  • 怎么撤销信任。
  • 怎么排查失败。

不知道就先不配。

每次准备配置 Hook 前,先问:

  1. 这是提醒、流程,还是必须自动执行的检查?
  2. 当前提示词能不能解决?
  3. AGENTS.md 能不能解决?
  4. Skill 能不能解决?
  5. 是否真的需要在工具调用前后触发?
  6. Hook 会执行什么命令?
  7. 命令是否只读或低风险?
  8. Hook 来自用户级还是项目级?
  9. 项目是否可信?
  10. 我能不能解释如何关闭它?

如果你答不上第 6、7、10 条,不要配。

推荐提示词:判断是否需要 Hooks

Section titled “推荐提示词:判断是否需要 Hooks”

可以复制:

请帮我判断下面这个需求是否适合用 Codex Hooks。
需求:
【写你的需求】
要求:
1. 判断它更适合当前提示词、AGENTS.md、Skill、MCP、config.toml 还是 Hooks。
2. 如果适合 Hooks,请说明应该在哪个生命周期事件触发。
3. 判断它应该用户级还是项目级。
4. 判断第一次应该做只读、低风险还是高风险 Hook。
5. 如果不适合 Hooks,请说明原因。
6. 不要创建或修改任何配置。
请帮我审查下面这个 Codex Hook。
Hook 配置或命令:
【粘贴 hooks.json 片段或命令】
要求:
1. 解释它在哪个事件触发。
2. 解释 matcher 会匹配什么。
3. 解释它会执行什么命令。
4. 判断是否会读取、修改、删除文件,或访问网络。
5. 判断是否适合信任。
6. 如果有风险,请给出不运行的替代方案。
7. 不要执行这个 Hook。

读完后你应该能判断:

  1. 什么时候提示词就够。
  2. 什么时候用 Skill。
  3. 什么时候才需要 Hooks。
  4. 为什么看不懂 Hook 命令不能信任。
  5. 配 Hook 前必须问哪几个安全问题。

下一篇看:第一次查看和审查 Hooks