LangChain.js-v1-记忆管理最佳实践
LangChain.js v1 记忆管理最佳实践createAgent 一站式方案Agent 默认不跨会话记忆。每轮对话结束后LLM 不会保留上一轮的上下文信息。这不是 bug。Agent 的底层设计就是无状态的——每次调用都是一张白纸LLM 只看你当前传入的消息。让 Agent 有记忆意味着在架构层面把状态管理补上。LangChain.js 的答案在 v1 里变得很清晰createAgent 统一入口把短期记忆和长期记忆收敛到同一个 API。从技术实现的角度可以把 Agent 的记忆需求拆成三层。会话连续性——同一轮对话别断掉你说过的话下一句 Agent 还能引用。跨会话持久化——明天打开 Agent 它还能认出你是谁、偏好什么。行为记忆——Agent 记住哪些工具调用路径有效、哪些踩过坑下次自动规避。这三层正好对应 v1 记忆体系的技术栈checkpointer 管会话连续性store 管跨会话持久化社区工具补充行为记忆。LangChain 的记忆体系从 v0.3 到 v1 经历了一次彻底重写旧版 ConversationBufferMemory 已经废弃取而代之的是基于 LCEL 和 LangGraph 的分层架构。接下来逐层展开。短期记忆checkpointer 让 Agent 记住刚才说了什么createAgent 是 v1 引入的统一 Agent 创建入口。它的 API 签名很简洁createAgent({model,tools,systemPrompt?,checkpointer?,store?,contextSchema?})其中 checkpointer 负责短期记忆。配置 MemorySaver 后Agent 自动获得会话级消息持久化能力。每次调用时传入同一个 thread_idAgent 就能在同一会话中保持上下文。import{createAgent,tool}fromlangchain;import{MemorySaver}fromlangchain/langgraph;constagentcreateAgent({model:openai:gpt-4o-mini,tools:[getWeather],systemPrompt:你是一个友好的助手用中文回答。,checkpointer:newMemorySaver(),});constconfig{configurable:{thread_id:session-001}};// 第一轮awaitagent.invoke({messages:[{role:user,content:你好我叫小明我在北京。}]},config);// 第二轮 —— 自动记住上下文constr2awaitagent.invoke({messages:[{role:user,content:我叫什么名字}]},config);// → 你叫小明thread_id 是这里的关键。同一个 thread_id 下的所有消息共享一份状态快照换一个 thread_id就是全新的上下文。这种隔离机制天然支持多用户场景——每个用户分配独立的 thread_id互不干扰。你甚至可以让同一个用户在不同话题间切换每个话题一个 thread_id。MemorySaver 存的是 Checkpoint——完整的状态快照包含消息历史、执行步骤和中间变量。也正因如此服务重启后所有数据丢失它只适合开发调试。需要持久化时checkpointer 还支持另外两种后端。SqliteSaver 把快照写入本地 SQLite 文件适合单机部署的小型项目——数据不丢零运维成本一个文件就能带走全部对话历史。PostgresSaver 则面向生产环境支持分布式部署和多实例共享状态。如果你的 Agent 服务跑在 Kubernetes 上、后面挂着多个 PodPostgresSaver 是生产环境多实例部署的推荐方案。三种后端共享同一个 checkpointer 接口切换只需修改初始化代码。长期记忆store 让 Agent 记住你是谁checkpointer 解决了刚才说了什么但管不了明天还能认出你。thread_id 重启后状态丢失只是表象更深层的问题是checkpointer 的作用域限定在单个会话内而用户偏好、项目背景、公司信息这些数据天然需要跨会话共享。store 就是为这个场景设计的。它是应用级的持久化存储配合 contextSchema 定义用户标识工具通过 runtime.store 显式读写。与 checkpointer 的自动透明管理不同store 要求开发者显式决定什么时候存、存什么、什么时候取——这给了你更多控制权但也意味着你得想清楚数据模型。import{createAgent,tool,typeToolRuntime}fromlangchain;import{InMemoryStore}fromlangchain/langgraph;conststorenewInMemoryStore();constcontextSchemaz.object({userId:z.string()});constgetUserInfotool(async(_,runtime:ToolRuntimeunknown,z.infertypeofcontextSchema){constuserInfoawaitruntime.store.get([users],runtime.context.userId);returnuserInfo?.value?JSON.stringify(userInfo.value):未找到;},{name:get_user_info,description:根据 userId 查找用户信息,schema:z.object({})});constsaveUserInfotool(async({name,city},runtime:ToolRuntimeunknown,z.infertypeofcontextSchema){awaitruntime.store.put([users],runtime.context.userId,{name,city});return已保存;},{name:save_user_info,description:保存用户信息,schema:z.object({name:z.string(),city:z.string()})});constagentcreateAgent({model:openai:gpt-4o-mini,tools:[getUserInfo,saveUserInfo],checkpointer:newMemorySaver(),store,contextSchema,});contextSchema 定义了什么信息标识一个用户这里是 userIdAgent 在每次调用时从 config 中提取上下文工具内部通过 runtime.context 即可拿到。store 的数据键采用命名空间 键的二级结构——比如[users], userId——方便按业务领域组织数据。Checkpointer 和 store 的分工很明确但初学者容易混淆。一张表说清楚维度Checkpointer短期记忆Store长期记忆作用域单个 thread会话级跨所有 thread应用级存储内容完整状态快照消息、步骤、中间变量应用自定义数据用户偏好、事实、知识典型用途对话连续性、人机交互中断用户画像、跨会话知识、全局配置API 模式自动管理框架透明处理通过工具显式读写runtime.store数据键thread_id 自动隔离命名空间 键如 [“users”], userId后端实现MemorySaver / SqliteSaver / PostgresSaverInMemoryStore / PostgresStore一个判断标准如果数据生命周期跟一次对话绑定用 checkpointer如果数据需要跨对话、跨设备、跨时间存在用 store。超长对话当上下文膨胀到 LLM 吃不消checkpointer 虽然自动记录所有历史消息但它不会帮你做任何裁剪。一轮对话跑到几百条消息之后上下文窗口会被塞满响应变慢、token 消耗飙升甚至超出模型上下文限制直接报错。对于 Coding Agent 这类需要长时间密集交互的场景这个问题尤其突出。这种场景下需要在 checkpointer 之上叠加一层摘要策略。核心思路是当对话历史超过某个 token 阈值时自动将早期消息压缩为摘要保留近期消息的完整内容摘要部分作为背景知识前置注入。具体实现上可以在每次状态写入时检查 token 使用量一旦超过阈值就对历史消息执行摘要压缩。保留策略通常是近期 N 条消息 摘要的组合——既保留最近对话的细节又不会丢失早期的关键信息。触发阈值的选择取决于你使用的模型上下文窗口。建议将阈值设在窗口的 10%-15% 以内留出足够空间给当前轮次的思考和工具调用。要注意的是摘要本身会丢失信息。如果对话中涉及精确数据——比如用户报了一个订单号、一段配置参数——这些信息被压缩进摘要后可能变形。一个实用的做法是在 store 中单独存储这类不可压缩的结构化数据摘要只保留叙事性的上下文。社区工具推荐当内置方案不够用createAgent 的 checkpointer store 组合覆盖了大部分基础记忆需求但在行为记忆和用户画像构建这两个方向上社区有一些更专业的轮子。agentmemoryGitHub: rohitg00/agentmemoryMIT 协议23,000 Stars是目前最推荐的 Coding Agent 行为记忆方案。它的核心思路是零干预——通过 Hook 机制自动静默捕获所有 Agent 工具调用存入本地 SQLite。检索时走 BM25 全文 向量语义 知识图谱遍历经 RRF 融合排序据项目方公布的基准测试召回率达 95.2%远超同类方案 mem0 的 68.5%。关键是不需要调用任何 LLM 来写入或检索记忆这对高频 Coding Agent 场景来说能省下可观的 token 成本。通过 MCP 协议接入一行命令即可npx agentmemory/mcp。零 LLM 调用意味着没有网络往返开销记忆读写成本远低于调用 LLM 的方案。mem0GitHub: mem0ai/mem0Apache 2.041,000 Stars面向 LLM 应用的用户画像构建从对话中自动提取结构化事实。但每次写入记忆都需要调用 LLM部署还需要 Qdrant 或 Chroma 向量数据库。如果你的场景是面向 C 端用户的聊天产品mem0 的用户画像提取能力很对口但 Coding Agent 场景下agentmemory 的零 LLM 调用模式显然更经济。TencentDB Agent MemoryGitHub: Tencent/TencentDB-Agent-MemoryApache 2.02026 年 4 月开源是中文场景的首选。它采用四层渐进式记忆架构L0 原始对话、L1 原子记忆、L2 场景分块、L3 用户画像。纯 SQLite零外部依赖对中文分词和语义理解做了针对性优化信创和私有化部署场景友好。L1 层需要调用 LLM 做记忆提取但整体架构比 mem0 更轻量。如果你需要在国内服务器上部署、且用户交互以中文为主TencentDB Agent Memory 是中文场景最自然的选择。QMD由 Shopify CEO 发起是 OpenClaw 生态的核心工具对 workspace 下的 Markdown 文件建立 BM25 向量双重索引经 Reranker 融合排序三模型管线Embedding Reranker Query Expansion完全离线约 2.3GB适合文档驱动的记忆场景。Cognee专注知识图谱ECL 三阶段Extract 识别实体 → Cognify 推断关系 → Load 写入图数据库回答A 和 B 有什么关系这类推理性问题支持 PDF、DOCX、音频、图片等多种格式。Zep CE的独特卖点是时序感知——不仅记住说了什么还记住什么时候说的、是否已被更新覆盖2026 年与 LangGraph 深度整合但需要 Postgres pgvector部署较重。如果对照 LangMem 官方提出的三类记忆框架语义记忆存事实、程序记忆存行为规则、事件记忆存 Few-shot 示例社区工具的对应关系大致是语义记忆匹配 mem0 或 TencentDB Agent Memory程序记忆匹配 agentmemory事件记忆匹配 agentmemory 配合 Zep。选型不要求全。关键在于你的 Agent 最缺哪种记忆——是记不住用户偏好还是记不住工具调用的经验——然后只引入对应的那一款。三层搭配从最小启动到生产就绪从 checkpointer 起步按需叠加 store 和社区方案。记忆不是越多越好。每一层记忆都有它的存储成本和检索延迟盲目堆叠只会让 Agent 变慢、变贵、变难调试。从最小集合开始被用户真正抱怨的痛点驱动着往上加才是务实的策略。

相关新闻

在电脑上畅玩Switch游戏的完整指南:Ryujinx模拟器从入门到精通

在电脑上畅玩Switch游戏的完整指南:Ryujinx模拟器从入门到精通

在电脑上畅玩Switch游戏的完整指南:Ryujinx模拟器从入门到精通 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上玩Switch游戏吗?Ryujinx模拟器让你无需…

2026/8/9 7:58:41 阅读更多 →
字节跳动不依赖AI蒸馏的背后:模型改进三大路径与工程实践思考

字节跳动不依赖AI蒸馏的背后:模型改进三大路径与工程实践思考

1. 先搞清楚“不依赖AI蒸馏”到底在说什么 最近关于字节跳动内部决策的消息,核心是“不会依赖AI蒸馏技术改进模型”。如果你不是专门做模型训练或算法工程的人,看到这个标题可能会有点懵。这到底是在说一个技术路线选择,还是一个公司战略信号…

2026/8/9 7:58:41 阅读更多 →
Meta广告排序变革:多阶段序列模型如何借鉴LLM扩展定律突破传统天花板

Meta广告排序变革:多阶段序列模型如何借鉴LLM扩展定律突破传统天花板

如果你在广告技术领域工作,或者关注推荐系统、大模型应用,最近可能注意到一个现象:Meta(原Facebook)的广告系统正在经历一场静默但深刻的变革。过去几年,从简单的CTR预估到复杂的多目标优化,广告…

2026/8/9 7:58:41 阅读更多 →

最新新闻

RAG向量数据库选型指南:从原理到实战部署与调优

RAG向量数据库选型指南:从原理到实战部署与调优

1. 项目概述:为什么向量数据库是RAG的“记忆中枢”?如果你正在捣鼓大模型应用,尤其是想让它“有问必答”地处理你自己的文档、知识库,那你肯定绕不开RAG(检索增强生成)这个词。而RAG要跑起来,向…

2026/8/9 11:09:05 阅读更多 →
虚幻引擎分辨率设置:SetScreenResolution与控制台命令的底层差异与实战避坑指南

虚幻引擎分辨率设置:SetScreenResolution与控制台命令的底层差异与实战避坑指南

1. 项目概述:一个看似简单却暗藏玄机的操作 在虚幻引擎(UE4/5)的开发过程中,调整屏幕分辨率是一个再基础不过的需求。无论是为了适配不同性能的硬件,还是为了在特定场景下(如性能测试、截图、视频录制&…

2026/8/9 11:09:05 阅读更多 →
求推荐东莞成人英语机构

求推荐东莞成人英语机构

为你提供一些东莞成人英语机构的选型方法,不过我不会直接推荐具体的机构哦。通用选型标准教学资质:依据《中华人民共和国民办教育促进法》,正规的英语培训机构需持有教育部门颁发的办学许可证。有合法资质的机构,在教学质量、师资…

2026/8/9 11:09:05 阅读更多 →
PB级大数据性能优化实战:从存储到计算的全面调优

PB级大数据性能优化实战:从存储到计算的全面调优

1. 项目概述:大数据时代的性能挑战上周处理一个客户案例时,他们的PB级用户行为数据查询耗时从3小时优化到8分钟,这让我再次意识到性能优化在数据工程中的决定性作用。当数据规模突破TB级向PB级迈进时,传统的处理方式会遭遇指数级性…

2026/8/9 11:09:05 阅读更多 →
如何在一台电脑上实现4人分屏游戏:NucleusCoop完整指南

如何在一台电脑上实现4人分屏游戏:NucleusCoop完整指南

如何在一台电脑上实现4人分屏游戏:NucleusCoop完整指南 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 想要和朋友们在同一台电脑上畅玩…

2026/8/9 11:09:05 阅读更多 →
Vibe Coding 计时实验:Cursor 生成的代码比手写快 3 倍,但 Claude Code 的返工让我多熬一夜

Vibe Coding 计时实验:Cursor 生成的代码比手写快 3 倍,但 Claude Code 的返工让我多熬一夜

Vibe Coding 计时实验:Cursor 生成的代码比手写快 3 倍,但 Claude Code 的返工让我多熬一夜 Vibe Coding 效率陷阱:从18小时极限交付看AI编程的边界控制 危机时刻的技术抉择 上周五下午4点23分,当企业微信弹出产品经理的紧急需求变更时,我正沉浸在代码审查中。这个看似常规的…

2026/8/9 11:08:05 阅读更多 →

日新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/8 17:02:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/9 0:45:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/8 17:02:44 阅读更多 →