Hooks
Hooks是一种事件驱动的自动化机制,通过监听特定触发事件(如文件保存、代码提交等)来自动执行预定义的操作或工作流。其核心特征包括:与开发流程深度集成、支持自定义触发条件与响应动作,以及无需人工干预即可完成测试、格式化、构建等任务。Hooks广泛应用于开发工具和IDE中,用于提升自动化程度和开发效率。
核心事实
时间轴 (近 90 天)
凡是涉及金钱、身份或安全的操作,不能仅靠提示词约束模型,必须在代码层面通过 hooks 强制执行,因为 Hooks 是保证而 Prompts 只是建议
Hooks 机制允许开发者在工具调用的生命周期节点插入自定义逻辑,是实现拦截与转换原始输出的关键手段
Hooks运行在模型之外,不消耗任何token
Hooks属于带外控制(out-of-band control),执行路径独立于LLM推理链路,行为不受输入内容影响
用代码钩子做硬性拦截比把安全规则放进prompt让模型自觉遵守更可靠,因为模型可能被绕过或产生幻觉
Hook与CLAUDE.md最关键的差别在于CLAUDE.md依赖模型自己判断,而Hook由Claude Code软体在背后强制触发
Hooks是Claude Code里一套由软体层面掌控的确定性机制,设定的时间点一到软体就会直接介入强制执行,而不依赖模型自己判断
Hook设定有专案层级与使用者层级之分,专案资料夹的设定只影响该专案,使用者主目录下的全局设定对所有专案生效
Handler目前有五种类型:Command、HTTP、MCP Tool、Prompt、Agent
每个Event支援的Handler类型不同,有些可用Prompt和Agent,有些只能用Command、HTTP
还有 8 条时间轴事件
全部知识事实 (20)
Hooks 是一种事件驱动的自动化触发机制,当特定操作完成时自动触发预设的后续动作
65%已验证Hooks采用按需加载(懒加载)设计,只在触发时才加载到上下文中,平时不占据上下文空间
65%已验证Gemini CLI的密钥扫描钩子能自动拦截包含硬编码API密钥的文件写入操作
65%待验证Plugin将Skills、Hooks和MCP配置打包成单个可安装包,新工程师安装后可立即拥有与资深同事相同的上下文和能力
90%待验证Hooks的stop hook可以在会话结束时反思发生了什么并提出CLAUDE.md更新建议,start hook可以动态加载团队特定的上下文
90%待验证Kiro提供Hooks开发钩子机制,将Git Hooks和CI/CD流水线的自动化能力与AI能力结合,在本地开发阶段触发
90%待验证Claude Code的Hooks机制是确定性的,每次都会执行,而Claude.md中的提示词指令是概率性的,可能被遗漏
85%待验证Hooks和Skills的核心区别在于:Skill是模型主动调用的拉模式(Pull),Hook是外部系统被动触发的推模式(Push)
85%待验证Claude Code的Hooks机制包括停止钩子(会话结束时自动提议更新CLAUDE.md)和启动钩子(自动加载最新上下文信息)
85%待验证Claude Code的Hooks系统提供29个事件钩子,借鉴了Git Hooks的事件驱动架构设计
80%待验证Claude Code的Hooks机制是AI完全无法绕过的硬性约束,可在AI行动链中设置强制检查点,防止因模型幻觉或误判导致的越权操作
80%待验证用好Hooks能减少大量不必要的返工,开发效率至少提升一倍
60%待验证Hooks是程序化的硬约束,通过事件驱动机制强制执行,不依赖模型的自觉性,比CLAUDE.md的软约束方式更可靠
60%待验证Claude Code Hooks中退出码0表示放行,退出码2表示硬拦截(AI不会重试),其他非零退出码表示软警告
60%待验证Claude Code的工具链(harness)由五个扩展点构建而成:CLAUDE.md文件、Hooks、Skills、Plugins、LSP集成与MCP服务器
60%待验证Kiro的两大核心功能是Specs(规范)和Hooks(开发钩子)
60%待验证Gemini CLI的钩子机制能在AI生成内容写入磁盘之前完成拦截,属于左移安全(Shift-Left Security)实践
60%待验证Gemini CLI通过三个关键特性解决AI编码控制问题:钩子(Hooks)、技能(Skills)和计划模式(Plan Mode)
60%待验证凡是涉及金钱、身份或安全的操作,不能仅靠提示词约束模型,必须在代码层面通过 hooks 强制执行,因为 Hooks 是保证而 Prompts 只是建议
50%待验证Hooks 机制允许开发者在工具调用的生命周期节点插入自定义逻辑,是实现拦截与转换原始输出的关键手段
50%