从零构建一个类 Claude Code 的终端 AI 编程助手。
mini-claude-code 是一个基于 LangChain.js 从零实现的 CLI AI 编程助手。它复现了 Claude Code 的核心架构:模型路由、工具调用、Agent 循环、子代理、后台执行、多 Agent 协作等完整链路。项目配套 11 篇渐进式教程,从最简单的 7 行 Agent 循环出发,逐步演进到多 Agent 团队协作,每一步都是被前一步的不足逼出来的。
建议按顺序阅读——每篇解决的问题,正是上一篇留下的悬念。
| 篇目 | 核心问题 |
|---|---|
| 00-overview | 全景图:从 7 行到多 Agent 协作 |
| 01-model-router | 用什么模型?怎么切换? |
| 02-bash-tool | 怎么让模型和真实环境交互? |
| 03-agent-loop | 怎么让模型自己试错? |
| 04-todo-planning | 怎么防止注意力漂移? |
| 05-subagent | 怎么隔离上下文噪音? |
| 06-skills | 怎么避免重复推理? |
| 07-memory | 窗口满了怎么办? |
| 08-tasks | 怎么让任务状态不丢、多 agent 可共享? |
| 09-background | 怎么并行而不阻塞? |
| 10-team | 怎么让多个 agent 互相审查和协作? |
系统分为三层:
模型路由(Model Layer) -- 最底层。一个路由函数屏蔽所有供应商差异(Anthropic、OpenAI 等),让上层完全不关心模型来自哪个厂商。
工具层(Tool Layer) -- 模型伸向真实世界的手。Bash 是兜底的万能工具,在此基础上提供文件读写、搜索、编辑等专用工具,约束更强,输出更可控。
Agent 核心(Agent Core) -- 系统的心脏。中间件管道在每次模型调用前后织入横切逻辑(重试、压缩、注入、追踪)。子代理、后台任务、团队协作三个子系统分别管理上下文隔离、并行执行和多角色协作。
# 安装依赖
bun install
# 配置环境变量(需要 API Key)
cp .env.example .env
# 开发模式(热重载)
bun run dev
# 直接运行
bun run start# 类型检查
bun run typecheck
# 运行全部测试
bun run test
# 运行指定测试
bun run test -- -t "test name"
# 运行指定文件的测试
bun run test:file -- "glob"
# 监听模式运行测试
bun run test:watch
# 代码检查(指定文件)
bun run lint:file -- "file1.ts"
# 代码检查(全部)
bun run lint
# CI 检查(lint + typecheck)
bun run lint:ci
# 构建
bun run buildsrc/
index.ts # 入口
cli/ # CLI 层
commands/ # 斜杠命令
components/ # UI 组件(提示符、状态栏、补全等)
renderer/ # 输出渲染(Markdown 终端渲染)
repl.ts # 交互式主循环
core/ # 核心逻辑
agent/ # Agent 组装、类型定义、Token 追踪
provider/ # 模型路由(多供应商抽象)
tools/ # 工具集(Bash、文件读写、搜索、编辑)
todo/ # 待办清单(轻量级规划)
subagent/ # 子代理(上下文隔离)
skills/ # 技能系统(预编译推理路径)
compression/ # 记忆管理(上下文压缩)
tasks/ # 任务看板(持久化任务状态)
background/ # 后台执行(非阻塞并行)
teammate/ # 多 Agent 协作(双向通信)
types/ # 全局类型定义
docs/ # 渐进式教程(00-10)
tests/ # 测试(unit / integration / functional)
- 运行时: Bun
- 语言: TypeScript (ES2022, strict)
- AI 框架: LangChain.js / LangGraph
- 模型支持: Anthropic Claude, OpenAI GPT
- 测试: Vitest
- 代码检查: ESLint
Private