- 软件开发行业的 AI 范式演进:从辅助工具到工程智能体
- Claude Code 全景入门:装好、看懂、跑起来
- 上下文注入:用 @ 和 ! 精准喂给 Claude 它需要的信息
- 记忆系统:用 CLAUDE.md 告别每次对话都要"重新认识你"
- 斜杠命令:把你的重复操作变成一个单词
- Hooks 机制:让 AI 的每一步都在你的规则里
- MCP:给 Claude Code 接上"外设"
- Skills:让 Claude 按需加载你的领域知识
- Sub-agents:给 Claude 分身,让专家各司其职
- Agent Teams:组建你的 AI 开发小队
- 安全与回退:给 AI 戴上"安全带"
- SDK 与 Headless:把 Claude 变成你的自动化引擎
- 上下文工程:从记忆文件到分层知识架构
- 模型选择与成本控制:把每一分钱花在刀刃上
你大概已经听说过 Claude Code——一个在命令行里跑的 AI 编程工具。
但如果你只是想"先装上试试",网上随便搜一篇教程就够了。这篇文章要做的事稍微不一样:在你装好、跑起来之后,帮你看清楚这台机器的整体构造。
知道整体构造有什么用?很简单:当你遇到问题,你知道从哪里找原因;当你想扩展功能,你知道往哪个方向想;当你读后面每篇文章,你知道那个功能"长"在系统的哪个位置。
我们先装好,再看全景。
第一步:装好 Claude Code
Claude Code 是原生应用,不需要预装 Node.js 或其他运行时,直接一行命令搞定。
macOS / Linux / WSL:
curl -fsSL https://claude.ai/install.sh | bash
Windows PowerShell:
irm https://claude.ai/install.ps1 | iex
Windows 用户需要先装好 Git for Windows,安装脚本依赖它。
macOS 也可以用 Homebrew 安装,但不会自动更新,需要手动执行 brew upgrade claude-code:
brew install --cask claude-code
安装完成后验证:
claude --version
看到版本号就好了。原生安装方式会在后台自动更新,保持在最新版本。
第二步:选择接入方案
Claude Code 本身只是一个"壳",负责读文件、执行命令、管理对话。真正"思考"的部分是背后接入的大语言模型。
你有两条路:
路线 A:Anthropic 官方 Claude API
去 console.anthropic.com 注册、充值、拿到 API Key。效果最好,费用也最高。
路线 B:国产大模型(推荐学习阶段使用)
很多国产模型(智谱 AI、DeepSeek、通义千问等)提供兼容接口,可以直接接入 Claude Code。效果略差,但够用,费用低,网络也稳定。
如果你喜欢命令行,手动配置环境变量:
# 路线 A
export ANTHROPIC_API_KEY=你的key
# 路线 B(以智谱 AI 为例)
export ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/paas/v4
export ANTHROPIC_API_KEY=你的key
建议把这两行加到 ~/.zshrc 或 ~/.bashrc 里,下次打开终端自动生效。
如果你不想手动编辑配置文件,可以用 CC Switch ——一个专门管理 Claude Code 等 AI CLI 工具的桌面应用,支持 50+ 模型提供商预设,点几下就能切换,不需要记环境变量的写法。
macOS 安装:
brew tap farion1231/ccswitch && brew install --cask cc-switch
Windows 和 Linux 用户去它的 Releases 页面 下载安装包。
两种方式都能达到同样效果,选你顺手的就好。
第三步:跑起来
进入任意一个项目目录,输入 claude:
cd 你的项目目录
claude
第一次运行会提示登录或确认 API 配置,跟着提示走完就好。进入对话后,你可以试试:
> 这个项目是做什么的?
> 帮我列出所有 Python 文件
> 帮我写一个 hello world 函数
能收到回答,就说明整条链路通了。
现在,我们来看引擎盖下面
装好之后,大多数人就停在这里——问它问题,它给答案。这是 Claude Code 最基本的用法,但只用到了它能力的一小部分。
Claude Code 的完整技术栈可以分成四层:
┌──────────────────────────────────┐
│ Agent SDK(用代码直接驱动) │
├──────────────────────────────────┤
│ 集成层:Headless 模式 + MCP │
├──────────────────────────────────┤
│ 扩展层:Commands / Skills / │
│ SubAgents / Hooks │
├──────────────────────────────────┤
│ Memory(记忆系统) │
└──────────────────────────────────┘
你现在接触到的对话交互,其实只是最上层和最下层的结合——Memory 给它背景,你问它答。中间两层,才是 Claude Code 真正强大的地方。
第一层:Memory,持久记忆
每次开新会话,模型本身什么都不记得。Memory 层解决的就是这个问题。
核心文件是 CLAUDE.md,放在项目根目录。Claude Code 启动时自动读取,就像新员工入职前看手册。你写进去的技术栈、代码规范、禁止事项,它都会"记住"。
三个层级,从广到窄:
~/.claude/CLAUDE.md ← 全局(所有项目共用)
项目根目录/CLAUDE.md ← 项目级(当前项目)
子目录/.claude/rules/ ← 模块级(特定目录)
Memory 是整个系统的地基——后面所有组件的行为,都建立在这个稳定的项目认知上。
第二层:扩展层,四个核心组件
这一层是 Claude Code 能力的真正来源,包含四个组件。
Commands(斜杠命令)
你输入 /commit,Claude 就按你定义好的方式生成提交信息。
斜杠命令本质是你写的 Markdown 文件,放在 .claude/commands/ 里。Claude 读文件,照着执行。适合固定流程——那些每次都要重复描述的操作,变成一个命令,一键触发。
Skills(技能)
斜杠命令需要你主动输入 /xxx。Skills 不一样——Claude 自己判断是否激活。
你说"帮我看看这段代码有没有安全问题",Claude 识别到安全审查任务,自动激活 security-review Skill,用安全专家的方式来分析——不需要你输入任何命令。
适合需要专业判断的场景:安全分析、性能评审、架构设计。
SubAgents(子代理)
当任务太重,或者会产生大量噪音,Claude 可以分身出去:
主 Claude:这个任务要跑大量测试,我创建一个子代理来处理。
子代理:独立执行,只把结果汇报给主 Claude。
子代理有独立的上下文,执行完销毁。主流程保持清晰,不被大量日志淹没。适合隔离执行:批量文件处理、密集测试、日志分析。
Hooks(钩子)
前三个组件是"Claude 做什么",Hooks 是"特定时机自动发生什么"。
事件:Claude 即将修改某个文件
Hook:自动运行检查脚本
结果:有问题就阻止,没问题就放行
Hooks 绑定在操作生命周期上——PreToolUse(工具调用前)、PostToolUse(调用后)——只要事件发生就自动触发。适合自动化守卫:格式化、安全检查、日志记录。
第三层:集成层,连接外部世界
Headless(无头模式)
去掉对话界面,让 Claude 完全自动运行。这是把 Claude Code 接进 CI/CD 流水线的方式——代码提交时自动审查、合并前自动检查,不需要人盯着。
比如在 GitLab CI 里,每次有人提 Merge Request,自动让 Claude 做代码审查:
code-review:
stage: review
image: node:22
script:
- npm install -g @anthropic-ai/claude-code
- claude --headless "审查本次 MR 改动的代码,重点检查安全问题和潜在 bug,用中文输出审查意见"
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
variables:
ANTHROPIC_API_KEY: $ANTHROPIC_API_KEY # 在 GitLab 项目设置里配好
每次有人发起 MR,这个 job 就自动跑,Claude 看完代码把意见输出到流水线日志里。你不需要做任何手动操作。
MCP(Model Context Protocol)
Claude 自己会读文件、写代码,但没办法直接查你的数据库、打开浏览器。MCP 是给它接上这些外设的协议:
Claude → MCP → 你的数据库
Claude → MCP → Jira / Slack / Notion
Claude → MCP → 任何你想接入的系统
装对应的 MCP 服务器,Claude 就能操作这些外部系统,就像操作本地文件一样自然。
第四层:Agent SDK
当配置的方式不够灵活,可以用代码直接控制 Claude:
from claude_agent_sdk import ClaudeSDKClient
client = ClaudeSDKClient()
result = client.query(
prompt="分析这段代码的安全问题",
tools=["Read", "Grep"],
max_turns=10
)
这一层适合把 Claude 能力嵌入自己程序的场景。大多数读这个系列的人暂时不需要,但知道它的存在——当你需要的时候,这就是入口。
技术选型速查
面对一个具体需求,选哪个组件?
| 需求特征 | 选什么 |
|---|---|
| 固定流程,手动触发 | Commands |
| 需要 Claude 智能判断是否介入 | Skills |
| 任务量大、会产生大量噪音 | SubAgents |
| 某个时机必须自动发生 | Hooks |
| 需要连接外部系统 | MCP |
| 需要在 CI/CD 中无人运行 | Headless |
组件怎么配合
这四层不是孤立的。来看一个贴近日常的场景:你在做一个个人项目,每周想生成一份"本周做了什么"的开发日志,发到自己的 Notion 里存档。
你只需要输入 /weekly-log,剩下的全自动:
- Commands 接收
/weekly-log触发,按照你写好的指令模板启动流程。 - Memory 提供背景——
CLAUDE.md里写着"日志用中文,格式是:本周完成、遇到的问题、下周计划"。 - SubAgents 被派出去干脏活:扫描这周的 git 提交记录,整理出改了哪些文件、合并了哪些分支。主流程不用被这些细节噪音打扰。
- Hooks 在日志文件写入后自动触发,把文件备份一份到本地
logs/目录。 - MCP(Notion 服务器)把生成好的日志推送到你的 Notion 数据库,自动打上本周日期的标签。
你坐在那里,喝完一杯茶,日志已经在 Notion 里了。
这个例子没有安全漏洞、没有复杂的工程流程——就是一件普通的重复性事务。但它同样可以用这套组合拳解决,这才是 Claude Code 可组合设计的真正价值:不只是给工程师用的,也是给任何有重复工作要处理的人用的。
本文总结
这篇文章做了三件事:
装好工具:Claude Code 是原生应用,一行 curl 命令安装,不依赖 Node.js。接入方案有两条路,官方 API 效果最好,国产模型够用且便宜;不想手动配环境变量的,用 CC Switch 可视化搞定。
看清全貌:Claude Code 的底层是四层结构——Memory(持久记忆)、扩展层(Commands / Skills / SubAgents / Hooks)、集成层(Headless + MCP)、Agent SDK。你现在对话用到的只是最表层,中间两层才是真正让它变得可编程的地方。
建立直觉:每个组件有自己的定位——固定流程用 Commands,专业判断用 Skills,隔离执行用 SubAgents,自动守卫用 Hooks,接外部系统用 MCP,无人值守用 Headless。组合起来,才是它真正的威力所在。
后面的文章会逐个把这些组件跑通。有了这张全景图打底,你读每篇文章都知道自己在拼哪一块。
好了,现在轮到你了
按照文章开头的步骤装好、配好,进入你的项目目录,输入 claude。
问它"这个项目是做什么的"——它会读你的代码,给出一个真实的回答。这一刻的感受,和用网页版 ChatGPT 聊代码,是完全不同的体验。
感受到了,我们继续。