跳到主要内容

01. Claude Code 底层技术全景导览

核心认知转变

Claude Code = 可编程、可扩展、可组合的 AI Agent 框架

  • 不是"工具",而是"平台"
  • 不仅仅是被动使用(你问我答),而是主动驾驭(配置 Agent 自主工作)

对比:被动使用 vs 主动驾驭

被动使用(你问我答)主动驾驭(配置 Agent 自主工作)
"帮我review这段代码"配置 Hook,每次Edit自动审查
"跑一下测试"配置 SubAgent,有PR自动跑测试
"检查安全问题"配置 Skill,提到安全自动触发
"每天同步代码"配置 Headless + CI/CD,定时执行

核心洞察:主动驾驭的本质是把重复性工作交给 Claude 配置完成,你只需设置一次,之后 Claude 自动化执行。

四层技术架构

层级组件职责
编程接口层Agent SDK (编程调用)完全编程控制
集成层Headless (CI/CD集成) + MCP (外部工具)连接外部世界
扩展层Commands (手动) / Skills (自动) / SubAgents (手动/自动) / Hooks (事件触发)核心能力中心
基础层Memory 记忆系统持久化上下文

层级关系:上层依赖下层,从下往上构建

  • 基础层 → 扩展层 → 集成层 → 编程接口层

基础层:Memory 记忆系统

CLAUDE.md

~/.claude/CLAUDE.md           # 全局(所有项目共用)
./CLAUDE.md # 项目级(当前项目)
./.claude/rules/*.md # 模块级(特定目录)

Claude 每次开始对话时,都会读 CLAUDE.md 文件, 全局、项目和项目的特定模块都可以拥有属于自己的记忆文件

作用

  • 提供项目代码风格
  • 定义 Git 提交规范
  • 说明项目架构
  • 标注禁区

全局示例

# 公司代码规范

## Git 提交规范
- feat: 新功能
- fix: Bug 修复
- docs: 文档更新
- style: 代码格式
- refactor: 重构
- test: 测试相关
- chore: 构建/工具

## 代码风格
- 缩进 2 空格
- 方法行数不超过 50 行
- 类注释必填,作者和日期

## 安全规范
- 禁止提交密钥/Token
- 敏感配置用环境变量

## 注释规范
- 公共方法必加 JavaDoc
- 复杂逻辑加行内注释

## 禁止操作
- 禁止 hardcode 敏感信息
- 禁止删除注释代码
- 禁止直接操作主分支

扩展层:四大核心组件

1. Commands(斜杠命令)

触发方式适用场景
用户手动输入 /command标准化操作、团队统一流程
# 示例
/review # 代码审查
/commit # 统一提交格式

2. Skills(技能)

触发方式适用场景
自动判断(语义推理)领域化能力、需要 LLM 判断
手动指定明确调用特定 Skill

Java 开发示例:SQL 审查 Skill

# .claude/skills/sql-review/SKILL.md
---
name: sql-review
description: SQL 审查技能。检查 Java 项目中 Mapper.xml、@Query、JDBC 等 SQL 代码,识别性能和安全问题。触发条件:提到"检查 SQL"、"sql-review"、"检查 mapper"、"检查 MyBatis"等关键词。
allowed-tools: Grep, Read
---

# SQL 审查 Skill


...

```bash
# 自动触发:修改了 Mapper 文件
# 手动触发
使用 sql-review skill 帮我检查 UserMapper.xml

与 Commands 的区别

  • Commands:显式、固化、标准流程
  • Skills:隐式、领域感、专家判断

3. SubAgents(子代理)

触发方式适用场景
Claude 决定或用户指定隔离执行、高噪声任务
# 主 Claude 创建子代理处理大量测试
# 子代理(test-runner) 执行测试,结果汇报给主 Claude

适用场景

  • 高噪声任务(日志分析、大量文档检索)
  • 需要特定权限的任务
  • 隔离执行避免污染主上下文

本质上解决的是单一 Agent 的上下文、权限和职责无法无限膨胀。

4. Hooks(钩子)

触发方式适用场景
事件自动触发自动化检查、格式化、安全审查
# 事件:Claude 即将执行 Edit 工具
# Hook:自动检查安全敏感内容
# 结果:发现问题则阻止执行并警告

集成层:连接外部世界

Headless(无头模式)

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

  • CI/CD 集成
  • 自动代码审查
  • 无人值守运行

真实例子:CI/CD 集成

# 定时任务:每日代码扫描
# crontab
0 8 * * * claude --headless "Scan src/ for security vulnerabilities, \
generate report, send to security@company.com"

MCP(Model Context Protocol)

  • 连接外部工具和服务
  • 数据库、Jira、自定义 API
Claude → MCP → 数据库
Claude → MCP → Jira

编程接口层:Agent SDK

  • 自定义 Agent
  • 完全控制执行流程
  • 自定义工具和复杂工作流
from claude_sdk import ClaudeSDKClient
client = ClaudeSDKClient()
result = client.query(prompt="Review code", tools=["Read", "Grep"])

技术选型指南

触发方式对比

组件触发方式确定性适用场景
Commands手动输入100% 固定标准化操作、团队统一流程
Skills自动判断/手动概率性领域专家判断、代码审查
SubAgents手动/自动可控隔离执行、并行处理
Hooks事件触发100% 固定工具执行时自动检查

决策树

是"能力"还是"流程"?
├── 能力 → 需要手动触发? → Commands
├── 能力 → 需要自动判断? → Skills
├── 检查机制 → 工具执行时触发? → Hooks
└── 隔离任务 → 需要特定权限? → SubAgents

场景速查表

需求方案
统一 commit 格式Commands
自动检查代码安全Hooks
查询内部知识库MCP
执行大量测试SubAgents
CI/CD 自动化Headless
自定义工作流Agent SDK

完整示例

假设你正在开发一个 Spring Boot 订单系统,Claude 帮你修复一个安全漏洞的完整流程:

┌─────────────────────────────────────────────────────────────────────┐
│ 1. Memory 层:加载 CLAUDE.md │
│ → 了解到这是 Spring Boot 2.7 项目 │
│ → 团队要求:所有安全修复必须附带单元测试 │
│ → 禁止直接操作主分支 │
└─────────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────────┐
│ 2. 扩展层分发 │
│ a. 用户没有输入 / 命令 → Commands 不参与 │
│ b. 识别"安全漏洞"关键词 → 激活 sql-review Skill │
│ c. Skill 指示创建子代理执行测试 → 激活 test-runner SubAgent │
└─────────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────────┐
│ 3. Hooks 监控 │
│ 准备执行 Edit 工具时 │
│ → 自动检查:是否引入新的 SQL 注入风险 │
│ → 自动检查:是否使用了硬编码密码 │
│ → 检查通过才允许修改 │
└─────────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────────┐
│ 4. 工具执行 │
│ → Read 读取 OrderMapper.xml │
│ → Edit 修复 SQL 注入 │
│ → Write 新增 OrderMapperTest 单元测试 │
└─────────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────────┐
│ 5. MCP 连接(可选) │
│ → 自动更新 Jira ticket 状态为 "Fixed" │
│ → 发送飞书通知给负责人 │
└─────────────────────────────────────────────────────────────────────┘

关键点:整个过程你只需说"修复订单查询的 SQL 注入漏洞",其余全部自动化。


Plugins:打包机制

把 Commands、Skills、Hooks 组合打包成可分发插件:

my-plugin/
├── commands/ # 斜杠命令
├── skills/ # 技能
├── agents/ # 子代理
├── hooks/ # 钩子
└── plugin.json # 插件配置

总结

层级组件职责
基础层Memory让 Claude 记住项目规范
扩展层Commands/Skills/SubAgents/Hooks核心能力中心,按需激活
集成层Headless/MCP融入 CI/CD,连接外部世界
编程层Agent SDK完全编程控制

核心洞察

  • Memory 是基础设施,始终存在
  • 扩展层是能力中心,按需激活
  • Hooks 是守门人,监控一切
  • 组件可组合,形成完整自动化流程