本文作者:聪哥.sats(@congge918)。版权归作者所有,未经授权禁止转载。


继续分享 CodeX 保姆级教程系列,一起学习从小白成长为 Codex 大神。

第七节:如何管理使用 Hooks 以及让 AI 像人一样操控浏览器

上一节:如何用 Codex 实现自动化,以及设置桌面宠物。

👇错过的请看原文:

第一部分:如何管理和使用 Hooks

Hooks 用的好能把 Codex 调教成更稳定的工作助手,不是让 Codex「更聪明」,而是让它在关键动作上更稳定、更可控。

你可以用 Hook 在工具调用前后自动检查、记录、拦截或通知。

用一句话区分:AGENTS.md 负责说明规则,Skill 负责复用流程,Hook 负责把规则变成自动执行的检查。

哪些事情适合交给 Hook?

适合交给 Hook 的任务,通常有三个特点:规则明确、结果可判断、需要反复执行。

执行危险命令前进行检查;
修改文件前确认目录和分支;
记录 Codex 调用过哪些工具;
任务完成后发送桌面或聊天通知。

如果只是希望 Codex 记住一段项目背景,继续使用 AGENTS.md;如果是一套包含多步操作的工作流,使用 Skill,不要把长篇自然语言说明塞进 Hook。

Hooks 放在哪里?

用户级配置适合个人通用规则,例如全局安全检查和通知;项目级配置适合当前仓库专属的测试、格式化和目录保护规则。

项目级 Hooks 只有在项目受信任时才会加载,因此 Hook 没有生效时,先检查项目状态和 .codex/ 路径。

最实用的例子:执行 Bash 前先检查

这里的 PreToolUse 表示工具调用前触发,matcher 精确匹配 Bash,command 指向外部检查脚本。脚本可以检查命令是否涉及删除、覆盖、强制回滚或超出项目目录。

上面只是最小示例,实际使用时,建议优先采用「记录 → 警告 → 阻断」的渐进方式,不要一开始就拦截所有操作。

用 Hooks 提升日常使用效果

1⃣把高频检查自动化

例如每次修改代码前检查当前分支,每次执行命令前确认工作目录,每次任务结束后运行测试。这样可以减少重复提醒,也能降低 Codex 忘记规则的概率。

2⃣把风险动作单独管起来

不要对所有工具调用设置相同强度的限制。读取文件、运行测试和删除目录的风险不同,应优先保护删除、覆盖、密钥访问和强制 Git 操作。

3⃣先记录,再决定是否阻断

刚开始配置时,建议先让 Hook 只记录输入和结果,确认触发时机、字段和脚本行为后,再逐步加入警告和阻断。

4⃣给 Hook 设置超时

Hook 是外部程序,脚本卡住会拖慢 Codex。因此要设置 timeout,并保证脚本能够快速返回。

5⃣区分 Hook 和通知

如果只是想在 Codex 完成一轮任务后收到提醒,可以使用 notify:

reToolUse 管工具调用前的检查,notify 管任务完成等事件,不要把两者混成一个 Hook

推荐的管理方法:

  • 全局规则放在 ~/.codex/,项目规则放在仓库的 .codex/;
  • 一个 Hook 只负责一类事情,例如命令安全、日志或通知;
  • matcher 尽量精确,避免使用 .* 匹配所有工具;
  • 脚本和配置一起纳入版本管理,并为阻断规则准备测试;

遇到 Hook 不生效,先检查配置位置、项目是否受信任、格式是否正确,以及是否存在重复配置。

总之,Hooks 最适合做那些「不应该依赖模型记忆」的事情:检查、记录、拦截和通知。正确的使用方式不是给 Codex 加更多限制,而是把高频、明确、容易出错的环节交给程序自动处理。

建议大家先从一个简单的 Bash 命令检查 Hook 开始,先观察,再逐步增加规则。这样既能提升稳定性,也不会让 Codex 因为过度拦截而失去效率。

第二部分:如何让 AI 像人一样操控浏览器

通过 Codex ,我们是可以让 AI 替我们完成各种浏览器自动化操作的,例如「打开网页、点击按钮、填写表单、读取内容、截图验证」等操作。

第一步:先选对浏览器工具

个人比较推荐 @Chrome ,可以操作当前 Chrome 浏览器,适合已经登录的网站,例如:

  • Gmail
  • 社交媒体
  • 内容后台
  • CRM 系统

第二步:Chrome 扩展安装

ChatGPT 官方 Chrome 扩展安装与侧边栏授权界面
  • 直接打开 ChatGPT 官方 Chrome 扩展。
  • 安装后点击 Chrome 工具栏里的 ChatGPT 图标。
  • 确认侧边栏可以正常加载。

回到桌面端,检查 Settings > Computer Use > Google Chrome 是否显示已连接。

在 Codex 新建任务,通过 @Chrome 调用。

第一个任务怎么写?

不要只说「帮我操作浏览器」,要写清目标、范围和禁止事项。

Codex 中用 @Chrome 编写浏览器操作任务指令示例

例如:@Chrome 打开我当前登录的 Gmail。

查找最近 7 天主题包含「发票」的邮件,整理发件人、日期和邮件主题。

只读取,不打开附件,不回复、不转发,也不要修改邮件状态。

完成后返回结果,如果需要访问新域名或执行写入操作,先暂停并向我确认。

顺便给大家一个可参考使用的通用模板:

@Chrome 打开【网站或页面】。
目标:【要完成的结果】
范围:【允许执行的操作】
输出:【需要返回的字段、链接或截图】
禁止:【不要提交、发布、删除、付款或修改数据】
验收:【完成后需要核对的页面状态】
遇到验证码、二次验证、新域名或最终提交按钮时,立即暂停。

网站权限怎么设置

Chrome 扩展第一次访问新网站时,通常会提供四种选择:仅允许一次、始终允许该网站、允许所有网站或拒绝。

第一次使用建议选择「仅允许一次」,确认任务行为正常后,再把常用、低风险的网站加入允许列表。不要把「允许所有网站」设为默认选项。

涉及发帖、付款、删除或生产环境修改时,让 Codex 停在最终提交前,由你检查后再授权。浏览历史属于单独的敏感权限,每次使用都需要确认,不能永久允许。

本节到此结束,感兴趣的可以去跟着操作体验了。

建议关注并收藏,这是一个持续更新的 Codex 系列教程,从基础知识到高阶应用都会定期分享实用技巧,助力人人都能成为 Codex 大神。