构建一个 Agent 通常从计划、记忆、工具、行动这 4 个方面来描述,每个方面具体包含的内容如下:
计划(Planning):
记忆(Memory):
工具(Tools): Agents 学习调用外部 API 来获取模型权重中缺失的额外信息,包括当前信息、代码执行能力、对专有信息源的访问等。
行动(Action): 当接收到任务时,GPT 会先思考决定如何使用工具,然后可能会出现一个小图示,告知用户它尝试使用工具来完成任务。例如在让它搜索、画图时,它会做出相应的行动。
“大型语言模型的潜力不仅仅在于创作出流畅的文本、故事、论文和程序;它还可以被视为一个强大的通用问题解决工具。”和开头提到的计算机领域的通用比,Lilian进一步具体化了Agent的能力模型:在Lilian看来,Agent的能力被具象为三大类:1.规划2.记忆3.使用工具(工具+行为Action)你可能有印象——在之前的GPT-4,画图工具Dall-E,Bing搜索,插件,和代码解释器,都需要切换不同的会话/窗口实现的。后来GPT-4成为了GPT:All-Tools,可以在一个会话里根据用户需求和上下文自行选择工具,并且做出行动——这个行动,就是OpenAI定义的“Action”,如下图:当你在让它搜索,画图的时候,GPT会先思考决定怎么使用工具,然后会出现一个小图示,告诉你他尝试使用工具来完成你的任务。现在你应该能够认清AI-Agent、GPT和Action之间的联系了:GPT(All-Tools,也是现在大家正在开发的“GPTs”),是OpenAI之于传统Agent定义交上的一份答卷——具体的描绘了在大语言模型(LLM)驱动下Agent的系统实现方式。即:使用LLM驱动,通过外部API获取信息和执行的行动(Action),也是本文后半部提到的Action的定义,如下:
吴恩达通过开源项目ChatDev进行举例,你可以让一个大语言模型扮演不同的角色,比如让一个Agent扮演公司CEO、产品经理、设计师、代码工程师或测试人员,这些Agent会相互协作,根据需求共同开发一个应用或者复杂程序。AI Agent基本框架OpenAI的研究主管Lilian Weng曾经写过一篇博客叫做《LLM Powered Autonomous Agents》,其中就很好的介绍了Agent的设计框架,她提出了“Agent = LLM +规划+记忆+工具使用”的基础架构,其中大模型LLM扮演了Agent的“大脑”。Planning(规划)主要包括子目标分解、反思与改进。将大型任务分解为较小可管理的子目标处理复杂的任务。而反思和改进指可以对过去的行动进行自我批评和自我反思,从错误中学习并改进未来的步骤,从而提高最终结果的质量。Memory(记忆)分为短期记忆和长期记忆。其中短期记忆是指的将所有的上下文学习看成是利用模型的短期记忆来学习;而长期记忆是提供了长期存储和召回信息的能力,它们通常通过利用外部的向量存储和快速检索来存储和召回信息。Tools(工具)
智能体是一种自主系统,它可以通过感知环境(通常通过传感器)并采取行动(通常通过执行器)来达到某种目标。在LLM支持的自主Agent系统中,LLM充当Agents的大脑,并辅以几个关键组成部分:规划子目标和分解:Agents将大型任务分解为更小的、可管理的子目标,从而能够有效处理复杂的任务。反思和完善:Agents可以对过去的行为进行自我批评和自我反思,从错误中吸取教训,并针对未来的步骤进行完善,从而提高最终结果的质量。记忆短期记忆:所有的上下文学习都是利用模型的短期记忆来学习。长期记忆:这为Agents提供了长时间保留和回忆(无限)信息的能力,通常是通过利用外部向量存储和快速检索来实现。工具使用Agents学习调用外部API来获取模型权重中缺失的额外信息(通常在预训练后很难更改),包括当前信息、代码执行能力、对专有信息源的访问等。