第08章 Hooks、Agents、MCP:从单次对话到自动化系统

Claude Code 入门阶段靠自然语言;进阶阶段靠 skills;再往上,就是 Hooks、Agents、MCP 组成的自动化系统。

三者解决的问题不同:

机制解决什么问题
Hooks在事件发生时自动执行检查或动作
Agents把复杂任务拆给专门角色处理
MCP连接外部系统和工具

Hooks:把规则放进事件里

Hooks 是事件钩子。你可以在 Claude Code 调用工具前后、会话开始、会话结束、子代理完成时运行脚本。

最常见场景:

  • 写文件后自动格式化。
  • 执行 Bash 前阻止危险命令。
  • 会话结束前提醒测试未运行。
  • 每次启动时加载团队上下文。

Hooks 的价值是稳定执行。你不需要每次提醒“改完记得格式化”,它会在事件发生时自动触发。

但 hooks 也最危险,因为它们会真实执行命令。写 hooks 时要遵守三条规则:

  1. 默认只做检查,不做破坏性操作。
  2. 输入来自 JSON stdin,要严格解析。
  3. 任何删除、发布、改权限的动作都要人为确认。

Agents:把任务交给专门角色

Claude Code 的 agents 是专门化子代理。你可以让一个 agent 专门做代码审查,让另一个专门查安全风险,让第三个专门读文档。

适合 agents 的任务有三个特征:

  • 可以和主任务并行。
  • 需要不同关注点。
  • 产物可以被主会话审查。

例如大型改动后:

请启动一个代码审查 agent 检查 correctness,
再启动一个安全审查 agent 检查输入校验和权限边界。
主线程不要继续修改代码,等它们返回结论。

Agents 不是越多越好。每个 agent 都会消耗上下文和时间;如果任务很小,主会话直接处理更快。

MCP:把 Claude Code 接到外部世界

MCP 是 Model Context Protocol。它让 Claude Code 连接外部服务,例如 GitHub、数据库、项目管理系统、设计工具、监控系统。

MCP 的价值不是“多一个接口”,而是让 Claude Code 获取当前事实:

  • GitHub PR 里有哪些 review comment。
  • Linear issue 的验收标准是什么。
  • Figma 设计稿里的组件间距是多少。
  • Sentry 最近的错误栈是什么。
  • 数据库 schema 当前长什么样。

当需求、设计、运行状态都在外部系统里时,MCP 能显著减少“凭空猜”。

三者如何组合

一个成熟团队可以这样组合:

图表 代码
flowchart TD
    A[用户提出任务] --> B[Claude Code 主会话]
    B --> C[Skill 加载项目流程]
    B --> D[Agent 并行审查]
    B --> E[MCP 读取外部事实]
    B --> F[Edit/Write 修改代码]
    F --> G[Hook 自动检查]
    G --> H[Verify 验证结果]
flowchart TD
    A[用户提出任务] --> B[Claude Code 主会话]
    B --> C[Skill 加载项目流程]
    B --> D[Agent 并行审查]
    B --> E[MCP 读取外部事实]
    B --> F[Edit/Write 修改代码]
    F --> G[Hook 自动检查]
    G --> H[Verify 验证结果]
flowchart TD
    A[用户提出任务] --> B[Claude Code 主会话]
    B --> C[Skill 加载项目流程]
    B --> D[Agent 并行审查]
    B --> E[MCP 读取外部事实]
    B --> F[Edit/Write 修改代码]
    F --> G[Hook 自动检查]
    G --> H[Verify 验证结果]
flowchart TD
    A[用户提出任务] --> B[Claude Code 主会话]
    B --> C[Skill 加载项目流程]
    B --> D[Agent 并行审查]
    B --> E[MCP 读取外部事实]
    B --> F[Edit/Write 修改代码]
    F --> G[Hook 自动检查]
    G --> H[Verify 验证结果]

示例工作流:

  1. MCP 从 Linear 读取需求。
  2. Skill 加载项目实现规范。
  3. 主会话实现功能。
  4. Hooks 在写文件后自动格式化和静态检查。
  5. Agents 并行做 correctness review 和 security review。
  6. /verify 运行真实应用验证。

这时 Claude Code 已经不只是聊天工具,而是一个围绕代码库运行的开发系统。

不要过度自动化

自动化越多,调试成本越高。建议按这个顺序演进:

  1. 先写 CLAUDE.md。
  2. 再把重复流程写成 skills。
  3. 然后接入必要 MCP。
  4. 最后才写 hooks 和 agents。

如果一开始就堆 hooks、agents、MCP,出了问题很难判断是提示词、权限、外部服务还是脚本本身。

本章小结

Hooks、Agents、MCP 的本质分别是:

  • Hooks:把规则自动化。
  • Agents:把认知分工化。
  • MCP:把上下文外部化。

Claude Code 精通不是会写复杂配置,而是知道什么时候该用哪一层。能用自然语言解决的,不要上 hooks;能用 skill 解决的,不要上插件;只有当流程需要共享、复用、自动触发时,再升级扩展机制。

参考资料:


相关内容

如果这篇文章对你有帮助,欢迎请我喝杯咖啡 ☕
Cygnus Yang 支付宝支付宝
Cygnus Yang 微信微信