Agent Memory:让你的智能体拥有“长期记忆”,收藏这篇小白也能看懂的大模型进阶指南!
Agent Memory是让智能体从一次性工具升级为长期协作伙伴的核心基建。文章介绍了Agent Memory的核心定义、分层架构、检索机制和工程实现结合LangChain标准化能力与OpenClaw本地持久化创新提供了可直接落地的技术方案、完整代码示例与流程图。内容涵盖记忆写入、压缩、检索、管理、注入等关键能力并通过LangChain和OpenClaw的对比帮助开发者快速掌握Agent Memory落地精髓助力构建具有长期记忆和经验沉淀能力的高性能智能体。1、Agent Memory 核心定义与价值1.1 核心定义Agent Memory 并非简单的对话历史缓存而是一套可持久化、可检索、可管理、可解释的状态管理系统核心职责涵盖精准记录交互历史、任务执行轨迹、环境反馈与用户核心偏好按生命周期与重要性分层存储实现资源高效利用支持跨会话、跨任务的精准记忆召回为推理提供支撑实现「经验驱动决策」替代单纯的上下文拼接提升智能体决策连贯性。1.2 为什么必须落地 Agent Memory传统 LLM 无记忆特性在实际工程落地中会面临四大不可解决的痛点上下文窗口硬上限长对话、多步骤复杂任务如代码开发、方案设计的历史信息必溢出导致推理断裂Token 成本爆炸将全量历史对话塞入 Prompt随着交互轮次增加Token 消耗呈指数级增长长期使用不可持续无跨会话能力智能体重启即“失忆”无法记住用户长期偏好、历史任务细节无法实现长期协作推理质量退化无记忆支撑导致重复思考、逻辑矛盾无法基于历史经验优化决策智能性大打折扣。1.3 核心能力边界核心能力详细说明记忆写入采集原始输入/工具返回结果进行结构化处理、去重清洗后完成持久化存储记忆压缩通过摘要、知识蒸馏等方式降低 Token 占用避免上下文溢出同时保留核心信息记忆检索支持关键词检索、向量检索、混合检索对召回结果进行排序、过滤确保精准性记忆管理提供记忆的增删改查、版本控制、权限分级、过期清理等能力保障记忆可控记忆注入根据当前任务需求动态提取相关记忆注入 Prompt支撑智能体多步推理与决策2、Agent Memory 标准分层架构2.1 四层记忆模型感官记忆存储原始输入用户提问、工具返回属于瞬时缓存核心作用是快速过滤噪声信息仅保留有价值的内容进入下一层短期/工作记忆会话内活跃的上下文信息采用滑动窗口摘要结合的方式管理容量有限通常对应 LLM 上下文窗口的 50%-70%中期记忆会话级别的记忆归档按天、按任务维度组织支持会话回溯、任务复盘可按需召回至短期记忆长期记忆存储用户偏好、业务规则、核心经验、知识库等长期有效信息永久可编辑是智能体“经验沉淀”的核心载体。2.2 标准执行流程注流程核心是“实时流转按需持久化”确保记忆不丢失、不冗余同时控制 Token 消耗。3、LangChain Memory 体系标准化开箱即用快速落地3.1 核心 Memory 类型按使用场景分类基础记忆适合简单对话ChatMessageHistory基础对话历史存储、ConversationBufferMemory全量对话缓冲会话优化记忆适合长对话ConversationBufferWindowMemory滑动窗口保留近期对话、ConversationSummaryMemory自动生成对话摘要压缩 Token混合记忆适合复杂场景ConversationSummaryBufferMemory窗口摘要结合兼顾近期细节与长期摘要长期记忆适合跨会话场景VectorStoreRetrieverMemory对接向量库实现长期记忆检索、EntityMemory提取实体并追踪适合知识型任务。3.2 关键代码示例1Summary Buffer 混合记忆长对话首选from langchain.memory import ConversationSummaryBufferMemoryfrom langchain.chat_models import ChatOpenAIfrom langchain.chains import ConversationChain# 初始化LLM可替换为国内模型如通义千问、文心一言llm ChatOpenAI(model_namegpt-3.5-turbo, temperature0, api_key你的API密钥)# 初始化混合记忆超过max_token_limit自动摘要保留近期对话memory ConversationSummaryBufferMemory( llmllm, max_token_limit800, # 阈值可根据LLM上下文窗口调整 return_messagesTrue # 返回Message对象便于后续处理)# 初始化对话链conversation ConversationChain(llmllm, memorymemory, verboseTrue)# 多轮对话测试模拟长对话场景conversation.predict(input我是后端工程师常用SpringBootMySQL开发接口统一返回Result格式遵循Alibaba开发规范)conversation.predict(input我需要开发用户权限模块包含JWT登录、角色校验、资源权限控制三个核心功能)conversation.predict(inputJWT生成时需要包含用户ID、角色列表、过期时间过期时间设置为2小时密钥用环境变量存储)conversation.predict(input角色分为admin、operator、viewer三类admin拥有全部权限operator可操作业务数据viewer仅可查看)# 查看当前记忆自动保留摘要近期对话无溢出print(当前记忆内容, memory.load_memory_variables({}))3.3 关键代码示例2向量长期记忆对接Chroma跨会话可用from langchain.embeddings import OpenAIEmbeddingsfrom langchain.vectorstores import Chromafrom langchain.memory import VectorStoreRetrieverMemory# 初始化嵌入模型可替换为本地化嵌入模型如BGE、m3eembeddings OpenAIEmbeddings(api_key你的API密钥)# 初始化Chroma向量库持久化存储重启后记忆不丢失vectorstore Chroma( embedding_functionembeddings, persist_directory./agent_memory_db, # 本地存储路径 collection_namelong_term_memory)vectorstore.persist() # 持久化到本地# 初始化向量检索器k3表示召回Top3相关记忆retriever vectorstore.as_retriever(search_kwargs{k: 3})# 初始化长期记忆memory VectorStoreRetrieverMemory(retrieverretriever)# 写入长期记忆用户偏好、业务规则等memory.save_context( {input: 后端接口开发规范}, {output: 1. 接口路径统一用蛇形命名2. 禁止返回null空值用空数组/空对象3. 必须包含请求参数校验4. 异常统一返回Result3.4 LangChain Memory 优缺点总结优点生态完善支持多LLMOpenAI、通义千问等、多向量库Chroma、Pinecone等组件插拔式设计开发效率高文档丰富社区支持强适合快速落地。不足默认依赖云端服务LLM、向量库本地部署成本高记忆存储为黑盒向量形式人工可编辑性弱隐私性较差敏感数据不适合直接存储。4、OpenClaw Memory本地优先、文件即真相解决隐私与可控性痛点4.1 OpenClaw Memory 设计哲学File-First文件优先Markdown 文件是记忆的唯一真相源所有记忆均以人类可读的形式存储无黑盒向量可直接用文本编辑器修改Local-First本地优先全流程本地运行不依赖任何云端服务断网可用敏感数据不会泄露Human-Editable人工可编辑无需调用 API直接编辑 Markdown 文件即可修改记忆灵活调整偏好、规则Hybrid-Search混合检索结合 SQLite FTS5 全文检索与 sqlite-vec 向量检索毫秒级召回相关记忆兼顾精准性与速度。4.2 OpenClaw 四层记忆架构工作记忆当前会话的活跃上下文临时存储会话结束后按需压缩归档短期记忆自动对工作记忆进行压缩摘要将 Token 占比降低 90% 以上保留核心信息长期记忆以 Markdown 文件为载体包含 MEMORY.md核心偏好、规则、每日日志、会话归档三大模块检索加速层基于 SQLite 构建 FTS5 全文索引与 sqlite-vec 向量索引支撑混合检索高效运行。4.3 目录结构~/.openclaw/workspace/ # OpenClaw 工作目录├── MEMORY.md # 核心长期记忆用户偏好、业务规则、核心经验可直接编辑├── USER.md # 用户信息基本信息、技术栈、需求偏好等├── memory/ # 会话/日志归档目录│ ├── 2026-03-20.md # 每日日志当天所有会话的压缩摘要│ └── 2026-03-20-user-api-design.md # 单会话归档某一具体任务的完整记忆4.4 核心黑科技Silent Memory Flush静默记忆刷新触发条件当工作记忆的 Token 数量接近 LLM 上下文窗口阈值时执行逻辑不打断用户交互、不回复无关内容静默提取工作记忆中的关键事实、偏好、决策存储目标将提取的核心信息写入 MEMORY.md 或当日日志文件完成持久化最终效果自动压缩工作记忆释放 Token 空间同时确保关键信息永不丢失。4.5 混合检索核心表结构-- 记忆文本块表存储拆分后的记忆片段按段落/句子拆分便于检索CREATE TABLE chunks ( id INTEGER PRIMARY KEY AUTOINCREMENT, file_id INTEGER NOT NULL, -- 关联的Markdown文件ID text TEXT NOT NULL, -- 记忆文本内容 hash TEXT UNIQUE NOT NULL, -- 文本哈希用于去重 embedding TEXT, -- 向量嵌入json格式存储 create_time DATETIME DEFAULT CURRENT_TIMESTAMP, -- 创建时间用于时间衰减 update_time DATETIME DEFAULT CURRENT_TIMESTAMP -- 更新时间);-- FTS5 全文检索虚拟表支撑关键词精准检索CREATE VIRTUAL TABLE chunks_fts USING fts5( text, -- 检索字段关联chunks表的text字段 contentchunks, -- 关联的主表 content_rowidid -- 关联主表的主键);-- sqlite-vec 向量检索虚拟表支撑语义检索CREATE VIRTUAL TABLE chunks_vec USING vec0( embedding float[768] -- 向量维度可根据嵌入模型调整如BGE为768维);-- 触发器插入/更新chunks时自动同步更新全文检索与向量检索表CREATE TRIGGER chunks_after_insert AFTER INSERT ON chunksBEGIN INSERT INTO chunks_fts(rowid, text) VALUES (new.id, new.text); INSERT INTO chunks_vec(rowid, embedding) VALUES (new.id, json_extract(new.embedding, $));END;CREATE TRIGGER chunks_after_update AFTER UPDATE ON chunksBEGIN UPDATE chunks_fts SET text new.text WHERE rowid new.id; UPDATE chunks_vec SET embedding json_extract(new.embedding, $) WHERE rowid new.id;END;4.6 OpenClaw Memory 优缺点总结优点完全本地运行隐私性强敏感数据不泄露记忆透明可编辑无需API即可调整无云端依赖部署成本低混合检索速度快适合个人/小型团队。不足生态不如 LangChain 完善支持的 LLM/工具插件较少开发灵活性略低适合标准化本地场景复杂 Agent 调度需额外开发。5、LangChain × OpenClaw 融合方案5.1 融合核心思路LangChain负责 Agent 整体调度、工具调用链编排、LLM 接入、短期记忆管理工作记忆短期记忆OpenClaw负责长期记忆的本地持久化MarkdownSQLite、混合检索全文向量、静默记忆刷新以及记忆的人工编辑与治理。5.2 融合代码示例from langchain.memory import BaseMemoryfrom langchain.schema import HumanMessage, AIMessageimport sqlite3import sqlite_vecimport markdownfrom datetime import datetimeimport hashlibclass OpenClawMemory(BaseMemory): 自定义OpenClaw Memory接入LangChain实现本地持久化与混合检索 def __init__(self, workspace_path: str ./.openclaw/workspace): # 初始化工作目录与核心文件 self.workspace_path workspace_path self.memory_file f{workspace_path}/MEMORY.md self.init_workspace() # 初始化SQLite数据库全文检索向量检索 self.db sqlite3.connect(f{workspace_path}/memory.db) self.db.enable_load_extension(True) sqlite_vec.load(self.db) self.init_db() # 记忆缓存避免频繁查询数据库 self.cache [] def init_workspace(self): 初始化工作目录与核心文件 import os if not os.path.exists(self.workspace_path): os.makedirs(self.workspace_path) if not os.path.exists(self.memory_file): with open(self.memory_file, w, encodingutf-8) as f: f.write(# Agent 长期记忆\n\n## 用户偏好\n\n## 业务规则\n\n## 核心经验\n) def init_db(self): 初始化数据库表结构全文检索向量检索 cursor self.db.cursor() # 创建记忆文本块表 cursor.execute( CREATE TABLE IF NOT EXISTS chunks ( id INTEGER PRIMARY KEY AUTOINCREMENT, file_id INTEGER NOT NULL, text TEXT NOT NULL, hash TEXT UNIQUE NOT NULL, embedding TEXT, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ) ) # 创建FTS5全文检索表 cursor.execute( CREATE VIRTUAL TABLE IF NOT EXISTS chunks_fts USING fts5( text, contentchunks, content_rowidid ) ) # 创建向量检索表 cursor.execute( CREATE VIRTUAL TABLE IF NOT EXISTS chunks_vec USING vec0(embedding float[768]) ) # 创建触发器 cursor.execute( CREATE TRIGGER IF NOT EXISTS chunks_after_insert AFTER INSERT ON chunks BEGIN INSERT INTO chunks_fts(rowid, text) VALUES (new.id, new.text); INSERT INTO chunks_vec(rowid, embedding) VALUES (new.id, json_extract(new.embedding, $)); END ) self.db.commit() def hybrid_search(self, query: str, top_k: int 3) - list: 混合检索全文检索30%权重 向量检索70%权重MMR去重 cursor self.db.cursor() # 1. 全文检索FTS5 cursor.execute(SELECT id, text, 0.3 as weight FROM chunks_fts WHERE text MATCH ? LIMIT 10, (query,)) full_text_results cursor.fetchall() # 2. 向量检索sqlite-vec # 此处省略嵌入模型调用可使用BGE、m3e等本地模型 query_embedding [0.1]*768 # 模拟向量实际需替换为真实嵌入结果 cursor.execute(SELECT id, text, 0.7 as weight FROM chunks_vec WHERE embedding MATCH ? LIMIT 10, (query_embedding,)) vector_results cursor.fetchall() # 3. 融合结果按权重排序MMR去重 all_results full_text_results vector_results all_results.sort(keylambda x: x[2], reverseTrue) # MMR去重简化版实际可优化 unique_results [] seen_text set() for res in all_results: if res[1] not in seen_text: seen_text.add(res[1]) unique_results.append(res[1]) if len(unique_results) top_k: break return unique_results def append_to_memory(self, text: str): 将记忆文本写入Markdown文件并同步到数据库 # 去重通过哈希 text_hash hashlib.md5(text.encode(utf-8)).hexdigest() cursor self.db.cursor() cursor.execute(SELECT id FROM chunks WHERE hash ?, (text_hash,)) if cursor.fetchone(): return # 已存在跳过 # 写入Markdown文件 with open(self.memory_file, a, encodingutf-8) as f: f.write(f\n{datetime.now().strftime(%Y-%m-%d %H:%M:%S)}{text}) # 写入数据库file_id默认为1对应MEMORY.md cursor.execute( INSERT INTO chunks (file_id, text, hash) VALUES (1, ?, ?), (text, text_hash) ) self.db.commit() def load_memory_variables(self, inputs: dict) - dict: 加载相关记忆供LangChain Agent使用 query inputs.get(input, ) if not query: return {history: } # 混合检索相关记忆 relevant_memory self.hybrid_search(query) return {history: \n.join(relevant_memory)} def save_context(self, inputs: dict, outputs: dict): 保存当前上下文到记忆工作记忆→长期记忆 user_input inputs.get(input, ) ai_output outputs.get(output, ) if not user_input or not ai_output: return # 构建记忆文本 memory_text f用户提问{user_input}\nAI回复{ai_output} # 写入记忆自动去重 self.append_to_memory(memory_text) # 更新缓存 self.cache.append(memory_text) property def memory_variables(self) - list: LangChain要求返回记忆变量名 return [history]# 测试LangChain OpenClaw 融合使用if __name__ __main__: from langchain.chat_models import ChatOpenAI from langchain.chains import ConversationChain # 初始化OpenClaw本地记忆 memory OpenClawMemory() # 初始化LLM llm ChatOpenAI(model_namegpt-3.5-turbo, temperature0, api_key你的API密钥) # 初始化对话链LangChain调度OpenClaw管理记忆 chain ConversationChain(llmllm, memorymemory, verboseTrue) # 多轮对话测试记忆会自动本地持久化跨会话可检索 chain.predict(input我需要开发一个SpringBoot接口路径是/api/user/login请求方式POST) chain.predict(input请求参数需要包含username和password必填且password长度不小于8位) chain.predict(input接口返回Result6、工程关键技术与最佳实践6.1 记忆压缩策略压缩规则只保留核心事实如需求、规则、用户偏好、关键决策丢弃闲聊、重复表述、临时反馈等无价值内容压缩目标将原始记忆压缩至原 Token 量的 10%–15%确保不占用过多上下文空间压缩 Prompt 示例可直接复用plaintext你是专业的记忆压缩专家负责对Agent对话记忆进行压缩。要求1. 仅保留核心事实、用户偏好、关键决策丢弃闲聊、重复内容、临时反馈2. 压缩后 Token 量不超过原始的15%语言简洁、准确不丢失关键信息3. 保留用户明确要求的规则、格式、参数等细节4. 不添加任何额外解释仅输出压缩后的记忆内容。6.2 检索优化双路召回权重全文检索30%负责关键词精准匹配向量检索70%负责语义相似匹配兼顾精准性与灵活性去重与排序采用 MMR最大边际相关性算法去重避免召回内容冗余结合时间衰减30天半衰期新记忆权重更高旧记忆逐步降低权重检索阈值控制向量检索相似度阈值设为 0.7 以上全文检索匹配度设为 60% 以上过滤无关记忆。6.3 安全与治理会话隔离不同会话的记忆相互隔离群聊场景不加载用户核心长期记忆避免信息泄露权限分级敏感记忆如密钥、隐私数据仅主会话可见普通会话仅能检索公开规则与经验版本控制用 Git 管理 Markdown 记忆文件支持记忆回滚避免误操作导致的记忆丢失定期清洗每周清理过期记忆如临时任务记忆、重复记忆保持记忆库简洁。6.4 避坑清单❌ 不要把上下文窗口当作记忆上下文是临时缓存不可持久化重启即丢失❌ 不要全量无过滤存储无关内容会导致检索冗余、Token 成本上升降低推理质量❌ 不要依赖纯向量黑盒记忆向量无法人工编辑出现错误无法修正需结合可读文件存储✅ 必须分层存储按感官→短期→中期→长期分层实现资源高效利用✅ 必须做记忆压缩控制 Token 成本避免上下文溢出✅ 必须可检索、可编辑确保记忆可召回、可修正提升可控性。7、总结与落地路径Agent Memory 不是 Agent 的附加功能而是智能体的灵魂——只有把记忆做扎实实现“可持久化、可检索、可管理、可解释”AI 才能真正从“一次性工具”升级为长期陪伴、持续进化的数字伙伴。结合本文内容给出三级落地路径适配不同需求快速起步使用 LangChain 的 ConversationSummaryBufferMemory Chroma 向量库快速实现长对话记忆与跨会话检索适合快速验证需求本地隐私落地切换到 OpenClaw Memory部署本地 Markdown SQLite 存储享受记忆透明、隐私保护、无云端依赖的优势适合个人/敏感场景生产级融合采用 LangChain OpenClaw 融合方案LangChain 负责 Agent 调度与工具调用OpenClaw 负责长期记忆持久化与检索兼顾开发效率与隐私可控持续优化迭代记忆压缩策略、检索权重、记忆治理规则形成“写入→压缩→检索→治理”的闭环持续提升记忆质量与推理效率。随着 Agent 技术的普及Memory 能力将成为区分普通 Agent 与高性能 Agent 的核心指标。掌握本文的分层架构、技术方案与最佳实践可快速落地高质量 Agent Memory 系统让智能体真正具备“长期记忆”与“经验沉淀”能力。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取