内容来源:alexop.dev。https://alexop.dev/posts/understanding-claude-code-full-stack/
原题:Claude Code Explained (2026): MCP, Skills, Subagents, Hooks & Plugins
原发布时间:2025-11-09

全面介绍 Claude Code 的 MCP、CLAUDE.md、斜杠命令、子智能体、Hooks、插件、Skills 和定时任务。2026 年 4 月更新,加入延迟工具加载、Worktree 隔离、智能体团队等内容。

兼容性说明(核对于 2026-07-20):当前子智能体文档称,Task 在 v2.1.63 中更名为 Agent,同时保留 Task(...) 作为别名。原文的 claude trigger create --schedule 示例具有版本时效性;当前云端自动化文档使用 /schedule 和 Routines。下文保留来源命令。

文章社交分享图

几个月里,我只是把 Claude Code 当成高级自动补全:快速修改、生成样板,以及氛围编程。

后来,我深入研究 MCP 服务器、斜杠命令、插件、Skills、Hooks、子智能体和 CLAUDE.md。Claude Code 实际上是一套 AI 智能体编排框架,但大多数人只使用一两个功能,没有看到它们如何层层组合。现在它还可以运行在 CLI、VS Code、JetBrains、独立桌面应用、claude.ai/code Web 应用和 iOS 上。

本文会按照各概念的依赖顺序逐一解释,从外部连接一直讲到自动行为。如果刚开始使用大语言模型开发,可以先阅读我的大语言模型使用方式概览

回头来看,Claude Code 这个名字并不准确。它不只是编程工具,而是通用计算机自动化工具。任何能够通过在计算机中输入命令完成的事情,如今都可以由 Claude Code 自动执行。称它为通用智能体更合适,而 Skills 让这一点变得更加直观。

——Simon Willison,Claude Skills 很棒,重要性可能超过 MCP

✨ 简明总结

• → CLAUDE.md 为 Claude 提供项目记忆和上下文
• → Skills 是统一扩展模型,命令和 Skills 现在已经合并
• → 子智能体在隔离上下文中处理并行工作
• → Hooks 无须手动触发,会响应生命周期事件
• → 插件把命令、Hooks 和 Skills 打包共享
• → MCP 通过通用协议连接外部工具
• → Skills 根据任务上下文激活
• → 定时任务会在用户不在场时按 Cron 计划运行 Claude

功能技术栈

1、模型上下文协议(MCP)——连接外部工具和数据源的基础
2、Claude Code 核心功能——项目记忆、Skills、子智能体和 Hooks
3、插件——打包 Skills、Hooks 和元数据的可共享组件
4、Skills——统一扩展模型,取代旧的命令/Skill 二分法
5、定时任务——按 Cron 计划运行 Claude 的云端触发器

一脸了然的 Claude 前辈机器人

Claude 前辈知道所有功能!


1)模型上下文协议(MCP):连接外部系统

MCP 连接与能力发现流程

它是什么。模型上下文协议把 Claude Code 与外部工具和数据源连接起来,可以把它理解为适配 GitHub、数据库、API 和其他系统的通用接口。

**如何工作。**连接 MCP 服务器后,就能通过斜杠命令使用它的工具、资源和提示词:

# 安装服务器
claude mcp add playwright npx @playwright/mcp@latest

# 使用
/mcp__playwright__create-test [args]

延迟工具加载(2026)

Claude Code 不再在启动时加载完整 MCP 工具 Schema,而是只加载工具名称,再通过 ToolSearch 按需取得完整 Schema。运行 50 多项 MCP 工具时,上下文开销可以降低一个数量级。使用 /context 查看剩余用量。

**远程服务器。**MCP 规范增加了 Streamable HTTP 传输,取代 SSE,并使用带 PKCE 的 OAuth 2.1 进行身份验证。现在,无须运行本地 stdio 进程也能连接远程 MCP 服务器。

**注意事项。**MCP 服务器只会公开自己的工具,不会自动继承 Claude 的 Read、Write 或 Bash,除非主动提供。

**真实示例。**想看 MCP 的实际应用,可以阅读如何使用 Playwright MCP 构建像真实用户一样测试应用的 AI QA 工程师


2)Claude Code 核心功能

2.1)使用 CLAUDE.md 提供项目记忆

**它是什么。**Claude 启动时加载的 Markdown 文件,用来记住项目约定、架构和模式。

**如何工作。**文件按照企业 → 用户(~/.claude/CLAUDE.md)→ 项目(./CLAUDE.md)的层级合并。引用 @components/Button.vue 时,Claude 还会读取相应目录及父目录中的 CLAUDE.md。

发布后又新增了两项能力:CLAUDE.local.md 与 CLAUDE.md 位于同一位置但被 Git 忽略,可以加入不影响团队的个人偏好;~/.claude/rules/ 则允许把全局指令拆成多个文件,不必全部塞进一份大型 ~/.claude/CLAUDE.md

Vue 应用的示例结构:

└── my-vue-app/
    ├── CLAUDE.md  整个项目的约定、技术栈和构建命令
    └── src/
        ├── components/
        │   ├── CLAUDE.md  组件模式、命名约定和 Prop 类型
        │   ├── Button.vue
        │   └── Card.vue
        └── pages/
            ├── CLAUDE.md  路由模式、页面结构和数据获取
            ├── Home.vue
            └── About.vue

处理 src/components/Button.vue 时,Claude 会加载:

1、企业 CLAUDE.md,如已配置
2、用户 ~/.claude/CLAUDE.md,包含个人偏好
3、项目根目录 CLAUDE.md,包含整个项目的信息
4、src/components/CLAUDE.md,包含组件特定模式

**应该放什么。**常用命令、编码标准和架构模式。内容应当简洁,把它当作参考指南而不是完整文档。需要帮助时,可以阅读这份 CLAUDE.md 创建指南

下面是我的博客所用的 CLAUDE.md:

# CLAUDE.md

## 项目概览

Alexander Opalic 的个人博客,基于 AstroPaper,即使用 TypeScript、React 和 TailwindCSS 的 Astro 博客主题。

**技术栈**:Astro 5、TypeScript、React、TailwindCSS、Shiki、FuseJS、Playwright

## 开发命令

```bash
npm run dev              # 构建 + Pagefind + 开发服务器(localhost:4321)
npm run build            # 生产构建
npm run lint             # 对 .astro、.ts、.tsx 运行 ESLint
---
```

2.2)Skills:统一扩展模型

Skill 调用与分叉上下文决策流程

命令和 Skills 现在已经合并

到 2026 年,斜杠命令和 Skills 已经统一。.claude/commands/ 中的文件仍能工作,但建议使用 .claude/skills/。每个 Skill 都会获得 /slash-command 接口。Frontmatter 控制 Claude 能否自动调用、用户能否在 / 菜单中看到,以及它是否在子智能体中运行。

**它们是什么。**包含 SKILL.md 和可选辅助脚本的目录,用于定义可复用行为。Frontmatter 控制调用方式:Claude 可以根据任务上下文自动调用,用户可以用 /skill-name 手动触发,也可以同时支持两者。

主要 Frontmatter 字段:

字段 用途
name 显示名称并成为 /slash-command;小写、连字符,最多 64 个字符,默认使用目录名
description Skill 的用途,Claude 依据它决定是否自动调用
disable-model-invocation 设为 true,阻止 Claude 自动调用,例如部署、提交
user-invocable 设为 false,从 / 菜单隐藏,只作为后台知识
allowed-tools Claude 无须询问即可使用的工具
context 设为 fork,在隔离的子智能体上下文中运行
agent context: fork 时的子智能体类型:ExplorePlangeneral-purpose
model 覆盖模型:haikusonnetopus
argument-hint 自动补全中显示的参数提示
paths 限制 Skill 自动加载位置的 Glob,例如 src/**/*.ts

参数替换:$ARGUMENTS 表示全部参数,$0$1$2 表示位置参数,${CLAUDE_SKILL_DIR} 表示 Skill 目录。

主要功能:

• 使用 @file 语法内联代码
• 使用 allowed-tools: Bash(...) 运行预执行脚本
• 使用 XML 标签提示词提高输出可靠性

**适用场景。**可重复工作流、领域专业知识和自动化约束。完整 Git 工作流示例请参阅我的斜杠命令指南,也可以使用这份 Skill 创建指南自行创建。

示例:只能由用户触发的部署 Skill:

---
name: deploy
description: 把应用部署到生产环境
disable-model-invocation: true
allowed-tools: Bash(npm:*), Bash(git:*)
---

部署到生产环境:
1. 运行测试
2. 构建
3. 推送到部署目标

这会创建只能由用户调用/deploy,Claude 无法自动触发。

示例:在子智能体中运行的 Skill:

---
name: deep-research
description: 深入研究某个主题
context: fork
agent: Explore
allowed-tools: Read, Grep, Glob
---

深入研究 $ARGUMENTS。查找相关文件、阅读并分析,再总结发现。

调用时会生成独立上下文窗口,主对话保持干净。


2.3)子智能体:用于委派的专业 AI 角色

并行子智能体执行流程

**它们是什么。**预先配置、拥有特定专业领域的 AI 角色。每个子智能体都有自己的系统提示词、允许工具和独立上下文窗口。当任务与其专业能力匹配时,Claude 会进行委派。

**为什么使用。**把专业工作交出去,同时保持主对话干净。每个子智能体在自己的上下文窗口中工作,避免 Token 膨胀;多个子智能体还可以并行分析。

💪 避免上下文污染

子智能体可以防止详细实现工作堵塞主对话。安全审计、测试生成和重构等深入任务很容易让主上下文充满噪声,适合交给子智能体。

示例结构:

---
name: security-auditor
description: 分析代码中的安全漏洞
tools: Read, Grep, Bash # 控制该角色可以访问什么
model: sonnet # 可选:sonnet、opus、haiku、inherit
---

你是一名专注安全的代码审计人员。

识别漏洞,包括 XSS、SQL 注入、CSRF 等
检查依赖项和软件包
验证身份验证和授权
审查数据验证

按照严重、较高、中等、较低给出严重程度。
重点关注 OWASP Top 10。

系统提示词决定子智能体行为,description 告诉 Claude 何时委派,tools 字段限制访问。

**最佳实践:**每个子智能体只负责一个专业领域;只授予最低工具权限;简单任务使用 haiku,复杂分析使用 sonnet;相互独立的工作并行运行。需要模板时,请查看子智能体创建指南

Worktree 隔离(2026)

设置 isolation: worktree,让子智能体拥有自己的 Git Worktree。每个子智能体都在仓库的隔离副本中工作,因此可以并行编辑文件而不发生冲突。没有产生修改时 Worktree 会被清理;产生修改后,系统会返回 Worktree 路径和分支。

Claude 还内置三种无须配置文件即可使用的子智能体:Explore,速度快、只读、使用 Haiku;Plan,用于研究和架构,只读;General-purpose,拥有完整工具权限。

💪 智能体团队与子智能体

子智能体向父级汇报。智能体团队则不同:多个 Claude 会话作为同级相互协调、发送消息和共享任务。子智能体代表委派,智能体团队代表协作。


2.4)Hooks:自动执行的事件驱动操作

生命周期事件分发到多个 Hooks

**它们是什么。**在 .claude/settings.json 中使用 JSON 配置的处理程序,在生命周期事件发生时触发,无须手动调用。

可用事件,已从最初的七种扩展:

工具生命周期:PreToolUsePostToolUse
会话生命周期:SessionStartStopSubagentStartSubagentStop
任务生命周期:TaskCreatedTaskCompleted
环境:CwdChangedFileChanged
权限:PermissionDenied
上下文:PreCompactPostCompact
用户输入:UserPromptSubmitNotification

处理程序类型:

• **Command:**运行 Shell 命令,速度快且可预测
• **Prompt:**让 Claude 使用大语言模型判断,灵活且理解上下文
• **HTTP:**使用身份验证请求头向外部服务 POST JSON
• **Async:**加入 "async": true,让 Hook 在后台运行而不阻塞

PreToolUse Hooks 还可以返回 updatedInput,在执行前修改工具参数。

**示例:**编辑文件后自动运行 Lint。

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/run-oxlint.sh"
          }
        ]
      }
    ]
  }
}
#!/usr/bin/env bash
file_path="$(jq -r '.tool_input.file_path // ""')"

if [[ "$file_path" =~ \.(js|jsx|ts|tsx|vue)$ ]]; then
  pnpm lint:fast
fi

**常见用途:**编辑后自动格式化、要求批准 Bash 命令、验证写入、初始化会话。实际示例请参阅如何在 Claude 需要用户注意时设置桌面通知。也可以使用这份 Hook 创建指南自行构建。


3)插件:可共享的打包配置

插件清单、Skills 和 Hooks 结构

**它们是什么。**由 Skills、Hooks 和元数据组成的可分发软件包。可以把配置分享给团队成员,也可以安装别人预先构建的配置。

基本结构:

└── my-plugin/
    ├── .claude-plugin/
    │   └── plugin.json  清单:名称、版本、作者
    ├── skills/
    │   ├── greet/
    │   │   └── SKILL.md
    │   └── my-skill/
    │       └── SKILL.md
    └── hooks/
        └── hooks.json

**适用场景。**共享团队配置、打包领域工作流、分发带有明确主张的模式、安装社区工具。

**如何工作。**安装插件后立即获得全部功能。Hooks 会组合,Skills 会出现在自动补全中并根据上下文匹配激活。想自行构建,可以阅读插件创建指南


4)深入理解 Skills:放在哪里以及如何组合

第 2.2 节已经介绍 Skills,本节重点讨论发现、存放位置和组合模式。

**Claude 如何发现 Skills。**用户提供任务后,Claude 会查看可用 Skill 描述,寻找相关能力。如果某个 Skill 的 description 与任务上下文匹配,Claude 就会加载完整指令。自动调用的 Skills 不需要用户说出名称,Claude 会自行发现。

官方 Skill 示例

Anthropic 官方 Skills 仓库提供可以直接使用的示例。

Claude Skills 很棒,重要性可能超过 MCP。

——Simon Willison,Claude Skills 很棒,重要性可能超过 MCP

💪 高级 Skills:Superpowers 库

如果需要严格的规格驱动开发,可以查看 obra 的 Superpowers。这是一个强制系统化工作流的完整 Skills 库。

**提供内容:**TDD 工作流(红—绿—重构)、系统化调试、代码审查流程、Git Worktree 管理和头脑风暴框架。每个 Skill 都会推动基于验证的开发,而不是“相信我,它能运行”。

**理念:**实现前先测试,用证据验证,按照四阶段系统调试,编程前先规划,不走捷径。

**适用场景:**希望 Claude 在开发实践中更加严格,尤其是处理生产代码时。

存放位置:

~/.claude/skills/——个人级,适用于所有项目
.claude/skills/——项目专用
• 插件内部——可分发

**Skills 与 CLAUDE.md。**Skills 相当于模块化的 CLAUDE.md 片段。Claude 不必为每个任务读取大型文档,只在任务匹配时加载特定 Skill 指令,从而在保持自动行为的同时提高上下文效率。

**通过 Frontmatter 控制调用。**旧的命令/Skill 二分法已经消失,一份使用不同 Frontmatter 的 SKILL.md 可以覆盖全部用例:

模式 Frontmatter 结果
仅自动调用,旧“Skill” 设置 description:,使用默认值 Claude 在相关时调用
仅手动调用,旧“命令” disable-model-invocation: true 只有输入 /name 时运行
后台知识 user-invocable: false Claude 可以读取,用户在 / 菜单中看不到
自动和手动调用 设置 description:user-invocable: true Claude 与用户都能调用
隔离执行 context: forkagent: Explore 在拥有独立上下文的子智能体中运行

🚨 迁移旧命令

.claude/commands/ 中的文件仍能工作,并以 /slash-commands 形式显示。但新工作应放在 .claude/skills/ 中。Skill 格式支持命令的全部能力,还增加自动调用、context: forkpaths 筛选和模型覆盖。


5)定时任务与触发器:用户不在场时运行 Claude

**它们是什么。**在 Anthropic 基础设施上运行 Claude Code 的云端 Cron 任务。用户定义计划和提示词,Claude 按 Cron 间隔执行,并拥有完整项目访问权。

**如何配置。**使用 /schedule 命令,或者在 CLI 中运行 claude trigger create,定义 Cron 表达式和任务提示词:

claude trigger create --schedule "0 9 * * 1" --prompt "审查所有未关闭 PR 并汇总状态"

**会话内轮询。**对于生存时间较短的重复工作,/loop 5m /your-command 会在当前会话中按间隔运行斜杠命令。

Channels(研究预览)

Channels 让 MCP 服务器可以向 Claude 会话推送消息。Telegram、Discord、Webhook 等外部服务可以触发 Claude 的注意。截至 2026 年 4 月,它仍处于研究预览阶段。


把所有功能组合起来

这些功能在实践中的协作方式如下:

1、记忆(CLAUDE.md——建立 Claude 始终了解的项目上下文和约定
2、Skills——定义从手动工作流到自动调用专业知识的可复用行为
3、子智能体——把并行或隔离工作交给专业智能体
4、Hooks——在关键生命周期事件中强制规则并自动执行重复操作
5、插件——打包整套配置并分发给其他人
6、MCP——连接外部系统,把它们的能力作为命令提供
7、定时任务——按 Cron 计划运行 Claude,处理重复工作

示例:任务式开发工作流

下面是一套组合多个功能的真实工作流:

配置阶段:

CLAUDE.md 包含实现标准,例如“未经批准不得提交”“先编写测试”
/load-context Skill(disable-model-invocation: true)使用项目状态初始化新聊天
update-documentation Skill 在实现完成后自动调用
• Hook 在文件编辑后触发 Lint

规划阶段(聊天 1):

• 主智能体规划缺陷修复或新功能
• 输出包含具体方案的详细任务文件

实现阶段(聊天 2):

• 使用 /load-context 启动全新上下文
• 输入聊天 1 生成的计划
• 实现子智能体执行计划
update-documentation Skill 自行更新文档
/resolve-task Skill 把任务标记为完成

**有效原因:**主上下文专注于规划,繁重实现工作在隔离上下文中完成,Skills 处理文档,Hooks 强制执行质量标准。

决策指南:选择正确工具

社区资源:Claude Code Driver 仓库

🎉 非常感谢 @thewiredbear 创建 Claude Code Driver 仓库!这个社区项目收录了基于本文的示例、模板和资源,适合快速入门或寻找配置灵感,也欢迎贡献自己的模式。

快速参考速查表

如需全部 Claude Code 功能的完整可视化指南,请查看 Awesome Claude Code Cheat Sheet

💪 自定义终端

想在终端显示模型名称、上下文用量和成本?请阅读如何自定义 Claude Code 状态栏

💡 快速参考

使用 CLAUDE.md 定义持久项目上下文,包括架构、约定和 Claude 应始终记住的模式。最适合很少变化的静态知识。
• **使用 Skills**定义可复用工作流和专业知识。仅限手动触发时设置 disable-model-invocation: true;自动调用时不设置;使用 context: fork 可在子智能体中运行。适用于从部署脚本到风格约束的各种任务。
使用子智能体进行并行执行或隔离繁重计算,最适合防止上下文污染和专业深入研究。
使用 Hooks强制标准或响应特定事件,最适合质量关卡及与工具使用相关的操作。
使用插件跨团队或项目打包并共享完整配置,最适合团队标准化和分发特定工作方式。
使用 MCP集成外部系统,并把它们的能力公开为原生命令,最适合连接数据库、API 和第三方工具。
使用定时任务处理应当在用户不在场时运行的重复工作,最适合夜间审计、周报和周期维护。

功能对比

来源

下表改编自 IndyDevDan 的视频 “I finally CRACKED Claude Agent Skills”

类别 Skill MCP 子智能体 Trigger
触发者 智能体、工程师或两者 两者 两者 计划
上下文效率
上下文持久性
能否并行 ✅(context: fork
能否专业化
能否共享
模块化程度
工具权限
能否使用提示词
能否使用 Skills 某种程度上
能否使用 MCP 服务器
能否使用子智能体

真实用例

用例 最佳工具 原因
“Vue 应用始终使用 Pinia 管理状态” CLAUDE.md 适用于全部对话的持久上下文
生成标准化提交消息 Skill(disable-model-invocation: true 准备提交时显式触发
同时检查 Jira 工单并分析安全 子智能体 在隔离上下文中并行执行
每次编辑文件后运行 Linter Hook 自动响应生命周期事件
分享团队的 Vue 测试模式 插件 包含命令和 Skills 的可分发软件包
查询 PostgreSQL 数据库生成报告 MCP 集成外部系统
通过浏览器测试自动执行 SEO 审计 MCP 集成外部系统
在编辑时检测风格指南违规 Skill 根据任务上下文自动执行
根据模板创建 React 组件 Skill(disable-model-invocation: true 结构可重复的手动工作流
“TypeScript 中绝不使用 any Hook 代码修改后自动强制执行
保存时自动格式化代码 Hook 事件驱动自动化
连接 GitHub 管理 Issue MCP 集成外部 API
并行运行完整测试套件 子智能体 隔离且资源密集的工作
部署到预发布环境 Skill(disable-model-invocation: true 带有安全措施的手动触发
自动强制执行 TDD 工作流 Skill 理解上下文的自动行为
使用团队标准初始化新项目 插件 可共享的完整配置
每晚执行依赖项审计 Trigger 按 Cron 计划重复运行
每周一早晨汇总未关闭 PR Trigger 无须手动调用的定时报告