全景导览:Claude Code 引擎盖下的世界

0 阅读15分钟
  1. 软件开发行业的 AI 范式演进:从辅助工具到工程智能体
  2. Claude Code 全景入门:装好、看懂、跑起来
  3. 上下文注入:用 @ 和 ! 精准喂给 Claude 它需要的信息
  4. 记忆系统:用 CLAUDE.md 告别每次对话都要"重新认识你"
  5. 斜杠命令:把你的重复操作变成一个单词
  6. Hooks 机制:让 AI 的每一步都在你的规则里
  7. MCP:给 Claude Code 接上"外设"
  8. Skills:让 Claude 按需加载你的领域知识
  9. Sub-agents:给 Claude 分身,让专家各司其职
  10. Agent Teams:组建你的 AI 开发小队
  11. 安全与回退:给 AI 戴上"安全带"
  12. SDK 与 Headless:把 Claude 变成你的自动化引擎
  13. 上下文工程:从记忆文件到分层知识架构
  14. 模型选择与成本控制:把每一分钱花在刀刃上

你大概已经听说过 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,剩下的全自动:

  1. Commands 接收 /weekly-log 触发,按照你写好的指令模板启动流程。
  2. Memory 提供背景——CLAUDE.md 里写着"日志用中文,格式是:本周完成、遇到的问题、下周计划"。
  3. SubAgents 被派出去干脏活:扫描这周的 git 提交记录,整理出改了哪些文件、合并了哪些分支。主流程不用被这些细节噪音打扰。
  4. Hooks 在日志文件写入后自动触发,把文件备份一份到本地 logs/ 目录。
  5. 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 聊代码,是完全不同的体验。

感受到了,我们继续。

qrcode_for_gh_6219b0488be5_258.jpg