乐于分享
好东西不私藏

AI Agent最强能力 Hooks 钩子彻底火了

AI Agent最强能力 Hooks 钩子彻底火了
Hooks(钩子)是AI编程工具中的一种自动化触发器。当AI完成任务(如生成代码、提交代码、运行命令)时,Hooks会自动执行预设的脚本或者检查流程。目前各主流AI编程工具都支持Hooks,如Claude Code、Codex,Hooks可以用来:
  • 代码生成后自动运行格式化工具
  • 文件修改后自动执行测试
  • 权限请求时自动判断是否安全并批准
  • 提交代码前自动检查代码规范
Hooks让你的AI工作流更加自动化,减少手动操作,需要注意的是,Hooks配置不当可能会阻塞AI的正常工作流程,建议现在小范围测试,确认没问题再推广到整个项目。

Hooks 的四种类型

可以通过以下四种方式来处理触发的 Hook 事件:

  • Command Hooks (command):最常用。运行一个本地的 Shell 命令。它会通过 stdin 接收事件的 JSON 数据。

  • HTTP Hooks (http):向指定的 URL 发送一个 HTTP POST 请求,将事件 JSON 作为 Payload 传给你的 Web 接口。

  • MCP Tool Hooks (mcp_tool):调用已经连接的 MCP(Model Context Protocol)服务器上的工具。

  • Prompt Hooks (prompt) / Agent Hooks (agent):将事件传给另一个单一的 Claude 模型或子智能体(Subagent)进行评估拦截。

代码编辑后自动运行 Prettier 格式化

利用 PostToolUse 事件,当 Claude 调用 Edit 或 Write 工具成功修改代码后,自动使用 jq 解析文件路径并运行 prettier,JSON配置:

{  "hooks": {    "PostToolUse": [      {        "matcher": "Edit|Write|MultiEdit",        "hooks": [          {            "type": "command",            "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"          }        ]      }    ]  }}

任务结束时触发系统通知

当你让Claude跑一个耗时很长的长任务时,你可能会离开座位。配置 Notification或Stop事件,让它在结束时给你的手机或电脑弹窗,JSON配置:

{  "hooks": {    "Notification": [      {        "matcher": "",        "hooks": [          {            "type": "command",            "command": "osascript -e 'display notification \"Claude 需要你的介入!\" with title \"Claude Code\"'"          }        ]      }    ]  }}

利用 PreToolUse 保护核心文件不被 AI 修改

如果你不希望 AI 动你的 prod.env 配置文件,可以设置拦截,JSON配置:

{  "hooks": {    "PreToolUse": [      {        "matcher": "Write|Edit",        "hooks": [          {            "type": "command",            "command": "node -e \"const input = require('fs').readFileSync(0, 'utf-8'); if(input.includes('prod.env')) { console.log(JSON.stringify({ decision: 'block', reason: '禁止修改生产环境配置文件!' })); process.exit(1); }\""          }        ]      }    ]  }}

Codex Hooks 官方文档地址:

https://developers.openai.com/codex/hooks?utm_source=chatgpt.com

Claude Code Hooks 官方文档地址:

https://code.claude.com/docs/en/hooks?utm_source=chatgpt.com

相关学习资料