跳到主要内容

04-记忆系统

核对日期:2026-05-18
官方资料:Short-term memory https://docs.langchain.com/oss/javascript/langchain/short-term-memory;Long-term memory https://docs.langchain.com/oss/javascript/langchain/long-term-memory

官方概念

短期记忆保存当前 conversation/thread 的状态,长期记忆跨 conversation/session 持久化用户画像、偏好、事实或技能记录。LangChain/LangGraph 文档会把短期记忆和 checkpointer、长期记忆和 store 联系起来。

机制

短期记忆解决“本轮对话状态”,长期记忆解决“跨会话可复用信息”。两者都需要更新策略和删除策略。

TypeScript 写法

本手册提供 InMemoryCheckpointerInMemoryLongTermStore,对应案例:src/examples/05-memory.ts,综合项目:个人学习助手。

store.put(["users", userId], "profile", {
goal: "学习 LangChain",
preferredLanguage: "TypeScript",
});

Python 差异

Python 文档中经常能看到 checkpointer/store 与 LangGraph 集成的示例。TypeScript 学习时要关注 API 名称和包名,但概念仍是 namespace、key、JSON document、thread state。

工程边界

  • 记忆不是聊天记录仓库,应该结构化、可删除、可审计。
  • 用户画像必须有来源、更新时间和置信边界。
  • 敏感记忆不能默认进入 prompt,需要策略过滤。

常见反模式

反模式后果
自动记住所有用户输入隐私风险和 prompt 污染
长期记忆不分 namespace多用户、多租户数据串扰
把摘要当事实模型总结错误会被长期放大

练习任务

  1. 运行个人学习助手 eval,确认 profile 被写入 memory。
  2. 为长期记忆增加 source 字段,并写测试确认来源存在。
  3. 设计一条“不得写入长期记忆”的敏感信息规则。