Open-ClaudeCode Hooks 机制深度解析:7类事件钩子让你的 AI 工作流全自动化

📅 发布时间:2026/8/27 17:24:44
Open-ClaudeCode Hooks 机制深度解析:7类事件钩子让你的 AI 工作流全自动化
Open-ClaudeCode Hooks 机制深度解析7类事件钩子让你的 AI 工作流全自动化【免费下载链接】Open-ClaudeCodeResearch archive of Claude Code source and runtime artifacts reconstructed from published npm source maps.项目地址: https://gitcode.com/gh_mirrors/op/Open-ClaudeCodeOpen-ClaudeCode 是 Claude Code 源码与运行时产物的研究归档其Hooks事件钩子机制是 AI 工作流自动化的核心能力你只需编写简单的脚本或提示规则就能在 AI 执行工具、提交提示、开始/结束会话等关键时刻自动介入——验证操作、拦截危险命令、注入上下文。本文将带你快速掌握 7 类事件钩子从原理到实战零门槛搭建全自动 AI 工作流。一、Hooks 是什么一句话看懂事件驱动自动化可以把 Hooks 想象成AI 工作流上的安检门每次 AI 要执行某个动作前或完成后系统会自动触发你预设的钩子脚本由你来决定——放行、拦截、还是补充信息。它的核心特点事件驱动钩子只在特定事件发生时执行平时零开销松耦合钩子以独立脚本存在不侵入 AI 主逻辑⚙️两种实现方式命令钩子Command跑确定性脚本和提示钩子Prompt用 LLM 做上下文判断钩子事件的完整定义可以在src/entrypoints/sdk/coreTypes.ts的HOOK_EVENTS常量中找到执行逻辑集中在src/utils/hooks.ts中。二、7 类核心事件钩子一览表钩子事件触发时机典型用途PreToolUse工具执行前审批/拦截/修改工具调用阻止危险命令PostToolUse工具执行后检查结果、记录日志、给 AI 反馈UserPromptSubmit用户提交提示词时注入上下文、校验或阻止提示SessionStart会话开始时加载项目上下文、设置环境变量SessionEnd会话结束时清理资源、保存状态、写日志Stop主代理准备停止时验证任务完整性不达标可叫停Notification发送通知时自定义通知行为如桌面提醒 此外还有PreCompact上下文压缩前、SubagentStop子代理停止时等扩展事件完整清单见src/entrypoints/sdk/coreTypes.ts。三、两步写出你的第一个钩子钩子配置写在.claude/settings.json中结构非常直观事件名 → 匹配规则matcher→ 钩子列表。第 1 步选择事件和匹配器。比如只监控文件写入类工具{ PreToolUse: [ { matcher: Write|Edit, hooks: [ { type: command, command: bash scripts/validate.sh } ] } ] }第 2 步编写钩子脚本。脚本通过 stdin 收到 JSON 输入含session_id、tool_name、tool_input等字段通过退出码和 stdout 输出决策退出码0放行stdout 显示在会话中退出码2阻断stderr 内容会反馈给 AI还可以输出 JSON 决定permissionDecision: allow | deny | ask对于需要理解语义的场景推荐使用 Prompt 型钩子——直接用自然语言描述判断规则无需写 bash{ type: prompt, prompt: Validate file write safety: system paths, credentials, path traversal. Return approve or deny. }完整的事件用法与输入输出格式参考plugins/plugin-dev/skills/hook-development/SKILL.md。四、零代码快捷方案Hookify 插件不想手写 JSON 配置项目内置的Hookify 插件可以用对话方式创建钩子/hookify Warn me when I use rm -rf commands它会自动分析你的需求生成一个轻量的 markdown 规则文件含 YAML frontmatter 和正则模式无需重启下一条工具调用立即生效。支持/hookify:list列出所有规则、随时启用/禁用。⚠️ 同一图片仅引用一次此处为强调说明Hookify 位于plugins/hookify/其命令入口见plugins/hookify/commands/hookify.md。五、3 个实用自动化场景1️⃣ PreToolUse 拦截危险命令在 Bash 工具执行前扫描输入发现rm -rf /、误删生产库等高危操作立即阻断并告知 AI 原因——这是最经典的AI 安全护栏。2️⃣ PostToolUse 自动质量检查每次代码编辑完成后自动触发 lint 或测试结果反馈给 AI让它立即修复问题形成改完即检的闭环。3️⃣ Stop 任务完整性验证AI 准备结束任务时由钩子验证测试跑过了吗构建成功了吗未达标则block并附理由强制 AI 继续工作直到真正完成。六、配置与部署要点用户级钩子写在.claude/settings.json事件名直接位于顶层直接格式插件级钩子写在hooks/hooks.json事件需包裹在hooks: {...}中包裹格式并使用${CLAUDE_PLUGIN_ROOT}变量引用插件目录企业部署可限制用户自定义钩子示例配置见examples/settings/README.md及其中的settings-strict.json钩子支持timeout字段防止脚本挂起拖慢会话七、小结从提示 AI到规则驱动Hooks 机制的本质是把你对 AI 的口头叮嘱变成确定性规则危险操作永远被拦截、项目上下文永远被加载、任务完成永远有验证。掌握 7 类事件钩子后你可以按需在 AI 工作流的每个关键节点埋下自动化节点——这正是 Open-ClaudeCode 从聊天工具进化为可靠工程伙伴的关键机制。上手路径建议先用/hookify创建一条拦截规则体验效果 → 再阅读plugins/plugin-dev/skills/hook-development/SKILL.md理解 Prompt 钩子 → 最后针对 PreToolUse / Stop 事件编写自己的命令钩子。【免费下载链接】Open-ClaudeCodeResearch archive of Claude Code source and runtime artifacts reconstructed from published npm source maps.项目地址: https://gitcode.com/gh_mirrors/op/Open-ClaudeCode创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考