一文搞懂 Claude 核心扩展:Hook、Agent Skill、SubAgent、Plugin 区别与用法

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活


在 Claude(尤其 Claude Code)的扩展生态中,Hook、Agent Skill、SubAgent、Plugin 是四个高频出现但极易混淆的核心概念。很多同学在尝试自定义 Claude 能力时,常常分不清它们的定位、作用和使用场景,导致无法高效利用扩展功能。

今天这篇博客,将基于官方定义和实操场景,用“一句话总结+详细拆解+对比表格+适用场景”的方式,帮你彻底分清这四个概念,看完就能快速上手选用,轻松解锁 Claude 高级扩展能力。

先给大家一个核心总结,记牢这一句,快速建立认知:

  • Hook = 事件触发的自动化脚本(拦截器/中间件)
  • Agent Skill = 可自动调用的领域专家“说明书”
  • SubAgent = 独立上下文的专业“子助理”
  • Plugin = 打包上述所有能力的“扩展包”

一、逐个拆解:每个概念的核心逻辑与实操示例

1. Hook(钩子):事件驱动的“自动化检查站”

定义:事件驱动的自动化脚本/命令,在 Claude 执行特定操作(事件)前后自动运行,核心作用是拦截、校验、增强或控制流程,相当于给 Claude 的操作加了“自动触发的规则”。

核心特点

  • 本质:强制规则、自动检查站、拦截器,不是“建议”,是“必须执行”

  • 触发方式:事件驱动(特定操作触发,无需手动调用)

  • 执行特性:静默、自动、必执行,不干扰用户操作

  • 核心价值:流程控制、安全校验、日志记录、自动化操作、外部集成

常见触发事件

  • PreToolUse:工具调用前(比如执行危险命令前拦截,避免误操作)

  • PostToolUse:工具调用后(比如写文件后自动格式化、自动测试)

  • Stop:回复结束时(比如自动保存会话日志)

  • SessionStart/SessionEnd:会话开始/结束(比如会话开始时自动加载配置)

实操示例:每次 Claude 写文件后,自动执行 ESLint 修复代码格式

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write",
        "hooks": [{
          "type": "command",
          "command": "eslint --fix ${FILE_PATH}"
        }]
      }
    ]
  }
}

Claude Code 使用命令:Hook 无需手动触发,核心是通过配置文件注册,命令主要用于配置生效和管理,常用2个核心命令:

  1. 注册/加载 Hook 配置:/hook load ./hooks.json(指定 Hook 配置文件路径,加载后自动生效)
  2. 查看已加载 Hook:/hook list(查看当前会话中所有已激活的 Hook 及触发事件)
    补充:若需临时禁用某个 Hook,可使用 /hook disable 事件名(如 /hook disable PostToolUse),启用则替换为 enable。实际开发中,团队常通过 PostToolUse hook 对生成代码进行格式化,避免 CI 报错。

在这里插入图片描述

2. Agent Skill(技能):可自动激活的“专家说明书”

定义:模块化、可自动激活的专业知识包,包含任务指令、最佳实践、脚本、资源等内容,Claude 会根据用户需求的语义,自动判断何时加载并使用这个技能。

核心特点

  • 本质:永久技能包、AI 专家说明书、可复用 Prompt 集合

  • 触发方式:语义匹配自动激活(也可手动调用)

  • 结构:由 SKILL.md(包含 YAML 头 + 具体指令)+ 脚本/资源组成

  • 核心价值:让 Claude 具备专业化能力、标准化操作流程,减少重复输入 Prompt

实操示例:安全审计技能,当用户询问代码安全性时,自动加载并按流程审计

---
name: security-auditor
description: 安全审计,检查SQL注入、XSS、CSRF
auto-activate: true
allowed-tools: [Read, Grep]
---
# 安全审计技能
## 使用场景
- 用户要求安全检查
- 提到漏洞/风险
## 审查要点
1. SQL注入防范:检查是否使用参数化查询,避免拼接SQL
2. XSS防护:检查是否对用户输入进行转义处理
3. CSRF令牌:检查关键接口是否携带CSRF令牌
...

当你问“这段代码安全吗”,Claude 会自动匹配语义,加载这个安全审计技能,按照预设的审查要点完成审计。

Claude Code 使用命令:Agent Skill 支持自动激活和手动调用,核心命令如下:

  1. 手动加载指定 Skill:/skill load ./skills/security-auditor(指定 Skill 所在目录,加载后立即生效)
  2. 手动触发已加载 Skill:/skill run security-auditor(直接调用指定名称的 Skill,无需语义匹配)
  3. 查看已加载 Skill:/skill list(显示所有已加载的 Skill 及激活状态)
  4. 卸载 Skill:/skill unload security-auditor(移除指定 Skill,停止生效)
    补充:若 Skill 配置了 auto-activate: true,无需手动加载,Claude 会根据语义自动触发,手动调用可强制执行技能逻辑。

在这里插入图片描述

3. SubAgent(子代理):独立上下文的“专属子助理”

定义:独立、隔离的 AI 实例,有自己的 System Prompt、工具权限,以及完全独立的上下文窗口,主 Agent 可以将复杂任务委派给它,它完成后只返回结果给主 Agent。

核心特点

  • 本质:专业团队成员、独立沙箱助理、任务工人

  • 触发方式:主 Agent 手动或自动委派任务

  • 核心优势:上下文完全隔离(不污染主对话)、防上下文爆炸、角色清晰、可并行处理、权限可控

  • 核心价值:拆分复杂任务、处理大量文档阅读、执行长耗时任务,保持主对话简洁

实操示例

  • 创建一个「CodeReviewer」子代理:让它读取整个项目代码,只返回“3个核心Bug+修复建议”的总结,主对话不会被大量代码细节撑爆。

  • 创建一个「Researcher」子代理:让它读取50篇行业文档,只提炼核心结论和关键数据,主Agent无需处理中间阅读过程。

Claude Code 使用命令:SubAgent 核心是创建、委派任务和管理,常用命令如下:

  1. 创建 SubAgent:/agent create CodeReviewer --system "你的System Prompt"(指定子代理名称和系统提示,定义其角色)
  2. 委派任务给 SubAgent:/agent delegate CodeReviewer "读取整个项目代码,返回3个核心Bug+修复建议"(指定子代理和任务指令)
  3. 查看 SubAgent 状态/结果:/agent status CodeReviewer(查看子代理执行进度、结果)
  4. 终止 SubAgent:/agent stop CodeReviewer(停止子代理执行,释放资源)
  5. 接管子代理(应急):Shift+Up/Downtmux(可直接接管任何子代理的执行过程)
    补充:主Agent可同时委派多个子代理并行处理任务,子代理的执行结果会同步反馈给主Agent,不污染主对话上下文。
    在这里插入图片描述

4. Plugin(插件):打包所有能力的“扩展工具箱”

定义:一个容器/包,能够将 Hook、Agent Skill、SubAgent、Commands、MCP 等组件打包成一个可安装、可分享、可复用的单元,相当于 Claude 的“应用程序”。

核心特点

  • 本质:扩展包、功能合集,类似 npm 包或应用商店里的 App

  • 结构:由 plugin.json 清单(记录插件信息)+ 各组件目录(skills、agents、hooks 等)组成

  • 核心价值:一键安装、跨项目复用、团队共享、功能分发,无需重复配置多个组件

标准插件结构

my-plugin/
├── .claude-plugin/plugin.json  # 插件清单(记录插件名称、描述、版本等)
├── skills/       # 存放该插件包含的所有Agent Skill
├── agents/       # 存放该插件包含的所有SubAgent
├── hooks.json    # 存放该插件包含的所有Hook
└── commands/     # 存放该插件包含的斜杠命令

Claude Code 使用命令:Plugin 核心是安装、启用和管理,常用命令如下:

  1. 安装本地插件:/plugin install ./my-plugin(指定插件所在目录,一键安装所有组件)
  2. 安装远程插件:/plugin install https://github.com/xxx/my-plugin(通过远程链接安装,无需手动下载)
  3. 启用/禁用插件:/plugin enable my-plugin / /plugin disable my-plugin(启用后插件内所有组件自动生效)
  4. 查看已安装插件:/plugin list(显示所有已安装插件的状态、包含组件)
  5. 卸载插件:/plugin uninstall my-plugin(彻底移除插件,删除所有相关组件)
    补充:插件安装后,其包含的 Hook、Skill、SubAgent 会自动注册,无需单独执行加载命令,团队可通过插件实现扩展能力的统一共享和分发。
    在这里插入图片描述

二、核心区别对比:一张表格分清四者

很多同学混淆四者,核心是没抓住“本质、驱动方式、上下文、价值”这四个关键维度。下面这张表格,清晰对比四者的核心差异,建议收藏备用:

对比维度Hook(钩子)Agent Skill(技能)SubAgent(子代理)Plugin(插件)
本质自动化脚本/拦截器专业知识/指令包独立AI实例组件容器/扩展包
驱动方式事件触发(必执行)语义匹配(自动/手动)主Agent委派手动安装
上下文共享主上下文共享主上下文完全独立隔离包含前三者,无独立上下文
执行主体外部命令/脚本Claude 按指令执行独立 Claude 实例无执行能力(仅为容器)
核心价值流程控制、安全、自动化专业能力、标准化上下文隔离、任务拆分打包、分发、复用
粒度细粒度(操作节点)中粒度(领域能力)粗粒度(独立任务)最粗(功能集)
形象比喻智能门铃/安检专业手册/技能卡专属员工/团队工具箱/软件套装

三、四者的关系与层级:一句话理清逻辑

理解四者的关系,能帮你更高效地组合使用它们,核心逻辑如下:

  1. Plugin 是最大的容器,一个 Plugin 可以包含多个 Hook、Agent Skill 和 SubAgent,相当于“把一套相关功能打包成一个工具包”。

  2. SubAgent 内部可以使用多个 Agent Skill,也可以触发 Hook(比如 SubAgent 执行工具后,触发 PostToolUse Hook 进行后续处理)。

  3. Agent Skill 是“方法和知识”,SubAgent 是“执行这些方法的独立单元”,两者结合可以完成专业且复杂的任务。

  4. Hook 是全局或局部的自动化规则,贯穿所有执行流程(无论是主 Agent、SubAgent,还是 Plugin 中的组件,都能被 Hook 拦截和增强)。

四、实操选型指南:什么时候用哪个?

看完拆解和对比,最核心的问题是:实际开发中,该如何选择使用这四个扩展?结合场景总结如下,直接对号入座即可:

  • 用 Hook:需要自动校验、拦截操作、格式化内容、发送通知,或者强制控制流程(比如禁止危险操作)。

  • 用 Agent Skill:需要 Claude 具备某一领域的专业能力(比如安全审计、代码优化),或者需要标准化的操作流程,减少重复 Prompt。

  • 用 SubAgent:任务复杂、需要处理大量文档(容易撑爆上下文)、需要独立角色(比如专门的代码审查员),或者需要并行处理多个子任务。

  • 用 Plugin:需要将一组相关能力(比如“代码开发+安全审计+自动测试”)打包,方便自己跨项目复用,或者分享给团队成员一键安装。

补充:Claude Code 通用命令(必记)

  • 查看所有扩展相关命令:/help extensions(获取 Hook、Skill、SubAgent、Plugin 的所有可用命令及用法)
  • 权限管理(避免频繁弹窗):/permissions allow 命令名(预先放行常用命令,无需每次确认权限)
  • 重置所有扩展配置:/extensions reset(恢复默认状态,用于排查配置错误)

五、总结

其实这四个概念的核心逻辑很简单:Hook 管“自动化规则”,Agent Skill 管“专业能力”,SubAgent 管“独立执行”,Plugin 管“打包复用”。

记住一句话:Plugin 是容器,SubAgent 是执行者,Agent Skill 是执行者的“技能手册”,Hook 是贯穿全程的“自动化规则”

掌握它们的区别和用法,你就能灵活自定义 Claude 的能力,无论是简单的自动化操作,还是复杂的专业任务,都能高效完成。

下一篇,我们将实操演示如何创建一个简单的 Hook 和 Agent Skill,帮你快速上手 Claude 扩展开发,记得关注哦~

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苍煜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值