作者:互联网 时间: 2026-09-02 17:39:56
通过规则(Rules)和钩子(Hooks),你可以自定义 Codex 的行为,使其更好地适应你的工作流程。本节详细介绍这两个功能。

规则允许你为 Codex 定义自定义的行为指南,应用于所有对话。
Codex 从以下位置加载规则:
~/.codex/rules/ - 用户级别规则{项目}/.codex/rules/ - 项目级别规则# 我的编码规则## 代码风格
- 使用 4 空格缩进
- 每行最多 100 个字符
- 始终使用 const/let,不使用 var
## 注释规范
- 公共函数必须包含 JSDoc 注释
- 复杂逻辑添加行内注释说明
- 删除所有调试用的 console.log
## 测试要求
- 所有新功能必须包含测试用例
- 测试文件命名:*.test.js 或 *.spec.js
## Git 提交
- 提交信息使用Conventional Commits格式
- 提交前运行 lint 和测试
[features]codex_hooks = true
规则会被注入到每个对话的系统提示中,确保 Codex 始终遵循你的编码规范。
钩子允许你在特定事件发生时执行自定义操作。
钩子在 ~/.codex/hooks.json 中配置:
{"hooks": [
{
"event": "on_tool_call",
"match": "shell",
"action": "allow"
},
{
"event": "on_task_complete",
"action": "notify",
"command": "echo 'Task completed'"
}
]
}
| 事件 | 说明 |
|---|---|
on_tool_call | 工具调用前触发 |
on_task_start | 任务开始时触发 |
on_task_complete | 任务完成时触发 |
on_error | 发生错误时触发 |
on_message | 收到消息时触发 |
| 操作 | 说明 |
|---|---|
allow | 允许操作继续 |
deny | 阻止操作 |
notify | 发送通知 |
log | 记录日志 |
custom | 执行自定义脚本 |
启用钩子功能需要设置 [features].codex_hooks = true每次 Codex 修改文件后自动运行测试:
{"hooks": [
{
"event": "on_tool_call",
"match": "edit_file",
"action": "custom",
"command": "npm test",
"timeout": 60
}
]
}
在提交前强制进行代码审查:
{"hooks": [
{
"event": "on_tool_call",
"match": "git_commit",
"action": "custom",
"command": "/review",
"require_approval": true
}
]
}
记录所有命令执行:
{"hooks": [
{
"event": "on_tool_call",
"match": "shell",
"action": "log",
"log_file": "/tmp/codex-commands.log"
}
]
}
| 特性 | 规则 | 钩子 |
|---|---|---|
| 作用时机 | 对话开始时 | 事件触发时 |
| 主要用途 | 定义编码规范 | 自动化操作 |
| 配置位置 | rules/ 目录 | hooks.json |
规则和钩子可以结合使用:规则定义"怎么做",钩子定义"什么时候做"。
过度使用钩子可能会影响 Codex 的性能,只添加真正需要的钩子。
确保规则文件在正确的位置,并启用了 codex_hooks 特性。
这取决于钩子配置,某些钩子失败会阻止后续操作。
是的,可以通过配置文件或环境变量控制。