设想一下,你正在和一个人交谈,但他却忘了你刚才说了什么。是不是很让人沮丧?LLM智能体如果没有办法记住近期的交流内容,也会遇到类似的问题。这种回忆对话即时过去内容的能力,我们称之为“对话上下文”,它是智能体短期记忆的一个重要方面。那么,究竟什么是对话上下文呢?你可以把它理解为你和智能体之间最近几次交流的信息汇集。这包括:你最近的问题或陈述。智能体最近的回复。智能体可能使用的任何工具及其结果,如果这些在对话中可见的话。这种上下文使得智能体能够超越简单的、一次性的交流,参与到更有意义、连贯的对话中。智能体中的短期记忆通常专门用于保留这种对话上下文。对话上下文为何对智能体如此重要保持对话上下文能让智能体表现得更有效。让我们看看它为何如此重要的一些原因。保持对话流畅没有上下文,每次你与智能体互动,都像是开始一段全新的对话。智能体不会记住你刚才问过什么。然而,有了上下文,智能体可以在之前的对话轮次基础上进行。例如:你:“LLM智能体有哪些好用的工具?”智能体:“一些好用的工具包括搜索引擎、计算器和代码解释器。”你:“多说说搜索引擎。”为了正确回答你的第二个问题,智能体需要第一次交流的上下文。它需要记住“搜索引擎”被提到过是一种工具。短期记忆保留这种上下文,使对话自然进行。理解“它”、“那个”和“它们”我们在对话中一直使用代词和其他指代。“它”、“那个”、“它们”之类的词,或者“第一个”、“之前的建议”之类的短语,只有在我们对之前说过的内容有共同理解时才有意义。考虑一下这个例子:你:“我对智能体规划很感兴趣。”智能体:(提供关于智能体规划的信息……)你:“它与简单的任务执行有何不同?”智能体要理解“它”指的是“智能体规划”,它必须能够访问你最初陈述的上下文。短期记忆提供了这种连接。遵循多步指示通常,任务不会只通过一条指令给出。你可能会分步提供信息或命令。对话上下文使得智能体能够收集这些信息碎片并理解完整的画面。设想预订航班:你:“我需要预订一张机票。”智能体:“好的,您想飞到哪里?”你:“去纽约。”智能体:“您想什么时候出行?”你:“下周五。”为了成功地帮助你,当你说“下周五”时,智能体需要记住“纽约”。每条信息都会添加到它对你目标的短期理解中。短期记忆的作用对话上下文正是LLM智能体中短期记忆设计来处理的内容。它就像一个临时记事本,智能体在其中记下当前对话的要点。这使得作为智能体“大脑”的LLM在生成下一个回复或决定采取行动时,能够获取近期相关的信息。可以把它看作对话上的一个“滑动窗口”。随着对话进行,新的交互可能会被添加进来,而非常旧的交互可能会逐渐移出这个短期窗口,这取决于记忆的实现方式。上下文的实际运作图示下图说明了对话早期的上下文是如何保存在短期记忆中,并被智能体用来指导其对后续输入的响应的。digraph G { bgcolor="transparent"; rankdir=TB; node [shape=box, style="rounded,filled", fontname="Arial", fontsize=10, margin="0.15,0.1"]; edge [fontname="Arial", fontsize=9]; user_t1 [label="用户 (第一轮):\nLLM智能体是什么?", fillcolor="#a5d8ff"]; agent_t1 [label="智能体 (第一轮):\nLLM智能体结合了LLM、\n工具和记忆...", fillcolor="#b2f2bb"]; user_t2 [label="用户 (第二轮):\n记忆如何帮助它?", fillcolor="#a5d8ff"]; agent_t2 [label="智能体 (第二轮):\n记忆帮助它回忆对话的过去部分\n以保持话题连贯。", fillcolor="#b2f2bb"]; memory_snapshot [ label="对话上下文 (短期记忆)\n\n第一轮后:\n 用户: LLM智能体是什么?\n 智能体: LLM智能体结合了...\n\n(处理第二轮时此上下文可用)" shape=note fillcolor="#ffec99" fontname="Arial" width=4 height=1.5 fontsize=9 ]; user_t1 -> agent_t1 [label=" 提供输入"]; agent_t1 -> memory_snapshot [label=" 交互存储"]; user_t2 -> agent_t2 [label=" 提供输入"]; memory_snapshot -> agent_t2 [label=" 提供上下文"]; }一个简化的视图,说明了对话上下文如何从一轮存储在短期记忆中,并被智能体用来理解和响应后续轮次。在这个例子中,当用户在第二轮问“记忆如何帮助它?”时,智能体能够正确推断出“它”指的是“LLM智能体”,因为第一轮的信息在其短期对话上下文中是可用的。展望:“短期”的特点记住,当我们以这种方式谈论对话上下文时,我们通常侧重于短期记忆。这意味着它主要关注当前的、正在进行的交互。它帮助智能体在单个会话中从一轮到下一轮保持连贯。这种类型的记忆通常不会长时间存储信息,也不会跨越几天或几周完全独立的对话,除非与更高级的、持久的记忆系统结合(我们在“记忆系统概述”中简要提过)。目前,我们关注的是这种使对话得以进行的即时、动态记忆。在下一节中,我们将介绍这种短期记忆的一个简单版本是如何实现的。