Claude Code 核心概念

Claude Code 核心概念

image

一、四大核心概念总览

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 典型结构

image

# .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 关键规则

  1. Subagent 调用 Tool:Agent 是执行主体,Tool 是被使用的手段
  2. Task 是特殊 Tool:Task Tool 是"Subagent 工厂",负责创建 Agent 实例
  3. Skill 被加载:Skill 是知识,被 Agent(主 Claude 或 Subagent)加载使用
  4. 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

posted @ 2026-03-13 23:50  wlu  阅读(323)  评论(0)    收藏  举报