1.智能体中的记忆模块人类的记忆Agent 的记忆系统设计其实是从认知科学中借鉴过来的。人类的记忆大致分为两类一类是短期记忆Short-term Memory也叫工作记忆容量有限持续时间短比如你听到一个手机号码能暂时记住但过一会儿就忘了另一类是长期记忆Long-term Memory容量几乎无限能持续很长时间比如你的名字、骑自行车的技能、上周开会的内容。Agent中记忆Agent 的短期记忆对应的是当前对话的上下文信息它是临时的、有容量限制的Agent 的长期记忆对应的是跨对话持久化存储的知识和经验它需要额外的存储系统来承载理论上可以无限扩展。LLM 本身没有记忆上下文窗口有限。所有 Agent 框架的记忆系统都是在回答同一个问题怎么把无限的历史信息塞进有限的上下文窗口2.如何实现短期记忆短期记忆的核心挑战是如何在有限的上下文窗口里尽可能保留最有用的信息滑动窗口Sliding Window当对话历史超过窗口限制时直接截断最早的消息只保留最近的 N 轮对话。这种方法实现简单但信息丢失严重——可能用户在第一轮告诉了 Agent 一个关键信息到了第十轮就被截掉了Agent 完全忘了这件事。对话摘要Conversation Summary当对话历史变长时不是直接截断而是用 LLM 把较早的对话内容压缩成一段摘要然后用这段摘要替代原始的冗长历史。这样既控制了 token 用量又保留了关键信息。重要度选择评估每条历史消息的重要程度比如包含用户需求的消息比闲聊更重要优先保留重要的、淘汰次要的。这种方法效果最好但实现也最复杂通常需要额外的 LLM 调用来做重要度评估。3.如何实现长期记忆长期记忆让 Agent 可以记住用户的偏好、历史交互的经验教训、领域专有知识等信息使其表现得更像一个有积累的助手而不是每次对话都从零开始的失忆者。实现方式向量数据库 RAG检索增强生成把需要长期记忆的信息对话历史摘要、用户画像、领域文档等通过 Embedding 模型转化为向量存入向量数据库如 Milvus、Pinecone、Chroma、Weaviate 等。当 Agent 需要使用这些记忆时先把当前问题也转化为向量然后在向量数据库中做相似度检索找出最相关的记忆片段注入到当前的上下文中供 LLM 参考。关系型数据库 / KV 存储适合存储结构化的记忆信息。比如用户画像姓名、偏好、历史任务记录等这类高度结构化的数据用关系型数据库存储比向量数据库更合适因为可以精确查询而不是模糊的语义匹配。知识图谱适合存储实体之间的关系。比如张三是产品经理、张三负责 A 项目、A 项目依赖 B 服务这类关系型知识用图结构来存储比纯文本向量化更自然。模型微调是一种隐式的长期记忆方案。通过在特定领域的数据上对模型进行微调领域知识就被烧进了模型参数中变成了模型的肌肉记忆。这种方式的优点是推理时不需要额外的检索步骤模型直接就能输出相关知识缺点是更新成本高——每次知识更新都需要重新微调不像向量数据库那样可以实时增删改。文件系统长期记忆存入到.md文件中4.Agent框架中的记忆系统以腾讯WorkBuddy框架为例记忆系统分为短期记忆和长期记忆4.1 短期记忆实现方式是 LLM 原生的对话上下文窗口——当前会话的所有历史对话轮次直接作为 prompt 的一部分传入模型。这不是 WorkBuddy 特有的而是大语言模型的基础运作方式。更新时机每轮对话自动追加无需手动干预。读取时机每次调用模型时全部历史对话都在上下文中。Token 数取决于对话长度没有固定值。模型有最大上下文窗口限制具体取决于所选模型超出后早期内容会被截断。存储位置和删除时机在 WorkBuddy 应用的进程内存里。它是当前会话的完整对话历史没有持久化到本地文件会话结束就释放。4.2 用户级长期记忆文件~/.workbuddy/MEMORY.md范围跨所有项目属于你个人的长期偏好和习惯限额4,000 字符/会话记录时机当你明确说记住这个或者我发现了跨项目的通用偏好时。读取时机会话开始时全量加入到上下文中记录内容记录什么举例你的个人偏好和习惯喜欢用 TypeScript 而非 JavaScript跨项目的通用约定代码风格用 ESLint Prettier你明确要求记住的事情记住我习惯用 pnpm 而非 npm4.3 项目级长期记忆文件/Users/dongshuyue/WorkBuddy/2026-07-13-15-22-11/.workbuddy/memory/MEMORY.md范围仅限当前项目限额3,000 字符/会话记录时机完成实质性工作后如果涉及项目层面的决策或约定。读取时机当回忆项目历史时LLM会主动读取最近的工作日志和项目长期记忆。记忆内容记录什么举例项目约定和技术决策本项目后端用 Go Gin 框架项目特定的规则API 响应统一用 {code, msg, data} 结构你分享的项目偏好测试用 pytest不用 unittest4.4 项目级工作日志文件/Users/dongshuyue/WorkBuddy/2026-07-13-15-22-11/.workbuddy/memory/YYYY-MM-DD.md范围仅限当天、当前项目特点追加写入append-only永不覆盖记录时机每完成一项实质性工作后立即追加。读取时机当回忆项目历史时会主动读取最近的工作日志维护超过 30 天的日志会被提炼进MEMORY.md后删除。记忆内容记录什么举例今天做了什么实质性工作搭建了项目脚手架配置了 CI/CD修复了什么 Bug修复了登录接口 401 问题选择了什么技术方案选择了 Redis 做缓存而非 Memcached完成了什么重构将用户模块从单体拆分为微服务总结感觉WorkBuddy的记忆系统做的不是特别的好会话级别的记忆内容没有蒸馏到长期记忆中只有用户明确要求记住的才会存储到长期记忆中。比较好的记忆系统短期记忆——日志文件——长期记忆会话结束时将当前会话历史记录记录到日志文件中从日志文件中每天进行蒸馏将有用信息提炼到长期记忆中会话开始时将长期记忆加入到上下文中当需要回忆历史对话时可以从日志文件中进行检索