记忆能使LLM智能体从处理独立请求的系统转变为可以进行持续、合理交互的系统。没有记忆,智能体就像一个没有短期记忆的人,把接收到的每条信息或每个问题都当成第一次遇到的。有了记忆,智能体可以形成连贯的理解线索,从而带来明显不同且更有益的行为。不只是回忆事实当我们谈论记忆如何影响智能体行为时,这不仅仅是关于智能体能够重复你之前说的话。相反,记忆(通常以对话历史或过去交互摘要的形式)会与你的最新输入一同提供给大型语言模型(LLM)。这种丰富的上下文使得LLM能够生成以下回复:上下文相关: 智能体可以理解代词(如“它”、“它们”、“那个”)或指代对话先前部分的后续问题。如果智能体有记忆,它能将“它的主要用途是什么?”这样的问题与之前讨论过的主题联系起来。没有记忆,智能体将会不知所措,无法确定“它的”指代的是什么。让我们来看一个简短示例:无记忆交互:用户: “法国首都是哪里?”智能体: “法国首都是巴黎。”用户: “那它的人口呢?”智能体: “什么的人口?请您具体说明。”有短期记忆交互:用户: “法国首都是哪里?”智能体: “法国首都是巴黎。”用户: “那它的人口呢?”智能体: “巴黎市区人口大约是210万。”随时间保持连贯: 智能体可以追踪任务或主题在多轮对话中的进展。例如,如果你指示一个智能体逐步构建文档摘要,记忆使其能够记住之前已总结的部分,并连贯地整合新信息。如果你让它向列表中添加项目,它会记住已有的列表。更具个性化(基本层面): 如果你在会话早期提及偏好,例如“我是编程新手”,一个有记忆的智能体可能会调整其解释,使其更基础,或提供对初学者友好的示例,如果它被这样设计的话。这并非深层次的个性化,而是基于当前会话记忆上下文的反应性调整。更自然、更吸引人: 当智能体记住已讨论过的内容时,对话感觉不那么机械,更像自然的对话。它避免重复询问相同信息或给出与正在进行的交流脱节的回复。这使得与智能体交互的过程更顺畅、更直观。下图说明了智能体对记忆的访问如何改变信息流向LLM的方式。digraph G { rankdir=TB; node [shape=box, style="rounded,filled", fontname="Arial"]; edge [fontname="Arial"]; subgraph cluster_without_memory { label = "无短期记忆的智能体"; style="rounded"; bgcolor="#ffc9c9"; u1 [label="用户输入(第 N 轮)", fillcolor="#e9ecef"]; llm1 [label="LLM", fillcolor="#a5d8ff"]; r1 [label="智能体回复(缺少上下文)", fillcolor="#e9ecef"]; u1 -> llm1 [label=" 仅当前输入 "]; llm1 -> r1; } subgraph cluster_with_memory { label = "有短期记忆的智能体"; style="rounded"; bgcolor="#b2f2bb"; u2 [label="用户输入(第 N 轮)", fillcolor="#e9ecef"]; mem [label="短期记忆\n(第 1 到 N-1 轮的上下文)", fillcolor="#ffec99"]; llm2 [label="LLM", fillcolor="#a5d8ff"]; r2 [label="智能体回复(上下文感知)", fillcolor="#e9ecef"]; u2 -> llm2 [label=" 当前输入 "]; mem -> llm2 [label=" 历史上下文 "]; llm2 -> r2; } }短期记忆如何为LLM提供当前输入以及历史上下文,使得智能体能够给出更具信息量和相关性的回复。记忆如何影响LLM的“思考”理解这一点很重要:LLM本身并不会像人类大脑使用生物记忆那样,在独立的API调用之间“记住”事物。相反,智能体框架(即你构建或使用的周边代码和逻辑)负责管理并向LLM提供记忆。当智能体有记忆时,简化后的处理过程如下:用户向智能体提供新的输入。智能体从其指定的记忆存储中检索相关信息。对于短期对话记忆,这通常是近期交流的历史记录。检索到的记忆与新的用户输入结合,并格式化成一个单一的、全面的提示。这个扩展后的提示随后发送给LLM进行处理。LLM处理这一整套信息,即当前查询加上历史上下文,来生成回复。“记忆”实际上成为LLM在该特定轮次中考虑的即时上下文的一部分。更丰富、更完整的输入上下文通常会使LLM产生更相关、更准确、更连贯的输出。如果记忆包含迄今为止解决问题的步骤历史,或用户先前的澄清,LLM可以使用这些来提供更好的持续协助,或避免重复会话中已回答过的问题。这种记忆上下文的影响相当巧妙。LLM不仅仅是简单地查找提供记忆中的事实。它使用对话历史来理解对话流程、推断隐含意义、追踪任务当前状态,并更好地预判用户可能意图。这使得它能够生成不仅语法正确,而且逻辑合理、在正在进行的交互中上下文恰当的后续内容。当你在即将到来的实践练习中实现短期记忆时,你将会看到,即使是简单的交流历史,也能显著改善你的智能体行为的质量和实用性。