🎬 HoRain云小助手个人主页

 🔥 个人专栏: 《Linux 系列教程》《c语言教程

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

规则(Rules)

规则文件位置

规则文件格式

创建规则文件

启用规则

在配置中启用规则

钩子(Hooks)

钩子文件位置

创建钩子配置

可用事件

钩子操作

实战示例

示例 1:自动运行测试

自动测试钩子

示例 2:强制代码审查

代码审查钩子

示例 3:记录日志

日志钩子

规则与钩子的区别

最佳实践

规则最佳实践

钩子最佳实践

常见问题

Q: 规则不生效?

Q: 钩子执行失败会阻止操作吗?

Q: 可以动态启用/禁用规则吗?


img

通过规则(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 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐