在构建 AI Agent 的过程中,开发者常陷入一个困境:LangChain 内置的 Memory 模块(如 ConversationBufferMemory、VectorStoreRetrieverMemory)虽然开箱即用,却难以支撑复杂、长期、多轮的智能交互。
简言之:LangChain 的 Memory 是“日志”,不是“记忆”。
而真正的智能体,需要的是可推理、可关联、可更新的知识网络——这正是 MemOS(Memory Operating System) 要解决的问题。
本文将带你从 LangChain Memory 的局限出发,探索如何基于 MemOS 思想,为 Agent 构建一个专属的“记忆图谱”,让 AI 真正“记得住、理得清、用得上”。
ConversationSummaryMemory 虽能压缩历史,但仍是扁平文本;Agent 无法快速定位“用户上次说的项目截止日期是哪天”。
VectorStoreRetrieverMemory 只在用户提问时触发相似检索,无法主动关联“用户昨天提到要去上海出差”和“今天问航班信息”。
每次新会话都是“失忆”重启,除非手动持久化,否则无法积累用户行为模式。
💡 本质问题:LangChain Memory 设计初衷是“对话上下文管理”,而非“认知记忆系统”。
MemOS 并非某个具体库,而是一种记忆架构范式——它借鉴人类记忆机制,将记忆分为:
其核心载体,是动态演进的知识图谱(Knowledge Graph),而非原始对话日志。
例如,当用户说:
“我下周三要和张总在上海开会,记得提醒我提前订高铁。”
MemOS 会自动提取并存储为图谱节点与关系:
[User] --(has_meeting_on)--> [2025-04-09]
[2025-04-09] --(location)--> [Shanghai]
[2025-04-09] --(with)--> [Zhang (role: 总经理)]
[User] --(needs_reminder_for)--> [Book high-speed train to Shanghai]后续任何相关查询(如“明天行程?”“怎么去上海?”),Agent 都能通过图谱推理精准响应。
推荐使用轻量级图库:
利用 LLM 从对话中抽取结构化三元组:
from langchain.prompts import PromptTemplate
from langchain_core.output_parsers import JsonOutputParser
extraction_prompt = PromptTemplate.from_template("""
你是一个记忆提取器。请从以下对话中提取关键事实,输出为 JSON 列表,每项包含 subject, predicate, object。
对话:
{history}
输出格式:
[{"subject": "...", "predicate": "...", "object": "..."}]
""")
parser = JsonOutputParser()
extractor_chain = extraction_prompt | llm | parserfrom neo4j import GraphDatabase
def store_memory_triplets(triplets):
with driver.session() as session:
for t in triplets:
session.run("""
MERGE (s:Entity {name: $sub})
MERGE (o:Entity {name: $obj})
MERGE (s)-[r:`{pred}`]->(o)
ON CREATE SET r.created_at = timestamp()
ON MATCH SET r.updated_at = timestamp()
""", sub=t['subject'], pred=t['predicate'].replace(' ', '_'), obj=t['object'])在 LangChain Agent 的 tools 或 retriever 中加入图谱查询:
def query_user_facts(user_id, question):
# 将自然语言问题转为 Cypher 查询(可用 LLM 辅助)
cypher = llm.invoke(f"根据问题生成 Neo4j Cypher: {question}")
result = graph.query(cypher)
return format_result(result)然后在 prompt 中注入:
已知用户相关信息:
{graph_retrieved_facts}
请基于以上信息回答:{input}MemOS 并非要取代 LangChain Memory,而是分层协作:
ConversationBufferWindowMemory(最近 5 轮);两者结合,形成“快+准”的记忆体系。
LangChain 让我们快速搭建 Agent,但若只依赖其原生 Memory,Agent 始终是个“健忘的助手”。 而 MemOS 式的记忆图谱,则赋予它持续学习、深度理解、个性化服务的能力。
未来,真正有价值的 AI Agent,不在于能调多少工具,而在于能否记住你是谁、你需要什么、以及你们共同经历的故事。
🌟 开源参考:
GroupChat + 自定义记忆模块 MemoryBank PropertyGraphIndex(实验性)现在,是时候给你的 Agent 装上一颗会思考的“记忆大脑”了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。