刚刚,Claude Code推出Hooks功能,让AI 编程从「看心情」到「真工程」

AITNT-国内领先的一站式人工智能新闻资讯网站
# 热门搜索 #
刚刚,Claude Code推出Hooks功能,让AI 编程从「看心情」到「真工程」
6759点击    2025-07-03 11:31

Claude Code推出了一个让人眼前一亮的功能——Hooks。


刚刚,Claude Code推出Hooks功能,让AI 编程从「看心情」到「真工程」


这个基于Shell的钩子系统能在关键时刻自动运行,让你能够精确地编排每次编程会话中必须发生的事情。


说白了,这个功能把那些依赖聊天指令的不确定性,变成了每次都会触发的确定性命令。


格式化、日志记录、安全检查,再也不用担心模型会不会记得你的提示了。


刚刚,Claude Code推出Hooks功能,让AI 编程从「看心情」到「真工程」


从概率到确定


Claude Code原本依赖大语言模型来决定何时运行工具或请求确认。


这种方法存在明显的缺陷——模型可能会忘记、误解意图,或者在不同会话中表现不一致。


Hooks通过让用户注册能在预定义生命周期事件中触发的Shell命令,彻底解决了这个问题。


控制权从概率性的提示转移到了确定性的脚本


用户可以决定命令是在工具调用之前运行、之后运行、在每次通知时运行,还是在助手尝试结束时运行。


工作原理


Hook定义存储在用户或项目范围的JSON设置文件中。


每个条目都将过滤工具名称的匹配器与Shell命令数组配对。


当事件匹配时,Claude Code会将关于操作的结构化JSON通过stdin流式传输到命令中,等待最多60秒,然后解释退出代码或可选的JSON输出来决定如何继续。


由于Hooks以用户的完整权限执行,它们可以读取或修改账户能访问的任何内容。


文档列出了安全步骤,如验证输入、引用变量和跳过敏感路径。


四大Hook事件


PreToolUse:在创建工具参数后、处理工具调用前运行。可以匹配Task(代理任务)、Bash(Shell命令)、Read(文件读取)、Edit/MultiEdit(文件编辑)等工具。


PostToolUse:在工具成功完成后立即运行。识别与PreToolUse相同的匹配器值。


Notification:在Claude Code发送通知时运行。


Stop:在Claude Code完成响应时运行。


快速上手


想要添加一个记录Claude Code运行的Shell命令的Hook?只需要几步:


  1. 运行/hooks斜杠命令,选择PreToolUse事件
  2. 添加匹配器,输入Bash来只对Bash工具调用运行Hook
  3. 添加Hook命令,比如日志记录命令
  4. 选择存储位置(用户设置会应用到所有项目)
  5. 按Esc返回REPL,Hook就注册成功了


配置会保存在~/.claude/settings.json中:


{

"hooks": {

"PreToolUse": {

"Bash": [

{

"type": "command",

"command": "your-logging-command-here"

}

]

}

}

}


输入输出机制


Hooks通过stdin接收包含会话信息和事件特定数据的JSON数据。


对于输出,有两种方式:


简单方式:退出代码


  • 退出代码0:成功,stdout在transcript模式(CTRL-R)中显示给用户
  • 退出代码2:阻塞错误,stderr反馈给Claude自动处理
  • 其他退出代码:非阻塞错误,stderr显示给用户,执行继续


高级方式:JSON输出


Hooks可以在stdout中返回结构化JSON来实现更复杂的控制。比如PreToolUse可以控制工具调用是否继续:


  • "approve"绕过权限系统
  • "block"阻止工具调用执行
  • undefined导致现有权限流程


MCP工具的完美配合


对于使用模型上下文协议(MCP)服务器的开发者,Hooks能识别带有mcp__前缀的工具名称。


这意味着一个模式可以针对整个服务器或单个远程工具,让策略执行在本地和云操作中保持一致。


MCP工具遵循mcp__<server>__<tool>的命名模式,例如:


  • mcp__memory__create_entities:内存服务器的创建实体工具
  • mcp__filesystem__read_file:文件系统服务器的读取文件工具
  • mcp__github__search_repositories:GitHub服务器的搜索工具


实际应用场景


自动格式化:在每次文件编辑后运行prettier处理.ts文件,gofmt处理.go文件。


合规日志:跟踪和计数所有执行的命令,用于合规或调试。


自动反馈:当Claude Code产生不符合代码库规范的代码时提供自动反馈。


自定义权限:阻止对生产文件或敏感目录的修改。


安全考虑


使用Hooks需要谨慎。文档特别强调了几个安全最佳实践:


  • 验证和清理输入——永远不要盲目信任输入数据
  • 始终引用Shell变量——使用"$VAR"而不是$VAR
  • 阻止路径遍历——检查文件路径中的..
  • 使用绝对路径——为脚本指定完整路径
  • 跳过敏感文件——避免.env.git/、密钥等


Claude Code在启动时捕获Hooks的快照,在整个会话中使用这个快照。如果Hooks被外部修改,会发出警告,需要在/hooks菜单中审查才能应用更改。


执行细节


  • 超时:60秒执行限制
  • 并行化:所有匹配的Hooks并行运行
  • 环境:在当前目录中以Claude Code的环境运行
  • 输入:通过stdin传入JSON
  • 输出:PreToolUse/PostToolUse/Stop的进度显示在transcript中(Ctrl-R)


结果是一个编程环境,其中风格指南、安全规则和工作流程约定作为平台本身的一部分运行,而不是作为嵌入在提示中的建议,为你提供可预测和可审计的行为。


而相比Vibe Coding 的天马行空,我更认为「确定性才是工程的灵魂」。


毕竟不是所有的工程都只是个简单的landing page —— 一句prompt 让AI 展开就好。


而Claude Code的Hooks功能,正是把AI编程从「艺术」拉回到「工程」的关键一步。


刚刚,Claude Code推出Hooks功能,让AI 编程从「看心情」到「真工程」


而在上周YC AI Startup School的演讲中,Andrej Karpathy 也提到,我们必须「让AI保持在控制之下」(keep the AI on the leash)。


他警告说:


当我看到诸如「2025年是AI代理之年」这样的说法时,我非常担心……这是代理的十年。


Karpathy的观点恰好呼应了Hooks 的功能。


当我们不再需要祈祷AI记住我们的要求,当每一个关键动作都能被精确控制,我们才将真正获得了与AI 协作的主导权。


这不仅仅是一个功能更新,更是一种编程范式的转变——从依赖AI的「概率性理解」,到构建可靠的「确定性系统」。


[1] Hooks官方文档: https://docs.anthropic.com/en/docs/claude-code/hooks


文章来自于“AGl Hunt”,作者“JJJohn”。

关键词: AI新闻 , AI编程 , Claude Code , Claude
AITNT-国内领先的一站式人工智能新闻资讯网站
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
OWL

【开源免费】OWL是一个完全开源免费的通用智能体项目。它可以远程开Ubuntu容器、自动挂载数据、做规划、执行任务,堪称「云端超级打工人」而且做到了开源界GAIA性能天花板,达到了57.7%,超越Huggingface 提出的Open Deep Research 55.15%的表现。

项目地址:GitHub:https://github.com/camel-ai/owl

2
AI代理

【开源免费】Browser-use 是一个用户AI代理直接可以控制浏览器的工具。它能够让AI 自动执行浏览器中的各种任务,如比较价格、添加购物车、回复各种社交媒体等。

项目地址:https://github.com/browser-use/browser-use


3
AI工作流

【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。

项目地址:https://github.com/n8n-io/n8n

在线使用:https://n8n.io/(付费)


【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。

项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file



【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。

项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file

在线使用:https://vectorvein.ai/(付费)

4
prompt

【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。

项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md

在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0