菜单
正在加载仓库 README…
已展示 1 / 1 个已收集 Skill。
An example skill for demonstration
原文语言:英语
复制这段 Prompt,发给你正在使用的 AI 助手。
Follow https://skillsmp.com/skill-install/prompt.md to install Agent Skills from https://github.com/OPBR/build-claude-code.
仓库 README 来源:README.md
# Build Claude Code [中文](./README.md) | [English](./README-en.md) > 从0到1构建 Claude Code 风格的 AI Coding Agent ## 简介 这是一个**渐进式学习项目**,用 TypeScript 从零开始构建一个完整的 AI 编程代理。我们将逐步实现 Claude Code 的所有核心机制: > 本项目灵感来自 [learn-claude-code](https://github.com/shareAI-lab/learn-claude-code)(68.5k ⭐),原项目 Agent 核心由 Python 实现,本项目使用 TypeScript 重写 Agent 逻辑本身,目前已完成 s01–s14,持续更新中。适合希望在 Node.js / TypeScript 生态中深入理解 Harness 工程的开发者。 - 核心循环 - 工具系统 - 任务规划 - 上下文压缩 - 多代理协作 - 工作树隔离 **核心理念**:智能来自模型训练,Harness(套件)只是让智能得以表达的载体。我们构建的是载体,不是智能本身。 ## 学习路线 | 阶段 | Session | 主题 | 核心概念 | | ---- | ------- | ------------------ | ---------------------------------- | | 1 | s01 | Agent Loop | 一个循环 + Bash = Agent | | 1 | s02 | Tool Use | 添加工具 = 添加一个 handler | | 2 | s03 | TodoWrite | 没有计划的代理会迷失方向 | | 2 | s04 | Subagent | 大任务拆分,子任务获得干净的上下文 | | 2 | s05 | Skills | 按需加载知识,不要 upfront | | 3 | s06 | Context Compact | 三层压缩策略实现无限会话 | | 3 | s07 | Permission System | 工具执行前的安全检查管道 | | 3 | s08 | Hook System | 不改主循环也能在固定时机插入行为 | | 4 | s09 | Memory System | 跨会话保存有价值的信息 | | 4 | s10 | System Prompt | 动态组装系统提示词 | | 4 | s11 | Error Recovery | 错误分类 + 恢复路径 | | 5 | s12 | Task System | 文件持久化任务板 + 依赖图 | | 5 | s13 | Background Tasks | 后台执行 + 通知队列 | | 5 | s14 | Cron Scheduler | 定时任务调度 | | 6 | s15 | Agent Teams | JSONL 邮箱通信的多代理 | | 6 | s16 | Team Protocols | 关闭/审批协议 | | 6 | s17 | Autonomous Agents | 代理自动发现任务 | | 6 | s18 | Worktree Isolation | 目录级隔离执行 | | 7 | s19 | MCP Plugin | 模型上下文协议插件 | | 8 | s20 | Workflow Runtime | 固定编排写进代码 + journal 续跑 | | 8 | s21 | Goal Loop | 独立评估器决定目标是否真正完成 | | 9 | s_full | Full Agent | 所有机制整合 | ## 快速开始 ### 环境要求 - Node.js >= 20 - pnpm >= 10 ### 安装 ```bash pnpm install ``` ### 配置 复制 `.env.example` 为 `.env`,填入你的 API 配置: ```env ANTHROPIC_API_KEY=your-api-key-here MODEL_ID=claude-sonnet-4-20250514 ``` ### 运行 ```bash # 运行 s01 - 基础 Agent Loop pnpm s01 # 运行其他 session pnpm s02 pnpm s03 # ... # 运行完整代理 pnpm full ``` ## 核心模式 整个项目的核心就是一个简单的循环: ```typescript async function agentLoop(messages: Message[]): Promise<void> { while (true) { const response = await client.messages.create({ model: MODEL, system: SYSTEM, messages: messages, tools: TOOLS, }) messages.push({ role: 'assistant', content: response.content }) if (response.stop_reason !== 'tool_use') { return // 模型决定停止 } const results = await executeTools(response.content) messages.push({ role: 'user', content: results }) // 循环继续... } } ``` **模型决定何时调用工具、何时停止。代码只执行模型的请求。** ## 项目结构 ``` build-claude-code/ ├── src/ │ ├── index.ts # 入口文件 │ ├── core/ # 核心模块 (s01-s02) │ │ ├── agent-loop.ts # 核心循环 │ │ ├── tools.ts # 工具系统 │ │ └── types.ts # 类型定义 │ ├── planning/ # 计划模块 (s03-s05) │ ├── persistence/ # 持久化模块 (s06-s14) │ │ ├── compact.ts # s06: 上下文压缩 │ │ ├── permission.ts # s07: 权限系统 │ │ ├── hook.ts # s08: Hook 系统 │ │ ├── memory.ts # s09: 记忆系统 │ │ ├── prompt.ts # s10: 系统提示词 │ │ ├── recovery.ts # s11: 错误恢复 │ │ ├── task-manager.ts # s12: 任务系统 │ │ ├── background.ts # s13: 后台任务 │ │ └── cron.ts # s14: 定时调度 │ ├── team/ # 团队模块 (s15-s18) │ ├── plugin/ # 插件模块 (s19) │ ├── workflow/ # 工作流运行时 (s20) │ ├── goal/ # 目标闭环 (s21) │ ├── full/ # 综合实现 │ └── sessions/ # 各 session 入口 ├── learn/ │ ├── 00-project-setup.md # 项目初始化笔记 │ ├── 01-agent-loop.md # s01 学习笔记 │ ├── ... # 每个 session 的学习笔记 │ └── output/ # 公众号文章输出 ├── skills/ # 技能文件目录 ├── package.json ├── tsconfig.json ├── eslint.config.mjs ├── .prettierrc └── .env.example ``` ## 技术栈 | 工具 | 版本 | 说明 | | ----------------- | ---- | ------------------ | | TypeScript | 6.0 | 主要语言 | | tsdown | 0.21 | 现代化构建工具 | | tsx | 4.21 | 开发时直接运行 TS | | pnpm | 10 | 包管理 | | @anthropic-ai/sdk | 0.90 | Anthropic 官方 SDK | | ESLint | 10 | 代码检查 | | Prettier | 3.8 | 代码格式化 | ## 开发命令 ```bash pnpm dev # 开发模式 pnpm build # 构建 pnpm typecheck # 类型检查 pnpm lint # ESLint 检查 pnpm lint:fix # ESLint 自动修复 pnpm format # Prettier 格式化 pnpm format:check # Prettier 检查 ``` ## 公众号 关注公众号 **前端的AI野心**,获取更多 AI Agent 开发教程: <img src="assets/wechat-qrcode.jpg" width="200" /> ## 学习资源 - [learn-claude-code](https://github.com/shareAI-lab/learn-claude-code) - Python 参考实现 - [Claude Code 官方文档](https://docs.anthropic.com/claude-code) - [Kode CLI](https://github.com/shareAI-lab/Kode-cli) - 开源实现 ## 代码风格 - 无分号 - 单引号 - 尾逗号 ## License MIT