【万字长文】AI也有记忆?上下文工程与记忆系统实战指南,打造有状态的AI!

构建有状态AI:上下文与记忆工程

在人工智能飞速发展的今天,大语言模型(LLM)已经渗透到我们工作与生活的方方面面。然而,无论模型参数多么庞大,推理能力多么惊人,它们都面临一个根本性的缺陷——它们天生是“无状态”的。如同只有七秒记忆的金鱼,LLM在每一次交互的间隙都会彻底遗忘过去。它们的认知被严格限制在单次API调用的“上下文窗口”之内,这极大地束缚了它们在需要连续性、个性化和深度理解的复杂应用中的潜力。

为了弥补这一鸿沟,我们最初的尝试是“提示工程”(Prompt Engineering)。通过精心设计静态的系统指令,我们试图教会模型如何思考和行动。这无疑是重要的第一步,但它更像是在给一个失忆的演员反复递上同一份剧本。要让智能体真正“活”起来,我们需要一场范式革命。今天,我们正式引出这场革命的核心——“上下文工程”(Context Engineering)。它不再仅仅是优化提示词,而是动态地为模型构建一个完整、丰富且与当前任务高度相关的“世界观”,是构建有状态、能够学习和个性化交互的智能体的关键进化。

这个过程,可以用一个法餐领域的术语——mise en place——来生动地类比。一位顶级的法餐厨师在开始烹饪前,会一丝不苟地完成备菜工作:清洗、切割、调味,并将所有食材和工具整齐地摆放在手边。上下文工程的本质正是如此。它不仅是给模型一份“菜谱”(提示),更是精心准备所有高质量的“食材”(如用户数据、外部知识)和趁手的“工具”(API定义),确保模型在每一次“烹饪”时,都能稳定、高效地创造出卓越且定制化的结果。

本文将深入剖解上下文工程的两大核心支柱:会话(Sessions)记忆(Memory)。前者如同厨师手边那张临时但高效的“工作台”,后者则像是他身后那个分门别类、井井有条的“食材库与文件柜”。深刻理解这两个概念及其相互作用,是每一位AI开发者、产品经理和架构师开启下一代强大、持久化AI体验之门的钥匙。

1,重新定义边界:什么是上下文工程 (Context Engineering)?

从“提示工程”的狭窄视角跃迁至“上下文工程”的广阔天地,是构建真正智能体的必然一步。这标志着我们的思维模式发生了根本转变:我们不再仅仅是“与模型对话”,而是开始“为模型构建一个动态的工作环境”。上下文工程的核心,是承认LLM的无状态性,并围绕它建立一整套动态管理信息流的机制,确保模型在每一轮交互中都能获得恰到好处、不多不少的关键信息来完成任务。

1.1,对比上下文工程与提示工程

为了更清晰地理解这一转变,我们可以从几个核心维度对比二者的区别:

对比维度提示工程(Prompt Engineering)上下文工程(Context Engineering)
核心焦点优化静态的系统指令(System Prompt),像改进“菜谱”本身,使模型按特定方式表现动态构建整个请求载荷(Payload),管理指令、数据、历史记录等所有输入,相当于准备全部“食材与工具”
动态性多为静态或半静态;系统指令在一场会话中通常不改变高度动态;每一轮都会根据用户输入、历史和外部数据重新组合与优化
管理范围范围相对狭窄,集中在“如何对模型下指令”范围极广;需要协调外部系统(RAG、记忆库、会话存储等),并战略性选择、总结和注入信息

1.2,系统性地拆解上下文的构成要素

一个完整的上下文载荷,远不止用户的提问那么简单。它是一个精心构建的信息集合,我们可以将其系统性地拆解为三大类:

1.2.1,引导推理的上下文 (Context to guide reasoning):

这类信息定义了智能体的基本行为模式和可用能力,如同它的“操作系统”和“出厂设置”。

系统指令 (System Instructions): 定义智能体角色、能力边界和行事准则的高层指令。

工具定义 (Tool Definitions): 智能体可用于与外部世界交互的API或函数的技术规格(Schema)。

少量示例 (Few-Shot Examples): 通过提供具体的“输入-输出”范例,利用模型的上下文学习能力(In-context Learning)来引导其推理过程。

1.2.2,作为推理依据的事实性数据 (Evidential & Factual Data):

这是智能体进行思考和决策所依据的“证据”,包括预存知识和为当前任务动态检索的信息。

长期记忆 (Long-Term Memory): 跨越多次会话持久化存储的、关于用户或特定主题的知识。

外部知识 (External Knowledge): 通常通过检索增强生成(RAG)从外部数据库或文档中获取的信息。

工具输出 (Tool Outputs): 调用外部工具后返回的数据或结果。

子智能体输出 (Sub-Agent Outputs): 将特定子任务委托给专门的子智能体后,其返回的结论或成果。

工件 (Artifacts): 与用户或会话相关的非文本数据,如文件、图片等。

1.2.3,定义当前任务的即时信息 (Immediate conversational information):

信息将智能体“锚定”在当前的交互中,明确了它需要立即处理的任务。

对话历史 (Conversation History): 当前交互的逐轮记录。

状态/暂存区 (State / Scratchpad): 智能体用于即时推理的临时、结构化信息或中间计算结果。

用户提示 (User’s Prompt): 用户当前这一轮的直接问题或指令。

1.3,阐释上下文工程的动态工作循环

上下文的构建并非一次性完成,而是在智能体的每一次响应中循环往复。这个动态循环构成了上下文工程的实践核心,通常包含四个关键步骤:

1.3.1,获取上下文 (Fetch Context):

智能体首先根据用户的当前查询和相关元数据,从记忆库、RAG系统和会话存储中检索所需信息。

1.3.2,准备上下文 (Prepare Context):

智能体框架将获取到的所有信息组件(记忆、文档、历史记录、系统指令等)动态地组装成一个完整的、符合模型API格式的最终提示。这是一个“热路径”上的阻塞过程,智能体必须等待上下文准备就绪才能继续。

1.3.3,调用LLM与工具 (Invoke LLM and Tools):

智能体将准备好的上下文发送给LLM,并根据模型的响应迭代调用必要的工具,直到生成最终的用户回复。模型和工具的输出会实时追加到当前上下文。

1.3.4,上传上下文 (Upload Context):

在当前轮次交互中新产生的信息(如新的用户偏好、对话摘要等)被上传到持久化存储中。这通常是一个异步的“后台”过程,允许智能体在完成对用户的响应后,再进行记忆的整合或其他后处理工作。

1.4,会话和记忆

为了在脑海中建立一个清晰的运作模型,让我们再次回到那个厨房的类比,并将其深化。在上下文工程的体系中,包含会话(Session)工作台和记忆(Memory)文件柜。

1.4.1,会话(Session)工作台

当你为一个特定的项目工作时,工作台上会堆满所有临时的、触手可及的工具、笔记和参考资料。一切都围绕着当前任务,方便取用,但项目结束后,这些东西会被清理掉。

1.4.2,记忆(Memory)文件柜

你不会把工作台上的所有草稿和凌乱笔记都塞进文件柜。相反,你会仔细审阅工作台上的所有材料,丢弃冗余的草稿,只将最关键、最精华的最终成果归档到贴好标签的文件夹里。这个文件柜保证了知识的长期可用性、可靠性和检索效率,它不会被一次性项目的混乱所污染。

这个类比精准地揭示了会话与记忆的本质区别:

  • 会话是临时的、混乱的、服务于当下的;
  • 而记忆是持久的、有序的、服务于未来的。

理解了这一点,我们就掌握了构建复杂智能体的核心蓝图。接下来,让我们首先深入探索作为“工作台”的会话(Sessions)。

一直在更新,更多的大模型学习和面试资料已经上传带到优快云的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

在这里插入图片描述

2,会话 (Sessions):智能体的临时工作台

在上下文工程的宏伟蓝图中,“会话”扮演着基石的角色。它是一个独立的、自包含的容器,封装了单次连续对话的完整记录。对于智能体而言,会话是其维持短期上下文连贯性的生命线,确保它能在一次交谈中理解前因后果,提供逻辑一致的响应。一个用户可以拥有多个独立的会话,但每一个会话都是一次独特的、与其他会话隔离的交互日志。

2.1,剖析会话的基本构成

一个典型的会话主要由两部分构成,共同维持着对话的进行:

2.1.1,事件 (Events):

这是构成对话历史的原子单元,按时间顺序记录了交互的每一个步骤。

常见的事件类型包括:用户输入、智能体回复、工具调用(智能体决定使用某个API)以及工具输出(API返回的数据)。这些事件串联起来,就形成了一部完整的对话“剧本”。

2.1.2,状态 (State):

除了线性的对话历史,会话通常还包含一个结构化的“工作记忆”(working memory)或“暂存区”(scratchpad)。

它用于存放与当前对话相关的临时结构化数据,例如,一个电商智能体可能会在状态中维护一个购物车列表,其中包含用户已选择的商品信息。当对话进行时,智能体可能会根据逻辑动态地修改这个状态。

2.2,探讨不同框架下的实现差异

尽管核心概念相通,但不同的智能体开发框架在实现会话机制时,其设计哲学可能存在显著差异。以两个主流框架ADK和LangGraph为例:

2.2.1,ADK (Agent Development Kit):

它定义了一个明确的 Session 对象,该对象内部包含一个 Event 列表(事件历史)和一个独立的 state 对象(工作记忆)。

这种设计就像一个有两个抽屉的文件盒,一个放事件记录,一个放状态数据,二者分离但同属于一个会话。

2.2.2,LangGraph:

在LangGraph中,没有一个独立的“会话”对象,而是将“状态”本身作为会话的载体。

整个会话的状态就是一个包罗万象的对象,它既包含了作为消息列表的对话历史,也包含了所有其他工作数据。这种设计的特点在于,状态是可变的(mutable)。

与ADK那种只能追加记录的日志不同,LangGraph的状态可以被整体转换,允许开发者实施更灵活的历史压缩等策略来管理长对话。

2.3,深入分析多智能体系统中的会话管理

当系统从单个智能体演变为多个智能体协同工作的复杂系统时,会话管理变得尤为关键且充满挑战。

首先,我们必须再次明确一个核心区别:“会话历史记录”是永久存储的、未经删节的完整交互日志;而“LLM上下文”是为单次模型调用精心筛选、剪裁和格式化的信息载荷。

在多智能体架构中,处理会话历史主要有两种主流模式:

2.3.1,共享统一历史记录 (Shared, Unified History):

系统中所有智能体都向同一个中央对话历史记录中读取和写入事件。所有交互都按时间顺序被记录在一个统一的日志中。

适用场景: 这种模式非常适合需要紧密协作、共享单一事实来源的任务。例如,在一个旅行预订系统中,“航班查询智能体”成功找到机票后,会在共享日志中记录一个 event: flight_found 事件。紧接着,“酒店预订智能体”会读取这个事件,并根据航班信息自动开始搜索目的地酒店。

实现细节: 即便共享历史,子智能体在将信息传递给LLM之前,仍可能对其进行预处理。例如,酒店预订智能体可能会先筛选出日志中所有与“地点”和“日期”相关的事件,并为每个事件打上来源智能体的标签,然后再将这个精简后的上下文发送给自己的LLM。

2.3.2,独立分离历史记录 (Separate, Individual Histories):

每个智能体都维护自己私有的对话历史,像一个“黑盒”一样对其他智能体运作。其内部的思考过程、工具调用和中间步骤都保存在自己的私有日志中,对外不可见。

适用场景: 这种模式适用于智能体之间协作关系松散,或者需要将复杂功能封装为独立服务的场景。例如,一个“作家智能体”在撰写报告时,可能会调用一个“研究智能体”来获取数据。作家智能体并不关心研究智能体内部是如何查阅资料、筛选信息的,它只需要像调用一个普通API一样,将最终的研究报告作为结果接收过来即可。

实现方式: 常见的实现包括“智能体即工具”(Agent-as-a-Tool),即一个父智能体像调用普通API一样调用子智能体;或者使用标准的“智能体间通信协议”(A2A Protocol)进行结构化消息交换。

2.4,揭示框架间的互操作性难题

智能体框架通过内部数据结构抽象了与不同LLM的交互,但这层抽象也带来了一个严峻的副作用:它将使用不同框架构建的智能体天然地隔离开来。一个用ADK构建的智能体无法直接理解由LangGraph持久化的会话对象,反之亦然,这使得跨框架的任务交接几乎不可能。

新兴的“A2A通信协议”虽然解决了智能体之间消息交换的标准化问题,但它并未触及更深层次的上下文共享难题。

一个更优越、更具前瞻性的架构模式是:建立一个框架无关的记忆层(framework-agnostic memory layer)。与存储框架特定对象的会话数据库不同,记忆层被设计用来存放经过处理的、标准化的规范信息(如摘要、实体、事实),通常以简单的字符串或字典形式存在。这个记忆层不与任何特定框架的内部数据结构耦合,因此可以作为一个通用的知识库,让异构的智能体真正实现基于共享认知的深度协作。

2.5,总结会话管理的生产环境最佳实践

当智能体从开发环境走向生产环境,其会话管理系统必须从简单的日志记录器升级为企业级的健壮服务。以下是三个关键领域的最佳实践:

2.5.1,安全性与隐私 (Security & Privacy):

严格的用户隔离: 这是最重要的安全原则。系统必须通过严格的访问控制列表(ACLs)确保任何用户都绝对无法访问到他人的会话数据。

个人身份信息(PII)脱敏: 最佳实践是在任何会话数据被写入持久化存储之前,就对其进行PII的识别与脱敏处理。这从源头上极大地降低了数据泄露的风险,并简化了合规性工作。

2.5.2,数据完整性与生命周期 (Data Integrity & Lifecycle):

存活时间(TTL)策略: 会话不应永久存储。实施TTL策略可以自动删除不活跃的会话,有效管理存储成本并降低数据管理负担。

确定性顺序: 系统必须保证事件以确定的、正确的时序被追加到历史记录中,这是维护对话逻辑完整性的基础。

2.5.3,性能与可伸缩性 (Performance & Scalability):

“热路径”性能: 会话数据的读写位于每次用户交互的“热路径”上,其性能直接影响用户体验。由于智能体运行时通常是无状态的,每一轮交互都可能需要从数据库中读取完整的会话历史,这带来了显著的网络传输延迟。

历史压缩: 为了降低延迟,减少传输数据的大小至关重要。一个核心优化策略是在将会话历史发送给智能体之前对其进行压缩或筛选,例如移除不再需要的旧工具调用输出。

2.6,专题讨论:长对话上下文管理

管理长对话就像一位经验丰富的旅行者为长途旅行打包行李箱。行李箱的容量是有限的(LLM的上下文窗口),而你想带的东西(对话信息)却越来越多。简单地硬塞,行李箱会超重、混乱,找东西困难;而带得太少,又可能遗漏关键物品。成功的关键不在于带多少,而在于只带必需品。

2.6.1,长对话管理四大挑战:

上下文窗口限制: 超出模型上限会导致API调用失败。

API成本: Token数量直接与费用挂钩。

延迟: 更多的Token意味着更长的处理时间。

质量下降: 过长的上下文会引入噪声,可能导致模型“注意力涣散”,降低回答质量。

2.6.2,长对话历史压缩三大策略:

保留最后N轮 (Keep the last N turns): 最简单直接的方法,只保留最近的N次交互,形成一个“滑动窗口”,丢弃所有更早的内容。

基于Token的截断 (Token-Based Truncation): 在发送给模型前,从最新的消息开始向前计算Token数,直到达到预设的上限(如4000 tokens),超出部分直接截断。

递归式摘要 (Recursive Summarization): 这是最复杂也最有效的方法。系统会周期性地调用LLM,将对话历史中较早的部分生成一个摘要。这个摘要会取代原来的详细对话记录,与最近的几轮 verbatim 对话一起构成新的、精简的上下文。

2.6.3,长对话历史压缩策略三大触发时机:

选择何时触发这些压缩策略也至关重要,主要有三种触发时机:

基于计数的触发: 当对话轮次或Token总数超过预设阈值时触发。

基于时间的触发: 当用户在一段时间内(如15分钟)没有交互时,系统在后台执行压缩任务。

基于事件的触发: 当智能体检测到一个特定任务、子目标或话题已经结束时,主动触发压缩。

归根结底,会话压缩本质上是从冗长的对话历史中“提取和浓缩信息”的一种形式。这一过程自然而然地将我们引向一个更广阔、更强大的概念——记忆的生成。

3,记忆 (Memory):智能体的长期知识库

如果说会话是智能体处理当前任务的临时工作台,那么记忆就是它赖以成长的长期知识库。记忆是实现长期个性化、跨会话持久化和持续学习的核心机制。它与会话之间存在一种深刻的共生关系:会话是产生记忆的主要数据来源,而记忆的生成(如对话摘要)又是管理会话规模、控制成本和延迟的关键策略。一个没有记忆的智能体,永远只能停留在“一次性服务”的水平。

3.1,记忆系统四大核心能力

一个设计精良的记忆系统能将一个普通的聊天机器人,转变为一个真正智能、个性化的数字助理。它解锁了以下四种关键能力:

个性化 (Personalization): 这是记忆最常见的应用。通过记住用户的偏好(如喜欢的座位)、重要事实(如家庭成员)和过去的互动,智能体能够提供高度定制化的服务,建立更深层次的用户关系。

上下文窗口管理 (Context Window Management): 记忆系统通过创建摘要或提取关键事实来压缩冗长的对话历史,从而有效管理LLM的上下文窗口。这在保证核心信息不丢失的前提下,显著降低了API成本和响应延迟。

数据挖掘与洞察 (Data Mining & Insight): 通过对大量用户的记忆数据进行聚合和匿名化分析,可以发现有价值的群体性趋势。例如,一个电商智能体可能会发现许多用户都在询问某款产品的退货政策,从而向业务部门预警潜在问题。

智能体自我改进与适应 (Agent Self-Improvement & Adaptation): 智能体可以创建关于自身行为的“程序性记忆”,记录哪些策略、工具组合或推理路径在过去成功解决了问题。这使得智能体能够构建一套行之有效的“战术手册”,在未来遇到类似问题时能更快、更准确地找到解决方案。

3.2,对比分析记忆(Memory)与检索增强生成(RAG)

在架构层面,记忆系统经常与另一个关键技术——检索增强生成(RAG)——相提并论。然而,二者虽然都为LLM提供外部知识,但其目标、数据源和运作模式截然不同。一个精妙的类比可以帮助我们瞬间抓住它们的本质区别:RAG如同智能体的研究馆员,而记忆系统则是它的私人助理。

研究馆员 (RAG): 他坐镇在一个庞大的公共图书馆中,馆内藏有百科全书、技术手册等权威、静态的知识。当智能体需要一个客观事实(如产品规格、历史日期)时,它会去咨询这位馆员。馆员提供的知识是公开的、共享的、权威的,但他对提问者本人一无所知。

私人助理 (Memory): 她时刻跟随在智能体身边,手中拿着一个私密笔记本,记录着与特定用户每一次互动的所有细节。这个笔记本是动态的、高度个性化的,充满了用户的偏好、过往的谈话和不断演变的目标。当智能体需要回忆用户上周的项目进展或其最喜欢的球队时,它会求助于这位助理。助理的专长不在于普世的知识,而在于对这个用户的深度理解。

为了进一步深化理解,我们可以引入另一个类比:将记忆系统视为一个安全的企业档案馆。这位私人助理不仅仅是随手记录,她还是一位专业的档案管理员。她负责将所有重要的互动记录进行整理、去重、核实,然后归档到受到严格权限控制的文件柜中。这位档案管理员(记忆管理器)确保了所有知识不仅被记录,而且被妥善保管、易于检索且绝对安全。这个比喻贯穿了记忆管理的整个生命周期,从信息整合(“档案管理员解决报告冲突”)到来源追溯(“归档前检查文件来源”),再到安全策略(“档案馆的访问控制策略”)。

一个顶级的智能体,需要同时拥有研究馆员和私人助理(兼档案管理员)。下表从更技术的维度系统性地对比了二者的差异:

特性维度RAG 引擎 (RAG Engines)记忆管理器 (Memory Managers)
主要目标向上下文注入外部、事实性的知识创建个性化与有状态体验,使智能体记住用户信息并维持长期上下文
数据源静态、预先索引的外部知识库(PDF、文档、API 等)用户与智能体之间的动态对话
隔离级别通常共享;知识库对所有用户可见以维持事实一致性高度隔离;记忆按用户范围存储以避免泄露
信息类型静态、事实性、权威性的领域知识动态、用户特定、来自对话、带一定不确定性
写入模式批量处理,通过离线管理操作触发事件驱动,每轮、每会话或由智能体策略触发
读取模式作为工具,被动检索;需要时才调用1. 作为工具被动检索;2. 静态主动检索,每轮开始自动加载
数据格式自然语言文本块(chunks)自然语言片段或结构化用户画像
数据准备分块与索引(Chunking & Indexing)提取与整合(Extraction & Consolidation)

3.3,深度剖析记忆的构成与分类

在设计记忆系统之前,我们必须理解其最基本的构成单元。一个“记忆”是记忆管理器返回的、可被智能体用作上下文的原子信息片段。虽然具体实现各异,但一个记忆通常包含两个核心部分:内容(Content)和元数据(Metadata)。

内容是记忆的实质,可以是结构化的JSON(如 {“seat_preference”: “aisle”})或非结构化的自然语言文本(如“用户更喜欢过道座位”)。

元数据则是关于记忆的上下文信息,如其唯一ID、所有者ID、数据来源等。

为了给开发者提供一个全面的设计蓝图,我们可以从多个维度对记忆进行系统性地解构:

3.3.1,记忆的类型

源自认知科学的分类,我们将记忆分为两大功能类别:

陈述性记忆 (Declarative Memory): “知道是什么”(knowing what)。这是智能体关于事实、事件和概念的知识,可以被明确地“陈述”出来。例如,“用户最喜欢的咖啡是拿铁”。

程序性记忆 (Procedural Memory): “知道如何做”(knowing how)。这是智能体关于技能和工作流程的知识,指导它如何执行任务。例如,预订一张机票需要依次调用“查询航班”、“选择座位”、“确认支付”这三个工具。

3.3.2,组织模式

记忆数据在内部可以有多种组织方式:

集合 (Collections): 将一个用户的记忆组织成多个独立的、自然语言的条目。每个条目可能是一个事实、一个事件摘要或一个观察。这种模式适合存储大量非结构化的、与特定主题相关的信息。

结构化用户画像 (Structured User Profile): 将关于用户的核心事实组织成一个不断更新的、类似“名片”的结构化对象。它专为快速查找关键信息(如姓名、偏好、联系方式)而设计。

滚动摘要 (Rolling Summary): 将所有信息整合进一个单一的、不断演进的自然语言摘要中。系统不创建新的独立记忆,而是持续更新这份“主文档”。这种模式常用于对话历史的压缩。

3.3.3,存储架构

向量数据库: 最主流的方法,通过将记忆转换为向量,实现基于语义相似度的检索。非常适合处理非结构化的自然语言记忆。

知识图谱: 将记忆存储为实体(节点)和关系(边)的网络。适合进行结构化的关系查询,理解实体间的复杂联系。

混合方法: 将知识图谱与向量数据库结合,既能进行关系推理,又能进行语义搜索,兼具二者之长。

3.3.4,创建机制

显式记忆 vs. 隐式记忆: 显式记忆由用户直接指令创建(“请记住我的生日是10月26日”)。隐式记忆由智能体从对话中自动推断和提取(“我下周过生日,能帮我策划一下吗?”)。

内部记忆 vs. 外部记忆: 内部记忆指记忆管理逻辑内建于智能体框架中。外部记忆则指通过API调用一个独立的、专门的记忆管理服务。外部服务通常功能更强大。

3.3.5,作用域

用户级 (User-Level): 最常见的范围,记忆与特定用户ID绑定,跨会话持久,用于构建长期个性化体验。

会话级 (Session-Level): 记忆的作用域仅限于单次会话,主要用于压缩长对话,用精炼的事实摘要替代冗长的对话记录。

应用级 (Application-Level): 记忆对应用的所有用户可见,用于提供共享上下文或系统级知识,例如程序性记忆通常是应用级的。

3.3.6,多模态记忆

处理非文本信息时,我们需要区分:

来源为多模态: 这是当前的主流实现。智能体可以处理图片、音频等输入,但最终生成的记忆是文本形式的洞察。例如,从用户的语音留言中提取出文本摘要“用户对近期的物流延迟表示不满”。

内容为多模态: 更高级的形式,记忆本身就包含非文本媒体。例如,用户上传一张图片说“记住这个设计作为我们的Logo”,记忆中就直接存储了该图片文件。

3.4,详解记忆生成的核心流程:提取与整合

记忆生成是一个自动化的过程,它将原始、嘈杂的对话数据转化为结构化、有意义的洞察。我们可以将其想象成一个“由LLM驱动的ETL管道”。这个过程完美地映射了经典的ETL(Extract, Transform, Load)流程:原始对话是数据源,我们从中提取(Extract)有价值的信息;整合阶段对信息进行去重、解决冲突,相当于转换(Transform);最后,将精炼后的知识加载(Load)到向量数据库中。或者,我们也可以将其比作一位“照料花园的园丁”。

3.4.1,记忆生产的四个核心阶段

摄取 (Ingestion): 流程始于从数据源(通常是会话历史)摄取原始数据。

提取与过滤 (Extraction & Filtering): 记忆管理器利用LLM从原始数据中提取“有意义”的信息。这里的关键是过滤,LLM会根据预设的“主题定义”,只捕获符合要求的内容。

整合 (Consolidation): 这是记忆管理最复杂也最有价值的部分。新提取的信息会与已有的记忆进行比较。LLM会进行“自我编辑”,决定是更新现有记忆、创建一个新记忆,还是因为信息过时而删除一个旧记忆。

存储 (Storage): 最终,经过处理的新记忆或更新后的记忆被持久化到存储层(如向量数据库),以备未来检索。

3.4.2,深度剖析“提取”阶段

提取的核心是定义什么是“有意义的”。这个定义高度依赖于具体用例。一个客服智能体和一个私人教练需要记住的东西截然不同。定义“有意义”主要有三种方法:

基于模式与模板的提取: 为LLM提供一个预定义的JSON schema或模板,指示它从对话中找到对应信息并填充。

自然语言主题定义: 用简单的自然语言向LLM描述需要关注的主题类型。

少量示例(Few-shot)引导: 在提示中给出几个“输入对话-输出记忆”的范例,让LLM通过模仿来学习提取模式。

3.4.3,深度剖析“整合”阶段

如果说提取是收集“种子”,那么整合就是精心“栽培”。它解决了 conversational data 带来的四大核心问题,而不仅仅是简单地罗列事实。例如,在一个对话中:

第5轮: 用户说:“我喜欢靠窗的座位。” (记忆创建: {“preference”: “window_seat”})

第20轮: 用户说:“算了,以后还是给我订靠过道的吧,方便些。” (识别到冲突)

整合结果: (记忆更新: {“preference”: “aisle_seat”})

这个例子生动地展示了整合需要解决的核心问题:

信息重复: 用户可能用不同方式表达同一事实。整合过程需要识别并合并这些重复信息。

信息冲突: 用户的状态会改变。整合需要用新信息更新或取代旧信息。

信息演进: 一个简单的记忆可能随时间变得更具体(如从“用户对市场营销感兴趣”演变为“用户正在领导一个Q4客户获取的市场项目”)。

记忆相关性衰减(遗忘): 并非所有记忆都永远有用。整合过程也包括“遗忘”——主动修剪陈旧、无关或低置信度的记忆,保持知识库的清爽和高效。

整合的核心操作包括更新(UPDATE)、创建(CREATE)删除/失效(DELETE / INVALIDATE),这些决策通常由一个专门的LLM驱动的工作流来完成。

3.5,探讨高级概念:记忆溯源 (Memory Provenance)

“垃圾进,垃圾出”的原则在LLM时代尤为致命。为了保证记忆的可靠性,我们必须追踪其来源(Provenance)。一个记忆可能由多个来源的数据融合而成(例如,部分来自CRM系统引导,部分来自用户对话)。追踪每个记忆的来源对于评估其可信度至关重要。

不同的数据来源类型具有不同的可信度:

引导数据 (Bootstrapped Data): 来自CRM等内部系统的数据,可信度最高。

用户输入 (User Input): 用户通过表单明确提供的数据可信度高,而从对话中隐式提取的则较低。

工具输出 (Tool Output): 通常不建议直接从中生成长期记忆,因为其内容可能很快过时。

记忆溯源在两个关键场景中发挥作用:

内存管理时: 当不同来源的信息发生冲突时,系统可以根据预设的信任层级来解决。当用户撤销对某个数据源的授权时,系统可以精确地删除或重新生成所有衍生于该数据源的记忆。

推理时: 在将记忆注入上下文时,可以同时附上其置信度分数。这使得LLM在推理时能够“权衡”不同信息的可靠性,做出更审慎的判断。

在理解了记忆如何被创造、组织和维护之后,下一个逻辑步骤便是探讨如何在实战中高效地应用这些来之不易的知识。

4,实战策略:在智能体中应用记忆

掌握了记忆的理论基础后,我们必须转向实践。本节将聚焦于开发者在构建记忆型智能体时必须做出的三个关键架构决策:何时生成记忆?、何时检索记忆? 以及 如何使用检索到的记忆? 这些决策直接影响到智能体的成本、性能和最终的智能表现。

4.1,分析记忆生成的触发时机

决定何时启动记忆生成流程,是在成本与信息保真度之间进行权衡。不同的触发策略各有优劣:

会话完成时 (Session Completion): 在一次完整的对话结束后触发。这是成本效益最高的方式,但可能会因为一次性处理大量信息而导致记忆的保真度下降。

按轮次频率 (Turn Cadence): 每隔固定轮次(如每5轮)触发一次。这是成本和实时性之间的一个良好折中。

实时(每轮)(Real-Time): 在每一轮交互后都触发。这种方式能捕获最细致入微的信息,保证记忆最新鲜,但计算和存储成本也最高。

显式命令 (Explicit Command): 只有当用户明确发出“记住这个”之类的指令时才触发。

高级模式:记忆即工具 (Memory-as-a-Tool): 这是最灵活和智能的方式。我们将记忆生成功能封装成一个工具(如 create_memory),并授权给LLM。智能体可以根据对话内容,自行判断何时信息足够重要,需要调用该工具进行持久化。这从根本上将决策权交给了智能体自身。

4.2,评估记忆的检索策略

一个优秀的检索系统远非简单的向量搜索。它需要综合考虑多个维度,以确保返回的记忆不仅相关,而且有用。

4.2.1,评估记忆的检索策略的三大维度

相关性 (Relevance): 通过语义相似度衡量记忆内容与当前对话的关联程度。

新近度 (Recency): 考量记忆创建的时间,新近的记忆通常更重要。

重要性 (Importance): 记忆本身被赋予的固有重要性等级,这个等级可以在生成时就被评定。 单纯依赖向量相似度是一个常见的陷阱。例如,当用户问“关于上次讨论的营销计划,有什么进展?”时,纯粹的语义相似度搜索可能会检索到两年前关于另一个完全不相关的“营销计划”的记忆。而一个同时权衡了新近度和重要性的系统,则会正确地召回上周讨论的那个计划。

最佳策略是综合这三个维度的得分,进行加权排序。

对于对精度要求极高的应用,可以采用查询重写(用LLM优化用户的原始查询)、重排(用LLM对初步召回的结果进行二次排序)等高级技术。但这些技术会显著增加延迟,需要谨慎使用。

4.2.2,两大检索时机模式

在检索时机上,同样有两种主要模式:

主动检索 (Proactive Retrieval): 在每一轮对话开始时,系统都自动加载相关的记忆。这种方式确保了上下文总是可用的,但对于不需要记忆的轮次则会产生不必要的延迟和成本。

被动检索(记忆即工具) (Reactive Retrieval): 将记忆检索功能也封装成一个工具(如 search_memory)。智能体在需要时主动调用该工具查询记忆。这种方式更高效,只在必要时产生开销,但缺点是智能体可能不知道有相关的记忆存在,需要通过精心设计的工具描述来引导它。

4.3,探讨推理时记忆的应用方式

当记忆被成功检索后,最后一步是决定如何将其呈现在LLM面前。注入的位置会极大地影响模型的行为。

4.3.1,注入系统指令 (Inject into System Instructions)

将检索到的记忆(尤其是用户画像等全局性信息)格式化后,直接附加到系统指令的末尾。

优点:

  • 权威性高: 系统指令中的内容对模型的行为有很强的指导作用。
  • 分离清晰: 将持久化上下文与即时对话历史分离开,逻辑更清晰。

缺点:

  • 可能过度影响: 模型可能倾向于将所有话题都与系统指令中的记忆关联起来,即使并不合适。
  • 与“记忆即工具”不兼容: 系统指令在模型决策前就已确定,无法包含通过工具调用后才获得的记忆。
  • 难以处理多模态内容: 大多数模型的系统指令只接受文本。

4.3.2,注入对话历史 (Inject into Conversation History)

将检索到的记忆伪装成对话的一部分,插入到对话历史中。最常见的做法是通过工具调用的形式,记忆作为工具的输出自然地出现在对话流中。

优点:

  • 灵活性高: 可以随时随地注入信息,与“记忆即工具”模式完美契合。

主要风险:

  • 引入噪声: 如果检索到的记忆不相关,会污染对话历史,干扰模型判断。
  • 对话注入风险: 模型可能误将注入的记忆当作是用户或智能体真实说过的话,导致混淆。

归根结底,“记忆即工具”范式代表了智能体自主性的最高水平。通过为智能体同时配备用于写入(create_memory)和读取(search_memory)其知识库的工具,我们将上下文管理的认知负荷从开发者预设的静态规则,转移到了模型自身的动态推理之上。

5,进阶议题与最佳实践

构建一个能在生产环境中稳定运行、值得信赖的记忆型智能体,远不止于功能实现。本节将探讨那些决定了系统是“玩具”还是“工具”的深层次问题,包括智能体的自我进化能力、质量保证体系、系统鲁棒性以及至关重要的安全与隐私考量。

5.1,展望未来:程序性记忆

到目前为止,我们主要讨论的是“陈述性记忆”(知道是什么)。而智能体进化的下一个前沿是程序性记忆 (Procedural Memory)——即“知道如何做”的知识。

程序性记忆记录的是成功的策略、工作流或“战术手册”。它不是事实,而是执行复杂任务的最佳实践路径。

独特的生命周期:

  • 提取: 需要专门的提示来从成功的交互中提炼出可复用的策略,而非事实。
  • 整合: 整合的目标是优化工作流,比如用更高效的新方法替代旧步骤,或者修补有缺陷的计划。
  • 检索: 检索的目标不是寻找答案,而是寻找一个可执行的“计划”。

与微调(Fine-tuning)的对比:

微调是通过改变模型权重来实现的、缓慢的、离线的学习过程。而程序性记忆提供了一种快速、在线的适应机制,它通过在上下文中注入正确的“战术手册”来指导模型,无需重新训练。

5.2,建立质量保证体系:测试与评估

一个没有经过严格评估的记忆系统是不可靠的。我们需要一个分层的度量框架来系统性地评估其质量:

第一层:记忆生成质量

目标: 评估智能体是否记住了“正确”的东西。

指标: 将系统生成的记忆与人工标注的“黄金标准”进行对比,计算准确率 (Precision)、召回率 (Recall) 和 F1分数。

第二层:记忆检索性能

目标: 评估系统能否在需要时“找到”正确的记忆。

指标: Recall@K(正确记忆是否出现在召回的前K个结果中)和延迟 (Latency)(检索过程必须在严格的时间预算内完成,如200毫秒)。

第三层:端到端任务成功率

目标: 评估记忆是否真正帮助智能体更好地完成了任务。

指标: 使用一个LLM Judge来评估智能体在有记忆和无记忆两种情况下完成任务的最终表现,判断记忆是否带来了正面影响。

5.3,构建稳健的生产级架构

生产环境对系统的稳定性和可扩展性提出了严苛要求。

异步后台处理:

必须将计算密集型的记忆生成过程与主应用逻辑解耦,作为异步后台进程运行。当智能体响应用户后,再通过非阻塞的API调用将数据推送到记忆服务中进行处理,这样绝不会因为记忆生成缓慢而影响用户体验。

核心挑战:

并发控制: 当多个请求同时尝试修改同一份记忆时,需要使用事务或乐观锁等机制来避免竞态条件。

错误处理: 对失败的LLM调用或数据库操作,应实施带指数退避的重试机制,并将持续失败的任务送入死信队列进行人工分析。

多区域复制: 对于全球化应用,记忆存储必须支持多区域复制,以保证全球用户都能获得低延迟和高可用的服务。

5.4,审视隐私与安全风险

记忆系统存储着大量用户数据,其安全性是最高优先级的议题。回到我们的“安全的企业档案馆”比喻,管理记忆必须像管理机密档案一样严格,遵守以下原则:

数据隔离 (Data Isolation):

这是基石。档案馆绝不会将不同部门的机密文件混放。同样,系统必须通过严格的用户级访问控制,确保一个用户的记忆绝不会被另一个用户访问到。

数据脱敏 (Data Desensitization):

在任何信息被正式归档(持久化)之前,专业的档案管理员都会仔细审查并涂黑所有个人身份信息(PII)。记忆系统也必须在持久化前完成这一步。

防范记忆投毒 (Memory Poisoning):

档案管理员会警惕并拒绝接收伪造或有害的文件。同样,系统必须对用户输入进行验证和净化,防止恶意用户通过提示注入虚假信息,从而污染智能体的长期知识库。

防范数据泄露 (Exfiltration Risk):

如果一份备忘录需要在公司内部分享(如应用级的程序性记忆),档案管理员会进行严格的匿名化处理。同样,共享记忆必须确保一个用户的敏感信息不会通过记忆泄露给另一个用户。

解决了这些进阶问题,我们才算真正为构建一个可信赖的、企业级的智能体铺平了道路。

6,结论:构建智能体的现在与未来

我们完成了一次从基础理念到高级实践的深度旅程,其核心论点清晰而坚定:上下文工程是超越简单的问答机器人,构建能够记忆、学习和适应的复杂智能体的必由之路。我们不再满足于给模型一个静态的指令,而是致力于为其动态地构建一个完整、丰富的“当下世界”,使其在每一次交互中都能基于最全面的信息进行思考。

在这场范式革命中,我们明确了会话(Sessions)记忆(Memory)“即时工作台”,负责管理“当下”的对话流,其首要挑战是性能与安全。而记忆则扮演着“长期文件柜”的角色,它是实现长期个性化和智能体进化的引擎。它不仅仅是一个被动的数据库,更是一个由LLM驱动的、主动进行提取、整合和知识管理的ETL管道,它让智能体从一个事实专家(RAG的角色)升华为一个真正懂你的用户专家。

对于每一位致力于构建下一代AI应用的开发者而言,精通上下文工程,特别是娴熟地驾驭其会话与记忆两大支柱,不再是可选项,而是核心竞争力。掌握了这套方法论,我们才能真正跨越LLM的“金鱼记忆”鸿沟,从构建一次性的“工具”,迈向创造能够伴随用户共同成长的“伙伴”——无论是终身学习的AI导师,还是深度理解企业脉络的战略顾问。这不仅是技术的进化,更是我们与智能体关系的一次重塑。

如何系统的学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

一直在更新,更多的大模型学习和面试资料已经上传带到优快云的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

在这里插入图片描述

01.大模型风口已至:月薪30K+的AI岗正在批量诞生

在这里插入图片描述

2025年大模型应用呈现爆发式增长,根据工信部最新数据:

国内大模型相关岗位缺口达47万

初级工程师平均薪资28K(数据来源:BOSS直聘报告)

70%企业存在"能用模型不会调优"的痛点

真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!

02.大模型 AI 学习和面试资料

1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工

📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

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

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员辣条

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值