← 返回训练营 🎓AI 知识学习 训练营首页 登录 报名课程
Claude Code 学习 / 五、扩展能力 / 第 21 / 24 课

第17课:Hooks

Claude Code 学习 · 五、扩展能力 · 更新于 2026-07-26

17.1 Hook 是什么

Hook 是在 Claude Code 生命周期特定事件发生时自动执行的规则,可以运行命令、HTTP 请求、MCP 工具、AI 提示或 Subagent。

CLAUDE.md 不同,Hook 是确定性的自动化机制,适合"每次都必须发生"的动作。

17.2 常见事件

  • SessionStart:会话开始或恢复;
  • UserPromptSubmit:用户提交提示词;
  • PreToolUse:工具执行之前;
  • PostToolUse:工具成功执行之后;
  • SubagentStart / SubagentStop:Subagent 启动 / 结束;
  • PreCompact / PostCompact:上下文压缩前 / 后;
  • Stop:Claude 准备结束本轮工作;
  • SessionEnd:会话结束。

具体事件会随版本扩展,应查阅当前 Hooks 文档。

17.3 适合使用 Hook 的任务

每次编辑后运行格式化、阻止危险删除命令、修改敏感文件时发出警告、完成任务前运行测试、会话结束时归档结果、压缩上下文前保存重要状态。

17.4 Hook 与权限

PreToolUse Hook 可以在工具执行前检查输入并拒绝操作,例如检测到高风险删除命令时阻止执行。

Hook 脚本本身也可能带来风险,因此:必须审查脚本内容、使用明确路径、限制外部网络访问、处理错误和超时、不在 Hook 中保存敏感信息。

课后练习

设计一个 Hook 需求:当它修改课程文件后,自动检查是否包含标题、练习和验收标准。只写需求和判断逻辑,不要求直接部署。

📖 查看官方文档
进度保存在本机浏览器,换设备不同步。