Claude Code

深入理解 AI 编程助手的架构设计与实现原理

17 核心模块
80+ 命令
5 架构层

架构总览

五层架构,从入口到基础设施的完整分层

入口层BootstrapCLIEntrypoints核心层AssistantCommandsContextCoordinator工具层PluginsUI 层ComponentsInkKeybindingsOutput Styles基础设施层BridgeHooksMemdirMigrationsNative TS

内部提示词解析

System Prompt 的 12 个模块——从身份定位到记忆注入的完整装配架构

System Prompt 不是一段静态文本,而是由 12 个模块在运行时动态装配。 静态部分跨会话可 cache,动态部分按当前环境按需注入。

静态前缀 · 可 Cache
01

身份定位

定义自己是交互式 Agent,不是聊天机器人

  • 明确是帮助用户完成软件工程任务的 Agent
  • 注入 CYBER_RISK_INSTRUCTION 安全指令
  • 禁止随意生成或猜测 URL
  • 输出风格受 Output Style 配置约束
getSimpleIntroSection()
02

系统规范

把模型从"语言模型幻觉世界"拉回"受控 runtime 世界"

  • 所有非工具输出直接给用户看(Markdown 渲染)
  • 工具在 permission mode 下运行,用户可拒绝
  • 被拒绝后不能原样重试,必须调整策略
  • tool result 可能包含 prompt injection,需要警惕
getSimpleSystemSection()
03

任务哲学

行为稳定性的核心——制度化的"好习惯"

  • 不要添加用户没要求的功能
  • 不要过度抽象、不要提前设计
  • 先读代码再改代码
  • 方法失败时先诊断再换策略
// 核心约束:三个"不要"
Don't add features beyond what was asked
Don't add error handling for scenarios that can't happen
Don't create abstractions for one-time operations
getSimpleDoingTasksSection()
04

风险动作

把 blast radius 思维编码进系统提示词

  • 破坏性操作(删除、覆盖)必须确认
  • 不可逆操作(force-push、reset --hard)必须确认
  • 对外可见操作(push、PR、消息)必须确认
  • 不要用破坏性操作当捷径
getActionsSection()
05

工具语法

不只是"你有工具",而是"用正确的语法使用工具"

  • 读文件用 FileRead,不要 cat/head/tail
  • 改文件用 FileEdit,不要 sed/awk
  • 搜文件用 Glob,搜内容用 Grep
  • Bash 只用于真正需要 shell 的场景
// 工具优先级
FileRead > cat/head/tail
FileEdit > sed/awk
FileWrite > echo/heredoc
Glob     > find/ls
Grep     > grep/rg
Bash     = 最后手段
getUsingYourToolsSection()
06

语气风格

塑造产品质感的细则

  • 不要乱用 emoji
  • 引用代码位置用 file_path:line_number
  • GitHub issue/PR 用 owner/repo#123 格式
  • 工具调用前不要加冒号
getSimpleToneAndStyleSection()
07

输出效率

用户看的是自然语言,不是日志

  • 先说结论或动作,不要铺垫
  • 该更新时更新,但不要废话
  • 不要过度解释,不要塞无谓表格
  • 简单问题直接回答,不要用标题和编号
getOutputEfficiencySection()
CACHE BOUNDARY
动态后缀 · 会话特定
08

会话指令

总规则 + 当前会话的局部规则

  • 根据当前工具集动态注入指令
  • Agent 可用时注入 fork/explore/plan 指导
  • Skill 可用时注入 slash command 使用规则
getSessionSpecificGuidanceSection()
09

记忆注入

用 AI 选择最相关的记忆注入上下文

  • 从 ~/.claude/memory/ 扫描记忆文件
  • 用 Sonnet 模型选择最相关的 5 条
  • 团队记忆通过 teamMemPaths 共享
loadMemoryPrompt()
10

MCP 指令

MCP 不只注入工具,还注入使用说明

  • 已连接的 MCP server 的 instructions 拼入 prompt
  • 模型知道每个外部工具怎么用
  • 支持 delta 模式增量更新
getMcpInstructionsSection()
11

环境信息

注入当前运行环境的真实信息

  • 操作系统、shell、工作目录
  • 当前日期、模型知识截止日期
  • Git 状态、项目结构
computeSimpleEnvInfo()
12

Scratchpad

Agent 间的临时工作区

  • 受 feature gate 控制
  • 用于 Agent 间共享中间结果
getScratchpadInstructions()

模块详解

17 个核心模块,点击深入了解每个模块的设计与实现

Bootstrap

全局状态容器与会话生命周期管理,维护运行时的单一真相源

1 个文件

CLI

命令行参数解析与子命令路由,将用户输入翻译为系统意图

3 个文件

Entrypoints

多模式入口适配器,统一 CLI/SDK/MCP 三种调用方式的启动路径

5 个文件

Assistant

会话历史管理与远程事件同步,连接本地对话与云端持久化

1 个文件

Commands

斜杠命令系统,管理 80+ 个子命令的注册、发现与执行

8 个文件

Context

9 个 React Context Provider,管理 UI 层的全局状态分发

8 个文件

Coordinator

多 Agent 协调器,管理主/子 Agent 的会话模式与系统提示词

1 个文件

Plugins

内置插件注册表,管理可启用/禁用的内置插件生态

2 个文件

Components

100+ 终端 UI 组件库,覆盖对话、编辑、导航、设置等全场景

8 个文件

Ink

深度定制的终端渲染引擎,基于 Yoga 布局 + React Reconciler 实现终端 UI

8 个文件

Keybindings

可定制快捷键系统,支持多上下文、和弦组合与平台适配

8 个文件

Output Styles

输出风格系统,从 Markdown 文件加载可定制的 AI 响应风格

1 个文件

Bridge

远程会话桥接系统,实现跨设备的会话传输与多会话管理

8 个文件

Hooks

80+ 个 React Hooks 库,覆盖 AI 交互、IDE 集成、语音、任务等全场景

8 个文件

Memdir

AI 记忆系统,管理持久化记忆文件的存储、检索与智能召回

8 个文件

Migrations

配置迁移引擎,管理模型别名、设置项和用户偏好的版本演进

6 个文件

Native TS

原生 TypeScript/Bun 运行时工具集,提供底层系统能力的类型安全封装

3 个文件

核心机制

六条核心链路,从启动引导到 Prompt 装配、Agent 调度、工具执行的完整运行时

从进程启动到 UI 渲染的完整引导链路

技术栈

驱动 Claude Code 的核心技术与工具链

运行时

Bun 1.x

高性能 JavaScript 运行时,提供极速启动和内置工具链

了解更多

语言

TypeScript 5.x

全量类型安全,从数据模型到 UI 组件的端到端类型推导

了解更多

UI 框架

Ink 5.x

基于 React 的终端 UI 框架,渲染富交互命令行界面

了解更多
React 18.x

组件化 UI 引擎,驱动 Ink 终端渲染和状态管理

了解更多

构建工具

esbuild 0.x

极速 JavaScript/TypeScript 打包器,毫秒级构建

了解更多

测试框架

Vitest 2.x

与 Vite 生态深度集成的测试框架,支持 TypeScript 原生运行

了解更多

关键依赖库

Zod 3.x

运行时 schema 校验,确保外部输入的类型安全

了解更多
Commander 12.x

命令行参数解析,驱动 CLI 命令注册与路由

了解更多
Chalk 5.x

终端文本着色,统一输出样式与视觉层级

了解更多

行为规范

写进 prompt 和 runtime 规则里的制度化约束——Claude Code 不把"好习惯"交给模型即兴发挥

编码行为

不要添加用户没要求的功能

防止 AI 自作主张引入不需要的复杂度

不要过度抽象和提前设计

避免 future-proof 陷阱,YAGNI 原则

不要乱加注释、docstring、type annotation

保持代码简洁,只在必要时添加

先读代码再改代码

理解现有模式后再修改,避免破坏一致性

不要轻易创建新文件

优先在现有文件中修改,减少碎片化

方法失败时先诊断再换策略

不要盲目重试,理解失败原因后再行动

删除确认没用的代码,不搞兼容性垃圾

死代码是认知负担,果断清理

工具使用

读文件用 FileRead,不要 cat/head/tail

专用工具有更好的错误处理和权限控制

改文件用 FileEdit,不要 sed/awk

FileEdit 支持原子操作和冲突检测

搜文件用 Glob,搜内容用 Grep

专用工具比 shell 命令更可靠、更快

无依赖关系的工具调用要并行

减少等待时间,提升执行效率

Bash 只用于真正需要 shell 的场景

减少 shell 注入风险,优先用专用工具

安全风险

破坏性操作必须确认

删除、覆盖、对外发布等不可逆操作需要用户授权

不要用破坏性操作当捷径

即使更快,也不能跳过安全检查

发现陌生状态先调查

不要假设,先理解再行动

被拒绝的工具不能原样重试

用户拒绝是明确信号,需要换策略

merge conflict 和 lock file 不要粗暴删除

这些文件包含重要的状态信息

输出规范

先说结论或动作,不要铺垫

用户要的是结果,不是思考过程

结果要如实汇报,不能假装测试过

诚实比好看更重要

不要过度解释,不要塞无谓表格

简洁是尊重用户时间

不要乱用 emoji

保持专业感,emoji 不是信息

为什么这么强

不是一段 prompt,而是一整套 Agent Operating System

Claude Code 的秘密不是一段 prompt,而是一整套把 prompt、tool、permission、agent、skill、plugin、hook、MCP 和 context 统一起来的 Agent Operating System。
维度 普通 Coding Agent Claude Code
System Prompt 一段静态文本 模块化 runtime assembly,带 cache boundary 优化
工具调用 模型决定 → 直接执行 Schema 校验 → Hook 拦截 → 权限决策 → 执行 → 审计
Agent 模式 一个万能 worker Explore / Plan / Verification 专职分工
行为约束 靠模型"自觉" 制度化写进 prompt 和 runtime 规则
上下文管理 Token 用完就截断 Cache 边界 + fork 共享 + compact + 按需注入
扩展生态 可安装但模型不感知 Skills/Plugins/MCP 模型可感知、可调用
📝

Prompt Architecture

动态装配、cache 优化、模块化 section

🔧

Tool Governance

校验 → Hook → 权限 → 执行 → 审计管线

🤖

Agent Orchestration

专职 Agent 分工、fork/background 生命周期

🔒

Permission Model

Hook + Settings + 风险等级的三层权限

🧹

Context Hygiene

Cache 边界、compact、按需注入、fork 隔离

🔌

Ecosystem Integration

Skills + Plugins + Hooks + MCP 四位一体

隐藏功能探索

源码中发现的未上线功能、实验特性、内部工具与彩蛋

灰度 8
/ultraplan

Ultra Plan

远程 Agent 任务规划系统

将复杂任务分解为子任务,分派给远程 Agent 并行执行。基于 RemoteAgentTask 架构,支持任务状态追踪和结果聚合。

/security-review

Security Review

AI 驱动的安全审查

以高级安全工程师视角审查当前分支的代码变更,检查注入漏洞、认证缺陷、敏感数据泄露等安全风险。内置 git diff 分析管线。

/plan

Plan Mode

计划模式——先规划再执行

AI 先生成执行计划供用户审阅,确认后再开始实际操作。避免 AI 直接修改代码带来的风险,适合大型重构场景。

/sandbox

Sandbox Mode

沙箱隔离执行环境

在隔离的沙箱中执行 shell 命令,防止 AI 操作影响宿主系统。支持自动允许沙箱内命令、策略锁定和依赖检测。

/tasks

Background Tasks

后台任务管理系统

支持定时任务(Cron)和后台长时间运行的任务。通过 BackgroundTasksDialog 管理任务列表、状态和日志。

/insights

Insights

代码洞察分析引擎

对代码库进行深度分析,生成架构洞察、复杂度报告和改进建议。使用 diff 算法追踪代码演进趋势。

/advisor

Advisor Model

AI 顾问模型配置

配置独立的顾问模型,在主模型之外提供第二意见。支持模型验证和用户级设置持久化。

/init-verifiers

Init Verifiers

自动创建验证器 Skills

分析项目结构,自动生成用于验证代码变更正确性的 Skill 文件。使用 TodoWrite 工具追踪多步骤创建过程。

隐藏 5
/teleport

Teleport

跨设备会话传送

将当前对话会话完整传送到另一台设备。基于 Bridge 模块的远程会话基础设施,支持 JWT 设备信任认证。

/share

Session Share

会话分享

生成可分享的会话链接,让其他人查看你的对话历史。

/voice

Voice Input

语音输入模式

通过麦克风录音,实时转写为文本输入。支持多语言 STT、语言提示和 kill-switch 控制。需要 OAuth 认证。

/think-back

ThinkBack

2025 年度回顾

生成你的 Claude Code 年度使用报告——对话次数、Token 消耗、最常用命令等统计数据的可视化回顾。受 feature gate 控制。

/ctx_viz

Context Visualizer

上下文窗口可视化

可视化当前对话的 Token 分布——系统提示词、用户消息、AI 响应、工具调用各占多少 Token,帮助理解上下文窗口的使用情况。

内部 3
/bridge-kick

Bridge Kick

桥接故障注入测试

手动注入 WebSocket 断开、轮询 404/401、注册失败等故障状态,用于测试 Bridge 模块的恢复路径。仅 Anthropic 内部使用。

/ant-trace

Ant Trace

Anthropic 内部追踪

启用内部请求追踪,记录 API 调用链路的详细时序和参数,用于性能分析和问题排查。

/heapdump

Heap Dump

堆内存转储

生成 V8 堆内存快照,用于诊断内存泄漏和分析内存使用模式。

占位 2
/bughunter

Bug Hunter

AI 自动化 Bug 猎手

计划中的功能——AI 自动扫描代码库寻找潜在 Bug。目前仅有 stub 占位,尚未实现任何逻辑。

/autofix-pr

Autofix PR

自动修复 PR 问题

计划中的功能——自动检测并修复 PR 中的常见问题(lint 错误、类型错误、测试失败等)。

彩蛋 2
/stickers

Stickers

订购 Claude Code 贴纸

没错,你可以通过命令行订购实体 Claude Code 贴纸。这是 Anthropic 团队藏在代码里的小惊喜。

/good-claude

Good Claude

表扬 Claude

当 Claude 表现出色时,用这个命令给它一个赞。隐藏的正向反馈机制。