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

[智能体-257]:智能体的短期记忆,即memory;长期记忆,即RAG

Memory = 运行内存 RAM:只存本次对话上下文,进程在数据在、会话销毁数据丢;短期记忆,只用于本轮多轮聊天拼接 Prompt。

RAG = 机械硬盘:文档落地向量库持久化存储,永久保存全量私有资料;跨会话全局知识库,需要时按需检索。

一、核心定义与原理

1. Memory(短期记忆:会话上下文)

  1. 存储内容:历史聊天消息(HumanMessage/AIMessage)
  2. 生命周期:绑定单次会话 ID,程序重启 / 会话结束 → 数据清空
  3. 使用逻辑:每次提问自动把历史对话拼入 Prompt,实现多轮连贯对话
  4. ** 存储载体:内存数组、Redis (会话缓存),不会存入向量库

python

运行

from langchain_core.chat_history import InMemoryChatMessageHistory history = InMemoryChatMessageHistory() # 一轮一问一答自动append消息,只在当前会话生效 history.add_user_message("报销标准?") history.add_ai_message("一线350一晚")

2. RAG(长期记忆:全局知识库)

  1. 存储内容:企业合同、规章、产品文档、海量私有非结构化文本
  2. 生命周期:文档切片→向量化→写入向量库 (Chroma/Milvus),永久落盘
  3. 使用逻辑:用户提问 → 向量相似度检索文档 → 文档作为参考上下文拼入 Prompt
  4. 跨会话:A 用户、B 用户、不同聊天会话共用同一套知识库

二、5 点关键差异

维度Memory 短期记忆RAG 长期记忆
存储对象聊天历史对话业务文档、知识库原文
存活周期

单次会话有效,临时缓存

在会话session的不同chat中有效

永久持久化,服务重启仍存在
触发时机每次对话必加载历史固定 RAG:每次必检索;Agent-RAG:LLM 按需检索
作用

标准化、常识、通识:理解上下文指代(它、这个、如上所述)

定制化、个性化、专有:解决大模型知识截止、私有数据、幻觉问题

部署位置内存 / 会话缓存向量数据库 / 文件存储

三、三种落地组合方案(工程最常用)

方案 1:纯对话机器人(Memory + 无 RAG,L2)

只靠历史上下文聊天,没有私有知识库,只记住本轮对话内容。

python

运行

def get_hist(_): return history.messages chat_chain = {"input":RunnablePassthrough(),"history":get_hist} | prompt | llm

方案 2:带会话记忆的固定 RAG(Memory+RAG,L3 企业客服)-- 固定流程

  1. Memory 保存多轮聊天,解决指代;
  2. RAG 固定前置检索,拿企业资料;

plaintext

用户问题→读取聊天历史→RAG查知识库→历史+文档+问题一起进Prompt

方案 3:Agent+Memory+RAG (封装 Tool,L4 智能体) --大模型动态流程

  • Memory:Agent 内部 scratchpad + 会话聊天记忆,保存本轮思考与对话;
  • RAG:封装 RetrieverTool,LLM缺资料才调用知识库常识直接用模型固有知识。

四、容易混淆的两个概念澄清

  1. Agent 内部 scratchpad ≠ Memoryscratchpad:保存 ReAct/FC 每一轮「思考 - 工具 - 结果」步骤,是智能体任务临时草稿;Memory:用户聊天对话历史,面向用户。

  2. RAG 不能替代 Memory,Memory 不能替代 RAG

  • 没有 Memory:多轮对话无法理解代词;
  • 没有 RAG:模型不知道企业内部规章制度。

五、拓展:长期对话记忆落地(会话数据落库 = 会话 RAG)

如果需要跨会话记住用户历史聊天(数月前聊天记录):把历史聊天消息存入向量库,变成聊天 RAG,提问时检索过往历史,此时聊天记录从「短期 Memory」升级为「长期 RAG 记忆」。

最简总结

  • Memory:记人话(短期聊天)
  • RAG:记资料(长期文档)
http://www.jsqmd.com/news/953180/

相关文章:

  • Kronos金融AI实战指南:5步构建智能量化交易系统
  • SAP FICO替代与校验实战:从GGB0/GGB1配置到ABAP增强的完整避坑指南
  • Windows下pip install报SyntaxError?可能是你的CMD/PowerShell没配好环境变量
  • 2026年常州合同纠纷律师推荐 陈志豪律师15年合同实务经验丰富 - 本地品牌推荐
  • 从Moment.js到Day.js:一个前端时间库的迁移实战与性能优化指南
  • 3大核心功能深度解析:Python量化交易数据获取利器mootdx
  • 从Notebook到生产:Triton+Istio+Prometheus的ML模型服务化实战
  • 生物医学知识图谱驱动的临床聊天机器人构建实践
  • 告别ST缺货烦恼:手把手教你用J-Flash给华大HC32F460烧录程序(附完整算法文件包)
  • Mac Mouse Fix 终极指南:如何让你的普通鼠标在macOS上超越苹果触控板
  • restic 0.18.1 官方版下载(夸克网盘+百度网盘,SHA256校验)
  • 实战应用开发:基于快马平台构建可复用的JS质数工具库模块
  • 避坑指南:nRF52832主机连接从机时NRF_ERROR_INVALID_STATE错误分析与解决
  • 实战复盘:用JTS处理物流配送中的‘最近提货点’与‘子线路’规划
  • MATLAB纯脚本实现PWM波生成与可视化(含实操录像和逐行中文注释)
  • Mac Mouse Fix:让普通鼠标在macOS上拥有苹果级体验的终极指南
  • 企业级媒体管理终极指南:如何用MediaCMS构建自主可控的视频门户
  • 上海入境就医服务知名公司
  • 从ISE到Vivado:一个老FPGA工程师的调试工具迁移心得(ILA/VIO篇)
  • 别再死记命令了!用eNSP图解二层与三层交换机连接路由器的本质区别
  • Ruff 0.15.14 官方版下载(夸克网盘+百度网盘,SHA256校验)
  • 别只盯着单片机!用古老的555定时器和4017芯片DIY一个可调速度的流水灯(附元件清单和焊接要点)
  • 给硬件工程师的PCIe BAR配置实战:手把手教你用Wireshark和lspci分析设备地址空间
  • XAI实战三剑客:SHAP、Captum与DICE在金融、医疗、自动驾驶中的落地
  • 终极实战指南:掌握MLX框架在Apple芯片上的AI开发全流程
  • Gemma 4深度解析:开源大模型的可信部署与工业级量化实践
  • 高性能文献管理架构:Zotero Style插件深度集成方案实现指南
  • 别再为‘Invalid date’头疼了!手把手排查Moment.js日期解析的5个常见坑
  • RomPatcher.js测试套件:确保补丁兼容性的完整自动化测试指南
  • AI标注效率提升300%的5个实战技巧:从零搭建LLM+CV协同标注流水线(含开源工具链配置清单)