尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

71-Agent记忆系统-短期记忆-长期记忆-向量知识库三层架构

71-Agent记忆系统-短期记忆-长期记忆-向量知识库三层架构
📅 发布时间:2026/7/22 1:52:01

文章目录

  • 【71.Python+AI】Agent记忆系统:短期记忆、长期记忆与外部知识库的三层架构
    • 导入语
    • 1 ~> 三层记忆架构总览
      • 1.1 三层分工对照
    • 2 ~> 短期记忆:对话历史的管理
      • 2.1 核心矛盾:窗口有限,对话无限
      • 2.2 实现:窗口+摘要混合
    • 3 ~> 长期记忆:用户画像的持久化
      • 3.1 从对话中提炼"关于用户的事实"
      • 3.2 画像的使用时机
    • 4 ~> 外部知识库:经验库的沉淀
      • 4.1 与RAG的区别
      • 4.2 写入时机的把关
    • 5 ~> 三层记忆的读写时机总表
    • 思考 && 总结
    • 结尾

【71.Python+AI】Agent记忆系统:短期记忆、长期记忆与外部知识库的三层架构

📖文章简介:本文系统讲解Agent记忆系统的三层架构设计:短期记忆(对话历史的Token预算管理)、长期记忆(用户画像与偏好的跨会话积累)和外部知识库(向量数据库中沉淀的"经验库")。文章拆解每层的存储介质、读写时机和淘汰策略——短期记忆用滑动窗口+摘要压缩、长期记忆用结构化Profile持久化、经验库用向量检索按需召回,并给出一个三层记忆整合的Python实现骨架。配以Mermaid架构图展示记忆读写时机与数据流向,适合正在开发多轮对话Agent、被"聊着聊着就忘了"问题困扰的开发者。


🎬 个人主页:源码骑士

❄专栏传送门:《Android开发基础》《python基础课程》

⭐️热衷从源码视角拆解技术底层原理,将复杂架构讲得通俗易懂


🎬 源码骑士的简介:
5年Android Framework系统开发经验,曾主导多项系统级性能优化专项
技术栈覆盖Android系统全链路(Binder/Handler/AMS/WMS/启动流程)及Java后端全家桶(Spring + MyBatis + Redis + Oracle)
累计产出原创技术文章100+篇,文章以流程图为特色,被读者评价为"看一篇胜过啃一周源码"


导入语

你跟AI助手聊了半小时,它还记得你第一句说的"我对海鲜过敏"吗?下周再打开它,它还能叫出你的名字吗?

如果两个问题的答案都是"不能",那你的Agent就没有真正的记忆系统——它只是一个"金鱼脑":所有的上下文都活在当前的对话窗口里,窗口满了就丢,会话结束就清零。

真正可用的Agent需要三层记忆:对话内记住说过什么、跨会话记住你是谁、永久记住它积累的经验。这篇文章就把这三层怎么设计、怎么配合讲清楚。


1 ~> 三层记忆架构总览

用户输入

记忆读取层

短期记忆
对话历史窗口

长期记忆
用户画像 Profile

外部知识库
向量经验库

LLM 推理

Agent 响应

记忆写入层

追加对话历史

更新用户画像

沉淀有价值的经验

1.1 三层分工对照

层级存什么存活周期存储介质类比
短期记忆当前对话的上下文单次会话内存/Redis人类的"工作记忆"
长期记忆用户偏好、习惯、画像永久数据库(结构化)你对老朋友的了解
外部知识库任务经验、领域知识永久向量数据库笔记本和资料库

2 ~> 短期记忆:对话历史的管理

2.1 核心矛盾:窗口有限,对话无限

LLM的上下文窗口是硬约束(比如128K tokens)。对话一长,必须做取舍:

策略做法缺点
滑动窗口只保留最近N轮早期关键信息被丢弃
摘要压缩老对话交给LLM总结成摘要摘要本身消耗Token和调用次数
窗口+摘要最近N轮原文 + 更早的摘要实现稍复杂,但效果最好(推荐)

2.2 实现:窗口+摘要混合

classShortTermMemory:def__init__(self,window_size=10,llm=None):self.window_size=window_size self.llm=llm self.recent=[]# 最近N轮原文self.summary=""# 更早历史的压缩摘要defadd_turn(self,user_msg,ai_msg):self.recent.append({"user":user_msg,"assistant":ai_msg})iflen(self.recent)>self.window_size:# 挤出的最早一轮,合并进摘要overflow=self.recent.pop(0)self.summary=self.llm.invoke(f"把这段对话合并进现有摘要,保持关键信息:\n"f"现有摘要:{self.summary}\n新增对话:{overflow}").contentdefget_context(self):returnf"历史摘要:{self.summary}\n最近对话:{self.recent}"

3 ~> 长期记忆:用户画像的持久化

3.1 从对话中提炼"关于用户的事实"

每轮对话结束后,让LLM提取值得长期记住的信息:

EXTRACT_PROMPT="""从以下对话中提取关于用户的持久化事实(偏好/身份/习惯), 以JSON列表返回,没有则返回[]。 已有画像:{existing_profile} 新对话:{conversation} 只返回新增的、不重复的事实,如: ["用户对海鲜过敏", "用户是Python后端开发", "用户偏好简洁的回答"]"""classLongTermMemory:def__init__(self,db_path="profiles.db"):self.db=sqlite3.connect(db_path)defupdate_profile(self,user_id,new_facts):"""增量合并新事实到用户画像"""profile=self.load_profile(user_id)forfactinnew_facts:iffactnotinprofile["facts"]:profile["facts"].append(fact)self.save_profile(user_id,profile)

3.2 画像的使用时机

画像不是每轮都全部注入——而是在生成回复前,作为System Prompt的一部分:

system_prompt=f"""你是用户的私人助手。 已知用户信息:{profile['facts']}请在回答时考虑这些背景,但不要主动复述。"""

4 ~> 外部知识库:经验库的沉淀

4.1 与RAG的区别

普通RAG的知识是"别人写的文档",经验库的知识是**“Agent自己干过的事”**:

classExperienceMemory:def__init__(self,vector_store):self.store=vector_storedefsave_experience(self,task,solution,success):"""把一次成功任务的解法沉淀进经验库"""ifsuccess:self.store.add_texts([f"任务:{task}\n解法:{solution}"])defrecall(self,new_task,top_k=3):"""遇到相似任务时召回历史经验"""returnself.store.similarity_search(new_task,k=top_k)# 使用exp=ExperienceMemory(chroma_store)# 执行新任务前,先查经验similar=exp.recall("批量处理1000条客服对话并分类")ifsimilar:prompt=f"参考历史经验:{similar}\n\n新任务:..."

4.2 写入时机的把关

经验库最大的坑是垃圾进垃圾出——失败的尝试、错误的结论如果被沉淀,会污染后续召回。两条原则:

  1. 只有用户确认满意的结果才入库(用户给了正反馈才save)
  2. 入库前让LLM做一次泛化(把具体的"1000条客服对话"抽象为"大批量文本分类任务")

5 ~> 三层记忆的读写时机总表

时机短期记忆长期记忆经验库
收到新输入时读取全文读取画像相似任务召回
生成回复时注入上下文注入System Prompt注入参考经验
每轮对话后追加+压缩提炼新事实不写入
任务完成被认可时——沉淀成功经验

思考 && 总结

  1. 记忆不是单一概念,而是三种不同生命周期的系统:短期管"这次对话"、长期管"这个用户"、经验库管"这个Agent的成长"。
  2. 短期记忆的最优解是窗口+摘要:单纯滑动窗口会丢关键信息,纯摘要又会丢失细节,混合策略是工程上的最佳平衡。
  3. 长期记忆的关键是"增量提炼"而非"全文存储":把对话原文全存下来既浪费又难用,提炼成事实列表才有价值。
  4. 经验库要严格把关写入质量:宁缺毋滥——一条错误的经验,会污染之后无数次相似任务的召回。

没有记忆系统的Agent只是聊天机器人,有三层记忆的Agent才开始像一个"越用越懂你的助手"。


结尾

各位小伙伴,本文的内容到这里就全部结束了,源码骑士在这里再次感谢您的阅读!

源码骑士 — Android Framework & 全栈开发

👀关注:跟博主一起从源码视角深耕底层原理,见证每一次成长

❤️点赞:让优质内容被更多人看见,让知识传递更有力量

⭐收藏:把核心知识点存好,在需要时随时查、随时用

💬评论:分享你的经验或疑问,评论区一起交流避坑

🔄一键四连:不要忘记给博主"一键四连"哦!

🗡️寄语:技术之路难免有困惑,但同行的人会让前进更有方向

结语:人类靠记忆建立信任,Agent也一样。把三层记忆搭好,你的Agent就从"每次见面都重新认识"进化成了"老朋友"。不要忘记给博主"一键四连"哦!

相关新闻

  • 深入解析TI EDMA3同步传输:A同步与AB同步模式原理与实战配置
  • 苏州劳力士回收价格查询及各大回收平台实测**2026年7月最新) - 天价名表回收平台
  • TensorRT深度学习推理加速:核心优化技术与实战部署

最新新闻

  • 2026年7月基坑支护/沟槽支护箱行业公司推荐_赣州世宏金属材料有限公司 - 行业平台推荐
  • MacBook隐形架构解析:性能背后的设计哲学
  • 成都全铝家具供应商
  • 题4:统计分析
  • 2026年7月特级防火卷帘门/陕西卷帘门厂家推荐盘点_陕西创美门业有限公司 - 行业平台推荐
  • LangChain 零基础快速上手:从 Hello World 到智能文档问答助手

日新闻

  • AI云原生实战05-金融AI上云最难的不是技术,是“不出事“——TCE银行风控架构拆解
  • 2026年GEOSEO优化公司选型深度测评:五大硬核标准严选,这六家重塑搜索增长新格局 - 品牌前沿专家
  • **核验!2026年7月卡地亚香港**售后网点地址及服务电话公告 - 卡地亚服务中心

周新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号