24 · Rules 与 Hooks:命令规则和生命周期自动化
Rules 如何控制沙箱外命令,Hooks 如何在生命周期节点运行确定性脚本,以及两者的配置、边界和组合方式。
Rules 和 Hooks 是两把「细粒度控制」的工具,一个管「什么能做什么不能做」,一个管「在关键时刻自动干点什么」。
「Rules」解决的是命令控制。你可以定义规则:哪些命令可以直接执行、哪些必须询问、哪些一律禁止。它比「权限档位」更细,能精确到「这一条命令」的级别。
典型用法是:把「危险命令」列入禁止或询问清单,把「安全命令」列入放行清单。这样日常操作不被打断,危险操作又有兜底。
「Hooks」解决的是「自动化」。它可以在 Codex 工作流的某些关键节点(比如任务开始前、结束后)自动运行你指定的脚本。
举例:你可以在「每次任务开始」时,自动跑一个检查脚本确认环境正常;在「任务结束」时,自动跑一遍测试。这些「确定性的、重复的」动作,交给 Hooks 最合适。
「边界」要划清:Rules 管的是「命令能不能跑」,Hooks 管的是「在什么时机自动跑什么」。两者定位不同,别混。
「组合」起来威力更大:用 Rules 保证安全底线,用 Hooks 保证流程自动化。一个守门,一个提效。
这两个功能都属于「进阶但值得学」的范畴。当你已经用熟了基础功能,想进一步「管住它、又让它更自动」时,回来把这一篇吃透。
常见误区:很多新手会把这一篇讲的「基本规则」当成「教条」——什么都严格遵守。其实这些规则的核心是「降低风险、提高效率」,理解了动机,规则就自然内化了,不用死记硬背。
五分钟练习:① 找一个一分钟能完成的代码任务 ② 用这一篇的方法描述给 Codex ③ 看它执行时有没有触发你刚学的那个机制 ④ 验证结果是否符合预期。这一轮做下来,你对这一篇的理解会深 3 倍。
延伸阅读:学完这一篇,你可以看本组里的下一篇,把相邻的概念连起来读;也可以跳到更后面的组学 MCP、子代理、Skills 这些更深的能力。知识是网状的,多跳几篇会理解更深。
复盘清单:每做完一个任务,可以花一分钟复盘——目标说清楚了吗?范围限定了吗?结果验证了吗?审查过 diff 了吗?下次哪里能更好?这 5 步能让你的 Codex 使用从「能用」进化到「好用」。