Codex 规则与 Hooks:自动化工作流与触发器
2026-08-22 14:32:18阅读 5
Codex 干活时,有些事你希望它"每次自动做"——跑完任务发个通知、改动前先跑 lint、大动作前停下来问一句。这就是规则(Rules)和 Hooks(钩子)的用武之地。通俗讲:Rules 是"卡点",Hooks 是"扳机"。
先说清两个概念
| 是什么 | 类比 | |
|---|---|---|
| Rules(规则) | 限制 Codex 行为的约束 | 红绿灯:这不能做、那要停 |
| Hooks(钩子) | 在特定时机自动触发的动作 | 门铃:某个时刻响了就去开门 |
- Rules:让 Codex"有边界"——哪些操作要审批、哪些要跳过
- Hooks:让 Codex"会联动"——任务完成后通知你、改动前跑检查
Rules:给 Codex 装"卡点"
规则本质是行为约束,最常见的形态是"命令审批规则":某类命令必须经你批准才能执行。
# 例子:高危命令必须审批
[command_allowlist]
# 只允许安全命令直接跑关键认知:规则不是"教 Codex 怎么做",是"拦住不该做的"。想让它懂项目约定,那是 AGENTS.md 的活(见项目指令篇);想让它干活有边界,才用规则。
Hooks:给 Codex 装"扳机"
钩子在特定生命周期节点触发外部动作。常见场景:
| 场景 | Hook 时机 |
|---|---|
| 任务完成发通知(Slack/邮件) | 会话结束 |
| 改文件前先跑 lint/格式化 | 文件写入前 |
| 危险命令执行前人工确认 | 命令执行前 |
| 任务开始记录日志 | 会话开始 |
配置思路(示意):
[hooks]
# 某个生命周期节点挂一个外部命令
"SessionEnd" = ["notify-slack.sh"]注意:官方文档提醒过配置 hooks 时"同一层里别同时写"同类配置,容易冲突——按官方参考来配,别想当然叠加。
实际组合:让 Codex"有规矩地自动干"
最实用的玩法是把两者叠加:
规则拦住危险操作 + 钩子自动跑安全流程 + AGENTS.md 定项目规矩举个例子:提交前自动格式化 + 删除操作必须审批 + AGENTS.md 规定提交信息格式——三层配合,Codex 既高效又可控。
常见问题
| 问题 | 解答 |
|---|---|
| 规则和权限模式啥关系? | 权限模式是大边界,规则是细粒度约束,配合用(见权限与安全篇) |
| 钩子写错了会怎样? | 可能影响 Codex 启动/运行,改前备份配置 |
| 只想"通知我"需要写代码吗? | 钩子一般指向外部命令/脚本,看场景简单与否 |
一句话总结
Rules 管"不能做什么",Hooks 管"什么时候自动做什么"。 两个都用上,Codex 就从"你盯着它干活"变成"它守规矩地自己干"。
接下来读什么
- 大任务拆给多个 agent → 子代理 Subagents
- 权限边界 → 权限与安全篇
← 上一篇:4.4 config.toml 配置详解 | 下一篇:4.6 子代理 Subagents →
↑ 返回 教程总目录



