Claude Code是一个可编程、可扩展、可组合的 AI Agent 框架。

说白了,它不只是工具箱里的一把螺丝刀,而是整间五金铺——你不仅能拧螺丝,还能现场造螺丝刀、改说明书,甚至把隔壁老王家的电钻也拉进来一起嗨。就像没人会把 VS Code 简单叫“记事本++”一样,Claude Code 也绝不是“聊天框里会写代码的小可爱”,它是能让你躺着就把 CI/CD 跑通、把需求变 PR 的“赛博替身”。

5 分钟快速上手

工欲善其事必先利其器,我们首先花几分钟,把 Claude Code 用起来。第一步,在 这里 下载匹配你系统的 Claude Code 版本。

Claude Code Install

Claude Code 是付费软件,需要在 Claude 网站开账户。它所支持的账户类型包括:

  • Claude Pro / Max / Teams / Enterprise(推荐)
  • Claude Console(API 访问,需预付费)

以下最基本的命令行(Command Line)交互方式,以及常用命令的速查表。

1
2
3
4
5
6
7
cd ~/work/letsvan-mini/   # 进入项目目录
claude # 启动交互模式

# 然后你可以:
> 这个项目是做什么的? # 了解项目
> 帮我加一个 hello world 函数 # 修改代码(会请求确认)
> 提交我的更改 # Git 操作
常用命令速查表

Claude Code Commands

除了把 Claude 当“纯爷们”命令行使唤,更时髦的玩法是让它“潜伏”进 VS Code、浏览器,甚至隔壁 Cursor 的工位里——把 Coding IDE 和 Claude Code 打包成“黄金搭档”。左手 IDE 的丝滑补全,右手命令行的狂暴输出,一份代码,双倍快乐,堪称程序员界的“左手咖啡右手键盘”。

从入门到驾驭

大多数人使用 Claude Code 的方式:

1
用户 → 输入问题 → Claude 回答 → 完成

然后就止步于此了。

Claude Code 可以生成代码,从 0 开始做项目,整理文件,甚至优化你的操作系统……虽然能做到这些也已经很强大了,但这仍然只是被动使用!而 Claude Code 还支持另一种模式:

1
用户 → 配置 Agent → Agent 自主工作 → 自动完成任务

这是主动驾驭——你设计,它执行。就像我们编写程序,程序自动运行。

举个例子:
Claude Code Example

如何从被动使用者变成主动驾驭者?

对于 Claude Code:

  • 使用者:知道怎么提问,怎么让 Claude 帮你写代码。
  • 驾驭者:理解记忆系统、子代理、技能包、钩子的工作原理,能构建自定义工作流。

我们现在这一讲就是“驾驭者入门”——让你看到 Claude Code 引擎盖下面的东西。

Claude Code 底层技术全景图

Claude Code 的底层能力从技术上拆解可以分为四个层次:基础层、扩展层、集成层和编程接口层。

Claude Code Architecture

让我们从上到下,逐层解析:

基础层:Memory(记忆系统)

基础层也可以称为是 Claude Code 的长期记忆系统,它的核心文件是 CLAUDE.md。

比如入职一家新公司,第一天你会收到一份新员工手册,告诉你:

  • 公司的代码风格是什么。
  • Git 提交信息怎么写。
  • 项目的架构是怎样的。
  • 有哪些不能碰的“禁区”。

而 CLAUDE.md 就是 Claude 的“新员工手册”。

因此,我强烈建议每一个人都为你的 Claude 创建 CLAUDE.md,以提供给它一系列最基本的信息。

例如,当我们要开始一个新的电商项目,我创建了下面的 CLAUDE.md 文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Project: E-commerce Platform

## Tech Stack
- Frontend: React + TypeScript
- Backend: Node.js + Express
- Database: PostgreSQL

## Code Style
- Use functional components
- Prefer async/await over .then()
- Maximum line length: 100 characters

## Important Rules
- NEVER commit to main directly
- Always run tests before pushing

Claude 每次开始对话时,都会读取这个文件。这样它就“记住”了你的项目规范,不需要每次重复说明。

Claude Code 并不是只有一个CLAUDE.md记忆文件,全局、项目和项目的特定模块都可以拥有属于自己的记忆文件(或者也可以叫配置文件)。

1
2
3
4
5
~/.claude/CLAUDE.md         # 全局(所有项目共用)

项目根目录/CLAUDE.md # 项目级(当前项目)

项目根目录/.claude/rules/*.md # 模块级(特定目录)

我们可以把这些文件视为 Claude Code 系统记忆的不同层级。

扩展层:四大核心组件

这一层是 Claude Code 的能力中心,包含 Commands(斜杠命令)、Skills(技能)、SubAgents(子代理)、Hooks(钩子)四个核心组件。

1、Commands(斜杠命令)

斜杠命令是 Claude Code 内置或用户自定义的一系列核心能力,其触发方式是用户手动输入 /command

1
2
3
用户输入: /review

Claude 执行: 根据 .claude/commands/review.md 的指令审查代码

Commands 适合标准化操作——团队统一的 commit 格式、固定的部署流程等。

2、Skills(技能)

技能就是 Claude 的“隐藏菜单”——它自己瞄一眼上下文,觉得“嗯,这题我会”,啪地一声就把对应外挂给点亮了。这些外挂可以是官方原装,也能由你 DIY,主打一个“懂我者,AI 也”。

1
2
3
4
5
用户说: "帮我看看这段代码有没有安全问题"

Claude 思考: 这是代码安全审查任务 → 激活 security-review Skill

Claude 执行: 按照 Skill 中定义的流程审查代码

不少人初听 Skills,第一反应都是:“这不就是升级版的 tool 吗?Agent 直接甩个函数调用不香吗?”

我摊手:长得像,但身份证不一样。Tool 是对外喊“外卖”,Skills 是大脑里自带“菜谱”——把 if-else、prompt、策略、执行顺序,全塞进一页小抄,打包成“专家套餐”。

一句话:Tool 管“能不能干”,Skills 管“该不该干、怎么干、干到几分熟”。于是灵魂追问来了——啥时候喊 Skills 上菜,啥时候让 Commands 端盘子?

Commands 像公司团建,固定流程、打卡签到、可复盘;Skills 像老炮私厨,看食材下刀、凭火候翻锅,今天想多加一勺辣,全凭心情和锅气。遇到“安全、架构、性能”这种带味儿的老汤,就让 Skills 这位老炮掌勺;要是只想标准快餐,直接 /command 点单,干净又卫生。

拿刚才的例子来说——当用户问“帮我看看这段代码有没有安全问题”。Claude 的隐式判断流程是这样的。

1
2
3
4
5
1️⃣ 这是代码吗?——是
2️⃣ 这是哪一类代码?——Node.js 后端
3️⃣ 上下文是否涉及用户输入?——是
4️⃣ 是否存在鉴权逻辑?——是
5️⃣ 是否值得深入做安全审查?——是

做完这些判断之后,就会自动激活 security-review Skill。

在 Skill 内部,是“像专家一样”的行为说明,它不会跑固定 checklist,而是根据语言选择重点、根据上下文跳过无关项、在发现高风险点时主动深挖、在安全风险低时明确告诉你“为什么没问题” —— 这不是流程执行,这是专家判断。

3、SubAgents(子代理)

子代理是除了 Skills 之外的另一个大杀器,用于独立完成专项任务。其触发方式可以由 Claude 决定或用户指定。

1
2
3
主 Claude: 这个任务需要跑大量测试,让我创建一个子代理来处理。

子代理(test-runner): 执行测试,只把结果汇报给主 Claude

SubAgents 适合隔离执行——高噪声任务(比如在大量日志中寻找出错信息,在大量文档中检索相关资源)、需要特定权限的任务。

4、Hooks(钩子)

钩子是在特定事件触发时自动执行的脚本,其触发方式是事件自动触发。

1
2
3
4
5
事件: Claude 即将执行 Edit 工具

Hook: 自动检查是否有安全敏感内容

结果: 如果发现问题,阻止执行并警告

Hooks 适合自动化检查——格式化、安全检查、日志记录等。

集成层:连接外部世界

上面这四大核心组件之上,是集成层,负责链接外部世界。
集成层包含 Headless(无头模式)和 MCP(Model Context Protocol)两大技术。

1、Headless(无头模式)

无头模式让 Claude Code 在没有人工交互的情况下运行,适合 CI/CD 集成——自动代码审查、自动修复、自动生成变更日志等。

1
2
3
# GitHub Actions 中
- name: Auto-fix code issues
run: claude --headless "Fix all linting errors in src/"

2、MCP(Model Context Protocol)

MCP 让 Claude 连接外部工具和服务,适合工具连接——可以把任何外部系统变成 Claude 可调用的工具。

1
2
3
Claude → MCP → 数据库
Claude → MCP → Jira
Claude → MCP → 自定义 API

编程接口层:Agent SDK

当配置式的扩展不够用时,你可以用代码来驱动 Claude。这种方式适合构建自定义 Agent——完全控制执行流程、自定义工具、复杂工作流。

1
2
3
4
5
6
7
8
9
10
from claude_sdk import ClaudeSDKClient

client = ClaudeSDKClient()

# 执行任务
result = client.query(
prompt="Review this code for security issues",
tools=["Read", "Grep"],
max_turns=10
)

组件关系和技术选型指南

在真实的系统中,这些组件不是孤立存在的——它们相互协作,共同完成复杂任务。

触发方式

首先看触发方式,也就是这些组件是怎么被激活的?不同组件的触发方式决定了它们的使用场景。

组件触发方式

为什么“确定性”很重要?

如果我们要设计一个生产系统:

  • 如果你需要“每次都必须执行”的操作(比如代码格式化),你需要 100% 确定性——选择 Commands 或 Hooks。
  • 如果你希望 Claude “智能判断何时使用”(比如识别到安全问题时自动深入分析),你可以接受概率性——选择 Skills。
  • 如果任务可能很重,你希望“既可以手动触发,也可以让 Claude 自己决定”,你需要可控性——选择 SubAgents。

上面表格会在你做技术选型时反复用到。

数据流向

理解了触发方式,我们来看数据是怎么在系统中流动的。这张图展示了一个典型请求的生命周期:

数据流向

让我结合一个具体场景来解释这个流程——当用户输入“帮我修复 src/api.js 中的安全漏洞”之后,Claude 可能的处理流程如下。

1.Memory 层:Claude 首先加载 CLAUDE.md,了解到这是一个 Node.js 项目,团队要求所有安全修复必须附带测试。

2.扩展层分发:

用户没有输入斜杠命令,所以 Commands 不参与。

Claude 识别出“安全漏洞”关键词,激活 security-review Skill

Skill 指示 Claude 创建一个子代理来执行测试。

3.Hooks 监控:Claude 准备执行 Edit 工具修改代码时,Hooks 自动运行预检查脚本,确保没有引入新的安全问题。

4.工具执行:通过 Read、Edit 等工具完成代码修改。

5.MCP 连接:如果配置了 Jira MCP,还可以自动更新相关的 ticket 状态。

小结:Memory 是基础设施,始终存在;扩展层是能力中心,按需激活;Hooks 是守门人,监控一切。

Plugins:打包容器

当你开发了一套好用的 Commands、Skills、Hooks 组合,想要分享给团队或社区时,就需要 Plugins。

Plugins 不是一种新能力,而是打包机制——就像 npm 包把一堆 JavaScript 文件打包在一起,Plugin 把一组相关的 Claude Code 扩展打包在一起

1
2
3
4
5
6
7
8
9
10
11
my-team-plugin/
├── commands/ # 斜杠命令
│ └── review.md
├── skills/ # 技能
│ └── security-check/
│ └── SKILL.md
├── agents/ # 子代理
│ └── test-runner.md
├── hooks/ # 钩子
│ └── pre-edit.sh
└── plugin.json # 插件配置

一个典型的 Plugins 使用场景:

你是团队的技术 Lead,花了两周时间打磨出一套完美的代码审查流程:一个 /review 命令触发审查,一个 code-quality Skill 自动分析代码质量,一个 test-runner 子代理执行测试,还有一个 Hook 确保所有修改都有对应的测试。
与其让团队成员手动复制这些文件,不如打包成一个 Plugin,新成员只需一条命令就能获得完整的工作流。

Plugin 的价值在于可复用、可版本化、可分发。

技术选型指南

用几个真实问题来演示如何做技术选型决策:

问题 1:我希望团队成员都用统一的 commit message 格式。

  • 这是一种“能力”吗?是的,是生成规范 commit message 的能力。
  • 希望手动触发还是自动识别?手动触发更合适,因为不是每次对话都需要 commit。
  • 答案:适合用 Commands(创建一个 /commit 命令)。

问题 2:每当 Claude 要修改代码时,我想自动检查是否符合我们的安全规范。

  • 这是一种“能力“吗?不是,这是一种“检查机制”。
  • 需要在工具执行时自动检查? 对,在 Edit 工具执行前检查。
  • 答案:适合用 Hooks(创建一个 pre-Edit hook)

问题 3:我想让 Claude 能够查询我们内部的知识库。

  • 这是一种“能力”吗? 不完全是,这是“连接外部数据源”。
  • 需要连接外部系统? 知识库是一个外部系统
  • 答案:适合用 MCP(创建一个知识库 MCP server)。

组合使用

真实世界的问题很少能用单一技术解决。Claude Code 的强大之处在于组件可组合——每个组件做好自己的事,组合起来完成复杂任务。

假设你想实现这样一个流程:每当有人提交 PR,自动进行代码审查,发现问题就评论,没问题就通过。这需要组合多种技术:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1. Headless 模式在 CI 中触发
└── GitHub Actions 监听 PR 事件,调用 claude --headless

2. 调用 code-review SubAgent
└── 隔离审查任务,避免污染主流程上下文

3. SubAgent 使用 security-check Skill
└── 自动识别安全相关代码,应用专业审查规则

4. Hooks 记录审查日志
└── 每次工具调用都记录,便于审计和调试

5. 结果通过 MCP 发送到 Slack
└── 审查完成后通知相关人员

这五个步骤涉及五种不同的技术,但组合在一起就是一个完整的自动化流程。这就是可组合的威力。

总结

首先,我希望你记住最重要的一个认知转变:Claude Code (以及其它 AI Coder)不只是一个聊天工具,而是一个可编程的 AI Agent 框架。它有自己的记忆系统、有可以分工协作的子代理、有按需加载的技能包、有事件驱动的钩子机制。理解这一点,你才能真正发挥它的潜力。

其次,我们梳理了整个技术栈的四层架构。最底层是 Memory,让 Claude 记住你的项目;往上是扩展层,包括 Commands、Skills、SubAgents 和 Hooks 四大核心组件;再往上是集成层,Headless 让它融入 CI/CD,MCP 让它连接外部世界;最顶层是 Agent SDK,给你完全的编程控制能力。每一层都有明确的职责,相互配合又互不干扰。

然后,我们学习了技术选型的方法。面对一个需求,你需要问自己:这是能力问题还是流程问题?需要确定性触发还是智能识别?需要隔离执行还是集中处理?顺着决策树走下来,答案往往就清晰了。

最后,也是最有价值的一点:这些组件是可以组合的。单独的 Command 只是一个命令,单独的 Skill 只是一个能力包,但当你把 Headless + SubAgent + Skill + Hook + MCP 组合在一起,就变成了一个完整的自动化流程。这种组合的灵活性,才是 Claude Code 真正的威力所在。