点击上方蓝字关注我们
本文约 4300 字 预计阅读时间 10 分钟
正如所有的新兴技术一样,在经历过一段大模型的狂热期以后,终归需要面临最终的价值落地。各路投资大佬与技术先驱们也逐渐把目光从单纯的大模型本身,转移到一个更具想象力、生产力,也更能体现LLM价值的舞台焦点: AI Agent ,甚至有人把它形容成下一代工业革命的起点与关键。
如果一篇论文提出了某种不同的训练方法,OpenAI内部会嗤之以鼻,认为都是我们玩剩下的。但是当新的AI Agent论文出来的时候,我们会十分认真且兴奋地讨论。普通人、创业者和极客在构建AI Agents方面相比OpenAI这样的公司更有优势。
-- OpenAI公司联合创始人,前TeslaAI总监Andrej Karpathy
从实例了解AI Agent
什么是AI Agent?
【1】一个耳熟能详的例子是已经发展了很多年的自动驾驶。一个全功能的完全自动驾驶:可以根据你设定的目标,自动规划驾驶路线,使用车载的各种视觉与感应设备识别路况,安全抵达目的地。在整个过程中,无需人类参与。
【2】Google公司前段时间推出了基于多模态大模型训练的实体机器人RT-2,能够通过自然语言下达命令,机器人思考后借助自身的机械手臂完成任务(比如说“我很疲惫给我拿点喝的”,它会给你送来一瓶红牛)。本质上,我们可以把RT-2也看作是一个基于大模型决策,并加上了机械手臂控制与执行的Agent。
【3】在chatGPT推出后不久,开源社区出现的AutoGPT项目快速成为史上Star数量增长最快的开源项目。这个项目能做的事也很简单:你告诉它一个任务,比如:设计如何在南京市开一个赚钱的意大利冰淇淋店。它会借助大模型与工具完成任务并输出文档。
【4】人工智能公司HyperWrite最近正式发布的一个AI工具叫Personal Assistant,也就是个人AI助理,它可以帮助你在线上完全自动化的完成你使用自然语言交给它的复杂任务。比如:
- 帮我搜索与总结下iPhone15的参数并发送到我邮箱
- 帮我在某个网红餐厅预订下周末的座位
- 查询并订购一张从纽约飞洛杉矶的飞机票
以上这些都可以称作AI Agent。在大模型时代,AI Agent的通用定义是:通过大模型驱动,能够自主的理解、规划、执行,并最终完成任务的智能程序。
AI Agent与大模型的区别与关系可以概括为:
- 大模型只是一个大脑,而AI Agent是一个完整体。
- 大模型通常不会使用工具,而AI Agent则有使用工具的能力。
- 大模型只会告诉你怎么做,而AI Agent会直接帮你做。
- AI Agent会与外部环境交互,并借助大模型来决策行动。
- AI Agent通过大模型来驱动,大大提升了自身的理解、规划与决策能力。
当然,从外部环境与工具的使用角度看,chatGPT后来推出的Plugin与Function Call功能也赋予了其自身一部分的AI Agent能力。
需要注意的是AI Agent虽然是一个能够自主执行任务的智能体,但是并不意味在任务过程中没有交互。比如一个执行客户服务的AI Agent,当然需要在过程中与使用者有多次交互。
深入AI Agent架构
OpenAI应用研究主管LilianWeng把AI Agent总结为:
Agent = LLM + 记忆 + 规划技能 + 工具使用
简单的说,AI Agent就是在LLM作为智慧的“大脑”的基础上通过增加Memory,Planning,Tools三大能力,从而构建一个具有自主认知与行动能力的完全“智能体”。
我们来用一些实例逐步认识这几大能力。
-
Planning:任务规划与决策
借助于LLM将大型任务分解出多个子目标与小任务,并设定与调整优先级。这一部分主要涉及到任务分解与自我反思。
【任务分解】 借助LLM自身算法优化以及提示工程来将复杂任务分解成多个小型的、简单任务。这里面经常使用的一种提示词技术是 思维链(Chain-of-thought)和思维树(Tree-of-thought) ,也就是通过提示LLM“ 一步一步的思考 ”,来把复杂任务拆分成多个步骤的、小任务树来完成。
【自我反思】 能够在任务执行过程中,不断完善自身的任务决策,甚至纠正以前的错误来不断迭代改进。
这种自我纠正其实我们在OpenAI的chatGPT的code interpreter的使用中可以看到类似能力:
在AI Agent执行任务的过程中,“自我反思”更多的体现在任务过程中,依据外部环境的交互结果(比如搜索引擎的反馈)来进行思考与下一步任务决策。最常提到的一种范式是ReAct:
Resoning and Acting ,推理与行动。这种方式的主要思想是: 通过把行动(Act,通常使用工具)获取的外部知识,反馈给LLM帮助推理(Reason)并做出下一步的行动决策 。
以下是一个典型的ReAct范式下LLM推理并完成一个任务的过程:
可以看到,一个符合ReAct的行动流程里,包含多次Thought-Act-Obs的迭代,也就是思考-行动-观察/分析的反复过程。
Thought(思考): 反映了LLM大模型的思考过程,这体现出了LLM的“大脑“的作用。LLM根据输入或者外部环境反馈生成本次迭代需要完成的行动。比如:
“苹果遥控器最初用来设计控制Front Row媒体中心应用,那么我下面需要去搜索下Front Row这个应用...“
Act(行动): 根据思考的结果采取的具体行动,这个具体的行动最终体现到某个外部工具的使用,实现与外部环境的交互并获得结果。比如:
“使用Google搜索引擎API接口搜索Front Row“
Obs(观察): 从外部行动获取到的反馈信息,用于LLM做出下一步的行动决策。比如:
“无法搜索到Front Row,近似的信息包括Front Row (Software)...”
通过这样的循环过程,最终完成任务。
-
Memory:记忆能力
当前的LLM自身是没有记忆能力的(我们目前看到的大模型上下文能力也是通过会话历史的重新发送而实现)。AI Agent作为一个具备自主完成任务能力的智能体,需要对LLM补充的记忆能力主要包括:
- 一次任务过程中的上下文记忆。比如在任务过程中与大模型LLM的对话历史,会受到大模型窗口大小的限制,比如16K。
- 存储在向量数据库中可随时检索访问的外部数据,用来补充增强大模型自身的训练知识。这种知识通常需要在任务执行过程中通过向量相似算法来进行检索,并交给LLM作为参考。
-
Tools:工具使用
工具的使用是人类一个最显著的特征,也是AI Agent在LLM基础上实现的最重要能力。借助于工具的使用,相当于给LLM安装上了四肢,可以显著的扩展LLM模型的功能。比如:
-
调用其他的AI模型,比如其他的专有任务模型
-
网络搜索引擎,比如Google搜索、Bing搜索
-
常见的开放API,比如天气查询、航班查询
-
企业信息获取,比如产品信息、CRM客户信息
AI Agent的工具使用能力的核心问题不在于工具本身的构建,我们认为需要关注另外两个问题:
-
如何让LLM正确的做出使用工具的决策,即应该在什么时候使用什么工具? 我们知道LLM的唯一输入是提示词,因此需要给予LLM足够的工具使用提示似乎是唯一的办法,而正确性则有赖于LLM自身的推理能力。
-
如何构建正确的工具使用输入信息? 如果你需要使用搜索引擎这个工具,那么你的搜索关键词是什么?显然,这需要LLM结合自身知识、上下文、外部环境进行推理。 再比如,你需要LLM访问你的企业系统,而你的系统输入要求是严谨的JSON格式,那么如何让LLM能够从自然语言推理出符合规范的JSON结构呢?
如何构建AI Agent?
即使有大量的LLM供您选择,集成LLM并提供Agent所必需的其他能力也是具有相当门槛的工作。对于个人来讲,可以直接使用各种开箱即用的AI Agent;但是对于企业来说,往往需要根据自己的业务需要构建符合自身需要的AI Agent,让AI参与到企业流程中实现赋能。
当前,构建符合自己需要的AI Agent总体上看有两种方案:
一种是使用现成的第三方AI Agent构建平台。 通过简单的配置开发,即可 发布AI Agent,或者通过API将Agent接入到自己的应用或门户。这一类平台往往具备较完善的开发工具箱,包括私有知识库的创建、LLM访问、外部工具集成、可视化的流程配置/模拟环境等。
【例1】 oneai.com。允许在企业的私有内容(文档、视频、网站内容等)上提供基于LLM的人工智能服务。比如:你可以把你公司的网站提供给它,然后就可以基于网站内容发布一个客服AI Agent,提供基本的产品咨询服务。制作的AI Agent可以部署到私有环境,也可以支持私有大语言模型。
【例2】 voiceflow.com,一个创建基于对话的业务机器人的平台。即通过对话形式完成服务的AI Agent,比如,你可以通过简单的图形界面在几分钟内创建一个AI旅游行程规划助手、或AI产品在线销售等。同样,在过程中会使用到大语言模型比如chatGPT,也支持对接企业自身的应用,比如下订单。
另外一种是借助于LLM模型的开源应用开发框架。 其中最强大的莫过于Langchain。这是一个LLM的开发框架,旨在解决在开发围绕LLM构建的AI应用/AI Agent过程中的一系列基础工程问题,这里面就包含了上面提到的任务规划、Memory、Tool使用能力,以及类似ReAct这样的思维范式的实现。
由于Langchain为了更好的兼容各种异构环境,以及各种类型的Agent场景(比如ReAct模式或者简单对话模式),导致Langchain较为臃肿与复杂,因此也出现了一些基于Langchain的可视化开发工具,比较知名的一个开源项目是 Flowise ,一个基于Langchain的JS版本来构建LLM应用的可视化工具:
此外,Langchain官方近期也推出了一个新的项目LangSmith,一个让langchain更易于用来构建基于LLM的AI Agent的工程平台。
结束语
以上就是本文的全部内容,AI Agent被很多人视为迈向通用人工智能的重要一步(AGI),也得到很多行业巨擎的重点关注。我们也期待国内企业在关注LLM自身的迭代与升级外,能有更多的AI Agent或相关开发平台被创造与涌现,完善大模型生态链,加速LLM的价值兑现。
转载请联系本公众号获得授权
END
点击下方关注我,不迷路
点击下方体验AI助手