Claude Code 工程化实战
黄佳
新加坡科研局资深研发工程师
362 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 2 讲/共 22 讲
Claude Code 工程化实战
15
15
1.0x
00:00/17:32
登录|注册

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

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

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 的便利,又可以利用命令行的强大,一举两得。

从使用者到驾驭者

总结一下上面的使用步骤:
用户 → 输入问题 → Claude 回答 → 完成
你问,它答。就像用计算器,输入数字,得到结果。大多数人使用 Claude Code 的方式,就止步于此了。
Claude Code 可以生成代码,从 0 开始做项目,整理文件,甚至优化你的操作系统……虽然能做到这些也已经很强大了,但这仍然只是被动使用
而 Claude Code 还支持另一种模式:
用户 → 配置 Agent → Agent 自主工作 → 自动完成任务
这是主动驾驭——你设计,它执行。就像我们编写程序,程序自动运行。
举个例子:
这门课的目标,把你从被动使用者变成主动驾驭者。
你肯定会说,佳哥,我当然想走得更远一些,从被动使用者晋级为主动驾驭者,那成为驾驭者需要理解什么?
用学开车打个比方:
使用者:知道方向盘转哪边车往哪走,油门让车动,刹车让车停。
驾驭者:理解发动机、变速箱、刹车系统的工作原理,能改装车辆。
对于 Claude Code:
使用者:知道怎么提问,怎么让 Claude 帮你写代码。
驾驭者:理解记忆系统、子代理、技能包、钩子的工作原理,能构建自定义工作流。
我们现在这一讲就是“驾驭者入门”——让你看到 Claude Code 引擎盖下面的东西。

Claude Code 底层技术全景图

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

基础层: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 pushing
Claude 每次开始对话时,都会读取这个文件。这样它就“记住”了你的项目规范,不需要每次重复说明。
Claude Code 并不是只有一个CLAUDE.md记忆文件,全局、项目和项目的特定模块都可以拥有属于自己的记忆文件(或者也可以叫配置文件)。
~/.claude/CLAUDE.md # 全局(所有项目共用)
项目根目录/CLAUDE.md # 项目级(当前项目)
项目根目录/.claude/rules/*.md # 模块级(特定目录)
我们可以把这些文件视为 Claude Code 系统记忆的不同层级。

扩展层:四大核心组件

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

Commands(斜杠命令)

斜杠命令是 Claude Code 内置或用户自定义的一系列核心能力,其触发方式是用户手动输入  /command
用户输入: /review
Claude 执行: 根据 .claude/commands/review.md 的指令审查代码
Commands 适合标准化操作——团队统一的 commit 格式、固定的部署流程等。

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,而是根据语言选择重点、根据上下文跳过无关项、在发现高风险点时主动深挖、在安全风险低时明确告诉你“为什么没问题” —— 这不是流程执行,这是专家判断。

SubAgents(子代理)

子代理是除了 Skills 之外的另一个大杀器,用于独立完成专项任务。其触发方式可以由 Claude 决定或用户指定。
主 Claude: 这个任务需要跑大量测试,让我创建一个子代理来处理。
子代理(test-runner): 执行测试,只把结果汇报给主 Claude
SubAgents 适合隔离执行——高噪声任务(比如在大量日志中寻找出错信息,在大量文档中检索相关资源)、需要特定权限的任务。

Hooks(钩子)

钩子是在特定事件触发时自动执行的脚本,其触发方式是事件自动触发。
事件: Claude 即将执行 Edit 工具
Hook: 自动检查是否有安全敏感内容
结果: 如果发现问题,阻止执行并警告
Hooks 适合自动化检查——格式化、安全检查、日志记录等。

集成层:连接外部世界

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

Headless(无头模式)

无头模式让 Claude Code 在没有人工交互的情况下运行,适合  CI/CD 集成——自动代码审查、自动修复、自动生成变更日志等。
# GitHub Actions 中
- name: Auto-fix code issues
run: claude --headless "Fix all linting errors in src/"

MCP(Model Context Protocol)

MCP 让 Claude 连接外部工具和服务,适合工具连接——可以把任何外部系统变成 Claude 可调用的工具。
Claude → MCP → 数据库
Claude → MCP → Jira
Claude → MCP → 自定义 API

编程接口层: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
)

组件关系和技术选型指南

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

触发方式

首先看触发方式,也就是这些组件是怎么被激活的?不同组件的触发方式决定了它们的使用场景。
为什么“确定性”很重要?
如果我们要设计一个生产系统:
如果你需要“每次都必须执行”的操作(比如代码格式化),你需要  100% 确定性——选择 Commands 或 Hooks。
如果你希望 Claude “智能判断何时使用”(比如识别到安全问题时自动深入分析),你可以接受概率性——选择 Skills。
如果任务可能很重,你希望“既可以手动触发,也可以让 Claude 自己决定”,你需要可控性——选择 SubAgents。
这个表格会在你做技术选型时反复用到。

数据流向

理解了触发方式,我们来看数据是怎么在系统中流动的。这张图展示了一个典型请求的生命周期:
让我结合一个具体场景来解释这个流程——当用户输入“帮我修复 src/api.js 中的安全漏洞”之后,Claude 可能的处理流程如下。
Memory 层:Claude 首先加载  CLAUDE.md,了解到这是一个 Node.js 项目,团队要求所有安全修复必须附带测试。
扩展层分发:
a 用户没有输入斜杠命令,所以 Commands 不参与。
b. Claude 识别出“安全漏洞”关键词,激活  security-review Skill。
c. Skill 指示 Claude 创建一个子代理来执行测试。
Hooks 监控:Claude 准备执行  Edit  工具修改代码时,Hooks 自动运行预检查脚本,确保没有引入新的安全问题。
工具执行:通过 Read、Edit 等工具完成代码修改。
MCP 连接:如果配置了 Jira MCP,还可以自动更新相关的 ticket 状态。
关键洞察:Memory 是基础设施,始终存在;扩展层是能力中心,按需激活;Hooks 是守门人,监控一切。

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-quality Skill 自动分析代码质量,一个  test-runner  子代理执行测试,还有一个 Hook 确保所有修改都有对应的测试。
与其让团队成员手动复制这些文件,不如打包成一个 Plugin,新成员只需一条命令就能获得完整的工作流。
Plugin 的价值在于可复用、可版本化、可分发。在第 16 讲我们还会详细讲解如何创建和发布 Plugins。

技术选型指南

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

组合使用

真实世界的问题很少能用单一技术解决。Claude Code 的强大之处在于组件可组合——每个组件做好自己的事,组合起来完成复杂任务。
假设你想实现这样一个流程:每当有人提交 PR,自动进行代码审查,发现问题就评论,没问题就通过。这需要组合多种技术:
1. Headless 模式在 CI 中触发
└── GitHub Actions 监听 PR 事件,调用 claude --headless
2. 调用 code-review SubAgent
└── 隔离审查任务,避免污染主流程上下文
3. SubAgent 使用 security-check Skill
└── 自动识别安全相关代码,应用专业审查规则
4. Hooks 记录审查日志
└── 每次工具调用都记录,便于审计和调试
5. 结果通过 MCP 发送到 Slack
└── 审查完成后通知相关人员
这五个步骤涉及五种不同的技术,但组合在一起就是一个完整的自动化流程。这就是可组合的威力。

总结一下

这一讲我们站在高处,俯瞰了 Claude Code 的完整技术栈。
首先,我希望你记住最重要的一个认知转变: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 真正的威力所在。
从这一讲开始,你已经迈出了成为驾驭者的第一步,这已经超越了 90% 的 Claude Code 使用者。接下来的课程里,我们会逐一深入每个组件,把这张全景图上的每个区域都走一遍。

思考题

回顾你目前使用 Claude Code 的方式,属于“被动使用”还是“主动驾驭”?
你的工作中有哪些重复性任务可以通过 Commands 或 Skills 自动化?
如果要构建一个“自动代码审查 + 自动修复 + 自动提交 PR”的流程,你会组合哪些技术?

彩蛋

最后,加一个彩蛋,方便你直观了解 Claude Code 扩展层的四大核心组件。

Claude Code 扩展层 · 四大核心组件对照表

理解了全景之后,下一讲我们从最基础的组件——Memory 记忆系统开始学习,让 Claude 从“每次都要重新解释”变成“一次配置,永久生效”。
你将学会:
如何用 CLAUDE.md 让 Claude “记住”你的项目规范。
全局、项目、模块三级记忆系统的设计。
最佳实践:什么该写进 CLAUDE.md,什么不该写进去。
欢迎你在留言区和我交流讨论。如果这一讲对你有启发,别忘了分享给身边更多朋友。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. Claude Code 是一个可编程、可扩展、可组合的 AI Agent 框架,提供平台构建自定义 AI 工作流。 2. Claude Code 支持命令行交互和与IDE集成使用,让用户享受IDE的便利和命令行的强大。 3. Claude Code 的底层能力从技术上分为四个层次:基础层、扩展层、集成层和编程接口层。 4. Skills(技能)代表着AI的一系列专属能力组合,其触发方式是Claude 自动判断是否激活相应技能。 5. SubAgents(子代理)用于独立完成专项任务,适合隔离执行高噪声任务和需要特定权限的任务。 6. Hooks(钩子)是在特定事件触发时自动执行的脚本,适合自动化检查格式化、安全检查、日志记录等。 7. 组合使用是 Claude Code 的强大之处,可以将多种技术组合起来完成复杂任务。 8. Claude Code 不只是一个聊天工具,而是一个可编程的 AI Agent 框架,具有自己的记忆系统、子代理、技能包和钩子机制。 9. 技术选型的方法需要考虑能力问题、流程问题、确定性触发和智能识别等因素。 10. 组件可组合,单独的技术组件可以组合成完整的自动化流程。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Claude Code 工程化实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • 许久
    且听且看且实践,持续进步
    2026-01-28归属地:北京
    1
  • 6点无痛早起学习的和尚
    看了 github 的内容,让 Claude 分析了一些源代码,看源代码,感觉就是一个一个,做好的各类工具能力。 课程内容最终的产物,就是一个一个的配置(市面上有很多类似的产出物配置了) 这个课程到底是在教我们原理(从一个工程痛点延伸出来对应的解决方案,比如用 skill/agent 去解决),还是在教我们工具配置? 比如我的真实工程实战痛点: 我让 AI 按照 SDD 去设计的存量系统的一个老功能里面链路的迭代,最终上线了。 但现在在线上功能爆雷了。代码开发完了,并没有考虑到这个功能全链路上(不局限于我的这个服务)对端用户的体验,导致用户在端的 7s 没拿到操作的结果。 其实这个问题本质上就是说,AI 它并不知道,你这个链路上改动会影响哪些东西,所以,对于存量系统,有时候维护一个你的接口,在整个链路如何串联起来的知识库,这样,当 AI 去改动现有代码的时候,它就知道可以帮你排查出来啊,这个改动影响了什么链路。从而让咱们反向思考和意识到。 比如针对痛点,我可能就会去思考是不是用一个 subagent 在技术方案的时候就去 Review 改动已有链路功能的影响面,用 skill 去维护一些链路知识?
    2026-01-28归属地:北京
    1
  • Geek_72807e
    老师讲的真好,已经看了很多这方面的文章,但是老师依然讲的精彩绝伦
    2026-01-28归属地:山西
  • 6点无痛早起学习的和尚
    接上面的留言,继续表达一些疑问。 比如我有review代码的痛点,但现在网上的各类skill,subagent排行榜一大堆,比如Claude的code-simplifier插件就很好用,如果只是为了获取结果,可能就会差强人意一点。期待老师的答疑!!!
    2026-01-28归属地:北京
收起评论
大纲
固定大纲
Claude Code 5 分钟快速上手
从使用者到驾驭者
Claude Code 底层技术全景图
基础层:Memory(记忆系统)
扩展层:四大核心组件
集成层:连接外部世界
编程接口层:Agent SDK
组件关系和技术选型指南
触发方式
数据流向
Plugins:打包容器
技术选型指南
组合使用
总结一下
思考题
彩蛋
Claude Code 扩展层 · 四大核心组件对照表
显示
设置
留言
4
收藏
3
沉浸
阅读
分享
手机端
快捷键
回顶部