01|登台远望:Claude Code 底层技术全景导览

你好,我是悦创。让我们正式开启第一课的学习。
在我们的旅程正式启航之际,请你先思考第一个问题:你眼中的 Claude Code 是什么?
我们可能会得到很多个不同的答案:
- 一个能读懂代码的 AI 助手;
- 命令行里的 ChatGPT;
- 帮我写代码的工具;
- 比 GitHub Copilot 更强大的东西;
这些答案都对,但都不完整。
Claude Code 的真正身份是:一个可编程、可扩展、可组合的 AI Agent 框架。
它不只是一个“工具“,而是一个“平台”——你可以在上面构建自己的 AI 工作流。就像你不会说“VS Code 是一个文本编辑器”(它是,但远不止于此),Claude Code 也远不只是一个 AI 助手。
这一讲,我们将站在高处,俯瞰 Claude Code 的完整技术栈。当你理解了全貌,后面学习每一个组件时,都会知道它在整个系统中的位置。
1. Claude Code 5 分钟快速上手
我们先花几分钟,把 Claude Code 用起来。第一步,在这里下载匹配你系统的 Claude Code 版本。

安装过程非常简单,跟着官方的说明就好。
# macOS / Linux / WSL(推荐,自动更新)
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex
# 或使用 Homebrew(需手动更新)
brew install --cask claude-code然后进入操作系统的命令行,输入 claude 这个命令就可以开始对话了。
claude # 首次运行会提示登录Claude Code 是付费软件,需要在 Claude 网站开账户。它所支持的账户类型包括:
- Claude Pro / Max / Teams / Enterprise(推荐)
- Claude Console(API 访问,需预付费)

- Cursor(https://cursor.com):基于 VS Code 的 AI 编辑器,内置 Claude 和 GPT 模型,支持国内网络,有免费额度,其体验最接近 Claude Code 的 IDE 集成方案。
- Cline(VS Code 插件):开源的 AI 编码助手插件:支持多种 LLM 后端,包括国内的 DeepSeek、Qwen 等,可以自己配置 API,灵活度高。
- Windsurf(https://codeium.com/windsurf):Codeium 推出的 AI IDE,有免费版,支持 agentic 编码。
- 通义灵码(阿里云):国产 AI 编程助手,IDE 插件形式,完全国内可用,无需翻墙。
- 自建方案:使用 Cline + DeepSeek API(国内可直接访问);或者使用 Cline + 本地部署的开源模型(如 Qwen-Coder)
本课程的知识框架(Memory、SubAgents、Skills、Hooks 等概念)对于理解和使用其他 AI 编码工具同样适用。当然,如果你有稳定的网络环境,Claude Code 仍然是目前 agentic coding 体验最好的工具之一。
下面是最基本的命令行(Command Line)交互方式,以及常用命令的速查表。
cd /path/to/your/project # 进入项目目录
claude # 启动交互模式
# 然后你可以:
> 这个项目是做什么的? # 了解项目
> 帮我加一个 hello world 函数 # 修改代码(会请求确认)
> 提交我的更改 # Git 操作
除了在命令行中直接使用 Claude 命令之外,另一种更为常见的方式就是和 VS Code 浏览器中,甚至是其它 AI Coder 中(如 Cursor),把 Coding IDE 和 Claude Code 命令行集成使用。这样既可以享受 IDE 的便利,又可以利用命令行的强大,一举两得。
2. 从使用者到驾驭者
总结一下上面的使用步骤:
用户 → 输入问题 → Claude 回答 → 完成你问,它答。就像用计算器,输入数字,得到结果。大多数人使用 Claude Code 的方式,就止步于此了。
Claude Code 可以生成代码,从 0 开始做项目,整理文件,甚至优化你的操作系统……虽然能做到这些也已经很强大了,但这仍然只是被动使用!
而 Claude Code 还支持另一种模式:
用户 → 配置 Agent → Agent 自主工作 → 自动完成任务这是主动驾驭——你设计,它执行。就像我们编写程序,程序自动运行。
举个例子:

这门课的目标,把你从被动使用者变成主动驾驭者。
你肯定会说,悦创,我当然想走得更远一些,从被动使用者晋级为主动驾驭者,那成为驾驭者需要理解什么?
用学开车打个比方:
- 使用者:知道方向盘转哪边车往哪走,油门让车动,刹车让车停。
- 驾驭者:理解发动机、变速箱、刹车系统的工作原理,能改装车辆。
对于 Claude Code:
- 使用者:知道怎么提问,怎么让 Claude 帮你写代码。
- 驾驭者:理解记忆系统、子代理、技能包、钩子的工作原理,能构建自定义工作流。
我们现在这一讲就是“驾驭者入门”——让你看到 Claude Code 引擎盖下面的东西。
3. Claude Code 底层技术全景图
Claude Code 的底层能力从技术上拆解可以分为四个层次:基础层、扩展层、集成层和编程接口层。

让我从下往上解释每一层。
4. 基础层:Memory(记忆系统)
基础层也可以称为是 Claude Code 的长期记忆系统,它的核心文件是 CLAUDE.md。
比如入职一家新公司,第一天你会收到一份新员工手册,告诉你:
- 公司的代码风格是什么。
- Git 提交信息怎么写。
- 项目的架构是怎样的。
- 有哪些不能碰的“禁区”。
而 CLAUDE.md 就是 Claude 的“新员工手册”。
因此,我强烈建议每一个人都为你的 Claude 创建 CLAUDE.md,以提供给它一系列最基本的信息。
例如,当我们要开始一个新的电商项目,我创建了下面的 CLAUDE.md 文件。
# 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 pushingClaude 每次开始对话时,都会读取这个文件。这样它就“记住”了你的项目规范,不需要每次重复说明。
Claude Code 并不是只有一个CLAUDE.md记忆文件,全局、项目和项目的特定模块都可以拥有属于自己的记忆文件(或者也可以叫配置文件)。
~/.claude/CLAUDE.md # 全局(所有项目共用)
↓
项目根目录/CLAUDE.md # 项目级(当前项目)
↓
项目根目录/.claude/rules/*.md # 模块级(特定目录)我们可以把这些文件视为 Claude Code 系统记忆的不同层级。
5. 扩展层:四大核心组件
这一层是 Claude Code 的能力中心,包含 Commands(斜杠命令)、Skills(技能)、SubAgents(子代理)、Hooks(钩子)四个核心组件。
5.1 Commands(斜杠命令)
斜杠命令是 Claude Code 内置或用户自定义的一系列核心能力,其触发方式是用户手动输入 /command:
用户输入: /review
Claude 执行: 根据 .claude/commands/review.md 的指令审查代码Commands 适合标准化操作——团队统一的 commit 格式、固定的部署流程等。
5.2 Skills(技能)
技能则代表着 AI 的一系列专属能力组合,其触发方式是 Claude 自动判断(语义推理)是否激活相应技能。Skills 可以是 Claude Code 内置的,也可以由用户自己设定。
用户说: "帮我看看这段代码有没有安全问题"
Claude 思考: 这是代码安全审查任务 → 激活 security-review Skill
Claude 执行: 按照 Skill 中定义的流程审查代码很多人第一次听到 Skills 这个概念,都会觉得 “这不就是个高级一点的 tool 吗?Agent 直接 call tool 不就行了?”
我的回答是:的确像,但并不等价。原因在于 Tools 是外部能力接口,Skills 是模型内部的“行为模式 + 触发逻辑”。如果 Tool 是函数调用,Skill 就是把 if-else、prompt、策略和调用顺序,全部折叠进一个文档的整体封装,是对一个专有能力集的全面定义。
如果说 Tool 解决的是我能不能做;而 Skill 解决的是我该不该做、怎么做、做到什么程度。那么又一个问题来了:什么时候该用 Skill?什么时候该用 Commands?
Commands 是显式、可复用、可审计、通过斜杠命令固定触发的操作指令集,是相对固化的标准流程。
而当一个能力具备强烈的“领域感”(安全、架构、性能)、判断依赖上下文而非关键词 ,执行路径可能变化 ,需要“像专家一样行事”时,就用 Skill,而不是 Command。
拿刚才的例子来说——当用户问“帮我看看这段代码有没有安全问题”。Claude 的隐式判断流程是这样的。
1️⃣ 这是代码吗?——是
2️⃣ 这是哪一类代码?——Node.js 后端
3️⃣ 上下文是否涉及用户输入?——是
4️⃣ 是否存在鉴权逻辑?——是
5️⃣ 是否值得深入做安全审查?——是做完这些判断之后,就会自动激活 security-review Skill。
在 Skill 内部,是“像专家一样”的行为说明,它不会跑固定 checklist,而是根据语言选择重点、根据上下文跳过无关项、在发现高风险点时主动深挖、在安全风险低时明确告诉你“为什么没问题” —— 这不是流程执行,这是专家判断。
5.3 SubAgents(子代理)
子代理是除了 Skills 之外的另一个大杀器,用于独立完成专项任务。其触发方式可以由 Claude 决定或用户指定。
主 Claude: 这个任务需要跑大量测试,让我创建一个子代理来处理。
子代理(test-runner): 执行测试,只把结果汇报给主 ClaudeSubAgents 适合隔离执行——高噪声任务(比如在大量日志中寻找出错信息,在大量文档中检索相关资源)、需要特定权限的任务。

5.4 Hooks(钩子)
钩子是在特定事件触发时自动执行的脚本,其触发方式是事件自动触发。
事件: Claude 即将执行 Edit 工具
Hook: 自动检查是否有安全敏感内容
结果: 如果发现问题,阻止执行并警告Hooks 适合自动化检查——格式化、安全检查、日志记录等。
6. 集成层:连接外部世界
上面这四大核心组件之上,是集成层,负责链接外部世界。集成层包含 Headless(无头模式)和 MCP(Model Context Protocol)两大技术。
6.1 Headless(无头模式)
无头模式让 Claude Code 在没有人工交互的情况下运行,适合 CI/CD 集成——自动代码审查、自动修复、自动生成变更日志等。
# GitHub Actions 中
- name: Auto-fix code issues
run: claude --headless "Fix all linting errors in src/"6.2 MCP(Model Context Protocol)
MCP 让 Claude 连接外部工具和服务,适合工具连接——可以把任何外部系统变成 Claude 可调用的工具。
Claude → MCP → 数据库
Claude → MCP → Jira
Claude → MCP → 自定义 API7. 编程接口层:Agent SDK
当配置式的扩展不够用时,你可以用代码来驱动 Claude。这种方式适合构建自定义 Agent——完全控制执行流程、自定义工具、复杂工作流。
from claude_sdk import ClaudeSDKClient
client = ClaudeSDKClient()
# 执行任务
result = client.query(
prompt="Review this code for security issues",
tools=["Read", "Grep"],
max_turns=10
)8. 组件关系和技术选型指南
在真实的系统中,这些组件不是孤立存在的——它们相互协作,共同完成复杂任务。
8.1 触发方式
首先看触发方式,也就是这些组件是怎么被激活的?不同组件的触发方式决定了它们的使用场景。

为什么“确定性”很重要?
如果我们要设计一个生产系统:
- 如果你需要“每次都必须执行”的操作(比如代码格式化),你需要 100% 确定性——选择 Commands 或 Hooks。
- 如果你希望 Claude “智能判断何时使用”(比如识别到安全问题时自动深入分析),你可以接受概率性——选择 Skills。
- 如果任务可能很重,你希望“既可以手动触发,也可以让 Claude 自己决定”,你需要可控性——选择 SubAgents。
这个表格会在你做技术选型时反复用到。
8.2 数据流向
理解了触发方式,我们来看数据是怎么在系统中流动的。这张图展示了一个典型请求的生命周期:

让我结合一个具体场景来解释这个流程——当用户输入“帮我修复 src/api.js 中的安全漏洞”之后,Claude 可能的处理流程如下。
Memory 层:Claude 首先加载
CLAUDE.md,了解到这是一个 Node.js 项目,团队要求所有安全修复必须附带测试。扩展层分发:
a. 用户没有输入斜杠命令,所以 Commands 不参与。
b. Claude 识别出“安全漏洞”关键词,激活
security-reviewSkill。c. Skill 指示 Claude 创建一个子代理来执行测试。
Hooks 监控:Claude 准备执行
Edit工具修改代码时,Hooks 自动运行预检查脚本,确保没有引入新的安全问题。工具执行:通过 Read、Edit 等工具完成代码修改。
MCP 连接:如果配置了 Jira MCP,还可以自动更新相关的 ticket 状态。
关键洞察:Memory 是基础设施,始终存在;扩展层是能力中心,按需激活;Hooks 是守门人,监控一切。
8.3 Plugins:打包容器
当你开发了一套好用的 Commands、Skills、Hooks 组合,想要分享给团队或社区时,就需要 Plugins。
Plugins 不是一种新能力,而是打包机制——就像 npm 包把一堆 JavaScript 文件打包在一起,Plugin 把一组相关的 Claude Code 扩展打包在一起。
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-qualitySkill 自动分析代码质量,一个test-runner子代理执行测试,还有一个 Hook 确保所有修改都有对应的测试。与其让团队成员手动复制这些文件,不如打包成一个 Plugin,新成员只需一条命令就能获得完整的工作流。
Plugin 的价值在于可复用、可版本化、可分发。在第 16 讲我们还会详细讲解如何创建和发布 Plugins。
8.4 技术选型指南
目前,理论知识已经足够了,但当你面对一个真实需求时,如何选择正确的技术?下面这是我总结的决策流程:

让我用几个真实问题来演示这个决策树的使用。
问题 1:我希望团队成员都用统一的 commit message 格式。
- 这是一种“能力”吗?是的,是生成规范 commit message 的能力。
- 希望手动触发还是自动识别?手动触发更合适,因为不是每次对话都需要 commit。
- 答案:适合用 Commands(创建一个
/commit命令)。
问题 2:每当 Claude 要修改代码时,我想自动检查是否符合我们的安全规范。
- 这是一种“能力“吗?不是,这是一种“检查机制”。
- 需要在工具执行时自动检查? 对,在 Edit 工具执行前检查。
- 答案:适合用 Hooks(创建一个 pre-Edit hook)
问题 3:我想让 Claude 能够查询我们内部的知识库。
- 这是一种“能力”吗? 不完全是,这是“连接外部数据源”。
- 需要连接外部系统? 知识库是一个外部系统。
- 答案:适合用 MCP(创建一个知识库 MCP server)。
为了帮助你快速匹配,我也准备了一份场景 VS 方案的速查表。

公众号:AI悦创【二维码】

AI悦创·编程一对一
AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Web、Linux」,招收学员面向国内外,国外占 80%。全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh
C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh
方法一:QQ
方法二:微信:Jiabcdefh

更新日志
2c6e4-于4c2c7-于ebbd1-于a2d87-于d7051-于aa53c-于c6106-于