第01章|登台远望:Claude Code 底层技术全景导览
第01章登台远望Claude Code 底层技术全景导览学习目标理解 Claude Code 的整体架构、核心组件及其工作原理建立全局视野。1.1 Claude Code 是什么Claude Code 是 Anthropic 官方推出的AI 编程助手 CLI 工具它不是一个简单的代码补全插件而是一个完整的AI Agent 系统。传统 AI 编程工具 vs Claude Code维度传统 AI 编程工具如 CopilotClaude Code工作方式被动补全等待触发主动规划自主执行上下文范围当前文件/光标附近整个项目 外部工具执行能力只能生成代码可读写文件、执行命令、调用 API任务复杂度单步补全多步骤复杂任务协作模式单一模型多 Agent 协作一句话定义Claude Code 大语言模型工具系统Agent 循环记忆系统多智能体协作1.2 核心架构五层模型Claude Code 的架构可以分为五个层次从上到下依次是┌─────────────────────────────────────────────────────┐ │ 入口层 (Entry Layer) │ │ CLI 命令行界面 / VS Code 扩展 │ ├─────────────────────────────────────────────────────┤ │ 编排层 (Orchestration Layer) │ │ 命令系统(Commands) 技能系统(Skills) │ ├─────────────────────────────────────────────────────┤ │ 查询引擎层 (Query Engine Layer) │ │ Agent Loop 核心循环 流式处理 │ ├─────────────────────────────────────────────────────┤ │ 工具层 (Tool Layer) │ │ 文件读写 | Bash执行 | 网络请求 | Agent派生 │ ├─────────────────────────────────────────────────────┤ │ 服务层 (Service Layer) │ │ Anthropic API | MCP服务 | Hooks | 记忆系统 │ └─────────────────────────────────────────────────────┘各层职责详解 入口层用户与 Claude Code 交互的界面支持终端 CLIclaude命令直接启动VS Code 扩展编辑器内嵌集成JetBrains 插件IDE 集成Headless 模式claude -p 任务描述无交互执行 编排层负责解析用户意图分发到对应的执行单元Commands命令系统内置命令如/help、/compact以及自定义斜杠命令Skills技能系统可复用的工作流包通过 SKILL.md 定义 查询引擎层核心这是 Claude Code 的大脑实现了Agent Loop代理循环用户输入 ↓ 预处理注入上下文、记忆、规则 ↓ 调用 Claude APIclaude-opus / claude-sonnet ↓ 解析响应文本 or 工具调用 ↓ 执行工具如果有工具调用 ↓ 将工具结果反馈给模型 ↓ 重复直到任务完成 ↓ 输出最终结果 工具层Claude Code 内置了约 40 个工具核心工具包括工具名功能Read读取文件内容Write写入/创建文件Edit精确编辑文件片段Bash执行 Shell 命令WebFetch抓取网页内容WebSearch搜索网络信息Agent派生子代理执行子任务TodoRead/Write任务管理 服务层底层基础设施Anthropic API模型推理服务MCPModel Context Protocol外部工具扩展协议Hooks生命周期事件系统记忆系统CLAUDE.md 会话历史1.3 Agent Loop 深度解析Agent Loop 是 Claude Code 最核心的机制理解它是理解一切的基础。工作流程图┌──────────────────────────────────────────────────┐ │ Agent Loop │ │ │ │ ① 接收用户消息 │ │ ↓ │ │ ② 构建完整 Prompt │ │ - System Prompt规则记忆技能 │ │ - 历史对话 │ │ - 当前用户消息 │ │ ↓ │ │ ③ 调用 Claude API流式 │ │ ↓ │ │ ④ 解析响应 │ │ ├── 纯文本 → 直接输出给用户 │ │ └── 工具调用 → 执行工具 │ │ ↓ │ │ ⑤ 执行工具并获取结果 │ │ ↓ │ │ ⑥ 将工具结果追加到对话历史 │ │ ↓ │ │ ⑦ 回到步骤③继续循环 │ │ ↓ │ │ ⑧ 模型输出最终文本无工具调用→ 结束 │ └──────────────────────────────────────────────────┘实际案例让 Claude Code 修复一个 Bug用户输入帮我修复 src/auth.py 中的登录验证 bug用户输入空密码时会崩溃Agent Loop 执行过程第1轮 模型思考 → 决定先读取文件 工具调用Read(src/auth.py) 工具返回文件内容含 bug 代码 第2轮 模型分析代码 → 找到 bug未判断空密码 工具调用Edit(src/auth.py, old_code, new_code) 工具返回编辑成功 第3轮 模型决定验证修复 工具调用Bash(python -m pytest tests/test_auth.py) 工具返回测试通过 第4轮 模型输出最终文本已修复 auth.py 中的空密码崩溃问题... 循环结束1.4 上下文窗口与 Token 管理什么是上下文窗口Claude Code 使用的模型有固定的上下文窗口Context Window即模型一次能看到的最大 Token 数量。上下文窗口 System Prompt 对话历史 工具结果 当前输入Claude 3.5 Sonnet / Claude 3 Opus 的上下文窗口约为200K tokens约15万汉字。Token 消耗来源┌─────────────────────────────────────┐ │ 上下文窗口 200K │ ├──────────────┬──────────────────────┤ │ System Prompt│ ~5K规则记忆技能│ ├──────────────┼──────────────────────┤ │ 对话历史 │ 随对话增长 │ ├──────────────┼──────────────────────┤ │ 工具结果 │ 文件内容命令输出 │ ├──────────────┼──────────────────────┤ │ 当前输入 │ 用户消息 │ └──────────────┴──────────────────────┘自动压缩机制当上下文接近上限时Claude Code 会自动触发Compaction压缩将早期对话历史总结为摘要保留关键信息丢弃冗余细节用/compact命令可手动触发1.5 Prompt Caching提示词缓存原理Anthropic API 支持对 System Prompt 进行缓存相同的 System Prompt 在多次请求中只计算一次后续请求直接复用缓存。第1次请求 System Prompt5K tokens→ 全量计算 → 缓存 用户消息100 tokens→ 计算 第2次请求 System Prompt5K tokens→ 命中缓存费用降低90% 用户消息100 tokens→ 计算对工程化的意义降低成本长 System Prompt 的重复计算费用大幅降低提升速度缓存命中时响应更快鼓励丰富配置可以在 CLAUDE.md 中写更详细的规则不用担心成本1.6 权限模型Claude Code 有严格的权限控制防止 AI 做出危险操作。权限级别级别名称说明1default默认模式危险操作需确认2plan规划模式只分析不执行3auto自动模式低风险操作自动执行4yolo完全自动所有操作无需确认慎用危险操作分类高风险默认需要确认 - 删除文件 - 执行 rm -rf 类命令 - 修改系统配置 - 网络请求到外部服务 低风险自动执行 - 读取文件 - 运行测试 - 格式化代码 - 查看目录结构实际配置示例# 以规划模式启动只分析不执行任何操作claude--plan# 以自动模式启动低风险操作自动执行claude--auto# Headless 模式 自动确认CI/CD 场景claude-p运行所有测试并修复失败的用例--auto1.7 技术栈全景Claude Code 本身的实现技术栈技术用途TypeScript主语言约1900 源文件Bun运行时比 Node.js 更快React Ink终端 UI 框架Yoga布局引擎Flexbox in terminalZodSchema 验证Commander.jsCLI 参数解析MCP SDKModel Context Protocol 客户端ripgrep高性能代码搜索1.8 版本演进版本时间核心变化v1.x2024基础 CLI文件读写Bash 执行v2.02025 Q1Sub-AgentsSkillsHooksMCPv2.1.x2025 Q2Plan ModeSandbox 沙箱自动 Compactionv2.1.72026 Q1Agent SDKPluginsScheduled TasksSlack 集成1.9 本章小结核心概念要点Claude Code 定位完整 AI Agent 系统不只是代码补全五层架构入口层→编排层→查询引擎层→工具层→服务层Agent Loop核心循环接收→构建Prompt→调用API→执行工具→循环上下文管理200K Token 窗口自动压缩Prompt Caching权限模型default/plan/auto/yolo 四级权限 动手练习安装 Claude Codenpminstall-ganthropic-ai/claude-code claude--version查看内置工具列表claude# 在交互界面输入/tools体验 Agent Loop# 创建一个测试文件echodef add(a, b): return a - b # bug: 应该是 test_math.py# 让 Claude Code 找到并修复 bugclaude-p读取 test_math.py找到其中的 bug 并修复它观察 Token 使用# 开启详细模式观察每次请求的 token 消耗claude--verbose⬅️ 上一章无➡️ 下一章第02章 - 记忆系统与 CLAUDE.md

相关新闻