目录
- 引言:为什么要造一个 Mini Claude Code
- 核心原理:一个循环就是全部
- AI 智能体强大的深层原因
- 用户最头疼的痛点分析
- V0 版本:Bash 就是一切
- V1 版本:模型即代理
- V2 版本:结构化规划与 Todo
- V3 版本:子代理机制
- V4 版本:Skills 机制
- 总结:Agent 的四层架构与核心公式
- AI 总结
1. 引言:为什么要造一个 Mini Claude Code Content-[00:00]

最近在高强度使用 Claude Code,对其底层原理产生好奇。在 GitHub 上发现了一个开源项目 shareAI-Lab/learn-claude-code,该项目实现了 5 个版本(V0 到 V4),渐进式地揭露了 Claude Code 的底层原理,相当于一个开源版本的 Claude Code。

核心疑问:
- 当你在终端输入一句话,AI 如何知道修改哪个文件?
- 为什么它能连续操作(读文件、改代码、跑命令),而普通聊天机器人只能回复文字?
- 它真的理解代码了吗?还是某种模式匹配?
- 为什么有时候很蠢(忘记刚才修改的文件)?
- 为什么这么烧钱(Token 消耗巨大)?
- 能不能从零构建一个类似的?需要多少代码?
2. 核心原理:一个循环就是全部 Content-[01:49]

抛开界面、权限系统、进度条等,核心原理非常简单:一个死循环。
核心流程:
- 用户指令:输入任务。
- 模型思考:决定调用什么工具。
- 调用工具:代码执行工具。
- 获取结果:工具返回结果。
- 继续思考:将结果反馈给模型,模型判断任务是否完成。
- 循环:直到模型认为任务完成,循环结束。

代码本质:
就是一个 while True 循环。
- 调用模型
response = model(messages, tools) - 判断是否返回工具调用
if response.stop_reason != "tool_use" - 执行工具
result = execute(tool_call) - 结果反馈给模型
messages.append(result) - 回到第一步
模型是决策者,决定调用什么工具、以什么顺序、何时停止。代码只是提供工具的运行环境。
3. AI 智能体强大的深层原因 Content-[03:12]

AI 变成智能体(Agent)强大,不是来自单一技术突破,而是几个概念的奇妙组合:
- 工具赋予行动力:
- 普通 LLM 只能输出文字。
- 配备
bash,read_file,write_file,edit_file四个工具后,它能探索代码库、理解代码、修改文件、运行命令。 - 工具把“会说”变成了“会做”。
- 循环赋予自主性:
- 传统助手:用户问 -> 模型答 -> 结束。
- 智能体:用户问 -> 模型思考 -> 调用工具 -> 看结果 -> 再思考 -> 再调用工具 -> 直到任务完成。
- 循环让模型从“一问一答”变成了“自主完成任务”。
- 上下文赋予记忆:
- 每次工具调用的结果都会追加到消息历史中。
- 模型能看到之前所有的操作和结果,就像程序员记得刚才读了什么代码、改了什么代码。
- 消息历史就是模型的工作记忆。
- 提示词赋予方向:
- 系统提示词告诉模型“你是谁”、“该怎么做”。
- 工具描述告诉模型“你有什么能力”。
- 好的提示词就是好的岗位说明书。
4. 用户最头疼的痛点分析 Content-[04:31]

理解原理后,就能明白为什么会出现以下痛点:
- 上下文遗忘:
- 聊了 20 轮之后,模型开始忘记之前的文件。
- 原因:上下文窗口有限,早期内容会被截断或压缩。这不是 Bug,是限制。
- AI 幻觉:
- 模型自信地编造不存在的 API、虚构文件路径、生成看似正确但逻辑有问题的代码。
- 原因:它在做概率匹配,匹配到的不一定正确。
- 任务跑偏:
- 让它改个 Bug,它可能顺手重构了整个模块。
- 原因:没有明确的任务追踪地址,模型在超长对话中迷失方向。
- Token 消耗惊人:
- 每次循环都把完整的消息历史发给模型。
- 读一个 500 行的文件,这 500 行就永远留在上下文里。
- 实施几次工具调用,Token 轻松破万。这是记忆的代价。
- 复杂任务变慢:
- 每一次工具调用都是一次完整的 API 请求。
- 一个任务如果需要三四十次工具调用,就是三四十次的网络来回访问。
- 信任安全:
- 让 AI 执行命令、修改文件,本质是把键盘交给了一个概率模型。
- 路径安全检查、危险命令拦截、权限控制都在工程细节里。

网上流传的“最热门的编程语言”梗图(请用中文回答、请帮我修复代码、请不要添加注释等),本质上是因为上述原因导致模型表现不稳定。
5. V0 版本:Bash 就是一切 Content-[07:27]

核心理念: Bash is All You Need。
代码量: ~50 行。
工具: 仅 1 个工具 bash。
实现逻辑:
- Unix 哲学:一切皆文件,一切皆可管道。Bash 是 Unix 世界的入口,拥有 Bash 就拥有一切能力(读文件、写文件、探索、执行、甚至实现子代理)。
- 递归调用:通过 Bash 调用自身来实现子代理(
python v0_bash_agent.py "task description")。 - 进程隔离:子代理在隔离环境中运行,仅返回最终摘要,避免污染主代理上下文。

代码核心:
- 定义一个空的历史列表
history = []。 while True循环调用模型。- 工具列表里只有一个工具名字叫
bash,参数类型是object,必须要求参数是command(string)。 - 如果是工具调用,提取
command,通过subprocess执行命令,将结果加到历史列表,进入新一轮循环。
演示:
- 输入“创建一个 hello.txt 文件”,模型返回工具调用
echo "Hello World" > hello.txt。 - 执行命令,返回空结果。
- 模型再次判断,返回最终结果“已创建”。
- 输入“总结整个项目”,模型调用 Bash 运行自身脚本,实现递归子代理。
结论: 复杂能力从简单规则中涌现。一个工具就够了,Bash 就是通往一切的入口。
6. V1 版本:模型即代理 Content-[15:05]

核心理念: Model is Agent。 代码量: ~200 行。 工具: 4 个核心工具(覆盖 90% 场景)。
从聊天机器人到自主代理的转变:
- 传统:用户 模型 文本回复。
- Agent:用户 模型 [工具 结果] 回复。
- 关键:模型反复调用工具,直到决定任务完成。模型是决策者。

四个核心工具:
bash:执行命令。read_file:读取文件内容(可限制行数)。write_file:写文件内容。edit_file:编辑文件(替换特定内容)。
代码实现:
- 在一个函数中开启
while True循环。 - 系统提示词规定工作流程:简单思考 -> 使用工具 -> 汇报结果。
- 规则:优先使用工具,少说多做,不要凭空捏造路径,改动尽量精简。
- 工具执行部分增加了危险命令拦截(如
rm -rf,sudo等)。
结论: 确认了代理、确认了子代理、确认了权限系统的基础。本质还是在一个死循环里不断调用工具、返回结果。
7. V2 版本:结构化规划与 Todo Content-[21:02]

核心理念: Structured Planning & Todo。
代码量: ~300 行。
新增工具: todo_write。
解决的核心问题:
- 计划在“脑中”(上下文中),10 次调用后就忘了。
- 随着对话变长,早期意图被稀释,模型失去方向。
Todo 的好处:
- 计划写入结构化列表,每次调用都能看到。
- 确保每一次只干一件事。
- 进度一目了然。

带规矩的清单(TodoManager): 不是随手记的便签,给了三条硬规则:
- 最多 20 条待办:防止过度规划。
- 只能每次完成一个任务:避免分心,强制串行执行。
- 必须填写当前计划状态:标记为
pending,in_progress,completed。
代码实现:
- 新增
TodoWrite工具,接收代办内容、状态、当前正在干的事情,返回完整列表。 - 系统提示词增加软约束:如果超过 10 轮没有更新 Todo,强制提醒模型更新。
- 形成自我强化的反馈:模型调用 Todo 工具 -> 工具反馈完整列表 -> 模型执行当前任务 -> 完成后更新状态。
结论: 规矩立得好,活才干得好。约束不是限制,而是引导。
8. V3 版本:子代理机制 Content-[28:29]

核心理念: Sub-agent Mechanism。
代码量: ~450 行。
新增工具: task。
代理类型: 3 种专门化代理。
解决单一 Agent 的上下文困境:
- 单一 Agent 处理复杂任务时,探索过的 20 个文件会一直留在历史列表中,导致后续任务失去焦点且消耗 Token。
- V3 实现子弹隔离(上下文隔离),让每个任务拥有独立的上下文。

三种专门化代理:
- Explore (探索):只读代理。用于搜索和分析。只能用
bash和read_file。不修改代码。 - Code (编码):全能代理。用于实现功能和修复 Bug。可以使用所有工具。
- Plan (规划):分析型代理。用于设计工作。只用于读取文件和规划,不直接修改代码。
Task 工具实现:
- 接收描述、提示词、代理类型。
- 生成一个新的子代理进程。
- 子代理运行在隔离上下文中,看不到父代理的历史记录。
- 子代理只返回最终的文本摘要,主 Agent 只看到结论,看不到细节。
流程: Explore -> Plan -> Code -> 总结。 结论: 分而治之是管理复杂性的终极武器。主 Agent 作为协调者,不再亲自干每一步,而是委派任务、汇总结果。
9. V4 版本:Skills 机制 Content-[37:24]

核心理念: Skills Mechanism。
代码量: ~550 行。
新增工具: skills。
范式转变: 从“训练 AI”到“教育 AI”。
知识外化:
- 传统方式:知识锁在模型参数中,需要昂贵训练、GPU 集群、微调。
- 新范式:知识外化到可编辑的文档(Skills.md)中。任何人可参与、即时生效、零成本、可版本控制。

四层架构(从深层到表层):
- Model Parameters:预训练知识(通用能力基座)。
- Context Window:系统提示词(会话级别生效)。
- File System:配置文件(如 CLAUDE.md,持久化但局部)。
- Skill Library:技能包(可共享、组合、版本控制)。
工具 vs 技能:
- Tool (工具):模型能做什么(手和脚)。由代码实现,数量有限,需开发者维护。
- Skill (技能):模型知道应该怎么做(经验和知识)。由 Markdown 描述,无限扩展,社区共享。

Skills 三层结构(按需加载):
- 元数据 (Metadata):名称、描述、触发条件。始终加载(节省 Token)。
- SKILL.md 主体:完整的操作指南、步骤、规则。匹配对应 Skill 后才加载。
- 资源文件 (Resources):参考代码、配置。按需加载,不占用初始上下文。
代码实现:
- 定义
SkillsLoader,解析目录下SKILL.md文件。 - 初始提示词只注入技能名称和描述。
- 新增
skills工具,当用户匹配到对应任务时,立即使用该工具加载技能内容注入对话。
结论: 知识作为一等公民。经验可以复用,从训练 AI 转变为教育 AI。
10. 总结:Agent 的四层架构与核心公式 Content-[44:35]

Agent 的四层架构:
- 工具系统:定义能力边界(V0 Bash -> V1 多工具 -> V3 工具过滤)。
- Todo 系统:把隐式计划转换为显式列表,通过硬约束引导模型保持聚焦(V2)。
- 子代理系统:通过 Task 工具创建独立进程,上下文隔离 + stdout 通信,实现分而治之(V3)。
- Skills 系统:知识从参数中解放,存储为 SKILL.md 文件,三层渐进披露节省 Token(V4)。

这门课教会我们的 6 件事:
- Agent = While 循环:核心永远是调用模型、执行工具、返回结果、不断重复。
- 工具定义能力边界:给模型什么样的工具,它就会有什么样的能力。
- 约束产生智能:给模型增加限制(如 Todo 规则),它反而能把活干得更好。
- 分而治之管理复杂性:一个 Agent 搞不定,就派出专家(子代理),通过隔离获得独立上下文。
- 知识 ≠ 参数:知识可以外化为文档(Skills),经验可以复用。
- 渐进式构建:不要一步到位,每次只增加一点点,验证有效再继续。
Agent 的构成公式: $$ \text{Agent} = \begin{cases} \text{While Loop} + \text{Bash} & (\text{V0: 本质}) \ + \text{Multi-Tools} & (\text{V1: 能力}) \ + \text{Todo} + \text{Constraints} & (\text{V2: 规划}) \ + \text{SubAgents} + \text{Roles} & (\text{V3: 协作}) \ + \text{Skills} + \text{Knowledge} & (\text{V4: 智慧}) \end{cases} $$
AI 总结
本视频通过从零构建一个 Mini Claude Code 的过程,深入浅出地拆解了 AI 编程智能体的核心原理。视频指出,无论多么复杂的 Agent 框架,其本质都是一个 While True 循环:模型思考、调用工具、获取结果、反馈思考。
作者通过五个版本的迭代(V0-V4),展示了如何通过简单的规则叠加涌现出复杂的能力:
- V0 证明了
Bash结合递归调用即可实现基础 Agent 能力。 - V1 引入多工具(读写编辑),确立了模型作为决策者的地位。
- V2 引入结构化
Todo列表和硬约束,解决了长任务中的遗忘和跑偏问题。 - V3 引入子代理机制和角色分工,通过上下文隔离解决了复杂任务的焦点分散和 Token 消耗问题。
- V4 引入
Skills机制,将知识外化为文档,实现了从“训练 AI”到“教育 AI”的范式转变,支持知识的按需加载和共享。
最终结论是:复杂的能力源于简单规则的巧妙组合。理解了这个核心循环和四层架构(工具、规划、子代理、技能),就掌握了构建 AI Agent 的钥匙。