我手搓了一个开源版 Claude Code (mini-cc)

大家好!最近 Claude Code 大火,但作为一个硬核开发者,怎么能只停留在"用"的层面?

于是我肝了几个通宵,深入剖析了 Claude Code 的底层架构,并用 TypeScript 纯手工复刻了一个开源版本 ------ mini-cc

今天,我就来为大家演示一下 mini-cc 已经实现的几个杀手级核心功能。

看完这篇,你不仅能学会如何使用它,更能看懂目前最顶级的 AI 编程助手的底层设计模式。


核心功能演示指南

💡 演示准备 : 确保你已经在 mini-cc/typescript 目录下执行了 pnpm installpnpm run build。 为了方便演示工具链,你可以通过 npx ts-node src/cli.ts (如果有完整入口) 或执行各个单元测试文件来模拟大模型交互。

🛡️ 1. BashTool:不仅能跑命令,还能防 AI"作恶"

普通的 AI 助手给你一个 exec 就不管了,但 mini-ccBashTool 实现了极强的安全与防爆机制。

演示提示词:

"请帮我执行一个休眠命令:sleep 15。"

预期效果: 你会在终端看到 [BashTool 安全拦截] 拦截到阻塞主线程的 sleep 调用 的黄色警告。 这是因为 mini-cc 在源码中通过正则表达式(detectBlockedSleepPattern)精准识别了长时的"孤狼" sleep 命令。大模型有时会为了等编译完成而傻傻地 sleep,这会导致我们的主进程被无意义阻塞。拦截后,引擎会提示 AI 改用后台监控或其他工具。


🧠 2. 大道至简的记忆管理器 (MemoryManager)

很多 AI Agent 喜欢挂一个沉重的向量数据库(Vector DB),但在 mini-cc 中,我们采用了 Claude Code 同款的纯文件系统两步走法则

演示提示词:

"请使用 BashTool (或 FileWriteTool 配合 npx ts-node) 编写并执行一个测试脚本:循环调用 src/memdir/MemoryManager.ts 中的 createMemoryManager().saveMemory 12次,记录"Bug1"到"Bug12"的详情。我要测试它的防爆截断机制。"

预期效果: 你会看到在项目的 .ai_memory/MEMORY.md 文件中,当记录超过 10 行时,触发了记忆防爆机制 。 程序会打印 [记忆防爆] 索引超长... 触发强制截断。 它会自动丢弃最老的记忆,并在文件末尾贴上大字报警告 > WARNING: MEMORY.md is 11 lines...。这种设计确保了注入给大模型的上下文永远精简且不超 Token!

🥷 3. AgentTool:影分身之术与安全沙盒

当你在重构代码,遇到一个可能破坏环境的子任务时,你可以让 mini-cc 派生一个子代理(Sub-Agent)去探路。

演示提示词(逻辑演示):

"我需要去测试一个不稳定的脚本,请派生一个名叫 BugFixer 的子代理,开启 worktree 隔离模式去执行。"

预期效果: 通过 isolation: "worktree" 参数,你会看到终端自动执行了 git worktree add -b agent-sandbox-xxx /tmp/mini-cc-worktree-xxx。 子代理会在这个完全平行、物理隔离的沙箱目录中执行任务,主分支毫发无损!任务完成后,还会自动清理 git worktree remove


🔌 4. 终极扩展:MCP 插件系统与透明代理

这是本次开源复刻最硬核的部分。mini-cc 完全支持官方的 Model Context Protocol (MCP)

我们在 examples/mcp-servers/ 目录下准备了一个极简的 weather.js MCP 插件。

如何演示:

  1. 确保你的 .mini-cc/settings.json(如果没有可以手动建一个)中配置了:
json 复制代码
{
  "mcpServers": {
    "weather": {
      "command": "node",
      "args": ["绝对路径/examples/mcp-servers/weather.js"]
    }
  }
}
  1. 运行 npx ts-node tests/mcp/test_mcp.ts

预期效果: 你会看到引擎通过 stdio 跨进程启动了 Node.js 插件,并利用透明代理(createMcpTool)将远端工具封装成了 mcp__weather__get_weather。大模型就像调用本地内置函数一样丝滑地获取到了"北京"的天气信息,实现了跨语言、跨进程的零耦合扩展!


为什么你要关注 mini-cc?

在重构 mini-cc 的过程中,我们做了一个非常重要的架构决策:全面抛弃了 Class 类组件,采用了纯函数式(Closure/Factory)架构!

看看我们的源码(如 createAppStateStore, createHookSystem),你会发现:

  1. 消灭了烦人的 this:再也不用担心回调函数里的上下文丢失。
  2. 真正的私有化:闭包让内部状态(如 memory index)对外部绝对不可见,安全性拉满。
  3. 极简的代码体积:完美的 Tree-shaking 支持。

如果你也对 AI 编程助手的底层原理感兴趣,欢迎来翻阅 mini-cc 的源码。

每一行都加了详尽的中文注释,绝对是学习 Agent 架构的教科书级项目!

mini-cc.raingpt.top/

github.com/you-want/mi...

未完,继续迭代中....

欢迎点赞、Star、Fork,加入我们的开源共建!

相关推荐
vipbic1 小时前
别再把“做个H5”挂嘴边了:这个词,官方压根就没有定义过
前端
不爱洗脚的小滕2 小时前
【RAG】召回(Retrieval)与重排(Rerank)核心技术要点汇总
langchain·aigc·ai编程·rag
ZC跨境爬虫3 小时前
跟着 MDN 学CSS day_39:(Flexbox 弹性盒子核心机制)
前端·css·ui·html·tensorflow
win4r3 小时前
MiniMax M3 深度体验:这可能是国产模型里最接近“全能工程师”的一次
aigc·ai编程·claude
小陈同学呦3 小时前
前端如何处理订单状态导航的数据竞态问题
前端·javascript
卷毛的技术笔记4 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
喵个咪4 小时前
GoWind Toolkit 前端代码生成|Vue3(ElementPlus/Vben)、React(AntDesign)全自动一键生成教程
前端·vue.js·react.js
adrninistrat0r4 小时前
Java调用链MCP分析工具
java·python·ai编程
摆烂大大王5 小时前
玩转 OpenClaw:用 TaskFlow + Heartbeat 打造自动化工作流
前端·人工智能·自动化
zhangxingchao5 小时前
AI 大模型核心六:量化、Workflow 与 Agent、多轮 RAG
前端·人工智能·后端