Skill 和 MCP 的区别是什么:再加上子代理、Hook、CLAUDE.md,到底该选哪个

Skill 和 MCP 有什么区别、Skill 和 subagent 又怎么分?按 Claude Code 官方文档《Extend Claude Code》讲清每种扩展解决什么问题、各自的上下文开销、六组容易混的对比,以及「遇到什么情况就加什么」的判断表。

NNathaniel bigo··原创首发·AI 辅助撰写
10 分钟读完
资料核对于 2026-10-11 · 依据官方文档与公开资料整理 免费账号 账号
本文根据 Claude Code 官方文档《Extend Claude Code》整理,资料核对于 2026-10-11。各项功能的具体配置见文末的站内教程链接。

适用于谁

  • 搜「skill 和 mcp 区别」「agent skills mcp 区别」「skill 和 subagent 的区别」的人;
  • 听说了 Skill、MCP、子代理、Hook、插件一堆名词,不知道自己的需求该用哪个的人;
  • 把所有规矩都塞进 CLAUDE.md,文件越来越长的人。

结论先说

一句话区分:

扩展一句话典型例子
CLAUDE.md每次会话都加载的常驻说明「用 pnpm 不用 npm;提交前跑测试」
Skill需要时才加载的知识和流程/deploy 部署清单;接口风格指南
MCP连接外部服务,提供工具和数据查数据库、发 Slack、操作浏览器
子代理在独立上下文里干活,只把总结带回来读几十个文件的调研任务
Hook到某个事件就必定执行的自动化每次改文件后跑 ESLint
插件把上面这些打包分发一个包里带 Skill、Hook、子代理和 MCP

最常被问的那一组,官方的说法是:MCP 把 Claude 连到外部服务;Skill 扩展 Claude 知道的东西,包括怎么把那些服务用好。 两者解决的是不同的问题,可以一起用。

一、Skill 和 MCP

MCPSkill
是什么连接外部服务的协议知识、流程和参考资料
提供工具和数据访问做事的方法
例子Slack 集成、数据库查询、浏览器控制代码审查清单、部署流程、接口风格指南

判断方法:

  • Claude 够不着某个系统(看不到你的工单、查不了你的库),需要的是 MCP;
  • Claude 够得着,但不知道你们怎么做(表结构是什么、消息要按什么格式发),需要的是 Skill。

官方举的组合例子:MCP 负责连上数据库,Skill 里写你们团队的表结构和常用查询写法;或者做一个 /post-to-slack 流程,里面是团队的消息格式规定。

MCP 的入门见《MCP 是什么》,配置见《Claude Code MCP 配置教程》。

二、Skill 和子代理

Skill子代理
是什么可复用的说明、知识或流程有自己上下文的独立工作者
主要好处同一份内容可以在不同场合加载上下文隔离:过程在别处发生,只返回总结
对上下文的影响加进你的主对话用单独的窗口,有自己的输入输出
适合参考资料、可调用的流程要读很多文件的任务、并行工作、专门角色

官方把 Skill 分成两种:参考型(整个会话里随时参考的知识,如接口规范)和动作型(让 Claude 做一件具体的事,如 /deploy)。

什么时候用子代理:需要隔离上下文,或者主对话的上下文快满了。子代理可能读了几十个文件、做了大量搜索,主对话只收到一段总结。

两者可以互相嵌套:

  • 子代理的 skills: 字段可以预加载指定的 Skill;
  • Skill 的 frontmatter 写 context: fork,就会在隔离的子代理里运行。官方提醒这只适合带明确任务的 Skill,纯粹是规范说明的 Skill 分出去运行得不到有用的结果。

子代理的写法见《Claude Code 子代理》。

三、Skill 和 CLAUDE.md

CLAUDE.mdSkill
何时加载每次会话,自动按需
能否触发流程不能能,用 /名称
适合「总是这样做」的规则参考资料、可调用的流程
  • Claude 任何时候都该知道的,放 CLAUDE.md:编码规范、构建命令、项目结构、「绝不要做某事」;
  • 有时才需要的参考资料,或者要用命令触发的流程,放 Skill。

官方的经验值:CLAUDE.md 保持在 200 行以内。超了就把参考性的内容挪进 Skill,或者拆到 .claude/rules/ 里。rules 可以用 paths 限定只在处理匹配的文件时才加载。

CLAUDE.md 的写法见《CLAUDE.md 与 AGENTS.md 怎么写》。

四、Skill 和 Hook

HookSkill
运行的是脚本、HTTP 请求、MCP 工具调用、提示词或子代理Claude 读了之后照做的说明
由什么触发生命周期事件,如 PostToolUse、SessionStart你输入 /名称,或 Claude 把描述和任务对上了
确定性事件发生就一定执行Claude 来理解和执行,结果可能有出入
上下文开销零,除非 Hook 返回了输出描述每次会话都在,全文用时加载
适合改完自动格式化、拦截危险命令、日志、通知需要推理的流程、参考资料、多步任务

官方有一句很关键的话:写在 CLAUDE.md 或 Skill 里的「绝不要改 .env」是一个请求,不是保证;用 PreToolUse Hook 把这次修改拦下来,才是强制。必须每次都成立的规则,做成 Hook。

Hook 的写法见《Claude Code Hooks》。

五、插件是什么关系

插件是打包层:把 Skill、Hook、子代理和 MCP 服务器装进一个可以安装的单元。插件里的 Skill 带命名空间(如 /my-plugin:review),多个插件可以并存。

什么时候需要:同一套配置要在多个仓库里复用,或者要通过市场分发给别人。只在一个项目里自己用,直接放 .claude/ 目录就够了。详见《Claude Code 插件与插件市场》。

六、各自占多少上下文

装得越多,占的上下文越多;官方提醒过量不仅占空间,还会带来噪声,让 Skill 触发不准、让 Claude 记不住你的约定。

扩展何时加载加载什么上下文开销
CLAUDE.md会话开始全文每次请求都在
Skill会话开始 + 使用时开始时只有描述,使用时加载全文低(描述每次请求都在)
MCP 服务器会话开始工具名称;完整的参数定义用到时才加载工具被使用前很低
子代理被派出时全新的独立上下文与主会话隔离
Hook触发时默认不加载任何内容零,除非返回了额外内容

两个省上下文的官方提示:

  • 有副作用的 Skill 设 disable-model-invocation: true,它的描述就不进上下文,只在你点名时运行;
  • 输入 /mcp 看各服务器的连接状态,暂时不用的可以断开。

七、遇到什么情况,加什么

官方给了一张「触发条件」表,意思是不必一开始就全配上,出现对应的信号再加:

你遇到的情况该加的
同一个约定或命令,Claude 弄错了两次写进 CLAUDE.md
每次开始某类任务都在敲同一段提示词存成可以手动调用的 Skill
同一套多步流程,第三次往对话里粘贴了做成 Skill
总是从 Claude 看不到的浏览器标签页里复制数据把那个系统接成 MCP 服务器
一个旁支任务的输出淹没了对话,之后也不会再看交给子代理
希望某件事每次都发生、不用开口写 Hook
第二个仓库也需要同一套配置打包成插件

官方补充:同样的信号也告诉你何时更新已有的配置。反复出现的错误应该改 CLAUDE.md,而不是在对话里纠正一次了事;一个总要手动微调的流程,说明那个 Skill 该改版了。

八、同一种扩展放在多处时,谁生效

  • CLAUDE.md 是叠加的:各级文件的内容同时进入上下文,有冲突时由 Claude 判断;
  • Skill 和子代理按名称覆盖:Skill 是托管 > 个人 > 项目;子代理是托管 > 命令行参数 > 项目 > 个人 > 插件;
  • MCP 服务器按名称覆盖:local > project > user;
  • Hook 是合并的:所有来源注册的 Hook 都会在匹配的事件上执行。

注意 Skill 和子代理的优先级方向并不一样,Skill 的细节见《Claude Code Skills 安装在哪里》。

常见问题

Q:有了 Skill 还需要 MCP 吗?

要看 Claude 是否需要访问外部系统。Skill 只是说明和脚本,它让 Claude「知道怎么做」;需要登录授权、调用某个服务的专用接口时,还是要靠 MCP 提供工具。

Q:有了 MCP 还需要 Skill 吗?

MCP 给的是工具,不包含你们团队的用法。工具接上了但 Claude 总是用得不对(查错表、格式不合要求),就该补一个 Skill。

Q:斜杠命令和 Skill 是什么关系?

在 Claude Code 里,自定义斜杠命令已经并入 Skill:.claude/commands/ 下的文件和 Skill 都会生成 /名称,旧文件继续可用。

Q:别的工具也这么分吗?

概念大体相通:常驻说明文件(AGENTS.md、规则文件)、按需加载的 Skill、连接外部服务的 MCP。具体的加载规则以各工具的官方文档为准。

参考资料

  • Extend Claude Code(Claude Code 官方):https://code.claude.com/docs/en/features-overview
  • Extend Claude with skills(Claude Code 官方):https://code.claude.com/docs/en/skills
需要开通或续费?Claude Pro 充值 →

Nathaniel 的更多内容

  1. 01

    promptfoo 使用教程:对比提示词和模型、写断言自动评测(安装与配置)

    promptfoo 是什么、怎么使用?按官方 README 和入门文档讲清它的用途、三种安装方式、用示例项目起步、promptfooconfig.yaml 里提示词、模型和测试用例三部分怎么写、常用断言类型的含义、eval 与 view 两条命令,以及把它放进日常改提示词流程的方法。

    ChatGPT其他 AI 工具0
  2. 02

    Kimi API怎么用:API Key获取、Python调用、K3价格与429报错处理

    Kimi API Key 在哪里获取、怎么用 Python 调用 K3、价格怎么算、429 和 401 报错怎么办?本文按 Kimi API 开放平台官方文档讲清注册认证、创建 Key、base_url 与模型名、计费规则和常见错误排查。

    Kimi0
  3. 03

    Cursor Agent 模式怎么用:Agent、Plan、Ask 三种模式,检查点回滚与消息排队

    Cursor Agent 模式是什么、和 Plan / Ask 模式怎么选?按官方文档讲清 Agent 能调用哪些工具、Shift+Tab 切换模式、Plan 模式先出方案再动手、用检查点撤销改动、任务进行中排队或插话,以及 /goal 长目标。

    Cursor0
  4. 04

    Gemini 聊天记录怎么导出:导出到文档 / 表格、生成 PDF 与用 Takeout 批量导出完整对话

    Gemini 没有「一键导出全部对话」的按钮,但有三条官方路径:单条回答导出到 Google 文档、Gmail、表格;让 Gemini 直接生成 PDF、Word、Markdown 文件;用 Google Takeout 批量下载全部活动记录。本文给出每种方法的步骤和限制。

    Gemini0
  5. 05

    ChatGPT 生成图片中文乱码、文字错误怎么办:7 个按顺序试的办法

    让 ChatGPT 做海报、封面、信息图,中文总是缺笔画、错字、乱码?本文按 OpenAI 官方图像提示指南,给出从写法、字数、局部修改、质量档位到后期排版的 7 个办法,以及什么时候干脆别让 AI 写字。

    ChatGPT0
  6. 06

    OpenCode Skills 使用指南:技能目录、命名规则、权限配置与不加载排查

    OpenCode 的 Skills 放在哪个目录、怎么控制哪些技能能用?按 OpenCode 官方文档讲清六个扫描位置、name 的正则规则、skill 工具的工作方式、在 opencode.json 里用 allow / deny / ask 配置权限、按智能体覆盖,以及技能不出现时的五项检查。

    其他 AI 工具0

同产品的其他教程

  1. 01

    Cursor、Claude Code、Codex、GitHub Copilot 有什么区别:按形态、账号、计费和规则文件对比

    Cursor 和 Claude Code 的区别是什么、和 Codex、GitHub Copilot 怎么选?只用各家官方文档的事实对比:产品形态、用什么账号、怎么计费、能选哪些模型、规则文件与 MCP、权限模式、代码审查;不做「谁更强」的排名,给出按场景选择的思路。

    ClaudeCursor0
  2. 02

    如何让大模型稳定输出 JSON:结构化输出、JSON 模式与提示词写法(OpenAI / Claude)

    怎么让大模型稳定输出 JSON?本文按 OpenAI 和 Anthropic 官方文档讲清只靠提示词、JSON 模式、结构化输出三种做法的可靠程度,两家的写法与 Schema 限制,以及拒答和截断两种例外。

    ChatGPTClaude0
  3. 03

    MinerU 是什么、怎么用:把 PDF 等文档解析成 Markdown(4.0 的安装、四档解析与命令)

    MinerU 是什么、怎么安装使用?按官方中文 README 讲清 4.0 版本的定位、支持的输入与输出格式、flash / basic / standard / advanced 四档解析各适合什么、pip 安装命令、mineru-kit 与 mineru 两个命令的分工和常用写法,以及从旧版升级要注意什么。

    其他 AI 工具0
  4. 04

    npx skills add 怎么用:从 GitHub 安装 Skill、skills.sh 是什么与常用命令

    网上的 Skill 安装命令大多是 npx skills add 开头,它是什么、装到哪去了?按官方 README 讲清 skills 命令行工具支持的来源写法、项目与全局两种范围、-a 指定工具、list / find / update / remove 等命令、软链接与复制的区别,以及怎么关掉遥测。

    Claude其他 AI 工具0
  5. 05

    即梦首尾帧怎么用:两张图生成过渡视频(在哪里、提示词、不能用怎么办)

    即梦首尾帧在哪里、怎么用?本文讲清首尾帧入口、哪些模型支持、两张图的比例要求、过渡提示词怎么写,以及「首尾帧不见了 / 不能用了」「画面跳变」的原因和解决办法。

    其他 AI 工具0
  6. 06

    提示词里的角色设定有用吗:「你是一位专家」该怎么写才有效(官方文档怎么说)

    提示词开头写「你是一位资深专家」到底有没有用?本文按 Anthropic、OpenAI、Google 官方文档讲清角色设定管什么、不管什么,一句话角色和详细人设各自适合什么场景,角色应该放在哪里,以及比「你是专家」更有效的四个写法。

    ChatGPTClaude0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~