Hooks
Hooks是一种事件驱动的自动化机制,通过监听特定触发事件(如文件保存、代码提交等)来自动执行预定义的操作或工作流。其核心特征包括:与开发流程深度集成、支持自定义触发条件与响应动作,以及无需人工干预即可完成测试、格式化、构建等任务。Hooks广泛应用于开发工具和IDE中,用于提升自动化程度和开发效率。
核心事实
时间轴 (近 90 天)
Hooks将「软性要求」转化为「硬性约束」,解决了大语言模型概率性遵从指令的固有缺陷,确保关键流程节点的确定性执行
Hooks 支持的事件类型包括 Session Start/Setup、User Prompt Submit、Pre-tool-use/Post-tool-use 和 Context Compaction
Git Hook 是 Linus Torvalds 在 2005 年设计 Git 时引入的机制,允许在 commit、push 等操作前后自动执行脚本
全部知识事实 (20)
Hooks采用按需加载(懒加载)设计,只在触发时才加载到上下文中,平时不占据上下文空间
65%已验证Claude Code内置了Hooks(自动触发机制),支持事件驱动的自动化工作流
65%待验证Hooks的执行分为同步和异步两种模式,同步模式会阻塞主流程直到执行完毕,异步模式在后台运行不阻塞主对话流程
90%待验证Hooks 系统包含四种类型:Command、HTTP、Prompt(使用 Haiku 模型)和 Agent
90%待验证Claude Code Hooks 被文章作者认为是一个被严重低估的功能
90%待验证Claude Code Hooks中退出码0表示放行,退出码2表示硬拦截(AI不会重试),其他非零退出码表示软警告
90%待验证Claude Code的Hooks机制是确定性的,每次都会执行,而Claude.md中的提示词指令是概率性的,可能被遗漏
85%待验证Hooks和Skills的核心区别在于:Skill是模型主动调用的拉模式(Pull),Hook是外部系统被动触发的推模式(Push)
85%待验证Hooks在Claude的推理过程之外运行(在宿主操作系统层面执行shell脚本),不消耗任何上下文token,对上下文窗口零成本
85%待验证Claude Code 引入 Hooks 系统作为确定性自动化引擎,支持超过 15 种生命周期事件
85%待验证Claude Code Hooks 的项目级别配置存储在项目根目录下,可随代码仓库一起版本管理;全局级别配置存储在用户主目录下
85%待验证Claude Code一共提供了14个Hooks
85%待验证Claude Code的Hooks设计继承了Git Hooks和CI/CD管道中事件驱动自动化的理念,但可以监听更丰富的事件类型,包括文件保存、会话开始、工具调用等
80%部分验证Claude Code提供了Hooks回调机制,允许开发者在Agent执行的关键节点(如启动、工具调用前后、停止、会话结束等)插入自定义逻辑
65%待验证Git Hook 是 Linus Torvalds 在 2005 年设计 Git 时引入的机制,允许在 commit、push 等操作前后自动执行脚本
60%待验证Cursor Hooks是一种事件驱动机制,当某个条件达成后自动执行命令、脚本或提示词
60%待验证用好Hooks能减少大量不必要的返工,开发效率至少提升一倍
60%待验证Hooks是程序化的硬约束,通过事件驱动机制强制执行,不依赖模型的自觉性,比CLAUDE.md的软约束方式更可靠
60%待验证Claude Code Hooks 支持项目级别和全局级别两种配置作用域
60%待验证Claude Code 支持 Hooks 功能,提供五种触发时机:PreToolUse、PostToolUse、OnToolError、Notification、OnPrompt
60%