当前位置: 首页 > news >正文

Agent 记忆长期化:从短期上下文到持久知识库的架构设计

Agent 的记忆能力决定了它能否“越用越聪明”。没有记忆的 Agent 每次交互都是从零开始,无法记住用户偏好、历史任务和关键事实。长期记忆系统让 Agent 能够跨越会话、跨越任务,持续积累知识,从而提供更个性化、更连贯的服务。本文将探讨 Agent 记忆长期化的架构设计与工程实践。

一、Agent 记忆的三层模型从工程角度看,Agent 记忆通常分为三个层次:### 1. 短期记忆(Short-Term Memory)短期记忆保存当前对话或任务中的上下文,通常就是 LLM 的上下文窗口内容。它的特点是:- 读写速度快- 容量有限- 任务结束或会话超期后丢失pythonshort_term_memory = [ {"role": "user", "content": "帮我订一张明天去北京的高铁票"}, {"role": "assistant", "content": "好的,请告诉我您的出发城市和 preferred seat class"}, {"role": "user", "content": "从上海出发,prefer 商务座"}]text### 2. 工作记忆(Working Memory)工作记忆是当前任务中需要临时维持的关键信息。例如,Agent 在执行一个多步骤任务时,需要记住中间结果、下一步计划和待验证假设。工作记忆通常以结构化形式存储,例如:pythonworking_memory = { "task": "预订高铁票", "current_step": "查询车次", "collected_info": { "origin": "上海", "destination": "北京", "date": "2026-07-06", "seat_class": "商务座" }, "pending_questions": []}text### 3. 长期记忆(Long-Term Memory)长期记忆是跨会话、跨任务持久化的知识。它让 Agent 能够记住:- 用户基本信息和偏好- 历史任务结果和反馈- 领域知识和最佳实践- 重要的实体和关系长期记忆通常需要外部存储系统,如向量数据库、图数据库和关系数据库。## 二、长期记忆系统的架构设计### 1. 记忆写入不是每个交互都值得长期保存。写入长期记忆前需要经过筛选:-重要性评估:判断信息是否值得记忆。可以用 LLM 打分或规则判断。-去重与更新:避免重复记录相同事实,而是更新已有记忆。-摘要与压缩:将长对话压缩为关键事实,减少存储和检索成本。pythondef should_remember(message, context): prompt = f"""判断以下信息是否值得长期记忆。值得记忆的标准:- 包含用户偏好、事实或重要决策- 对未来交互有帮助- 不是临时性、可重复获取的信息信息:{message}请回答:YES 或 NO""" return llm_judge(prompt) == "YES"text### 2. 记忆表示长期记忆可以有不同的表示形式:-文本片段:原始对话或摘要,适合向量检索。-实体关系:用户、项目、偏好等实体及其关系,适合图数据库。-键值对:结构化事实,如{"key": "user.preferred_language", "value": "zh"}。-事件序列:用户行为历史,适合时序分析。### 3. 记忆检索当 Agent 处理新请求时,需要从长期记忆中检索相关信息。检索策略包括:-语义检索:用向量相似度找到与当前查询相关的记忆。-关键词检索:用 BM25 或全文搜索补充精确匹配。-图遍历:从当前实体出发,找到相关实体和事实。-时间衰减:给近期记忆更高权重,给旧记忆较低权重。pythondef recall_memories(query, user_id, k=5): vector_results = vector_store.search(query, user_id, k=k) keyword_results = keyword_index.search(query, user_id, k=k) graph_results = graph_db.query_related(user_id, query, k=k) return rerank_and_merge(vector_results, keyword_results, graph_results)text### 4. 记忆遗忘与更新长期记忆不是只增不减。需要设计:-过期机制:临时信息设置过期时间。-冲突解决:新记忆与旧记忆冲突时,如何取舍或保留多个版本。-用户控制:允许用户查看、修改、删除自己的记忆。## 三、长期记忆与 RAG、工具系统的协同长期记忆不是孤立的,它需要与 RAG 和工具系统协同工作:-RAG:提供企业知识和外部文档,长期记忆提供用户个性化信息。-工具:工具调用结果可以补充或更新长期记忆。例如,用户通过 Agent 预订了机票,Agent 应将行程信息写入记忆。-Prompt:检索到的记忆需要被恰当地组织到 prompt 中,避免信息过载。pythondef build_prompt(query, user_id): memories = recall_memories(query, user_id) rag_context = retriever.retrieve(query) prompt = f"""用户背景信息:{memories}参考资料:{rag_context}用户问题:{query}""" return prompttext## 四、工程选型建议长期记忆系统涉及多种存储技术,常见组合:-向量数据库:Milvus、Qdrant、Weaviate、Pinecone,用于语义检索。-图数据库:Neo4j、NebulaGraph,用于实体关系推理。-关系数据库:PostgreSQL、MySQL,用于结构化事实和事务性更新。-缓存:Redis,用于短期记忆和快速访问。-对象存储:S3、MinIO,用于存储原始对话和多媒体记忆。## 五、总结Agent 记忆的长期化是 Agent 从“玩具”走向“产品”的必经之路。短期记忆保证对话连贯,工作记忆支撑任务执行,长期记忆赋予 Agent 个性化和持续学习能力。构建长期记忆系统需要解决写入、表示、检索、更新和遗忘等一系列工程问题,并与 RAG、工具系统深度协同。对于希望打造真正智能 Agent 的团队来说,记忆架构的设计优先级不应低于模型选择和工具集成。

http://www.jsqmd.com/news/1134974/

相关文章:

  • MediaCrawler多平台数据采集框架:新媒体数据分析技术方案
  • QQ群数据采集神器:3分钟批量获取精准社群信息的完整指南
  • 嵌入式智能散热系统设计与PID温控算法实现
  • 【最全亲测】Hermes桌面版安装、使用
  • 用 100 行代码手搓一个 MCP Server,让 LLM 直接读你本地文件
  • 为什么选择openEuler/ci-bot?5大核心优势助力开源项目高效协作
  • 北京通州有哪些值得推荐的学画画的美术机构?
  • Hermes \+ Upstash 全栈组合实战指南: 免费层搭生产级持久化层
  • 2026年影石创新嵌入式岗位面试题带参考答案
  • CloudFormation Stack 概念全解析:从资源集合到自动化编排的核心引擎
  • 鸿蒙三方库 | harmony-utils之AppUtil.init全局初始化
  • 有一个很好的思路记录一下,创建一个辅助学习的skill
  • HarmonyOS ArkTS 实战|中式美食用户行为数据:Preferences 持久化、搜索缺口与候选排序
  • 类与对象:蓝图和房子的关系
  • Spark 流式处理:从入门到实战
  • EMA 指数移动平均 PyTorch 实现:3 种主流框架集成方案与性能开销实测
  • 2026年最新八字排盘应用推荐:天乙八字排盘、命枢、问真八字等怎么选?
  • 万能密码漏洞:认证逻辑缺陷的深度剖析与防御实践
  • 【JavaWeb】三大组件之——Servlet
  • pandas删列原理与性能优化:BlockManager、内存拷贝与CoW机制解析
  • 5分钟快速上手TEdit:泰拉瑞亚地图编辑器的终极指南
  • 深入 Linux 线程机制(三):线程互斥——竞争条件与互斥锁的本质
  • RAG 多路召回架构:向量 + 关键词 + 知识图谱的融合实战
  • 影刀RPA学习路线图:从小白到独立开发的完整学习路径
  • 《在飞机上偶遇前任后》穗雪|小说|txt下载|番外|免费阅读
  • PyTorch Dataset与DataLoader配置优化:4个关键参数对训练速度的影响实测
  • Python爬虫实战:多线程与异步IO并发爬虫——从10倍到100倍提速
  • MediaCrawler-new:多平台社交媒体数据采集技术框架与自动化解决方案
  • ICM-42688-P与PIC24HJ256GP610在运动控制中的高效协同
  • 城市违章搭建识别、棚户区语义分割与YOLO格式数据集:基于深度学习的城市治理AI实践全解析10693期