banner
约 3,000 字
10 分钟

Cognitive Architectures for Language Agents 论文阅读

摘要

用 CoALA 的记忆、动作空间和决策循环理解 Agent,区分工作、情景、语义和程序记忆,并结合 ReAct、Voyager、Generative Agents、ToT 的原文对照表讨论模块与权限设计。

一个 Agent 可以检索资料、回顾失败、写入经验,也可以生成代码去改变外部环境。如果把这些步骤统称为“调用模型”或“使用工具”,系统的状态、读写权限和决策逻辑就很难说清。CoALA 提供了一套共同的描述方式:记忆保存信息,动作规定能够读写或影响什么,决策程序决定下一步做什么。

这篇论文的贡献是概念框架与系统整理。作者借鉴认知架构,把 ReAct、Voyager、Generative Agents 和 Tree of Thoughts 放到同一张结构表里比较。它没有训练一个名为 CoALA 的新模型,也没有给出统一实验中的性能提升百分比。阅读重点是用这套概念解释已有方法,并把它转化为自己项目的模块边界。

论文信息与总览

项目

信息

论文

Cognitive Architectures for Language Agents

框架简称

CoALA

作者

Theodore R. Sumers、Shunyu Yao、Karthik Narasimhan、Thomas L. Griffiths

阅读版本

arXiv:2309.02427v3,2024 年 3 月 15 日

发表信息

Transactions on Machine Learning Research,2024 年 2 月,见 PDF 首页

资料

论文、作者整理的 Agent 仓库

CoALA 的记忆模块、工作记忆与提议评估选择执行循环
CoALA 的记忆模块、工作记忆与提议评估选择执行循环

图源:原文图 4,PDF 第 8 页。左图描述模块和数据流,右图描述时间上的决策循环。工作记忆连接长期记忆、模型调用与外部观察;一次循环经过规划后,执行外部动作或长期记忆写入。

CoALA 的总体思路是把 LLM 放入一个更大的程序中。模型负责部分生成与判断,代码负责组织状态、解析输出和运行控制流程。对架构的描述不依赖某个具体模型,也不要求每个 Agent 都实现图中的所有能力。

从产生式系统到语言 Agent

论文先回顾产生式系统。它用“满足条件后执行操作”的规则改变状态,再由控制程序决定选择哪条规则。Soar 等认知架构在此基础上组织工作记忆、长期记忆、感知、行动与学习。

作者把语言模型看作一种概率化的产生式来源:输入一段文本,模型为可能的续写分配概率;提示词构造和多次调用则为这些生成操作建立控制流程。这个类比解释了为何单次生成、固定提示链和环境反馈循环可以放在同一条发展路径上。

两者仍有区别。传统规则通常可以逐条查看,LLM 的输出分布由大量参数形成,行为更难解释和校准。借用认知架构的组织方式,并不能把概率生成变成可证明正确的规则系统。论文第 3 节提出的是理解和设计上的类比。

记忆分成四类,分别回答什么问题

记忆类型

保存的信息

典型用途

工作记忆

当前观察、目标、候选动作、推理和检索结果

支撑当前决策循环

情景记忆

过去的交互事件与执行轨迹

回忆某次任务发生了什么

语义记忆

关于世界或自身的知识、从经历中总结的事实

为判断提供背景与经验

程序记忆

模型权重中的隐式能力、Agent 代码中的显式程序

决定怎样推理、检索、执行和学习

工作记忆可以存在于程序变量中

CoALA 的工作记忆比聊天上下文更宽。它是能够跨模型调用保存的数据结构。每次调用只从中选择需要的变量构造提示词,输出经过解析后再写回变量,随后用于执行动作。

例如,一个任务记录可以包含目标、最新观察、待选动作和验证结果。某些变量进入提示词,另一些仅供代码检查。把全部状态保存在一条不断增长的聊天消息里,只是实现方式之一。

情景与语义的区别在于信息来源和形态

“上一轮打开了页面 A,按钮未出现”是一段经历,适合放入情景记忆。“这个网站需要先选择地区才显示按钮”是对经历的归纳,属于语义信息。后者更便于复用,也可能因为归纳错误而误导后续决策。

论文以 Reflexion 为例说明这种变化:失败轨迹经过反思,形成新的经验知识,再用于下一轮任务。工程上保留经验与原轨迹的关联,能帮助排查错误归纳。这项追溯建议是对框架的应用延伸。

程序记忆包括模型和代码

第 4.1 节把 LLM 权重与 Agent 源码都归入程序记忆。前者包含隐式行为能力,后者实现提示词模板、解析器、检索程序、工具封装和决策循环。

新增一个可执行技能、更新提示词或微调权重,都可能改变程序记忆。但三者的成本与失效方式不同。尤其是改动决策和学习程序,会影响系统怎样控制自己,论文明确把这类更新列为需要谨慎研究的方向。

动作空间同时包含内部与外部操作

CoALA 将动作分成推理、检索、学习与外部交互
CoALA 将动作分成推理、检索、学习与外部交互

图源:原文图 5,PDF 第 9 页。推理、检索和学习作用于内部信息,Grounding 连接外部环境。图中的规划依靠推理和检索支持。

按照第 4 节的定义,可以用读写关系区分四类动作。

检索把长期记忆中的材料读入工作记忆。它可以使用规则、关键词或向量相似度,并不限定为向量数据库。

推理读取和更新工作记忆。例如,总结刚得到的观察、生成候选计划、判断某项结果是否满足目标。推理的输出先成为当前状态的一部分。

学习把信息写入长期记忆。保存轨迹、写入归纳知识、增加技能或更新模型参数,都在这个宽泛定义内。因此,论文中的“学习”并不总意味着梯度训练。

Grounding 执行外部动作,并把反馈转换成可供决策使用的观察。外部环境包括物理世界、人或其他 Agent,以及网站、游戏、API 等数字环境。向用户提问也可以是一种外部动作。

内部和外部的边界取决于系统如何定义。第 7 节讨论了在线 Wikipedia 与内部离线知识库、内部代码执行与外部机器执行等例子。保持定义一致,比根据“工具调用”这个表面形式判断更有用。

决策程序怎样组织一次循环

图 4B 把决策分成规划和执行。规划内部有提议、评估与选择,选出一个外部交互动作或学习动作后执行,接收新观察,再开始下一轮。

提议可以只生成一个动作,也可以列出多个候选。评估可以使用规则、模型打分、学习得到的价值函数或模拟结果。选择可以取最高分、进行采样,或者拒绝全部候选并重新提议。

这些步骤并非要求每次都调用三次 LLM。对简单任务,直接生成一个动作就能构成精简循环。对需要搜索的问题,可以反复提议和评估,以代码维护树结构。复杂决策增加调用次数和状态管理成本,论文第 6 节还提出应研究如何按预期收益分配推理预算。

用同一张表理解已有方法

原文用 CoALA 的记忆、外部交互、内部动作和决策维度对照五种 Agent
原文用 CoALA 的记忆、外部交互、内部动作和决策维度对照五种 Agent

图源:原文表 2,PDF 第 13 页。表中的长期记忆栏只列额外的可写记忆能力,所有系统本来都具有源码和模型权重这类程序记忆。表格不是性能排名。

ReAct 在工作记忆中交替推理和行动。按论文分析,它没有跨任务的情景或语义记忆,主要通过推理生成下一步动作。后来接入记忆的 ReAct 实现,应另外描述新增模块,不能直接把它们当成原始方法。

Voyager 把经过执行验证的代码技能放入长期程序记忆,再检索技能解决新任务。它的学习体现为增加可执行程序。Generative Agents 保存事件并生成反思,主要扩充情景和语义记忆。

Tree of Thoughts 在当前问题的工作记忆中组织候选推理,并用搜索完成提议、评估和选择。论文把提交最终答案视为它的特殊外部动作。它的主要变化发生在决策过程,并不要求长期技能库。

这张表的用途是定位组件差异:需要跨任务复用时看长期记忆,需要避免局部选择时看决策程序,需要执行真实操作时看外部接口。模块更多不自动代表更适合某项任务。

怎样把框架用于实际设计

第 6 节使用个性化购物助手举例。商品信息可视为语义记忆,用户购买和交流记录属于情景记忆,查询这些数据的函数属于程序记忆,当前对话和目标属于工作记忆。

接下来明确每种动作的读写范围。助手可以读取商品信息,并保存新的交互经历,但不能因此获得修改库存或改写自身代码的能力。记忆类型和权限是两个维度,同一种存储也可以只开放读取。

最后设计决策程序:何时召回购买记录,何时检索商品,怎样判断结果符合需求,何时提交回答,何时把本次交互写入长期存储。这样能够把“它应该更聪明”转化为可以检查的流程与接口。

对一个已有 Agent,也可以用同样顺序复盘失败。忘记刚才的约束,检查工作记忆;重复过去的失败,检查经验写入与召回;工具参数不合法,检查动作接口与解析;在多个方案中持续选错,检查评估与选择。这个定位顺序是基于框架提出的工程用法,论文没有直接测试它的排错效率。

贡献、限制与阅读重点

CoALA 的价值在于统一描述,帮助把模型、状态、工具、搜索与经验更新放到一个结构中。原文以历史背景、案例分析和设计建议支撑框架,没有通过统一基准证明采用某套模块划分必然提高成功率。

认知术语也不意味着系统具有人类认知机制。记忆类型可以映射到不同软件结构,内部与外部的边界仍需设计者声明。自改代码、自动选择训练时机、改进检索策略等内容,有些是未来方向,需要与已有案例分开阅读。

首次阅读可以先看第 4 节、图 4 和表 2,再回到第 2—3 节理解产生式系统的历史类比。最后用第 6 节的顺序给自己的 Agent 写下记忆、动作与决策定义。这份定义往往比一张只有“LLM + Tools + Memory”的框图更便于讨论和修改。

来源:CoALA 论文 v3,第 2—7 节、图 4—5、表 2。文中的来源追溯和排错步骤属于阅读后的应用建议。

END