Claude Code 核心概念
Claude Code 核心概念

一、四大核心概念总览
Claude Code 采用分层架构设计,包含四个相互关联的核心概念:
| 概念 | 本质 | 核心作用 | 类比 |
|---|---|---|---|
| Tool | 原子级执行能力 | 让 Claude 能"操作"外部世界 | 员工的双手/办公设备 |
| Skill | 程序性知识库 | 教 Claude "如何做"某件事 | 员工培训手册 |
| Agent | 隔离的执行上下文 | 在独立环境中专业地执行任务 | 专业部门的员工 |
| Plugin | 扩展打包单位 | 分发和共享完整解决方案 | 业务解决方案套装 |
架构层级:
Plugin(分发层)
├── Skill(知识层)── 教 Claude "如何做"
├── Agent(执行层)── 在隔离环境中执行
│ └── 调用 Tool(能力层)── 具体操作外部系统
└── MCP(连接层)── 标准化外部系统连接
二、Tool(工具)详解
2.1 定义
Tools 是 Claude Code 内置的原子级执行能力,允许 Claude 与本地文件系统、命令行、网络等进行交互。它们是 Claude Code 实现 Agent 行为的基础构建块。
2.2 完整工具列表(15+个)
| 类别 | 工具 | 功能 |
|---|---|---|
| 文件操作 | Read |
读取文件内容 |
Write |
写入/创建新文件 | |
Edit |
精确编辑现有文件 | |
MultiEdit |
批量编辑多个文件 | |
NotebookEdit |
编辑 Jupyter Notebook | |
| 搜索探索 | Grep |
代码/文本搜索(正则匹配) |
Glob |
文件路径模式匹配 | |
LS |
列出目录内容 | |
| 命令执行 | Bash |
执行任意 shell 命令 |
BashOutput |
获取长时间运行命令的输出 | |
KillShell |
终止正在运行的 shell 进程 | |
| 任务管理 | Task |
创建并行 Subagent(特殊工具) |
TodoWrite |
创建和管理待办事项 | |
ExitPlanMode |
退出计划模式,进入执行模式 | |
| 网络信息 | WebFetch |
抓取特定网页内容 |
WebSearch |
执行网络搜索 | |
SlashCommand |
调用自定义斜杠命令 |
2.3 工具分层架构
高级工具 (High-level)
├── Task, WebFetch, ExitPlanMode ← 复杂工作流、决策、创建 Subagent
中级工具 (Mid-level)
├── Edit, Grep, Glob, TodoWrite ← 结构化操作,token 高效
低级工具 (Low-level)
├── Read, Write, Bash ← 原子操作,最基础能力
2.4 Task Tool 的特殊性
Task 是 Tool,但是"元工具"(Meta-Tool):
| 特性 | 普通 Tool | Task Tool |
|---|---|---|
| 操作对象 | 外部世界(文件、命令、网络) | Claude Code 自身架构 |
| 功能 | 执行具体操作 | 创建新的 Subagent 实例 |
| 类比 | 员工使用办公设备 | HR 系统招聘新员工 |
关键理解:
- 不是:Tool "调用" Agent(主从关系)
- 而是:Task Tool "创建/实例化" Agent,Agent 成为独立执行主体(生产关系)
调用流程:
用户请求
↓
主 Claude 分析:需要专业能力 → 决定创建 Subagent
↓
调用 Task Tool(配置 agent 参数)
↓
Task Tool 生成 Subagent 实例(加载对应 .md 定义)
↓
Subagent 成为独立执行主体,调用其他 Tools 完成工作
↓
Subagent 返回结果,主 Claude 整合
三、Skill(技能)详解
3.1 定义
Skill 是基于 Markdown 的程序性知识库,用于教 Claude "如何做"某件事。它是被动加载的知识,当对话上下文匹配时自动激活。
3.2 核心特征
| 特性 | 说明 |
|---|---|
| 渐进式加载 | 仅加载名称和描述(30-50 tokens),匹配后才加载完整内容 |
| 自动触发 | Claude 根据对话上下文自动识别并调用,无需手动指定 |
| 文件位置 | .claude/skills/{skill-name}/SKILL.md |
| 低 Token 消耗 | 比 MCP 高效得多,适合高频使用 |
3.3 典型结构

# .claude/skills/code-review/SKILL.md
---
name: code-review
description: 代码审查标准,在审查PR或代码变更时自动应用
---
## 检查清单
- [ ] 是否包含单元测试?
- [ ] 是否符合PEP8规范?
- [ ] 是否有潜在的安全漏洞?
## 审查流程
1. 首先阅读变更摘要
2. 检查测试覆盖率
3. 验证安全最佳实践
3.4 Skill vs MCP 对比
| 维度 | Skill | MCP/Tool |
|---|---|---|
| 核心功能 | 教 Claude "如何做" | 让 Claude "能访问" |
| 执行方式 | 自然语言指令(可能模糊) | 结构化 API 调用(精确) |
| Token 效率 | 极高(30-50 tokens) | 较高(可能上万 tokens) |
| 确定性 | 依赖 LLM 推理 | 精确、可预测 |
| 技术门槛 | 低(写 Markdown) | 中(需配置服务器) |
| 适用场景 | 流程、规范、最佳实践 | 外部数据、精确操作 |
四、Agent(代理/子代理)详解
4.1 定义
Agent 是具有隔离上下文的专用 AI 工作进程,在独立会话中处理特定任务。它是主动的执行者,可以加载 Skills 并调用 Tools。
例如,https://github.com/msitarzewski/agency-agents/tree/main
4.2 核心特征
| 特性 | 说明 |
|---|---|
| 上下文隔离 | 在独立会话中运行,避免污染主对话上下文 |
| 专用配置 | 可指定特定 Skill 和 Tool 权限 |
| 并行执行 | 支持多任务并行处理(唯一支持并行的扩展类型) |
| 文件位置 | .claude/agents/{agent-name}.md |
4.3 Agent 定义结构
# .claude/agents/security-auditor.md
---
name: security-auditor
description: 安全审计专家,专注于漏洞扫描和合规检查
skills: [security-checklist, owasp-top10] # 加载的知识
tools: [Read, Grep, Bash, WebSearch] # 授权的工具
model: inherit # 或指定特定模型
context: fork # 隔离级别:fork(完全隔离)或 active(继承上下文)
---
你是安全审计专家。使用加载的 Skill 对代码进行深度安全检查,
重点关注:
1. SQL 注入漏洞
2. XSS 攻击向量
3. 敏感信息泄露
4.4 Agent 调用方式
方式一:自然语言激活(推荐)
直接在对话中提及 Agent 名称或描述:
"帮我审查这段代码的安全性" → 自动激活 security-auditor
"激活 Frontend Developer 模式" → 激活 frontend-developer
方式二:显式 @ 调用
@security-auditor 检查 src/auth.js 的漏洞
@frontend-developer 创建一个 React 组件
方式三:通过 Command 调用
# .claude/commands/audit.yaml
---
name: security-audit
description: 运行安全审计
agent: security-auditor # 指定使用哪个 Agent
---
启动安全审计流程,检查 {{file_path}} 的潜在漏洞。
方式四:Task Tool 程序化创建
{
"tool": "Task",
"description": "并行安全审计",
"prompt": "审查 src/auth.js 的安全漏洞",
"agent": "security-auditor"
}
4.5 Agent vs Skill 关键区别
| 维度 | Skill | Agent |
|---|---|---|
| 本质 | 知识手册(被动) | 执行工人(主动) |
| 上下文 | 加载到当前会话 | 独立隔离会话 |
| 工具使用 | 依赖主 Claude 的工具权限 | 可独立配置工具权限 |
| 并行性 | 不支持 | 支持并行执行 |
| 触发方式 | 自动匹配描述 | 自动匹配或显式调用 |
| 文件位置 | .claude/skills/{name}/SKILL.md |
.claude/agents/{name}.md |
五、Plugin(插件)详解
5.1 定义
Plugin 是可安装的扩展包,捆绑 Skills、Agents、Commands、Hooks 和 MCP 配置的分发单位。它解决的是"如何共享"的问题。
5.2 核心特征
| 特性 | 说明 |
|---|---|
| 一键安装 | /plugin install github.com/user/plugin |
| 版本管理 | 支持更新和依赖管理 |
| 团队共享 | 将整个工作流打包分享给团队成员 |
| 完整打包 | 可包含 Skills、Agents、Commands、Hooks、MCP 配置 |
5.3 典型 Plugin 结构
my-plugin/
├── skills/ # 领域知识
│ ├── code-review/
│ └── testing-standards/
├── agents/ # 专用代理
│ ├── security-auditor.md
│ └── frontend-developer.md
├── commands/ # 快捷命令
│ ├── audit.yaml
│ └── deploy.yaml
├── hooks/ # 生命周期钩子
│ ├── pre-command.sh
│ └── post-response.sh
└── mcp-servers/ # 外部连接配置
└── github.json
5.4 安装方式对比
| 方式 | 命令/操作 | 适用场景 |
|---|---|---|
| Plugin 安装 | /plugin install github.com/user/repo |
正式分发、版本管理、团队共享 |
| 原生 Agent 复制 | cp -r agents/* ~/.claude/agents/ |
快速试用、个人使用、开发调试 |
注意:Agency Agents(112 个原生 Agent)就是不通过 Plugin 形式分发的典型例子,直接复制到 ~/.claude/agents/ 即可使用。
六、MCP(Model Context Protocol)详解
6.1 定义
MCP 是标准化连接外部系统的协议,让 Claude Code 能够访问外部数据源和服务。它是 Tool 的扩展,但专注于外部连接。
6.2 MCP vs Tool 区别
| 特性 | 内置 Tool | MCP |
|---|---|---|
| 范围 | Claude Code 内置能力 | 第三方扩展能力 |
| 连接对象 | 本地文件系统、命令行 | 外部 API、数据库、服务 |
| 配置方式 | 无需配置 | 需要配置服务器参数 |
| Token 消耗 | 低 | 较高(可能数千至数万) |
| 示例 | Read, Write, Bash | GitHub MCP, PostgreSQL MCP |
6.3 典型 MCP 服务器
- GitHub MCP:代码管理、PR 操作、Issue 跟踪
- PostgreSQL MCP:数据库查询、Schema 管理
- Slack MCP:消息发送、频道管理
- Browser MCP:浏览器自动化、网页抓取
七、调用关系与架构流程
7.1 正确的调用方向
用户请求
↓
主 Claude Code(协调者)
↓
┌─────────────────────────────────────────┐
│ 分析意图 → 决定使用 Agent 或直接 Tools │
│ │
│ 场景 A:需要专业能力/隔离/并行 │
│ └── 调用 Task Tool │
│ └── 创建 Subagent 实例 │
│ └── Subagent 调用 Tools │
│ ├── Read/Write(文件操作) │
│ ├── Bash(命令执行) │
│ └── MCP(外部连接) │
│ │
│ 场景 B:简单任务 │
│ └── 直接调用 Tools │
│ ├── Read/Write/Bash │
│ └── 其他内置 Tools │
└─────────────────────────────────────────┘
↓
整合结果返回给用户
7.2 关键规则
- Subagent 调用 Tool:Agent 是执行主体,Tool 是被使用的手段
- Task 是特殊 Tool:Task Tool 是"Subagent 工厂",负责创建 Agent 实例
- Skill 被加载:Skill 是知识,被 Agent(主 Claude 或 Subagent)加载使用
- MCP 被调用:MCP 是外部连接能力,被 Agent 通过 Tool 机制调用
7.3 常见误解澄清
| 误解 | 真相 |
|---|---|
| ❌ "Tool 调用 Agent" | ✅ Task Tool 创建 Agent,Agent 成为独立主体 |
| ❌ "Agent 是 Tool 的一种" | ✅ Agent 使用 Tools,但拥有独立上下文和角色 |
| ❌ "Skill 和 Agent 是同一层" | ✅ Skill 是知识,Agent 是执行者,Agent 可以加载 Skills |
| ❌ "必须通过 Plugin 使用 Agent" | ✅ Agent 可以原生复制使用,Plugin 只是分发方式 |
八、决策树:如何选择使用什么?
开始:有一个任务需要处理
↓
需要连接外部系统(GitHub、数据库、Slack)?
├── 是 → 使用 MCP 服务器
│ └── 配置 mcp-servers.json
└── 否 → 需要教 Claude 特定流程或标准?
├── 是 → 需要自动触发还是手动调用?
│ ├── 自动触发 → 使用 Skill
│ │ └── 创建 .claude/skills/{name}/SKILL.md
│ └── 手动调用 → 使用 Command
│ └── 创建 .claude/commands/{name}.yaml
└── 否 → 需要隔离上下文或并行处理?
├── 是 → 使用 Agent/Subagent
│ ├── 创建 .claude/agents/{name}.md
│ └── 通过自然语言、@提及或 Task Tool 调用
└── 否 → 需要打包分享给团队?
├── 是 → 使用 Plugin
│ └── 创建 .claude-plugin/marketplace.json
└── 否 → 直接使用主 Claude 的内置 Tools
九、实际案例:销售仪表板创建
场景
用户请求:"创建一个现代设计的销售仪表板 demo,包含销售指标、图表和响应式布局"
执行流程
用户输入
↓
主 Claude 分析:需要前端专业能力,涉及 UI 实现、性能优化
↓
匹配到 Frontend Developer Agent(根据 agents.md 描述)
↓
调用 Task Tool 创建 Subagent:
{
"tool": "Task",
"description": "创建销售仪表板",
"prompt": "创建一个demo销售仪表板,包含现代设计、销售指标可视化、响应式布局",
"agent": "frontend-developer"
}
↓
Frontend Developer Subagent 启动(隔离上下文)
↓
Subagent 执行:
1. Bash: mkdir -p dashboard && cd dashboard
2. Write: index.html(HTML 结构)
3. Write: styles.css(现代 CSS 设计)
4. Write: app.js(图表库集成、交互逻辑)
5. Bash: 可能调用 npm install chart.js
6. Read: 验证文件完整性
↓
Subagent 完成,返回结果给主 Claude
↓
主 Claude 向用户展示:C:\Users\LUW24\sales-dashboard.html 已创建
关键点
- Task Tool 只是"HR 系统",负责招聘(创建)Frontend Developer
- Frontend Developer Subagent 是实际"员工",使用双手(Tools)完成工作
- Subagent 拥有独立上下文,避免污染主会话
十、总结与核心记忆点
| 概念 | 一句话定义 | 记忆口诀 |
|---|---|---|
| Tool | 原子执行能力 | "手" —— 具体操作 |
| Skill | 程序性知识 | "脑中的知识" —— 知道如何做 |
| Agent | 隔离的执行者 | "人" —— 专业的员工 |
| Plugin | 打包分发单位 | "套装" —— 完整解决方案 |
| MCP | 外部连接协议 | "电话线" —— 连接外部世界 |
架构精髓:
- Tools 是能力,Agents 是使用能力的主体
- Task Tool 是工厂,Subagent 是产品
- Skills 是知识,Agents 是知识的执行者
- Plugins 是包装,让一切可分享
调用链永远:
用户 → 主 Claude → [Task Tool] → Subagent → Tools/MCP → 外部世界
↓
或直接 Tools(简单任务)
将上面的markdown转为pdf

浙公网安备 33010602011771号