news 2026/5/30 19:43:07

mini-cc 的记忆引擎:让 AI 别再当金鱼了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
mini-cc 的记忆引擎:让 AI 别再当金鱼了

先说个事儿

你之前有没有遇到过这种情况——跟 AI 聊得好好的,突然它来一句"我不记得你之前说过什么"?

这种情况应该以前有,现在各大产品应该都处理优化了。

我: 我正在开发一个 React 项目 AI: 好的,有什么我可以帮助你的? 我: 帮我优化一下代码 AI: 什么代码?

这就是典型的"金鱼记忆"。7 秒就忘,每次对话都是全新的开始。

我在做 mini-cc 的时候,这个问题也是我重点关注的问题。

后来我先去看了 Claude Code 的处理,还去找了一些相关文章看了看。

今天就来聊聊我是怎么给 mini-cc 加上记忆能力的。

设计思路

说实话,一开始我想搞个向量数据库,弄个 Embedding 模型,整得高大上一点。

后来一想——太复杂了。我就想让它能记住几件事儿,用不着整那些花里胡哨的。(后续我会考虑是否需要支持更复杂的记忆功能)

最后我选了个最朴素的方案:直接用文件系统存记忆

.ai_memory/ ├── MEMORY.md # 索引文件,相当于目录 ├── project_stack.md # 项目技术栈 ├── coding_style.md # 编码风格 └── api_endpoints.md # API 配置

简单、直接、看得见摸得着。就算 mini-cc 挂了,我也能直接打开文件看看里面记了啥。

核心功能一:让 AI 会"记笔记"

我做了个remember技能,让 AI 能主动把重要信息存下来。

怎么用?

我: 记住,我的项目名称叫 mini-cc AI: 好的,我已经记住了你的项目名称是 mini-cc。 (过了很久,另起一个对话) 我: 帮我启动我的项目 AI: 根据记忆,你的项目是 mini-cc,正在帮你启动...

怎么存的?

我用了"两步走"的方式:

  1. 详细内容写入独立的.md文件
  2. 一句话摘要写入MEMORY.md索引文件

比如:

# MEMORY.md(索引文件) - [project_stack](./project_stack.md): 项目使用 TypeScript + React - [coding_style](./coding_style.md): 使用 2 空格缩进
# project_stack.md(详细内容) --- type: architecture description: 项目技术栈说明 --- 项目使用 TypeScript + React 架构,采用函数式编程风格。 主要依赖: - React 18 - TypeScript 5 - Vite

防爆机制

一开始我没限制索引文件的大小,结果 AI 疯狂往里面写,几百行都不停。后来我加了个限制——索引最多 10 行,超了就截掉最老的。

这个"防爆机制"救了我好几次。

核心功能二:记忆扫描与检索

记忆存多了,怎么找到相关的?我做了个扫描机制。

扫描逻辑

  1. 扫描.ai_memory目录下的所有.md文件
  2. 读取每个文件的 frontmatter,提取typedescription
  3. 按修改时间排序,最新的排前面
  4. 最多返回 200 个文件(防止太多撑爆内存)

检索逻辑

目前我用的是关键词匹配——简单粗暴但够用。

比如用户问"我的 API 配置是什么",系统就会在记忆描述里搜 “API” 这个关键词,找到相关的记忆返回给 AI。

未来想做的:接入 Embedding 模型,做语义搜索。但现在这个关键词匹配已经能覆盖 90% 的场景了,先这样吧。

核心功能三:消息压缩

这个是处理"对话太长"的问题。

你跟 AI 聊久了,对话历史会越来越长,最后超过模型的上下文窗口,就会报错。

我的压缩策略

第一步:剥离图片

把消息里的图片块替换成[image]占位符。一张图片可能占几千个 tokens,替换成 6 个字符的占位符,省大了。

第二步:头部截断

如果还是超限,就直接扔掉最老的消息。默认扔 20%。

一开始我想调用 AI 做智能摘要,后来发现——太慢了。用户等不起。直接截断虽然粗暴,但快。

第三步:保底策略

至少保留一轮对话,确保 AI 还能正常工作。

这套"逃生舱"机制,虽然不优雅,但确实救急,简单粗暴有效。

还没做的功能

会话管理

我想做/new创建新会话,/sessions切换会话。但目前还没实现,排期中,可关注后续更新。

语义搜索

关键词匹配够用,但不够智能。想接入 Embedding 模型,做真正的语义搜索。

自动记忆提取

现在是用户主动说"记住 xxx",AI 才会存。理想情况是 AI 自动识别重要信息,主动存下来。

我的体会

做这套记忆系统,我有几个感受:

  1. 简单比完美重要。一开始想搞向量数据库,后来发现文件系统就够了。别过度设计。先从简单的来。

  2. 防爆机制必须有。AI 写东西没轻没重,得给它设个上限。

  3. 关键词匹配够用。语义搜索听起来高大上,但关键词匹配能覆盖大部分场景。

  4. 压缩要快。用户等不起智能摘要,直接截断虽然粗暴,但有效。

源码在哪?

如果你感兴趣,可以看看这些文件:

  • 记忆管理:src/memdir/MemoryManager.ts
  • 记忆扫描:src/memdir/memoryScan.ts
  • 相关性查找:src/memdir/findRelevantMemories.ts
  • 消息压缩:src/services/compact/compact.ts
  • Remember 技能:src/skills/built-in/remember.ts

最后问一句:大家觉得 AI 的记忆系统还需要啥功能?评论区聊聊。有什么心得可以一起分享。


🌟 如果觉得有用

  • ⭐ Star 一下:GitHub 仓库
  • 📝 关注博客:后续还会更新更多内容

你的支持是我继续写的动力!🚀

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 19:27:05

实验室建设选EPC还是分包 关键在这里

实验室建好就万事大吉?你可能正踩进“分包陷阱”最近几个月,我接连收到几位高校和检测机构朋友的求助:实验室刚装修完,却发现通风系统与设备布局冲突;设备买齐了,却因环评未同步导致无法验收;更…

作者头像 李华
网站建设 2026/5/30 19:22:58

技术战略管理实战指南:Python 实现技术路线图与核心架构

技术战略管理实战指南:Python 实现技术路线图与核心架构1. 技术分析 1.1 技术战略概述 技术战略是组织为实现业务目标而制定的技术发展方向和计划: 技术战略要素愿景: 长期技术目标目标: 具体技术目标路径: 实现路线能力: 所需技术能力技术战略层次:企业…

作者头像 李华
网站建设 2026/5/30 19:08:58

快速实现网页到设计稿转换的3个高效方法:HTML To Figma实战指南

快速实现网页到设计稿转换的3个高效方法:HTML To Figma实战指南 【免费下载链接】figma-html Convert any website to editable Figma designs 项目地址: https://gitcode.com/gh_mirrors/fi/figma-html HTML to Figma工具通过浏览器扩展和核心转换库&#x…

作者头像 李华