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 前,先问:

  1. 这是提醒、流程,还是必须自动执行的检查?
  2. 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. 2. 如果适合 Hooks,请说明应该在哪个生命周期事件触发。

      3. 判断它应该用户级还是项目级。

      4. 判断第一次应该做只读、低风险还是高风险 Hook。

      5. 如果不适合 Hooks,请说明原因。

      6. 不要创建或修改任何配置。

      `

      `

      请帮我审查下面这个 Codex Hook。

      Hook 配置或命令:

      【粘贴 hooks.json 片段或命令】

      要求:

      1. 解释它在哪个事件触发。
      2. 2. 解释 matcher 会匹配什么。

        3. 解释它会执行什么命令。

        4. 判断是否会读取、修改、删除文件,或访问网络。

        5. 判断是否适合信任。

        6. 如果有风险,请给出不运行的替代方案。

        7. 不要执行这个 Hook。

        ``

        读完后你应该能判断:

        1. 什么时候提示词就够。
        2. 2. 什么时候用 Skill。

          3. 什么时候才需要 Hooks。

          4. 为什么看不懂 Hook 命令不能信任。

          5. 配 Hook 前必须问哪几个安全问题。

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