Home
Softono
w

windy3f3f3f3f

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
2

Software by windy3f3f3f3f

how-claude-code-works
Open Source

how-claude-code-works

<div align="center"> # How Claude Code Works **深入解读当前最成功的 AI 编程 Agent 的源码架构** [![GitHub stars](https://img.shields.io/github/stars/Windy3f3f3f3f/how-claude-code-works?style=flat-square&logo=github)](https://github.com/Windy3f3f3f3f/how-claude-code-works) [![GitHub forks](https://img.shields.io/github/forks/Windy3f3f3f3f/how-claude-code-works?style=flat-square&logo=github)](https://github.com/Windy3f3f3f3f/how-claude-code-works/fork) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](./LICENSE) [![TypeScript](https://img.shields.io/badge/Source-TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white)](https://github.com/anthropics/claude-code) [![Docs](https://img.shields.io/badge/Docs-15_chapters-orange?style=flat-square)](#专题深入) <br/> [**📘 在线阅读文档**](https://windy3f3f3f3f.github.io/how-claude-code-works/#/) &nbsp;&nbsp;|&nbsp;&nbsp; [English](./README_EN.md) <br/> > 🛠️ **想动手造一个?** 配套项目 **[Claude Code From Scratch](https://github.com/Windy3f3f3f3f/claude-code-from-scratch)** — ~4000 行 TypeScript 或 Python两个版本,11 章分步教程,从零构建你自己的 Claude Code </div> --- Claude Code 是目前使用最广泛的 AI 编程 Agent,也是我们认为最好用的 AI 编程工具。它能理解整个代码仓库、自主执行多步编程任务、安全地运行命令——而这一切背后是 **50 万行 TypeScript 源码**中沉淀的工程智慧。 Anthropic 开源(x)了这份源码。**但 50 万行代码,从哪里开始读?** 这也是我们创建这个项目的初衷——我们都遇到了没有办法阅读这么庞大代码项目的问题,解决方案是和 Claude Code 一起读,让它写文档配合我们理解源代码。在此同时,我们想把这个过程文档化,就形成了这个项目。 我们和 Claude Code 加班从源码中提炼出 **15 篇专题文档**,覆盖了从核心循环到安全防护的每一个关键设计决策。不管你是想造自己的 AI Agent,还是想更深入地理解和使用 Claude Code,这里都是最短路径(应该?就算不是最短的,我们也会不断更新这个项目)。 <div align="center"> <img alt="在线阅读文档网站截图" src="./assets/architecture.png" width="800" /> </div> ## 🏗️ 系统架构 ```mermaid graph TB User[用户输入] --> QE[QueryEngine 会话管理] QE --> Query[query 主循环] Query --> API[Claude API 调用] API --> Parse{解析响应} Parse -->|文本| Output[流式输出] Parse -->|工具调用| Tools[工具执行引擎] Tools --> ReadTool[读文件] Tools --> EditTool[编辑文件] Tools --> ShellTool[Shell 执行] Tools --> SearchTool[搜索工具] Tools --> MCPTool[MCP 工具] Tools -->|结果回注| Query Context[上下文工程] --> Query Context --> SysPrompt[系统提示词] Context --> GitStatus[Git 状态] Context --> ClaudeMD[CLAUDE.md] Context --> Compact[压缩流水线] Perm[权限系统] --> Tools Perm --> Rules[规则层] Perm --> AST[Bash AST 分析] Perm --> Confirm[用户确认] ``` ## 🤔 这份源码为什么值得深入研究? 大多数 AI Agent 框架都是"demo 级别"——跑通一个场景就宣布成功。Claude Code 不同,它是一个**日活百万级开发者实际使用的生产系统**,需要处理的问题远比 demo 复杂: - 对话动辄上百万 token,上下文窗口不够用怎么办?(记忆管理、压缩方案是如何设计的超重要) - 66 个内置工具同时存在,怎么协调?(如果所有工具上下文都给AI,那将直接爆炸) - 怎么让用户感觉"快",哪怕模型推理本身就要几十秒?(如何实现流水线设计) - 用户让 AI 执行 `rm -rf /`,怎么拦住?(安全护栏很重要) 这些问题的解法,就藏在源码里。 ## 🔍 从源码中发现的关键设计 > 以下内容均来自对源码的实际分析,不是猜测。 ### 为什么 Claude Code 用起来感觉那么快? 它其实做了三件聪明的事: 1. **全链路流式输出** — 不是等模型全部想完再显示,而是每生成一个 token 就立刻展示。从 API 调用到终端渲染,整条链路都是流式的。 2. **工具预执行** — 模型说"我要读某个文件"的时候,这个文件其实已经在读了。系统在模型还在输出的同时就开始解析和执行工具调用,利用模型生成的 5-30 秒窗口,把约 1 秒的工具延迟藏起来了。 3. **9 阶段并行启动** — 启动时把不相关的初始化任务并行执行,关键路径压到约 235ms。 ### 出错了怎么办?—— 静默恢复 普通程序遇到错误会报错给用户。Claude Code 的策略是:**能恢复的错误,用户根本看不到。** 比如对话太长超出了上下文窗口,它不会弹个错误框让你手动处理,而是悄悄压缩上下文、自动重试。token 输出达到上限?自动从 4K 升级到 64K 再重试。整个 Agent 循环有 7 种不同的"继续"策略,每种对应一种故障恢复路径。 这就是为什么用 Claude Code 的时候很少遇到报错——不是没有错误,而是大部分都被内部消化了。 ### 对话太长怎么办?—— 4 级渐进式压缩 这是整个系统中最精妙的设计之一。当上下文快要超限时,不是一刀切地压缩,而是分 4 个级别逐步处理: 1. **裁剪** — 先把历史消息中的大块内容(旧的工具输出)截断 2. **去重** — 几乎零成本地去除重复内容 3. **折叠** — 把不活跃的对话段落折叠起来,但不修改原始内容(可以展开恢复) 4. **摘要** — 最后手段,启动一个子 Agent 对整个对话做摘要 每一级都可能释放足够的空间,让后面的级别不需要执行。而且压缩后系统会**自动恢复最近编辑的 5 个文件内容**,防止模型忘记刚刚在干什么。 ### 怎么防止 AI 执行危险操作?—— 5 层纵深防御 Claude Code 让 AI 直接在你电脑上跑命令,安全设计必须过硬。它不是靠一个"你确定吗?"对话框,而是搭建了 5 层防御体系: 1. **权限模式** — 不同信任级别,限制可执行的操作范围 2. **规则匹配** — 基于命令模式的白名单/黑名单 3. **Bash 命令深度分析** — 这里最硬核:用语法树分析(不是正则匹配)拆解 Shell 命令的真实意图,包含 23 项安全检查,覆盖命令注入、环境变量泄露、特殊字符攻击等 4. **用户确认** — 危险操作弹出确认对话框,但有 200ms 防抖保护,防止键盘连击导致误确认 5. **Hook 校验** — 允许用户自定义安全规则,甚至可以动态修改工具的输入参数(比如自动给 `rm` 加上 `--dry-run`) 这五层任何一层拦住就不会执行,纵深防御。 ### 66 个工具如何协同工作? 所有工具——读文件、写文件、跑命令、搜索、甚至第三方 MCP 工具——都遵循**同一套接口规范**。这意味着: - 第三方工具和内置工具走完全相同的执行流水线,享受同样的安全检查和权限控制 - 只读工具自动并行执行,写操作自动串行,不需要手动管理并发 - 工具输出超过 100K 字符时自动落盘,模型只拿到摘要和文件路径,需要时再读取全文 ### 多个 Agent 如何协作? Claude Code 支持三种多 Agent 模式: - **子 Agent** — 主 Agent 分派任务给子 Agent,等结果返回 - **协调器** — 纯指挥官模式,协调器只能分配任务,**不能自己读文件、写代码**,强制分工 - **Swarm** — 多个命名 Agent 之间点对点通信,各自独立工作 为了防止多个 Agent 同时改同一个文件产生冲突,系统用 Git Worktree 给每个 Agent 一份独立的代码副本。 ## 📚 专题深入 | # | 文档 | 你会了解到 | |---|------|-----------| | 1 | [概述](./docs/01-overview.md) | 技术选型背后的思考(为什么 Bun/React/Zod)、6 条核心设计原则、9 阶段 235ms 启动流程、数据流全景 | | 2 | [系统主循环](./docs/02-agent-loop.md) | Agent 循环的双层架构、7 种 Continue Sites 故障恢复、工具预执行、StreamingToolExecutor 并发机制 | | 3 | [上下文工程](./docs/03-context-engineering.md) | 4 级压缩流水线完整细节、压缩后自动恢复机制(5 文件 + 技能重激活)、提示词缓存策略与缓存断裂检测 | | 4 | [工具系统](./docs/04-tool-system.md) | 66 个工具的注册与并发控制、MCP 7 种传输详解、连接状态机、OAuth 2.0 + PKCE 认证流程 | | 5 | [技能系统](./docs/09-skills-system.md) | 6 层技能来源与优先级、懒加载与 Token 预算分配、Inline/Fork 双执行模式、白名单权限模型、压缩后技能保留 | | 6 | [记忆系统](./docs/08-memory-system.md) | 4 种记忆类型与封闭分类法、Sonnet 语义召回与异步预取、后台记忆提取 Agent、记忆漂移防御、团队记忆 | | 7 | [Hooks 与可扩展性](./docs/06-hooks-extensibility.md) | 23+ Hook 事件全景、5 种 Hook 类型、6 阶段执行管道、PermissionRequest 4 种能力、信任模型与安全 | | 8 | [多 Agent 架构](./docs/07-multi-agent.md) | 子 Agent 4 种执行模式与 Worktree 隔离、协调器纯编排设计、Swarm 3 种执行后端与信箱通信 | | 9 | [Plan 模式](./docs/10-plan-mode.md) | 两条进入路径、5 阶段与迭代双工作流、附件节流机制、Phase 4 四种实验变体、计划文件管理与恢复、审批与权限恢复 | | 10 | [代码编辑策略](./docs/05-code-editing-strategy.md) | search-and-replace 为什么比整文件重写更好、唯一性约束与抗幻觉设计、编辑前强制读取的代码级实现 | | 11 | [任务管理系统](./docs/15-task-system.md) | 文件级存储与并发锁设计、三层变更检测、依赖追踪与原子认领、多 Agent 任务协调、验证提醒机制 | | 12 | [权限与安全](./docs/11-permission-security.md) | 5 层纵深防御体系、tree-sitter AST 分析 + 23 项安全检查、竞速确认机制与 200ms 防误触 | | 13 | [系统提示词设计](./docs/14-system-prompt-design.md) | 7 层递进式提示词架构、反模式接种与负面清单设计、爆炸半径风险框架、内外分层变体、7 条 Agent 提示词设计原则 | | 14 | [用户体验设计](./docs/12-user-experience.md) | 自研 Ink 渲染器架构、Yoga Flexbox 布局、虚拟滚动与对象池优化、Vim 模式 | | 15 | [最小必要组件](./docs/13-minimal-components.md) | 7 个最小必要组件框架、最小实现 vs 生产级实现的逐项对照、从 500 行到 50 万行的演进路线 | ## 🎯 谁应该读这个? | 你是 | 你能获得 | |------|---------| | 想做 AI Agent 产品的开发者 | 一个经过百万用户验证的架构参考,少走弯路 | | Claude Code 用户 | 理解它为什么这样工作,学会用 Hooks 和 CLAUDE.md 深度定制 | | 对 AI 安全感兴趣的人 | 生产级 AI 系统的安全设计实战,不是论文里的理论 | | 学生或 AI 研究者 | 大规模工程实践的第一手材料,比任何教科书都真实 | ## 📊 关键数据 | 指标 | 数值 | |------|------| | 源码总行数 | 512,000+ | | TypeScript 文件 | 1,884 | | 内置工具 | 66+ | | 压缩流水线级数 | 4 级 | | 权限防御层数 | 5 层 | ## 🗺️ 阅读建议 **只有 10 分钟?** → 读 [快速入门](./docs/quick-start.md) **想理解核心原理?** → 按顺序读 [主循环](./docs/02-agent-loop.md) → [上下文工程](./docs/03-context-engineering.md) → [工具系统](./docs/04-tool-system.md) **想自己造一个 AI Agent?** → 先读 [最小必要组件](./docs/13-minimal-components.md),然后跟着 **[claude-code-from-scratch](https://github.com/Windy3f3f3f3f/claude-code-from-scratch)** 的 11 章教程动手实现——~4000 行代码,每一步都对照源码讲解 **想定制 Claude Code?** → 读 [Hooks 与可扩展性](./docs/06-hooks-extensibility.md) + [记忆系统](./docs/08-memory-system.md) + [技能系统](./docs/09-skills-system.md) **关注安全?** → 读 [权限与安全](./docs/11-permission-security.md) + [代码编辑策略](./docs/05-code-editing-strategy.md) ## 🤝 贡献者 | <img src="https://github.com/Windy3f3f3f3f.png" width="60" /> | <img src="https://github.com/davidweidawang.png" width="60" /> | <img src="./assets/kaibo.jpg" width="60" /> | <img src="https://github.com/longx24.png" width="60" /> | |:---:|:---:|:---:|:---:| | [@Windy3f3f3f3f](https://github.com/Windy3f3f3f3f) | [@davidweidawang](https://github.com/davidweidawang) | [Kaibo Huang](https://scholar.google.com/citations?user=C7B5X5IAAAAJ&hl=zh-CN) | [@longx24](https://github.com/longx24) | 欢迎提 Issue 和 PR!如果你发现分析有误或有更好的理解角度,非常欢迎讨论。 ## 🙏 致谢 感谢 [LINUX DO](https://linux.do/) 社区的支持与讨论。 ## 💬 更多交流 <div align="center"> **加入 AI Agent 工坊 交流群** <img src="./assets/qq.jpg" width="280" alt="QQ 群二维码" /> QQ 群号:**1090526244** </div> ## 📈 Star History <div align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=Windy3f3f3f3f/how-claude-code-works&type=Date&theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=Windy3f3f3f3f/how-claude-code-works&type=Date" /> <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=Windy3f3f3f3f/how-claude-code-works&type=Date" width="600" /> </picture> </div> ## 📝 更新记录 | 日期 | 更新内容 | |------|---------| | 2026-04-09 | 全面 Review 并修正全部 13 章:修复数字/引用错误(行数、百分比、事件数量、章节编号),为缺少概述的章节补充 high-level 导语,优化章节内部结构(ch05 拆分/交换、ch08 重组),中英文同步更新 | | 2026-04-03 | 新增第 14 章:系统提示词设计哲学,深入分析提示词内容的设计原理与工程实践 | | 2026-04-03 | 新增暗色模式、阅读进度条、回到顶部按钮、上下文感知语言切换等 UI 优化 | | 2026-04-03 | 完成全部 13 篇文档的英文翻译,支持中英双语切换 | | 2026-04-01 | 拆分记忆与技能为独立章节(11→12 篇),按侧边栏分组重新编号 01-12 | | 2026-04-01 | 全部 12 章大幅扩充(篇幅翻倍),补充源码级实现细节、Mermaid 架构图、代码示例 | | 2026-04-01 | 同步更新 quick-start 总览页、README 文档目录描述,匹配各章节新增内容 | | 2026-03-31 | 新增 3 章:Hooks 与可扩展性、多 Agent 架构、记忆与技能系统 | | 2026-03-31 | 充实原有 8 章内容,补充启动流程、MCP 集成、压缩恢复机制等专题 | | 2026-03-31 | 上线 Docsify 文档站点,支持搜索、Mermaid 渲染、章节导航 | | 2026-03-31 | 初始发布:8 篇核心架构分析文档 | ## 📄 License MIT

AI Agents Documentation
2.6K Github Stars
claude-code-from-scratch
Open Source

claude-code-from-scratch

<div align="center"> # Claude Code From Scratch **一步一步,从零造一个 Claude Code** [![GitHub stars](https://img.shields.io/github/stars/Windy3f3f3f3f/claude-code-from-scratch?style=flat-square&logo=github)](https://github.com/Windy3f3f3f3f/claude-code-from-scratch) [![GitHub forks](https://img.shields.io/github/forks/Windy3f3f3f3f/claude-code-from-scratch?style=flat-square&logo=github)](https://github.com/Windy3f3f3f3f/claude-code-from-scratch/fork) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](./LICENSE) [![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white)](#) [![Python](https://img.shields.io/badge/Python-3776AB?style=flat-square&logo=python&logoColor=white)](#) [![Lines of Code](https://img.shields.io/badge/~4300_lines-minimal-green?style=flat-square)](#) <br/> [**📘 在线阅读教程 →**](https://windy3f3f3f3f.github.io/claude-code-from-scratch/) &nbsp;&nbsp;|&nbsp;&nbsp; [📘 Read Tutorial (English) →](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/en/) &nbsp;&nbsp;|&nbsp;&nbsp; [English](./README_EN.md) <br/> > 📖 **想深入了解原理?** 姊妹项目 **[How Claude Code Works](https://github.com/Windy3f3f3f3f/how-claude-code-works)** — 12 篇专题,33 万字,从源码级别深度解析 Claude Code 架构 </div> --- **Claude Code 开源了 50 万行 TypeScript。读不动?** 本项目用 **~4300 行代码**(TypeScript 和 Python 两个版本分别实现)复现了 Claude Code 的核心架构——Agent Loop、13 个工具(含并行执行 + 流式早期启动)、4 层上下文压缩、语义记忆召回、技能系统、多 Agent、MCP 集成……每一步都对照真实源码讲解"它怎么做的 → 我们怎么简化的"。 这不是 demo,是一份**分步教程**——13 章内容,跟着动手写几千行代码,快速理解 Claude Code 这样最好用的 coding agent 的精髓。读完你就理解了 coding agent 的工作原理,无需啃那几十万行代码。 <div align="center"> <video src="https://github.com/user-attachments/assets/4f6597e2-6ea3-45ae-8a6b-77662c4e9540" width="100%" autoplay loop muted playsinline></video> </div> ## 📖 分步教程 13 章内容,分两个阶段——先构建一个可用的 Coding Agent,再逐步添加进阶能力。每章都贴真实代码 + Claude Code 源码对照: | 章节 | 内容 | 对应源码 | |------|------|---------| | **Phase 1: 构建一个可用的 Coding Agent** | | | | [1. Agent Loop](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/01-agent-loop) | 核心循环:调用 LLM → 执行工具 → 重复 | `agent.ts` ↔ `query.ts` | | [2. 工具系统](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/02-tools) | 13 个工具 + mtime 防护 + 延迟加载 | `tools.ts` ↔ `Tool.ts` + 66 工具 | | [3. System Prompt](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/03-system-prompt) | 提示词工程 + @include 语法 | `prompt.ts` ↔ `prompts.ts` | | [4. CLI 与会话](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/04-cli-session) | REPL、Ctrl+C、会话持久化 | `cli.ts` ↔ `cli.tsx` | | [5. 流式输出](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/05-streaming) | 双后端 + 流式工具执行 + 并行执行 | `agent.ts` ↔ `api/claude.ts` | | [6. 权限与安全](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/06-permissions) | 5 模式 + 声明式规则 + 危险检测 | `tools.ts` ↔ `permissions/` (52KB) | | [7. 上下文管理](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/07-context) | 4 层压缩 + 大结果持久化 | `agent.ts` ↔ `compact/` | | **Phase 2: 进阶能力** | | | | [8. 记忆系统](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/08-memory) | 4 类型记忆 + 语义召回 + 异步预取 | `memory.ts` ↔ `memory.ts` | | [9. 技能系统](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/09-skills) | 技能发现 + inline/fork 双模式 | `skills.ts` ↔ `SkillTool/` | | [10. Plan Mode](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/10-plan-mode) | 只读规划 + 4 选项审批工作流 | `agent.ts` ↔ `EnterPlanMode` | | [11. 多 Agent](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/11-multi-agent) | Sub-Agent fork-return 多 Agent 架构 | `subagent.ts` ↔ `AgentTool/` | | [12. MCP 集成](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/12-mcp) | JSON-RPC over stdio 连接外部工具 | `mcp.ts` ↔ `mcpClient.ts` | | [13. 架构对比](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/13-whats-next) | 完整对比 + 扩展方向 | 全局 | | [14. 功能测试](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/14-testing) | 19 项手动测试覆盖全部功能 | `test/` | ## 🚀 快速开始 **TypeScript 版** ```bash git clone https://github.com/Windy3f3f3f3f/claude-code-from-scratch.git cd claude-code-from-scratch npm install && npm run build ``` **Python 版**(需要 Python 3.11+,[详细说明](./python/README.md)) ```bash cd python pip install -e . mini-claude-py # 命令行入口(避免与 TS 版 mini-claude 冲突) python -m mini_claude # 或用 python -m 方式运行 ``` ### 配置 API 支持两种后端,通过环境变量自动识别:(支持自定义base url) **方式一:Anthropic 格式(推荐)** ```bash export ANTHROPIC_API_KEY="sk-ant-xxx" # 可选:使用代理 export ANTHROPIC_BASE_URL="https://aihubmix.com" ``` **方式二:OpenAI 兼容格式** ```bash export OPENAI_API_KEY="sk-xxx" export OPENAI_BASE_URL="https://api.openai.com/v1" ``` 默认模型为 `claude-opus-4-6`,可通过环境变量或命令行参数自定义: ```bash export MINI_CLAUDE_MODEL="claude-sonnet-4-6" # 环境变量方式 npm start -- --model gpt-4o # 命令行方式(优先级更高) ``` ### 运行 **TypeScript 版** ```bash npm start # 交互式 REPL 模式(推荐) npm start -- --resume # 恢复上次会话继续对话 npm start -- --yolo # 跳过安全确认(危险命令自动执行) npm start -- --plan # Plan 模式:只分析不修改 npm start -- --accept-edits # 自动批准文件编辑 npm start -- --dont-ask # CI 模式:需确认的操作自动拒绝 npm start -- --max-cost 0.50 # 费用限制(美元) npm start -- --max-turns 20 # 轮次限制 ``` **Python 版** ```bash mini-claude-py # 交互式 REPL 模式(推荐) mini-claude-py --resume # 恢复上次会话继续对话 mini-claude-py --yolo # 跳过安全确认 mini-claude-py --plan # Plan 模式:只分析不修改 mini-claude-py --accept-edits # 自动批准文件编辑 mini-claude-py --dont-ask # CI 模式:需确认的操作自动拒绝 mini-claude-py --max-cost 0.50 # 费用限制(美元) mini-claude-py --max-turns 20 # 轮次限制 ``` 全局安装后可在任意目录使用: **TypeScript 版** ```bash npm link # 全局安装 cd ~/your-project mini-claude # 直接启动 ``` **Python 版** ```bash cd python pip install -e . # 全局安装(editable 模式) cd ~/your-project mini-claude-py # 直接启动 ``` ### REPL 命令 | 命令 | 功能 | |------|------| | `/clear` | 清空对话历史 | | `/cost` | 显示累计 token 用量和费用估算 | | `/compact` | 手动触发对话压缩 | | `/memory` | 列出所有已保存的记忆 | | `/skills` | 列出可用的技能 | | `/<skill>` | 调用已注册的技能(如 `/commit`) | > 详见 [CLI 与会话](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/04-cli-session) 和 [功能测试](https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/docs/14-testing) ## ⚖️ 与 Claude Code 的对比 | 维度 | Claude Code | Mini Claude Code | |------|------------|-----------------| | 定位 | 生产级编程智能体 | 教学 / 最小可用实现 | | 工具数量 | 66+ 内置工具 | 13 个工具(6 核心 + web_fetch + tool_search + skill + agent + plan mode) | | 工具执行 | 并发 + streaming 早期启动 | 并行执行 + streaming 早期启动 | | 上下文管理 | 4 级压缩流水线 | 4 层压缩 + 大结果持久化(>30KB) | | 权限系统 | 7 层 + AST 分析 | 5 种模式 + 声明式规则 + 正则检测 | | 编辑验证 | 14 步流水线 | 引号容错 + 唯一性 + mtime 防护 + diff 输出 | | 记忆系统 | 4 类型 + 语义召回 | 4 类型 + 语义召回 + 异步预取 | | 技能系统 | 6 源 + inline/fork | 2 源 + inline/fork | | 多 Agent | Sub-Agent + Coordinator + Swarm | Sub-Agent(3 内置 + 自定义 Agent) | | MCP 集成 | mcpClient.ts + 动态工具发现 | McpManager + JSON-RPC over stdio | | 预算控制 | USD/轮次/abort 三维 | USD + 轮次限制 | | 代码量 | 50 万+ 行 | ~4300 行(TS)/ ~3800 行(Python) | ## ⚡ 核心能力 - **Agent 循环**:自动调用工具、处理结果、持续迭代,直到任务完成 - **13 个工具**:读写编辑文件(mtime 防护)、搜索、Shell、WebFetch、ToolSearch(延迟加载)、技能、子 Agent、Plan Mode - **流式输出**:逐字实时显示,Anthropic + OpenAI 双后端,streaming 工具早期执行 - **并行工具执行**:只读工具(read_file、grep_search 等)自动并发,2-3x 加速 - **4 层上下文压缩**:budget 截断 → stale snip → microcompact → auto-compact + 大结果持久化(>30KB 写磁盘) - **权限系统**:5 种模式 + `.claude/settings.json` 声明式 allow/deny 规则 + 16 个危险命令正则 - **记忆系统**:4 类型记忆 + 语义召回(sideQuery 调模型选择相关记忆)+ 异步预取 - **技能系统**:`.claude/skills/` 目录加载,支持 inline 注入和 fork 子 Agent 两种执行模式 - **多 Agent**:Sub-Agent fork-return 模式(3 内置类型 + `.claude/agents/` 自定义类型) - **MCP 集成**:JSON-RPC over stdio 连接外部工具服务器,动态工具发现与调用转发 - **System Prompt**:@include 语法递归引入、.claude/rules/ 自动加载、模板变量替换 - **Extended Thinking**:支持 Anthropic 扩展思考(`--thinking`),adaptive/enabled/disabled 三模式 - **预算控制**:`--max-cost` 费用限制 + `--max-turns` 轮次限制,超限自动停止 - **会话持久化**:自动保存对话,`--resume` 恢复上次会话 - **跨平台**:Windows / macOS / Linux,自动检测 shell(PowerShell / bash / zsh) - **错误恢复**:API 限流/过载时指数退避 + 随机抖动重试(最多 3 次),Ctrl+C 优雅中断 ## 📁 项目结构 ``` src/ # TypeScript 版 ├── agent.ts # Agent 循环:流式、并行执行、4 层压缩、预算 (1501 行) ├── tools.ts # 工具:13 工具 + mtime 防护 + 延迟加载 (858 行) ├── cli.ts # CLI 入口:参数解析、REPL、预算 flags (371 行) ├── memory.ts # 记忆系统:4 类型 + 语义召回 + 异步预取 (376 行) ├── mcp.ts # MCP 客户端:JSON-RPC over stdio (266 行) ├── prompt.ts # System Prompt:@include + 模板 + 注入 (230 行) ├── ui.ts # 终端输出:彩色显示、格式化、子 Agent 显示 (211 行) ├── subagent.ts # 子 Agent:3 内置 + 自定义 Agent 发现 (199 行) ├── skills.ts # 技能系统:目录发现 + inline/fork 双模式 (175 行) ├── session.ts # 会话持久化:保存/恢复/列表 (63 行) ├── frontmatter.ts # 共享 YAML frontmatter 解析器 (41 行) 总计: ~4291 行 python/ # Python 版(功能一致) ├── mini_claude/ │ ├── agent.py, tools.py, __main__.py, ui.py, prompt.py, │ ├── session.py, memory.py, skills.py, subagent.py, │ ├── mcp_client.py, frontmatter.py │ └── system_prompt.md └── pyproject.toml 总计: ~3811 行 ``` ## 🏗️ 架构图 ``` 用户输入 │ ▼ ┌─────────────────────────────────────┐ │ Agent Loop │ │ │ │ 消息历史 → API (流式) → 实时输出 │ │ ▲ │ │ │ │ ┌────┴───┐ │ │ │ │文本输出│ │ │ │ │工具调用│ │ │ │ └────┬───┘ │ │ │ │ │ │ │ ┌───────┐ ┌────▼───┐ │ │ │ │截断保护│←│工具执行│ │ │ │ └───────┘ └────┬───┘ │ │ │ │ │ │ │ ┌───────────────▼───┐ │ │ └───│Token 追踪 + 压缩 │ │ │ └───────────────────┘ │ └─────────────────────────────────────┘ │ ▼ 任务完成 → 自动保存会话 ``` ## 🔗 相关项目 - **[how-claude-code-works](https://github.com/Windy3f3f3f3f/how-claude-code-works)** — Claude Code 源码架构深度解析(12 篇专题,33 万字) ## 🤝 贡献者 | <img src="https://github.com/Windy3f3f3f3f.png" width="60" /> | <img src="https://github.com/davidweidawang.png" width="60" /> | <img src="./assets/kaibo.jpg" width="60" /> | |:---:|:---:|:---:| | [@Windy3f3f3f3f](https://github.com/Windy3f3f3f3f) | [@davidweidawang](https://github.com/davidweidawang) | [Kaibo Huang](https://scholar.google.com/citations?user=C7B5X5IAAAAJ&hl=zh-CN) | ## 🙏 致谢 感谢 [LINUX DO](https://linux.do/) 社区的支持与讨论。 ## 💬 更多交流 <div align="center"> **加入 AI Agent 工坊 交流群** <img src="./assets/qq.jpg" width="280" alt="QQ 群二维码" /> QQ 群号:**1090526244** </div> ## 📈 Star History <div align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=Windy3f3f3f3f/claude-code-from-scratch&type=Date&theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=Windy3f3f3f3f/claude-code-from-scratch&type=Date" /> <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=Windy3f3f3f3f/claude-code-from-scratch&type=Date" width="600" /> </picture> </div> ## 📄 License MIT

Education & Learning AI Tools
1.4K Github Stars