Windy3f3f3f3f/claude-code-from-scratch
Build your own Claude Code from scratch. 🔍 Claude Code 开源了 50 万行代码,读不动?用 ~5000 行 TypeScript / Python 从零复现核心架构,11 章分步教程带你理解 coding agent 精髓
解决的问题
本项目提供了一个最小化、教育性的代码代理实现,旨在帮助开发者理解复杂AI代码助手(如Claude Code)的内部工作原理,而无需浏览数十万行生产代码。它弥合了简单LLM聊天与能够管理文件、执行shell命令并维持长期记忆的完全自主代理之间的差距。
如何工作
该项目实现了一个核心“代理循环”,用于管理大型语言模型(LLM)与一组工具之间的交互。支持TypeScript和Python两种实现。系统通过向LLM(支持Anthropic和OpenAI兼容后端)发送提示,接收工具调用,本地执行这些工具,并将结果反馈回循环,直到任务完成为止。
关键架构组件包括:
- 工具系统:13个内置工具,用于文件编辑、搜索和shell执行,具备mtime保护机制,防止覆盖更改。
- 上下文管理:四层压缩管道(预算截断、过时片段剔除、微压缩、自动压缩),以保持令牌使用效率。
- 记忆系统:使用侧查询(side-queries)实现语义回忆,以检索相关记忆。
- 技能与代理:支持从目录加载自定义技能,并为复杂任务生成子代理的系统。
- MCP集成:通过stdio上的JSON-RPC支持Model Context Protocol(MCP),连接外部工具服务器。
适合人群
希望遵循逐步教程,从基础循环逐步进阶到多代理编排和语义记忆等高级功能,学习如何构建自主AI代理(特别是代码代理)的开发者。
主要亮点
- 分步教程:13章逐步开发,每章均包含可运行的代码快照。
- 零密钥执行:可使用本地模拟运行每章代码,无需API密钥即可学习。
- 双语言支持:TypeScript和Python均提供完整实现。
- 高级代理功能:包含并行工具执行、流式输出和声明式权限系统(用于安全)。
- 预算控制:内置美元成本和回合数限制,防止API费用失控。
相关
- 项目
- 项目
- 项目
- 项目
- 项目