Claude Code 从零复刻教程 - 完整大纲
Claude Code 是 Anthropic 官方推出的命令行工具,可以让开发者通过终端与 Claude AI 进行自然语言交互,辅助完成编程任务。能力说明CLI 交互在终端中通过自然语言与 AI 对话工具调用AI 可以读写文件、执行命令、搜索代码多智能体多个 AI Agent 协同工作长期记忆跨会话记住项目上下文。
Claude Code 从零复刻教程 - 完整大纲
本教程面向有 JavaScript 基础的开发者,通过 12 篇系列文章,从零构建一个类似 Claude Code 的 AI 编程助手 CLI 工具。
目录
教程简介
什么是 Claude Code?
Claude Code 是 Anthropic 官方推出的命令行工具,可以让开发者通过终端与 Claude AI 进行自然语言交互,辅助完成编程任务。它具有以下核心能力:
| 能力 | 说明 |
|---|---|
| CLI 交互 | 在终端中通过自然语言与 AI 对话 |
| 工具调用 | AI 可以读写文件、执行命令、搜索代码 |
| 多智能体 | 多个 AI Agent 协同工作 |
| 长期记忆 | 跨会话记住项目上下文 |
教程目标
完成本系列教程后,你将:
- 理解 AI CLI 工具的核心架构
- 掌握 TypeScript + Node.js 构建 CLI 的最佳实践
- 实现一个功能完整的 AI 编程助手
- 为参与开源或开发自己的 AI 工具奠定基础
受众要求
| 要求 | 说明 |
|---|---|
| JavaScript 基础 | 熟悉 ES6+ 语法 |
| 命令行基础 | 会使用终端 |
| TypeScript | 教程中会讲解,但有 JS 基础可快速上手 |
| API Key | 需要准备 Anthropic API Key(免费注册) |
技术栈
| 类别 | 技术 | 版本 | 说明 |
|---|---|---|---|
| 语言 | TypeScript | 5.x | 类型安全、易于调试 |
| 运行时 | Node.js | 20+ | ESM + TS 原生支持 |
| 包管理 | npm | 10+ | 生态成熟 |
| AI 能力 | Anthropic SDK | 最新 | Claude API 封装 |
| CLI 框架 | Commander.js | 12.x | 参数解析 |
| 输出美化 | picocolors | 1.x | 彩色终端输出 |
| 存储 | 文件系统 | - | 轻量无需 DB |
| 测试 | Vitest | 2.x | 快速轻量 |
系列大纲
阶段一:CLI 核心框架
第 1 篇:项目初始化与 CLI 骨架
核心内容:
- 项目目录结构设计
- TypeScript 配置(tsconfig.json)
- Commander.js 入门
- 入口文件架构
- 打印彩色输出
交付物: 最小可运行的 CLI 工具 my-claude
# 完成后可运行
my-claude --help
# 输出帮助信息
文件结构:
my-claude/
├── src/
│ ├── main.ts # 入口
│ └── index.ts # 导出
├── package.json
├── tsconfig.json
└── README.md
第 2 篇:REPL 循环实现
核心内容:
- 标准输入输出(readline 模块)
- 消息队列设计
- 用户输入处理
- 退出机制
- 彩色提示符
交付物: 可交互的命令行界面
my-claude
# 显示彩色提示符
# 等待用户输入
# 循环处理...
# 输入 /exit 退出
关键代码模式:
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
prompt: chalk.blue('claude> ')
});
rl.prompt();
rl.on('line', async (input) => {
await processInput(input.trim());
rl.prompt();
});
第 3 篇:参数解析与配置管理
核心内容:
- 命令行参数解析(–api-key, --model 等)
- 环境变量配置
- settings.json 配置文件
- API Key 安全管理
- 配置优先级
交付物: 完整的配置系统
my-claude --api-key sk-ant-xxx --model claude-sonnet
# 或通过环境变量
ANTHROPIC_API_KEY=sk-ant-xxx my-claude
# 或通过配置文件
配置文件结构:
// ~/.my-claude/settings.json
{
"apiKey": "sk-ant-xxx",
"model": "claude-sonnet-4-20250514",
"maxTokens": 8192
}
阶段二:对话系统
第 4 篇:Anthropic API 集成
核心内容:
- Anthropic SDK 安装与配置
- API 调用流程
- 消息格式
- 流式响应
- 错误处理
- 重试机制
交付物: 能对话的 CLI
my-claude
# claud> 解释什么是闭包
# [AI 回复...]
核心代码:
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({ apiKey });
const message = await client.messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Hello!' }]
});
第 5 篇:七层 System Prompt 架构
核心内容:
- 七层设计理念
- 身份定义层
- 系统约束层
- 任务规范层
- 安全准则层
- 工具使用层
- 沟通规范层
- 静态/动态分层优化
交付物: 模块化的 Prompt 系统
Prompt 结构图:
┌─────────────────────────────────────────┐
│ Layer 7: 动态上下文(记忆/MCP/语言) │ ← 每次请求重建
├─────────────────────────────────────────┤
│ Layer 6: 沟通规范 │
├─────────────────────────────────────────┤
│ Layer 5: 工具使用指导 │
├─────────────────────────────────────────┤
│ Layer 4: 安全准则 │
├─────────────────────────────────────────┤
│ Layer 3: 任务规范 │
├─────────────────────────────────────────┤
│ Layer 2: 系统约束 │
├─────────────────────────────────────────┤
│ Layer 1: 身份定义 │ ← 全局缓存
└─────────────────────────────────────────┘
第 6 篇:对话上下文管理
核心内容:
- 消息历史管理
- Token 计数
- 上下文窗口限制
- 消息截断策略
- 对话状态持久化
- 上下文压缩
交付物: 完整对话体验
interface ConversationContext {
messages: Message[];
totalTokens: number;
maxTokens: number;
}
function manageContext(ctx: ConversationContext, newMsg: Message): void {
ctx.messages.push(newMsg);
ctx.totalTokens += countTokens(newMsg);
while (ctx.totalTokens > ctx.maxTokens) {
ctx.messages.shift();
ctx.totalTokens = recalculate(ctx.messages);
}
}
阶段三:工具系统
第 7 篇:工具注册与调用机制
核心内容:
- 工具接口定义
- 注册表模式
- 动态工具注册
- Tool Use 规范
- 工具参数验证
- 调用结果处理
交付物: 工具执行框架
工具接口:
interface Tool {
name: string;
description: string;
input_schema: JSONSchema;
execute: (params: unknown) => Promise<ToolResult>;
}
class ToolRegistry {
private tools: Map<string, Tool>;
register(tool: Tool): void;
get(name: string): Tool | undefined;
list(): Tool[];
}
第 8 篇:基础工具实现
核心内容:
- ReadFileTool:读取文件内容
- WriteFileTool:写入文件
- GlobTool:模式匹配文件
- BashTool:执行 shell 命令
- 工具权限控制
- 执行超时处理
交付物: 实际可用的文件操作工具
四个核心工具:
| 工具 | 命令 | 说明 |
|---|---|---|
| Read | Read: filePath |
读取文件 |
| Write | Write: filePath, content |
写入文件 |
| Glob | Glob: pattern |
搜索文件 |
| Bash | Bash: command |
执行命令 |
阶段四:Agent Teams
第 9 篇:多智能体协作框架
核心内容:
- Agent 概念与生命周期
- TeamCreateTool 实现
- SendMessageTool 实现
- 任务分发机制
- 进程内 vs 进程外 Agent
- 状态同步
交付物: 多 Agent 基础设施
架构图:
用户
│
▼
┌─────────┐
│ TeamLead │ ← 主 Agent
└────┬────┘
│ 分配任务
┌─────┼─────┐
▼ ▼ ▼
┌─────┐ ┌─────┐ ┌─────┐
│ Ag1 │ │ Ag2 │ │ Ag3 │ ← 队友 Agent
└─────┘ └─────┘ └─────┘
第 10 篇:内置 Agent 实现
核心内容:
- ExploreAgent:代码探索专家
- PlanAgent:架构规划专家
- VerificationAgent:质量验证专家
- Agent 提示词设计
- Agent 间通信
- 结果汇总
交付物: 专业化的 Agent 角色
Agent 类型:
| Agent | 角色 | 特点 |
|---|---|---|
| Explore | 搜索专家 | 只读、并行、高效 |
| Plan | 规划专家 | 结构化输出、深度分析 |
| Verification | 验证专家 | 对抗测试、质量把控 |
阶段五:记忆系统
第 11 篇:长期记忆存储
核心内容:
- 四种记忆类型(user/feedback/project/reference)
- 记忆文件格式(YAML frontmatter)
- 存储路径设计
- 记忆索引(MEMORY.md)
- 记忆提取机制
- 安全存储
交付物: 记忆持久化系统
记忆类型:
| 类型 | 作用域 | 内容 |
|---|---|---|
| user | 私有 | 用户偏好、角色、职责 |
| feedback | 私有/团队 | 反馈规则、已知问题 |
| project | 私有/团队 | 项目约定、决策历史 |
| reference | 团队 | 共享文档、API 参考 |
存储结构:
~/.my-claude/
└── projects/
└── <项目路径>/
└── memory/
├── MEMORY.md # 索引入口
├── user_role.md
├── feedback.md
├── project_arch.md
└── reference_api.md
第 12 篇:Auto Dream 自动整合
核心内容:
- Fork Agent 模式
- 后台记忆整合
- 整合触发条件
- 四阶段整合流程(Orient/Gather/Consolidate/Prune)
- 定时任务调度
- 整合锁机制
交付物: 智能记忆管理
整合流程:
1. Orient: 了解当前记忆状态
2. Gather: 收集新会话数据
3. Consolidate: 合并新旧记忆
4. Prune: 清理过期内容
学习路径
推荐顺序
第1周:CLI 基础
├── 第 1 篇:项目初始化
├── 第 2 篇:REPL 循环
└── 第 3 篇:配置管理
第2周:对话核心
├── 第 4 篇:API 集成
├── 第 5 篇:Prompt 架构
└── 第 6 篇:上下文管理
第3周:工具系统
├── 第 7 篇:工具框架
└── 第 8 篇:基础工具
第4周:高级功能
├── 第 9 篇:Agent Teams
└── 第10篇:内置 Agent
第5周:记忆系统
├── 第11篇:记忆存储
└── 第12篇:自动整合
快速路径
如果你只想快速体验核心功能:
- 第 1 篇:项目初始化
- 第 4 篇:API 集成
- 第 7 篇:工具框架
- 第 8 篇:基础工具
完成这 4 篇后,你就拥有了一个最小可用的 AI 编程助手!
附录
A. Claude Code 源码参考
本教程部分设计参考 Claude Code 源码:
| 模块 | 源码位置 | 教程对应 |
|---|---|---|
| CLI 入口 | src/main.tsx |
第 1-3 篇 |
| 对话系统 | src/src/buddy/ |
第 4-6 篇 |
| 工具系统 | src/src/tools/ |
第 7-8 篇 |
| Agent Teams | src/src/tasks/ |
第 9-10 篇 |
| 记忆系统 | src/src/memdir/ |
第 11-12 篇 |
B. 术语表
| 术语 | 解释 |
|---|---|
| REPL | Read-Eval-Print Loop,交互式解释器 |
| Tool Use | AI 调用外部工具的能力 |
| System Prompt | 系统提示词,定义 AI 行为 |
| Token | 文本处理单位,API 计费依据 |
| Fork Agent | 从当前会话分离的独立 Agent |
C. 相关资源
更多推荐

所有评论(0)