AI Memory
在日常使用大语言模型 (LLM) 的过程中,我们经常遇到这样的困扰:每次新的对话都像是从零开始,AI 无法记住之前的交互内容、个人偏好或项目上下文。这种 "健忘症" 不仅降低了工作效率,也影响了 AI 助手的实用性。
LLM 的无状态特性带来了几个关键问题:
- 重复性工作:每次都需要重新提供背景信息和偏好设置
- 上下文丢失:无法维持长期的项目状态和决策历史
- 个性化缺失:无法学习和适应用户的特定需求
- 跨应用割裂:在不同 AI 工具间无法共享信息
LLM 的无状态特性常常导致重复的提示和不一致的代码生成。每次寻求帮助,都感觉像是从零开始。
跨 APP 大数据算法推荐,小红书、抖音、电商平台的猜你喜欢
混乱的解决办法
- system prompt
- Cursor’s/Cline Rules - 勾选自动读取 or 手动选择 (ststem prompt -> project rules -> user prompt)
- RAG
- memory bank cursor-memory-bank-rules.md
- ai 不明白什么是合理记忆什么是废话,且上下文长了就会幻觉。所以记忆太多只能让第一次回答的不稳定性增加
- 一段时间后,大多数存储库文件变得 “臃肿” 且适得其反:只是增加了令牌的使用,而对代码质量却没有什么好处
- LLM 生成的任何东西,无论提示有多好,都需要某种形式的审查。审查记忆库只是又一项需要做的事情,而且浪费时间,因为它根本不是产品创造价值的一部分:它只对 LLM 代码生成有用,甚至不能真正用于正确的文档
- 这会减慢大多数任务的速度,因为现在 Roo 除了生成代码之外,还必须读取和更新所有存储库
- 自己维护几个上下文文件,既省事又省力,好处多多:更简洁,还能用于正式的技术项目文档。所以这不仅仅适用于 (LLM)
- specStory
- LLM Memory,openai memory
- IDE Memory 如:规则类型示例规则始终开启 “使用 Tailwind CSS 进行所有样式设置” 基于范围 “对于 /api/ 中的文件,确保所有处理程序都返回标准 JSON 格式” 基于使用情况 “添加新路由时,使用 getServerSideProps 脚手架生成页面” 用户规则 “避免使用 any ;始终倾向于类型安全的方法”
- 综合记忆层设计
方案对比分析
方案类型 | 实现复杂度 | 记忆持久性 | 跨应用支持 | 适用场景 |
---|---|---|---|---|
System Prompt | 低 | 会话级 | 无 | 单次对话优化 |
项目规则文件 | 低 | 项目级 | 有限 | 代码项目 |
RAG 检索 | 中 | 长期 | 有限 | 知识库查询 |
Memory Bank | 中 | 长期 | 中等 | 项目协作 |
OpenAI memory
使用 ChatGPT 聊天时,您可以让它记住特定内容,也可以让它自己记住细节。ChatGPT 的记忆力会随着您使用次数的增加而增强,您会逐渐注意到它的进步。例如:
- 您曾解释过,您更喜欢会议记录底部有标题、要点和行动事项的摘要。ChatGPT 会记住这一点,并以这种方式回顾会议内容。
- 您告诉 ChatGPT 您经营着一家社区咖啡店。当您为庆祝新店开业的社交帖子集思广益时,ChatGPT 知道该从何入手。
- 你提到你有一个蹒跚学步的孩子,她喜欢水母。当你请求 ChatGPT 帮忙制作她的生日贺卡时,它建议你画一只戴着派对帽的水母。
- 作为一名拥有 25 名学生的幼儿园老师,您更喜欢 50 分钟的课程,并安排后续活动。ChatGPT 会在帮助您制定课程计划时记住这一点。
它会根据之前的聊天提供后续信息,比如 “你想让我用 XML 来呈现它吗?” 还有一次,它问 “你想让我把它转换成 JSON 吗?”
✨ 手动操作记忆 - 文档内视频
OpenAI memory - 2024 年 2 月 一开始是自动提取记忆,和手动操作记忆,称为 “长期记忆”
最近提供了记忆近期聊天内容,称为 “短期记忆”,不会提取内容记忆,而是强记忆近期内容,时间到了就丢弃
2025 年 6 月 3 日更新:免费用户将开始享受记忆功能改进。除了之前保存的记忆之外,ChatGPT 现在还会参考您最近的对话,以提供更个性化的回复。
隐私问题,“我有一个朋友”
Cursor memories
Memory Bank
Memory Bank 是一种结构化的记忆管理方案,通过维护多个上下文文件来实现持久化记忆。
核心文件结构
project-memory/
├── projectbrief.md # 项目基础文档
├── productContext.md # 产品背景和目标
├── activeContext.md # 当前工作焦点
├── systemPatterns.md # 技术架构决策
├── techContext.md # 技术栈和约束
└── progress.md # 进展跟踪
- projectbrief.md ▫ 项目基础文档,定义核心需求和目标,是所有其他文件的基础和项目范围的 “事实来源”。
- productContext.md ▫ 说明项目存在的原因、要解决的问题、工作方式和用户体验目标,聚焦 “为什么做”。
- activeContext.md ▫ 记录当前的工作重点、最近的变更、下一步计划和活跃决策,反映项目的实时动态。
- systemPatterns.md ▫ 描述系统架构、关键技术决策、采用的设计模式和组件关系,帮助理解整体技术方案。
- techContext.md ▫ 记录所用技术、开发环境、技术约束和依赖,便于开发和维护。
- progress.md ▫ 跟踪项目进展,包括已完成内容、待开发部分、当前状态和已知问题,是进度管理的核心。
文件之间的关系:
- projectbrief.md 是所有文件的起点,决定项目的整体方向。
- productContext.md、systemPatterns.md、techContext.md 分别从产品、架构和技术层面补充细节。
- activeContext.md 汇总上述文件的当前焦点,指导日常工作。
- progress.md 记录实际进展,与 activeContext.md 共同反映项目现状。
这些文件共同构成 Memory Bank 的知识体系,确保每次 “记忆重置” 后都能快速恢复项目全貌,支持高效协作和持续演进
Mem0/openmemory
👇 增加记忆
👇 列出记忆
👇 查找记忆回答问题
典型使用场景 (Use Cases)
- 在 Claude 中讨论了一个 API 设计,转到 Cursor 编码时,仍能访问设计细节、约束和需求。
源码
四、实际应用场景与案例
4.1 跨 AI 应用的项目协作
场景描述: 在软件开发项目中,你可能需要在多个 AI 工具间切换:
- 在 Claude 中进行架构设计讨论
- 在 Cursor 中进行代码实现
- 在 ChatGPT 中进行代码审查
数据清理策略
- 定期清理过期记忆
- 压缩重复信息
- 归档历史数据
A-Mem
A-Mem: Agentic Memory for LLM Agents - arxiv
总结
技术演进路径,从简单到复杂,LLM 记忆共享的技术方案可以分为以下几个层次:
基础层:System Prompt + 项目规则
↓
应用层:IDE Memory + RAG检索
↓
协议层:MCP (Model Context Protocol)
↓
架构层:Memory Bank + 向量数据库
↓
分布式层:跨平台记忆共享
background agent、A2A 都依赖于记忆共享
参考资源: