大家好!最近 Claude Code 大火,但作为一个硬核开发者,怎么能只停留在"用"的层面?
于是我肝了几个通宵,深入剖析了 Claude Code 的底层架构,并用 TypeScript 纯手工复刻了一个开源版本 ------ mini-cc!
今天,我就来为大家演示一下 mini-cc 已经实现的几个杀手级核心功能。
看完这篇,你不仅能学会如何使用它,更能看懂目前最顶级的 AI 编程助手的底层设计模式。
核心功能演示指南
💡 演示准备 : 确保你已经在
mini-cc/typescript目录下执行了pnpm install和pnpm run build。 为了方便演示工具链,你可以通过npx ts-node src/cli.ts(如果有完整入口) 或执行各个单元测试文件来模拟大模型交互。
🛡️ 1. BashTool:不仅能跑命令,还能防 AI"作恶"
普通的 AI 助手给你一个 exec 就不管了,但 mini-cc 的 BashTool 实现了极强的安全与防爆机制。
演示提示词:
"请帮我执行一个休眠命令:
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().saveMemory12次,记录"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 插件。
如何演示:
- 确保你的
.mini-cc/settings.json(如果没有可以手动建一个)中配置了:
json
{
"mcpServers": {
"weather": {
"command": "node",
"args": ["绝对路径/examples/mcp-servers/weather.js"]
}
}
}
- 运行
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),你会发现:
- 消灭了烦人的
this:再也不用担心回调函数里的上下文丢失。 - 真正的私有化:闭包让内部状态(如 memory index)对外部绝对不可见,安全性拉满。
- 极简的代码体积:完美的 Tree-shaking 支持。
如果你也对 AI 编程助手的底层原理感兴趣,欢迎来翻阅 mini-cc 的源码。
每一行都加了详尽的中文注释,绝对是学习 Agent 架构的教科书级项目!
未完,继续迭代中....
欢迎点赞、Star、Fork,加入我们的开源共建!
