探索AI Agent的认知架构及记忆的实现机制
大语言模型在过去几年里的发展速度,大家有目共睹。它已经成为推动人工智能前进的核心力量之一。而基于大型语言模型(LLM)的AI智能体,则正在成为这些技术真正落地、发挥作用的关键路径。一个越来越清晰的事实是:研究AI智能体的认知架构,正在成为这个领域最热门也最有价值的方向之一。
这种架构之所以如此重要,是因为它不仅仅关系到智能体能不能跑起来,更直接决定了它的性能、效率、可扩展性和适应能力。换句话说,一个设计良好的认知架构,能让智能体在复杂多变的环境里游刃有余。那么,这个架构具体长什么样?它的记忆系统又是如何工作的?我们从人类的认知系统中找找灵感,结合一些前沿的研究和近期的实践,来聊聊这个话题。
从人类的认知系统看AI Agents
从人类的认知系统看AI Agents
今天的AI与人类相比,在认知系统层面的差异到底体现在哪里?

人的大脑面对不同任务时,反应方式截然不同。诺贝尔经济学奖得主、认知心理学家Daniel Kahneman在《思考,快与慢》里,把人类的认知系统分成了两类:
系统 1:
- 优点是响应迅速,但在复杂任务中表现可能不理想。
- 反应快但改变较慢,就像人的习惯很难快速改变。
系统 2:
- 通过生成中间推理步骤来解决问题。依赖记忆调用,存储思考过程和对行为结果的反思,累积经验以优化后续行为。
- 反应时间比系统1慢,但改变所需时间相对较快。
- 优点是推理能力强,不过需要更多计算资源和时间。
有趣的是,LLM的工作方式其实很像人类的系统1。训练数据决定了它擅长的领域,无论问题简单还是困难,输出速度都差不多——这几乎是LLM的本能反应。和人类相比,AI目前最缺的,恰恰是系统2的能力。而构建系统2,就是要让AI学会自己组织系统1的网络,去构建新工具、解决复杂问题。这正是AI Agent的核心概念:通过对环境的感知,完成不同的子任务,最终实现更复杂的目标。
系统2通过语言推理、记忆调用、自我思考和规划,把复杂问题拆解成由系统1组成的流程单元,让它们分别执行任务。更关键的是,它能在多次实践中沉淀出“经验”数据,反过来训练系统1,让系统1获得新的能力。
简而言之,系统1和系统2共同作用,影响着我们的思考、判断和决策。那么,如何让每一个智能体都拥有系统2的能力,让它能够调用长期记忆、进行计划和反思,从而解决复杂问题呢?不少关于人类记忆的理论和体系,其实都可以应用到Agent上,让它模仿人脑的思考方式。下面要介绍的CoALA框架,就是一个很好的例子。
Agent认知系统的架构
Agent认知系统的架构
在《Cognitive Architectures for Language Agents》这篇论文中,作者结合生产系统提出了一个概念性框架——CoALA(具有认知架构的Agent)。它的核心思路是:基于LLM设计出Agent系统的各种使用方法,从而提升信息处理、推理、自主学习和决策能力。
图源:《Cognitive Architectures for Language Agents》
Agents的认知架构包含多个关键要素,比如感知、学习、推理和决策。
感知是获取外部信息的通道,就像我们的眼睛和耳朵一样,Agent通过传感器收集数据。
学习则是不断优化自身能力的过程,通过大量数据训练,提升对各种情况的理解和应对能力。举个简单的例子,在自动驾驶领域,车辆中的Agent需要不断学习交通规则和不同路况的处理方式。
推理是根据已有的知识和信息进行逻辑思考,做出合理的判断。
决策则是基于推理的结果选择最佳的行动方案。
AI Agent的记忆分类
结合CoALA框架,我们可以按照信息的内容,把信息组织进Agent的多个记忆模块,包括
短期工作记忆和三种长期记忆:情景记忆、语义记忆和程序记忆。
短期记忆:
长期记忆:
- 存储生产系统本身的规则集和程序,也就是Agent该怎么做。
程序记忆(Procedural Memory):
- 存储一些基础知识、世界知识。
语义记忆(Semantic Memory):
- 存储Agent过去的历史事件流或行为经验。
情景记忆(Episodic Memory):
这些记忆组件共同构成了CoALA框架下Agent的记忆系统,让Agent能够存储信息、进行推理、做出决策,并从经验中学习。
短期(工作)记忆是如何工作的?
短期(工作)记忆是如何工作的?
工作记忆在Agent的决策过程中扮演着核心角色。它与LLM、推理、检索等动作紧密配合,不断更新和处理信息,支持Agent在不同情境下做出合适的决策和行动。
- 将Agent执行动作后得到的环境反馈处理成文本,输入到工作记忆中。
信息处理(Grounding Action):
- 通过规则或密集检索等方式,从长期记忆中读取信息到工作记忆中。
检索(Retrieval Action):
- 让Agent能够处理工作记忆的内容以生成新的信息。与检索不同,推理是从工作记忆中读取并写入工作记忆。
推理(Reasoning Action):
长期记忆是如何工作的?
长期记忆是如何工作的?
长期记忆主要通过“学习动作”来实现——将信息写入不同的长期记忆模块中。不同记忆类型的学习机制也不同:
- 更新推理、检索、新学习或决策的方法。
程序记忆的更新:
- 将世界模型中基于事实归纳的信息写进去。LLM通过推理原始经验,把结果推论存储在语义记忆中,为工作记忆中的上下文理解提供依据。
语义记忆的更新:
- 用“经验”来更新。Agent通常存储情景轨迹以更新或建立策略,检索情景记忆中的附加经验可以作为推理或决策的示例。
情景记忆的更新:
这些信息会在Agent需要的时候,根据内容重新检索并存入工作记忆中。以销售管理场景为例:当销售询问线索挖掘Agent“历史上是否有类似成功签单案例”时,Agent会根据当前客户画像,检索情景记忆中类似客户的签单项目,为销售提供商机建议和指导。这就是一个调用情景记忆并存入工作记忆的过程。
Agent记忆的实现
Agent记忆的实现
那么,Agent的记忆具体是如何实现的?先定义一个概念。我们把Agent不断与环境交互、拿到反馈、做出动作、直到目标实现的迭代过程称为“Trial”。用a表示Agent的动作,o表示环境反馈,一个Trial可以表示为:
该定义来自于《A Survey on the Memory Mechanism of Large Language Model based Agents》
按来源不同,Agent的记忆可以分为三大类:
- 同一个Trial内的历史信息。它与未来的动作关联最紧密,几乎所有模型的记忆都包含这类信息。但如果完全只依赖Trial内信息,Agent可能无法有效积累知识。
Trial内的信息:
- 其他Trial的历史信息。这能让Agent积累多种成功与失败的案例,总结失败原因或成功的行为模式。
跨Trial的信息:
- 无论是Trial内还是跨Trial信息,都要求Agent与环境交互才能获得。而外部知识可以让Agent直接获取大量、最新、质量良好的信息。
外部知识:
设计一个辅助分析销售线索是否有效的Agent。它可以通过和用户对话、理解意图、收集信息并做出反馈,最终判断线索是否有效。在这样一轮对话中,上下文、用户输入和Agent的输出信息就是该Trial内的信息。当用户问到是否有类似项目时,Agent会跨Trial寻找相关成功和失败案例来支持判断。而用户询问客户最新资讯时,Agent则会调用web search,与互联网交互获得实时外部知识。
按类型分,Agent的记忆又可以分为两类:
1. 文本形式:
- 在上下文中记录所有历史信息。虽然能存储大量信息,但会消耗大量计算资源和推理时间,超长上下文也会影响LLM的准确性和稳定性。
完整的历史信息:
- 只存储最近的信息,能提升记忆利用率,但在长期任务中容易忽略长距离依赖的关键信息。
最近的历史信息:
- 基于内容的关联程度和重要程度来选取记忆信息,不依赖于时间,因此不会忽略长距离的重要信息。但非常依赖检索策略的准确度和效率,且需要信息以统一方式存储,不能直接应用于处理外部环境中多样的信息。
用于检索的历史信息:
- 一些Agent通过调用工具获取外部知识,比如调用Wikipedia、数学求解器等,能显著提升能力。但外部知识的可信度不一定很高,且Agent需要消耗计算资源来学会使用和理解外部工具,API调用也会带来隐私、数据安全等问题。
外部知识:
2. 参数形式:
- 能有效将专业知识注入LLM,但可能导致过拟合,让LLM遗忘原本的知识。需要大量训练数据、计算资源和时间,且不能很好地处理与环境的动态交互,主要应用于离线任务。
微调:
- 能修改特定知识而保持其他无关信息不受影响。适合小规模记忆修改,需要的计算资源较少,更适用于在线任务。
知识编辑:
从有效性、效率和可解释性来看,两种记忆存储形式各有优劣。根据不同的场景和应用,我们需要在文本形式和参数形式之间进行权衡。文本记忆适用于需要回忆近期交互的任务,比如对话和上下文特定的任务。例如,Agent与用户进行对话时,需要回忆之前的对话内容来理解当前语境,这时文本记忆就能发挥作用。对于需要大量内存或成熟知识的任务,参数记忆可能是更好的选择。
从人类认知系统的研究来看,让Agent拥有类似系统2的能力至关重要,这能让它们更好地解决复杂问题。未来的研究需要进一步探索如何让每个Agent都具备这种能力,让它能够充分调用长期记忆、进行计划和反思,实现从系统1到系统2的扩展。同时,持续优化Agent的认知架构和记忆实现机制,仍然是提升Agent性能和智能水平的关键所在。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名