大模型应用开发-记忆模块设计:基于助手Agent类型
助手Agent记忆模块的设计如果一个Agent定位是的个人助手主要的是个人陪伴和助手、记忆模块的设计是非常重要的其不像其他的Agent是以任务驱动的任务完成之后整个工作空间就可以随时关闭但是个人助手的Agent的工作空间是漫长的不是片刻的我对于HeartClaw的记忆模块的设计短期记忆就是每天聊天的历史记录文件我不喜欢“会话”这个词用在个人助手中所以我设计层面避免啦长期记忆是想要持续存储的并根据具体情况加载进入Agent的上下文的遗忘机制我不想全部的记忆注入到上下文中事无巨细的注入我觉得对于Agent来说不是最优解注入给Agent应该是一些主要的事件关键的节点我觉得这个就应该够了同时存储的格式我想要和开放生态Skill结合这样用户可以随时移植自己的记忆数据使用到其他的Agent上面单独的设计一个文件夹结构和文件类型没有很大的必要用户对于自己的数据是有完全控制的权利的并且将这部分关键的上下文可以共享出去那么对于其他的Agent来说能够更加高效的解决用户的问题也能更好的回复用户对于整个Agent生态来说是非常好的事情一、记忆模块存储方式记忆模块使用md文件的格式存储采用的是Skill规范。因为我觉得用户产生的记忆数据是用户独享宝贵的用户是有完全的控制权的为了方便用户迁移使用整个文件的结构是符合Skill规范的这样用户使用其他的Agent的时候如果这个Agent支持加载Skill的话那么用户完全可以导入使用记忆模块的结构是符合渐进式披露的一共有四层SKILL.md的元信息对于记忆模块的简单描述SKILL.md的正文内容这个里面是对于长期记忆中的文件介绍让Agent按需加载相应的记忆文件同时会简单介绍一下短期记忆的位置长期记忆这里会有几种不同类型的数据**用户指令、用户画像、纠错记录、事实与决策、话题与兴趣**每一种类型是一个单独的文件长期记忆来源于对短期记忆做的摘要总结里面也会引用相应的短期记忆文件的路径短期记忆这个就是用户的聊天记录文件一般Agent叫做“会话记录文件”但是我觉得个人助手Agent是没有“会话”这个概念的因为陪伴是永久长期的不是以任务目的的短期一段时间所以我在设计上面取消“会话”这个概念二、短期记忆短期记忆的文件是以月为文件夹组织存储的文件格式是jsonl文件的内容的是用户输入、模型输出、工具调用这些完整的推理链。模型的上下文窗口是有限的用户一直聊下去的话会导致上下文窗口爆掉如果只是简单的使用加载固定前几条的短期记录策略这会让个人助手Agent失去意义只是简单的会话聊天所以要有一套完整的压缩策略对于短期记忆来说和人一样会有压缩遗忘的机制我设计了三种压缩的策略周压缩、月压缩、年压缩这三种压缩策略的侧重点是不同的并且输入的原始文件也是有区别的• 周压缩侧重点在“这周发生了什么时间线是什么”追求事件的完整性输入的原始文件是本周日记录• 月压缩侧重点在“这个月的核心决策和变化是什么”追求关键节点的变化输入的原始文件有两种一个是本月的日记录一个是刚刚压缩好的周记录• 年压缩侧重点在“这一年最重要的里程碑是什么”追求年度关键大事件的总结输入的原始文件是月记录这个是从大模型的上下文窗口来考虑的输入月记录是最优解在成本和技术上面下面是详细的Agent触发压缩策略时上下文的结构的变化情况周压缩当上下文中都是日记录的时候触发上下文压缩这个时候会以7天为一周开始进行周压缩月压缩当上下文中都是周记录之后还是触发了上下文压缩那么就会按照30天或者4周一次进行月压缩年压缩当上下文中都是月记录的时候这个时候的压缩策略是读取月记录进行摘要总结 关于月压缩输入文件是日记录还是周记录这个取决于成本和信息密度的平衡• 如果追求低成本高响应对于信息密度只是简单的总结压缩那么可以考虑输入周记录是最佳的• 如果追求信息密度每一种类型文件侧重点不同如果输入周记录会稀释很多关键的信息只有输入原始的日记录是最佳的但是成本会高一点我觉得遗忘机制挺好的人需要遗忘机制可能也是因为存储空间的问题对于Agent来说不一定有这种物理空间的烦恼但是去掉这个因素我们仔细感受遗忘机制的另外一层含义当一个人永远不会忘记永远会记得细节那么当他遇到了一次选择的时候他极可能会分析脑海里面的相似记忆理智的进行“权衡利弊”但其实我们都知道没有最好的选择分析完成之后任何选择好坏对半开这个时候需要一些感性促使你去选择不同以前的满的记忆存储就不会有主次之分就会迷失在这巨大的记忆空间里面我觉得人是很微妙的的组合因为我们会清理记忆产生遗忘所以我们会格外的珍惜很多事情着重去感受某几件事情可能是美好的也可以是深刻难忘的所以从这个角度出发Agent也不应该事无巨细的全部永久记住使用策略来达到一些“遗忘”如果太完整的短期记忆加载进入会让这一次的注入出现上下文冲突和上下文干扰会让模型固化选择从而没有灵性当然这一点的设计是我自己的刻意为之的仅供大家参考我重点关注的是在使用压缩和总结尽可能的保留一些关键的信息信息尽可能的真实以此保证上下文的干净有效三、长期记忆存储的长期记忆是定时从短期记忆总结来的我设定一个“睡眠”的辅助功能在睡眠的时候记忆总结Agent就会运行起来读取今天的短期记忆的文件输出长期记忆模块想要的总结在长期记忆中存储的文件类型有这几种用户指令文件用户对于Agent明确的指令和规则类似于CLAUDE.md和AGENTS.md用户基本信息和个人画像这个是构建对于用户的整体认识用户确认的事实和重要决策这个里面存储的是大事件线下用户的关键决策用户的兴趣和关注的领域对用户有更深入的了解以此进行更好的回复这种类型的长期记忆文件完全可以由自己来设定建议前期不要设计太多先轻量运行起来之后根据运行日志和评估来优化长期记忆文件来做新增和删减。长期记忆的更新和写入的机制是为每一种长期记忆文件单独设定一个总结摘要的Agent该Agent会读取短期记忆日记录和相应的长期记忆的文件同时提供写入工具用于更新记忆这些Agent触发的时候会并行执行每一种Agent只负责单一的长期记忆文件上面的运行的长期记忆Agent会有一种工具用来更新相应的长期记忆文件关于这个工具的开发我想要多介绍一下你当然可以设计三种工具增加工具、修改工具、删除工具这样设计是最方便最清晰的我个人认为这样的设计会让整体的工具模块冗余出来虽然操作层面是清晰的但是不够优雅所以我偏向于使用一个工具来实现增、删、改三种操作这个工具我称为“编辑工具”实现的理念有参考gemini-cli这些编程Agent的思路编辑工具的核心方法非常简单就是字符替换的方法JS中使用的是replace方法我们一起来梳理一下三种操作在替换层面如何理解修改操作字符串A替换为字符串B很合理增加操作字符串A替换为字符串AB这样就表示字符B是新增加借助字符的前三句和后三句就可以实现整体的替换删除操作字符串AB替换为字符串B这样就表示字符A是刚删除的也是同理借助完整的文本块来替换间接实现删除操作所以整体工具的实现就非常简单优雅啦核心是替换方法在工具描述中说明“前后各至少3行上下文”那么工具的参数就是filePath、oldString、newString这三个就可以啦下面有一个参考的例子edit_memory_def { name: edit_memory, description: 对长期记忆文件做精确的局部修改。使用方式- 新增一行old_string 写锚点行new_string 写锚点行 新行- 删除一行old_string 写目标行及上下文new_string 去掉目标行- 修改内容old_string 写旧内容new_string 写新内容重要约束1. 调用本工具前必须先用 read_memory 读取文件的最新内容 再从读取结果中复制 old_string不要凭记忆构造。2. old_string 必须包含目标行前后至少 3 行上下文确保在文件中唯一定位。3. old_string 必须和文件内容完全一致包括空格、缩进、换行符。4. 如果工具报告找不到 old_string不要修改 old_string 的核心内容 先重新读取文件确认当前内容再重新构造。5. 如果工具报告 old_string 匹配到多处需要在 old_string 中加入更多 前后行作为上下文直到唯一定位为止。, parameters: { type: object, properties: { file: { type: string, enum: [ user_instructions, user_profile, corrections, project_context, facts_and_decisions, topics_and_interests, interaction_patterns, ], description: 要修改的长期记忆文件名不含路径和扩展名, }, old_string: { type: string, description: ( 文件中要被替换的原文。 必须包含目标行前后至少 3 行上下文以唯一定位。 必须与文件内容完全一致需先 read_memory 再复制不能凭记忆构造。 ), }, new_string: { type: string, description: ( 替换后的新内容。 删除操作时此处写删除后应保留的内容即 old_string 去掉目标行。 ), }, }, required: [file, old_string, new_string], },}学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】