此为《AI Agent 深入研究》系列的第一篇。
我们接下来的内容会在这裏优先发布: ChatGPT 落地研究 | Ted,欢迎订阅。
ChatGPT 一推出没多久,我们就在市面上看到有人用大型语言模型打造出一个虚拟村庄 - 史丹福的虚拟小镇。这个时候笔者就一直对于它背后的原理,AI Agent (智慧型代理)很好奇。再来,像是 ChatGPT 最近在 11 月才推出的 GPTs,它背后的重要支柱之一,也是用了 AI Agent 的基本架构。从史丹福的虚拟小镇到 ChatGPT 一路推出 GPTs,市场上的这些连续动作让我们清楚地看到,AI Agent 在大型语言模型应用领域里,以及逐渐扮演了一个相关关键的角色。接下来的几篇文章,我们就会深入探讨这个主题,跟大家一起来了解一下什么是 AI Agent 以及它的核心原理。
什么是 AI Agent?
那么,如何定义 AI Agent(智慧型代理)呢?简而言之,AI Agent 是一种能够自动完成任务、学习和适应其环境的智慧系统。这些代理通过一个简化的模仿生物的架构来感知外部环境、做出决策,进而与环境进行互动。智慧型代理已经逐渐演变为人工智慧领域的一个重要分支,它们透过自主性、创造力和协作能力,推动了技术创新和应用变革。这些代理不仅能够独立解决複杂问题,与人类及其他代理协作,提高效率和产出,而且在模拟人类行为、处理大量数据甚至提供情感陪伴等方面,正逐步改变我们的工作和生活方式。
AI Agent 的工作流程
一个 AI Agent 的基本工作流程可分为以下几个步骤:
感知和分析(Perception):AI Agent 首先需要对其环境进行感知,这可能涉及数据的收集和分析。决策和计划(Planning):基于收集到的信息,Agent 将制定计划或作出决策。执行(Action):按照计划,Agent 将执行相应的动作。学习和适应(Feedback):Agent 会根据执行结果和环境的反馈进行学习和行为调整。这些步骤使 AI Agent 能够在多变的环境中有效工作,并随时间进步提升其性能。
从这个流程图,我们可以如此理解 AI Agent 的整体运作机制。在处理任务之前,AI代理首先要感知(Perception) 当前环境。这包括了解系统的现状 (State)、回顾过往经验 (Experience),并利用赋予的世界知识 (World Knwoledge)。这些信息形成了全面的背景知识 (Context),使AI代理能够为我们制定合适的计划和做出决策 (Plan)。然后,我们设定的策略保证模组 (Policy ) 将确保代理的行动不会脱离控制或逾越许可的行为範围。一旦通过这一模组,AI Agent 就会採取适当的行动,如果需要与外界互动 (Action),则会透过工具 (Tool Use) 来执行。最终,AI代理与环境的互动将引来新的反馈 (Feedback),这些反馈通过代理的观察 (Observation )被感知,并且将需要记住的信息选择性地储存于适当的记忆模组中。
AI Agent 各元件的说明
在先前的段落中,我们概述了 AI Agent 的整体运作流程。现在,我们将深入探讨各个组件的具体细节。
规划单元的细节
AI Agent 的规划单元,核心是建立在一个先进的大型语言模型上,充当推论引擎。这个单元的主要职责可以分为两个主要类别:
任务分解与子目标的设定:这部分的主要目标是将综合性的任务细分成更小、更具体的子目标。这就像是将一项抽象的工作具体化,以便更容易处理和执行。自我评估与作业改进:
这一工作主要涉及利用反馈信息来提升和反思AI代理自身的性能。这一步骤对于使 AI Agent 更加人性化至关重要。想想看,即使是我们人类,面对一项具有挑战性的任务,也常常是通过尝试、调整并改进来一步步接近正确的目标,不是吗?
为了让大家对上述的规划单元有一个更具体的了解,让我们通过一些基础的实例来进行说明。
任务分解实例 - 思维链技术
谈到任务分解,一个经典的手段就是所谓的「思维链」技巧。这个概念指的是AI在面对问题时,不会立刻给出结论,而是会经过一系列类似于人类的中间思考步骤。这个过程可以比喻为解数学题目时,我们会把每一步的计算过程写下来。
例如,当问AI:“小明原先有5颗苹果,再买了3颗,他现在共有几颗?”一般的AI可能会直接给出“8颗”的答案。但是运用了思维链的AI会这样回答:“小明开始时有5颗苹果,他又买了3颗,5加上3等于8,因此他现在有8颗苹果。”
这种方法的优势是什么?首先,它使得AI的推理过程变得更加透明,使我们能够更清楚地理解AI如何得出其答案。其次,对于较为複杂的问题,这种方法尤其有效,因为它允许AI分步骤地解题,而非尝试一跃到达终点
自我反省模型示例 - ReAct 模型
谈到自我反省,ReAct(Reason+Act)模型堪称是此领域的经典之作。这是一个结合了推理与行动的策略,特别针对解决複杂问题或任务。在《ICLR 2023》的会议论文中,这个模型被详细阐述。文献描述了ReAct方法如何改良了传统的机器学习模型,它不单单依靠直接的行动输出,而是将推理过程与行动决策紧密结合。
ReAct模型首先进行推理,探索解决问题或完成任务的途径。这一步骤深入分析问题,制定解决方案或行动计划。然后,根据这一计划採取相应行动。这个方法的核心在于,它融合了推理与行动,让系统能更智能和灵活地应对複杂情境。
以下是ReAct论文中的一个实例,透过这个例子可以让我们对其优势及实际运作方式有更深入的了解:
这项任务主要利用HotspotQA问答集中的问题来考验AI代理的解题能力,下面是完整的问答过程:
(1)问题:太阳马戏团表演Mystere的酒店有多少客房?HotpotQA标籤:2,664 (这是过时的答案)(1a)标準回答答案:3,000 ❌(1b)仅限思维链推理:让我们分步骤来思考。太阳马戏团表演Mystere的酒店是Treasure Island。Treasure Island有2,885个客房,因此答案是2,885。答案:2,885 ❌(1c)仅限行动行动1:搜寻[Cirque du Soleil]观察1:Cirque du Soleil是一家加拿大娱乐公司...行动2:查询[Mystere]观察2:没有相关结果行动3:搜寻[Mystere(Cirque du Soleil节目)]观察3:找不到相关信息...行动4:搜寻[Mystere(Cirque du Soleil)]观察4:Mystere(发音为my-steer)是其中一个...行动5:查询[Treasure Island Hotel and Casino]......(没有结果)❌(1d)ReAct(推理+行动)思考1:我需要搜寻太阳马戏团的Mystere表演,确认它的酒店,然后找出该酒店的客房数量。行动1:搜寻[Cirque du Soleil表演Mystere]观察1:找不到Cirque du Soleil表演Mystere。相关信息包括:[Cirque du Soleil]...思考2:要找到酒店,我应该搜寻Mystere(Cirque du Soleil)。行动2:搜寻[Mystere(Cirque du Soleil)]观察2:Mystere(发音为my-steer)是...在Treasure Island Hotel and Casino的专门剧院进行...思考3:Mystere在Treasure Island Hotel and Casino的专门剧院上演。因此我需要搜索Treasure Island Hotel and Casino以找出酒店的客房数量。行动3:搜寻[Treasure Island Hotel and Casino]观察3:Treasure Island Hotel and Casino...共有2,884个客房和220个套房...思考4:Treasure Island Hotel and Casino有2,884个客房和220个套房。所以总数是3,104。行动4:确认答案[3,104]
透过这个例子,我们可以观察到ReAct模型在问答过程中的优势及其运作的精细之处。ReAct之所以效率较高,是因为它强调了在採取任何行动前进行全面的推理分析。这种方法激励解题者(在这里指的是 AI Agent)进行更有系统、有目的的探索,而非单凭直觉或初步印象。同时,它要求解题者在过程中不断自我检视和调整答案,有助于发现并纠正错误,从而提高準确性。在例子(1d)中,通过逐步分析和验证,最终得到了正确的结果,这证明了ReAct模型在保证解题质量和效率方面的显着优势。
记忆单元的功能
在AI代理的运作中,记忆模式对其功能至关重要,通常分为两类。第一类是短期记忆,也称作工作记忆。举例来说,当我们在提示讯息时利用上下文 (In-context learning)带入的资讯进行学习,即是运用了短期记忆的方式。第二类是长期记忆,这更像是我们人类一生中几乎能够存储无限信息的能力。长期记忆的一个实例是检索增强式生成(Retrieval Augmented Generation, RAG)中使用的向量资料库检索,这为 AI Agent 提供了一个几乎无限的存储空间。当 AI Agent 需要特定资料时,通过一个 “回想” 机制,这些资料会被载入并供 AI Agent 进一步应用。
动作执行单元的细节
所谓 AI Agent 的 “动作” (Action) 本质上可以视为工具的运用。工具使用的核心价值在于它使 AI Agent 能够与外部环境进行交互,比如网页搜寻、进行精密计算,或是执行外部代码等。
对于 ChatGPT 的使用者来说,工具的应用概念应该已经相当熟悉。如果你是ChatGPT的付费用户,你可能已经使用过插件(plugins),或者是最近推出的GPTs系列中包含的设定档中的动作(action)——这些都是动作执行单元的实例。此外,OpenAI API版本中的 function calling,或者LangChain的 Tools,同样也就是这个概念。
结论
在上一段,我们简要介绍了AI代理的关键组件,特别是记忆单元和动作执行单元。由于篇幅所限,我们将不在这篇文章中展开详细说明。然而,随着 ChatGPT GPTs 的推出,如果您已经付费使用 ChatGPT,并且参考过我们先前的文章: 如何建立自己的 GPTs - 以 Vercel 以及我的待办清单为例,您可能会想起建立 GPTs 的设定界面(如下图所示)。
图中的(1)就是我们给予 GPTs 的角色设定提示,对建立 GPTs 比较熟悉的朋友,或许你也有尝试过把比较属于短期的参考资料记载于此。而(2)可以对应到前文提到的长期记忆单元,(3)则代表了 GPTs,即 AI Agent 与外部环境互动的工具,在此被称作Action。
阅读至此处,希望大家对 AI Agent 以及其技术细节有了更加深刻的理解。今天的介绍就到此为止,后续我们将分享更多关于 AI Agent 的详细文章。感谢大家的阅读。
参考资料
大模型下半场,关于Agent的几个疑问-品玩 (pingwest.com)|LLM Powered Autonomous Agents | Lil'Log (lilianweng.github.io)2210.03629.pdf (arxiv.org)2201.11903.pdf (arxiv.org)如果您喜欢我们这样的内容,很欢迎到这裏订阅我们的电子报,我们接下来的内容会在这裏优先发布: ChatGPT 落地研究 | Ted