网易首页 > 网易号 > 正文 申请入驻

指令管不住的AI,四个钩子能管住吗?

0
分享至

大多数团队调教 Claude Code,靠的是一份 CLAUDE.md:写上"跑一下格式化""别动锁文件""用我们的日志库"。多数时候管用。但指令只是模型选择去遵守的东西,长会话跑下来,或者赶上忙的一天,它有时就不遵守了。

钩子(hooks)补的就是这个缺口。钩子是一条 shell 命令,Claude Code 会在固定节点自动执行,比如每次文件编辑之后、每条命令执行之前。它每次都跑,不管模型还记不记得那条规则。

对团队来说,这改变的是你能承诺什么。"智能体应该格式化它的代码",变成"智能体的代码永远是格式化过的"。

团队钩子放在哪

钩子和权限放在同一批设置文件里。对团队而言,关键的是仓库里的 .claude/settings.json,像其他配置一样提交进版本库,谁克隆了仓库,谁就拿到同一套钩子。

个人钩子放在 ~/.claude/settings.json,或者不提交的 .claude/settings.local.json。组织也可以通过托管设置集中下发钩子。

每个钩子的结构都一样:一个事件、一个可选匹配器(用来收窄适用的工具范围)、以及要执行的命令。

1. 格式化智能体编辑的每个文件

最简单的钩子,也是最能消掉评审噪音的一个。它在每次编辑后跑你的格式化工具,格式化从此不再出现在代码评审里。

官方文档给的例子用的是 Prettier:PostToolUse 事件在工具执行后触发,Edit|Write 匹配器把它限定在文件编辑上。钩子通过标准输入收到工具调用的 JSON 详情,jq 从里面读出文件路径。Prettier 可以换成团队在用的任何工具:ruff format、gofmt、rustfmt。

2. 保护不该被手改的文件

锁文件、生成代码、.env 文件、.git/ 目录里的东西,都不该由智能体来编辑。PreToolUse 钩子在工具执行前运行,脚本以退出码 2 结束时,Claude Code 会拦下这个动作。脚本写到标准错误里的消息会回传给 Claude,让它调整做法,而不是单纯失败。

把脚本存成 .claude/hooks/protect-files.sh 并赋予可执行权限,脚本里维护一份受保护模式清单(.env、package-lock.json、.git/),命中就输出提示并以退出码 2 结束。然后在设置里注册它,命令指向 "$CLAUDE_PROJECT_DIR"/.claude/hooks/protect-files.sh。

因为脚本就提交在 .claude/hooks/ 里,受保护文件清单会像其他代码一样走拉取请求评审。

3. 用自己的逻辑检查高风险 shell 命令

设置里的权限规则能按模式拒绝命令,但它匹配的是命令文本,而同一条命令可以有很多种写法。在 Bash 工具上挂一个 PreToolUse 钩子,就能在命令执行前用真正的逻辑检查完整命令:拦掉构建目录之外的 rm -rf、阻止推送到主分支、拒绝任何触碰生产配置的操作。

机制和文件守卫一样:匹配 Bash,从 JSON 输入里读 .tool_input.command,以退出码 2 加一条理由来拦截。退出码 0 表示钩子没有异议,是否执行仍由常规权限规则决定。

有一点要提醒:检查命令文本的钩子是一道强护栏,不是安全边界。对于无论命令怎么写都必须成立的限制,要配合 Claude Code 的沙箱和访问控制一起用——机器上没有生产环境凭据,智能体就碰不到生产环境。

4. 压缩之后恢复关键上下文

会话的上下文塞满时,Claude Code 会做压缩:把对话总结一遍腾出空间。细节可能在总结里丢掉,包括你一小时前说过的规则。

带 compact 匹配器的 SessionStart 钩子在压缩后立即运行,命令打印出来的内容会被加进 Claude 的上下文。文档示例打印的是一句提醒:用 Bun 而不是 npm,提交前跑 bun test,当前冲刺是认证重构。

把 echo 换成能输出动态内容的命令,比如 git log --oneline -5 拿最近几次提交。始终成立的规则留在 CLAUDE.md 里,这个钩子只放长会话之后最要紧的那几条提醒。

要小心的一个钩子:Stop

给 Stop 钩子挂上测试套件、让 Claude 一直干到测试通过,这个想法很诱人。先知道两件事。Stop 在 Claude 每次结束回复时都会触发,不只是任务完成时,所以慢的测试套件会被反复执行。另外,Stop 钩子连续拦截八次后,Claude Code 会覆盖它,所以脚本应该读取输入里的 stop_hook_active 字段,为 true 时提前退出。

对多数团队来说,在 CI 和拉取请求检查里跑测试更简单。

在团队里推行钩子

  • 从格式化钩子开始。风险低,第一个拉取请求就能看到好处。
  • 接着加文件守卫,清单先短一点。有人发现智能体碰了不该碰的文件,再往里加。
  • 脚本提交到 .claude/hooks/,在 .claude/settings.json 里注册,改动就能走评审。
  • 确认每个人都装了钩子调用的工具(jq、格式化工具)。多数事件下,钩子找不到自己的命令会以非阻塞错误失败,规则就悄悄失效了。
  • 钩子看起来没跑,用 claude --debug,它会记录每个钩子的执行情况。

指令和钩子各管一段

钩子管的是必须永远成立的规则。其余的东西,比如代码库怎么组织、遵循哪些模式、谁负责哪块,属于智能体每次会话开始时读到的指令。

这也是 AI Workspace Builder 的出发点:上传团队已有的文档,它用你自己的 Anthropic API 密钥,在 15 到 30 秒内生成 CLAUDE.md、每个角色的配置文件和安装脚本。有一个免费试用工作区,不需要绑卡。免费模板里包含一份共享设置文件,可以把这些钩子加进去。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
武契奇大选获胜是什么意思?

武契奇大选获胜是什么意思?

起喜电影
2026-10-23 09:53:42
魏莹“陪睡”案新进展:案件细节太颠覆,三方口述揭露更多内幕!

魏莹“陪睡”案新进展:案件细节太颠覆,三方口述揭露更多内幕!

莫地方
2026-10-22 10:22:36
成都球迷内讧!数百人赛后互相辱骂 男球迷接受采访:可以说脏话吗?

成都球迷内讧!数百人赛后互相辱骂 男球迷接受采访:可以说脏话吗?

念洲
2026-10-24 22:36:19
又是懂车帝!旧视频被翻出,比起火更该被追问的,是这两年的“空白”

又是懂车帝!旧视频被翻出,比起火更该被追问的,是这两年的“空白”

迷世书童
2026-10-24 20:28:14
王毅外长就台海问题表态后,赖清德放话:大陆若动武,会以一对多

王毅外长就台海问题表态后,赖清德放话:大陆若动武,会以一对多

迷彩人生
2026-10-24 11:51:12
2-1!爆冷终结领头羊全胜纪录 6.3亿新贵强势复苏 近7场6胜+欧冠全胜

2-1!爆冷终结领头羊全胜纪录 6.3亿新贵强势复苏 近7场6胜+欧冠全胜

狍子歪解体坛
2026-10-24 21:22:53
87岁油画家高友林辞世,18年前的口述成绝响

87岁油画家高友林辞世,18年前的口述成绝响

澎湃新闻
2026-10-24 20:15:10
“每一次教职工大会都让我觉得,我们学院岌岌可危”:专业被砍、教师分流,转岗还得有岗位!高校教师的下一站,到底在哪?

“每一次教职工大会都让我觉得,我们学院岌岌可危”:专业被砍、教师分流,转岗还得有岗位!高校教师的下一站,到底在哪?

学术眺望
2026-10-24 22:10:03
对症下药了!老干妈AI分拣辣椒由600余人减至48人,人大代表提出机器替岗缴社保,舆论争议不断

对症下药了!老干妈AI分拣辣椒由600余人减至48人,人大代表提出机器替岗缴社保,舆论争议不断

火山詩话
2026-10-24 08:00:29
轰动全国的“91大神”庭审细节曝光,炸翻无数人

轰动全国的“91大神”庭审细节曝光,炸翻无数人

鸣金网
2026-10-18 14:17:30
“电视大王”,4年亏了200亿

“电视大王”,4年亏了200亿

中国新闻周刊
2026-10-24 16:52:03
苏州市委书记范波,会见谷爱凌

苏州市委书记范波,会见谷爱凌

政知新媒体
2026-10-24 14:48:51
17岁高中生,年薪700万

17岁高中生,年薪700万

正和岛
2026-10-23 15:11:29
穆帅:西班牙德比举世无双!皇马赢球是球员功劳,皇马输球就该教练受批评

穆帅:西班牙德比举世无双!皇马赢球是球员功劳,皇马输球就该教练受批评

福酱的小时光
2026-10-24 18:37:27
原来早已不是中国籍?事业巅峰远赴美国,被老外“玩腻”晚年回国

原来早已不是中国籍?事业巅峰远赴美国,被老外“玩腻”晚年回国

春之寞陌
2026-10-24 11:36:35
南宁一病重男子转院途中被网约车司机甩在路边,经抢救无效死亡!法院判了

南宁一病重男子转院途中被网约车司机甩在路边,经抢救无效死亡!法院判了

环球网资讯
2026-10-24 13:31:22
刘晓庆姜文1991年这张法国居家照,满是不经雕琢的松弛

刘晓庆姜文1991年这张法国居家照,满是不经雕琢的松弛

情感大头说说
2026-10-25 04:27:58
延安翻译吴光伟与贺子珍发生冲突,被礼送出境后她换上国民党军装,托人向八路军办事处请求归队,却为何始终没等到回音?

延安翻译吴光伟与贺子珍发生冲突,被礼送出境后她换上国民党军装,托人向八路军办事处请求归队,却为何始终没等到回音?

人生录
2026-10-25 00:20:07
扑杀200万只野猫,启用“自动杀猫机”,对家猫“宵禁”……澳大利亚为什么不肯放过野生“哈基米”?

扑杀200万只野猫,启用“自动杀猫机”,对家猫“宵禁”……澳大利亚为什么不肯放过野生“哈基米”?

新民周刊
2026-10-24 18:37:22
0-2!门将离谱乌龙 11.5亿豪门6轮2胜 助德比死敌逃出降级区

0-2!门将离谱乌龙 11.5亿豪门6轮2胜 助德比死敌逃出降级区

狍子歪解体坛
2026-10-25 02:24:47
2026-10-25 07:19:00
我是一个粉刷匠2
我是一个粉刷匠2
有态度网友ytd
174文章数 173关注度
往期回顾 全部

科技要闻

写程序、做3D,新Kimi还有多少本事?

头条要闻

澳官方扑杀200万只野猫 当地人直接搬出"全自动杀猫机"

头条要闻

澳官方扑杀200万只野猫 当地人直接搬出"全自动杀猫机"

体育要闻

从乐透秀到总冠军再到没工作 一共要几年?

娱乐要闻

翁虹19岁女儿三次拒爱,在美国上学却“不随便”

财经要闻

叫"保障"不叫"保险":租车平台的文字游戏

汽车要闻

大众安徽与众09正式上市 双十一权益价16.99万起

态度原创

家居
本地
教育
数码
公开课

家居要闻

2026建博会(广州) 公装联探展交流活动

本地新闻

这么近,那么美,周末赴贺州丨大湾区后花园

教育要闻

慕籬教坏了外国小朋友,太逗了

数码要闻

小米REDMI Book 2027预热:外观焕新,16英寸机型标配数字小键盘

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版