HoRain云--Codex 规则与钩子

🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
|
专栏名称 |
专栏介绍 |
|
本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 |
|
|
本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! |
|
|
全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 |
|
|
本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 |
|
|
本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 |
|
|
本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录

通过规则(Rules)和钩子(Hooks),你可以自定义 Codex 的行为,使其更好地适应你的工作流程。本节详细介绍这两个功能。
规则(Rules)
规则允许你为 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 始终遵循你的编码规范。
钩子(Hooks)
钩子允许你在特定事件发生时执行自定义操作。
钩子文件位置
钩子在 ~/.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
实战示例
示例 1:自动运行测试
每次 Codex 修改文件后自动运行测试:
自动测试钩子
{
"hooks": [
{
"event": "on_tool_call",
"match": "edit_file",
"action": "custom",
"command": "npm test",
"timeout": 60
}
]
}
示例 2:强制代码审查
在提交前强制进行代码审查:
代码审查钩子
{
"hooks": [
{
"event": "on_tool_call",
"match": "git_commit",
"action": "custom",
"command": "/review",
"require_approval": true
}
]
}
示例 3:记录日志
记录所有命令执行:
日志钩子
{
"hooks": [
{
"event": "on_tool_call",
"match": "shell",
"action": "log",
"log_file": "/tmp/codex-commands.log"
}
]
}
规则与钩子的区别
| 特性 | 规则 | 钩子 |
|---|---|---|
| 作用时机 | 对话开始时 | 事件触发时 |
| 主要用途 | 定义编码规范 | 自动化操作 |
| 配置位置 | rules/ 目录 | hooks.json |
规则和钩子可以结合使用:规则定义"怎么做",钩子定义"什么时候做"。
最佳实践
规则最佳实践
- 保持规则简洁明了
- 避免过于严格的限制
- 根据项目需求调整规则
钩子最佳实践
- 避免长时间运行的钩子
- 设置合理的超时时间
- 测试钩子行为
过度使用钩子可能会影响 Codex 的性能,只添加真正需要的钩子。
常见问题
Q: 规则不生效?
确保规则文件在正确的位置,并启用了 codex_hooks 特性。
Q: 钩子执行失败会阻止操作吗?
这取决于钩子配置,某些钩子失败会阻止后续操作。
Q: 可以动态启用/禁用规则吗?
是的,可以通过配置文件或环境变量控制。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
更多推荐



所有评论(0)