前言
你有没有遇到过这样的情况?精心设计的智能体,聊了几个回合就「失忆」了;用户反复强调的偏好,每次都要重新说明;跨会话的复杂任务,得从头开始解释上下文。这些问题的根源,往往在于智能体缺少有效的记忆系统。
其实,记忆就是智能体的「大脑档案库」,记录着之前的交互信息,让AI能记住过去的对话、从反馈中学习,并根据用户偏好调整行为。对于需要处理复杂任务和长期交互的AI应用来说,这是提升用户体验的关键。
在LangGraph中,记忆系统分为两种核心类型:

1.短期记忆:就像我们的「工作记忆」,只记住当前对话的内容,用于跟踪正在进行的交互2.长期记忆:如同我们的「档案库」,存储跨会话的重要信息,让智能体能够在不同对话间保持「记忆连续性」
这两种记忆类型协同工作,共同构建了智能体完整的「记忆体系」。
短期记忆:智能体的「工作记忆」

短期记忆就像智能体的「聊天记录本」,帮助它记住当前对话中的所有交互。想象一下,当用户问「我刚才提到的那个项目怎么样了?」,智能体如果能立即从记忆中调出几分钟前的对话内容,给出准确回应,这就是短期记忆在发挥作用。
在LangGraph中,短期记忆是通过「线程」来组织的,就像电子邮件会把相关消息分组到一个对话中。它作为智能体状态的一部分,存储了对话历史、上传的文件、检索的文档等关键信息,并通过检查点机制保存到数据库中。这样,即使对话中断,智能体也能随时「重启」之前的对话上下文。
如何管理「不断变长」的短期记忆?
你可能遇到过这样的情况:当对话进行到几十轮后,智能体开始变得反应迟缓,甚至出现「前言不搭后语」的情况。这是因为随着对话的进行,消息历史会不断增长,给LLM带来两大挑战:
•上下文窗口限制:完整的对话历史可能超出模型的处理能力,导致错误 •信息过载:过长的上下文会分散模型注意力,过时或无关的信息会影响响应质量 •性能下降:处理大量token会导致响应延迟增加,同时也会提高使用成本
就像我们人类需要「选择性遗忘」不重要的信息一样,智能体也需要对消息历史进行管理。常用的方法包括保留关键信息、总结历史对话、过滤无关内容等。
长期记忆:智能体的「持久知识库」
如果说短期记忆是智能体的「聊天记录本」,那么长期记忆就是它的「个人档案库」。想象一下,当用户时隔一周再次与智能体对话时,智能体能立刻记起用户的偏好、上次对话的重要内容,甚至是共同完成的任务进展 - 这就是长期记忆的魔力。
与短期记忆不同,长期记忆可以跨会话、跨线程共享,不受单个对话的限制。在LangGraph中,长期记忆通过自定义的「命名空间」来组织,就像我们用文件夹整理不同类别的文件一样,这样可以更高效地存储和检索信息。
构建有效的长期记忆系统需要考虑两个核心问题:
1.记忆类型:智能体需要记住什么样的信息?是关于用户的事实,还是过去的交互经验?2.更新时机:应该何时更新这些记忆?是在响应用户的同时,还是作为后台任务处理?
接下来,我们将深入探讨这些问题,帮助你构建最适合自己应用的记忆系统。
智能体的三种「记忆类型」
就像人类有不同类型的记忆一样,智能体也需要不同类型的记忆来完成复杂任务。研究人员发现,将人类记忆模型映射到AI系统中,可以显著提升智能体的表现。
在LangGraph中,我们将智能体的记忆分为三种核心类型:
| 记忆类型 | 存储内容 | 人类类比 | 智能体应用 |
|---|---|---|---|
| 语义记忆 | 事实知识 | 我们学到的事实 | 记住用户偏好、产品信息等 |
| 情景记忆 | 事件经历 | 我们的生活经历 | 记录过去的交互历史和行动 |
| 程序记忆 | 操作规则 | 骑车、打字等技能 | 存储和更新系统指令与提示 |
每种记忆类型都有其独特的用途,共同构成了智能体完整的「知识体系」。
语义记忆:智能体的「事实知识库」
语义记忆就像智能体的「百科全书」,专门存储各种事实和概念。当你告诉智能体「我喜欢科幻小说」或「我住在上海」,这些信息就会被存储到语义记忆中,以便智能体在未来的对话中能够个性化回应。
语义记忆让智能体能够:
•记住用户的偏好和个人信息•存储产品详情或服务信息•维护知识库的关键事实
小贴士:语义记忆和"语义搜索"是两个不同的概念。语义记忆关注的是存储事实知识,而语义搜索是一种基于含义查找信息的技术。
「档案式」语义记忆

管理语义记忆的一种常见方式是使用「档案」模式。想象一本关于用户的「个人档案」,包含了用户的所有相关信息。每次交互后,智能体都会更新这本档案,添加新信息或修改现有信息。
档案通常是一个JSON文档,包含各种键值对来表示用户的不同属性。例如:
{
"preferences": {
"language": "中文",
"topic": "科技"
},
"demographics": {
"location": "上海",
"occupation": "开发者"
}
}
使用档案模式时,需要注意每次都要基于先前的档案进行更新,而不是创建全新的档案。随着档案不断变大,可能需要采取一些策略来确保数据的一致性和有效性。
「集合式」语义记忆

另一种管理语义记忆的方式是使用「集合」模式。想象一下,不是维护一本大档案,而是创建许多小的记忆卡片,每个卡片记录一个特定的信息点。随着交互的进行,智能体会不断添加新的记忆卡片,形成一个不断增长的记忆集合。
集合模式的优势在于:
•每个记忆更聚焦,更容易生成和更新•降低了信息丢失的风险,因为新信息不会覆盖旧信息•通常能获得更高的信息召回率
但它也带来了一些挑战:
•需要处理记忆的冗余和冲突问题•搜索和筛选记忆变得更加复杂•可能难以获得完整的上下文关系
LangGraph的存储系统支持语义搜索和内容过滤,可以帮助你更有效地管理这些记忆集合。
无论选择哪种方式,语义记忆的核心目标都是为智能体提供个性化响应的依据,让每一次交互都感觉更贴心、更相关。
情景记忆:智能体的「经验库」
情景记忆就像智能体的「日记」,记录着过去的交互经历和行为。当智能体遇到类似的任务时,它可以回顾过去是如何处理的,从中学习并改进。
在实践中,情景记忆通常通过「少样本学习」来实现。想象一下,如果我们想教智能体如何回复用户的投诉,与其详细编写规则,不如给它几个成功处理投诉的对话示例。这些示例就成为了智能体的「经验」,帮助它在未来处理类似情况时做出更好的决策。
这种方法的优势在于:
•「展示」比「讲述」更有效,LLM从实际示例中学习得更好•可以通过不断更新示例来「编程」智能体的行为•更容易适应复杂多变的场景
实现情景记忆的方式有两种:
1.使用记忆存储:将少样本示例直接存储在LangGraph的记忆系统中2.使用LangSmith数据集:将示例存储在专门的数据集平台中,便于管理和评估
无论选择哪种方式,关键都是要根据具体任务选择最相关的示例,让智能体能够从经验中快速学习。
程序记忆:智能体的「自我进化手册」
程序记忆就像智能体的「操作手册」,包含了它如何执行任务的规则和指令。与人类学会骑自行车后不需要刻意回忆就能完成类似,智能体的程序记忆让它能够自动按照既定规则处理任务。
在AI智能体中,程序记忆主要体现在三个方面:
•模型权重:决定了基本能力•智能体代码:定义了行为框架•系统提示:指导了具体任务处理方式
最常见的程序记忆更新方式是通过「自我反思」。想象一下,智能体能够回顾自己的对话历史,分析哪些回答不够好,然后自动调整自己的指令。这种「自我进化」能力让智能体能够不断提高自己的表现。
例如,在一个论文摘要生成器中,用户可能会批评生成的推文「太长」或「不够吸引人」。智能体可以根据这些反馈,自动更新自己的生成指令,使其生成更符合要求的摘要。
下面是一个简单的实现示例:
# 从记忆存储中获取当前指令
def call_model(state: State, store: BaseStore):
# 从存储中获取最新的指令
instructions = store.get(("agent_instructions",), key="agent_a")[0]
# 使用这些指令来响应用户
prompt = prompt_template.format(instructions=instructions.value["instructions"])
# ...
# 根据反馈更新指令
def update_instructions(state: State, store: BaseStore):
# 获取当前指令
current_instructions = store.search(("instructions",))[0]
# 结合对话历史,让模型反思并改进指令
prompt = prompt_template.format(
instructions=current_instructions.value["instructions"],
conversation=state["messages"]
)
output = llm.invoke(prompt)
# 保存新指令
store.put(("agent_instructions",), "agent_a", {"instructions": output['new_instructions']})
# ...
通过这种方式,智能体能够不断从经验中学习,自动调整自己的行为规则,实现真正的「自我进化」。
智能体「记录记忆」的两种方式

想象一下,当智能体与用户交互时,它需要决定什么信息值得记住。记录这些记忆有两种主要方式,每种都有自己的优缺点:
1.立即记录:在响应用户的同时处理记忆更新2.后台处理:将记忆更新作为单独的任务在后台运行
这两种方式各有适用场景,选择哪种取决于你的应用需求。
立即记录:「即时记忆」模式
立即记录就像是在对话进行中「做笔记」,智能体在响应用户的同时,决定哪些信息值得保存到记忆中。
优势:
•实时更新:新记忆可以立即用于后续交互•透明度高:用户可以清楚地知道哪些信息被记录了•上下文完整:在当前交互的完整上下文中做决策
挑战:
•增加延迟:思考和保存记忆的过程会延长响应时间•任务干扰:智能体需要在对话和记忆之间分配注意力•复杂度高:可能需要额外的工具来辅助记忆决策
ChatGPT的save_memories工具就是这种方法的一个例子,它会分析每条用户消息,决定是否需要将其保存为记忆。
后台处理:「异步记忆」模式
后台处理就像是「事后整理笔记」,智能体先专注于与用户的交互,然后在后台单独处理记忆的创建和更新。
优势:
•响应更快:不会增加主对话流程的延迟•职责分离:将交互逻辑和记忆管理分开,使代码更清晰•专注度高:智能体可以更专注于当前任务的完成
挑战:
•更新延迟:新记忆可能不会立即对其他对话可用•触发时机:需要决定何时启动记忆处理任务•同步问题:多线程环境下可能出现记忆不一致
常见的触发策略包括:
•定时触发:每隔一段时间处理一次记忆更新•事件触发:当特定事件发生时触发记忆处理•手动触发:由用户或应用程序显式触发
智能体的「记忆仓库」:如何组织和存储记忆
想象一下,智能体有一个巨大的「图书馆」,里面整齐地排列着各种记忆。在LangGraph中,这个「图书馆」就是记忆存储系统,它以JSON文档的形式保存所有长期记忆。
记忆存储的核心概念:
•命名空间(namespace):就像图书馆的分类架,用于组织不同类别的记忆•键(key):就像图书的编号,用于唯一标识每个记忆•内容(value):记忆的实际内容,可以是任何JSON格式的数据
命名空间通常包含用户ID、应用上下文等信息,这样可以更有效地组织和检索记忆。例如,一个用户在不同应用场景下的记忆可以分别存储在不同的命名空间中。
Python实现示例:
from langgraph.store.memory import InMemoryStore
# 创建一个内存存储(生产环境中应使用数据库支持的存储)
store = InMemoryStore(index={"embed": embed_function, "dims": embedding_dimensions})
# 定义命名空间 - 可以包含用户ID和应用场景
user_id = "user_123"
app_context = "personal_assistant"
namespace = (user_id, app_context)
# 存储一条记忆
store.put(
namespace,
"user_preferences",
{
"language": "中文",
"style": "简洁直接",
"interests": ["人工智能", "编程", "科技新闻"]
}
)
# 检索特定记忆
preferences = store.get(namespace, "user_preferences")
# 搜索相关记忆
related_memories = store.search(
namespace,
query="用户语言偏好",
filter={"style": "简洁直接"}
)
通过这种结构化的存储方式,智能体可以高效地组织、检索和利用各种记忆,为用户提供更个性化、更智能的服务。
最后
为什么要学AI大模型
当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!
DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。

与此同时AI与各行各业深度融合,飞速发展,成为炙手可热的新风口,企业非常需要了解AI、懂AI、会用AI的员工,纷纷开出高薪招聘AI大模型相关岗位。

最近很多程序员朋友都已经学习或者准备学习 AI 大模型,后台也经常会有小伙伴咨询学习路线和学习资料,我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频 全系列的学习资料,这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
AI大模型系统学习路线
在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。

但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。
AI大模型入门到实战的视频教程+项目包
看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

海量AI大模型必读的经典书籍(PDF)
阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

600+AI大模型报告(实时更新)
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

AI大模型面试真题+答案解析
我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下


这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

被折叠的 条评论
为什么被折叠?



