简介

文章详细介绍了大模型Agent的定义、多种模式及优势,包括降低开发门槛、简化流程、提供多样化交互和协同完成任务能力。文章还提供了系统学习大模型AI的路径和资源,帮助读者从入门到实战,掌握前沿技术,提升个人竞争力。


一、什么是Agent

首先,要深入探讨这“为什么要做Agent”这个问题之前,我们先来看一下什么是Agent?也就是Agent的定义是什么?有很多人说,这还有什么好定义的,不就是大模型调用API吗?不,这只是对Agent概念的一个简单的认知,我们还是非常有必要了解一下真正的Agent的含义是什么。

目前,国内很多厂商和平台将Agent翻译为“智能体”,但我想说的是,这种翻译并不完全准确。如果从最原始的词典里去查的话,Agent这个英文单词实际上是代理的意思。这里的代理,我个人理解的含义指的是让大模型“代理/模拟”「人」的行为,使用某些“工具/功能”来完成某些“任务”的能力。所以,你会发现国外使用Agent这个词来代表让大模型调用工具或功能帮人完成某些事情的过程,其实还是比较形象的。因此,只要符合这个定义的,其实就是一种Agent。

我们可以看到有许多大厂、独角兽公司、研究所、高校,也给Agent下过许多定义,比较经典的一个定义是OpenAI的研究主管Lilian Weng给出的定义是:Agent = 大模型(LLM)+ 规划(Planning)+ 记忆(Memory)+ 工具使用(Tool Use)[1]。这个定义实际上是从技术实现的角度对Agent进行了定义,它指的是要实现一个Agent,就需要支持这些能力,它需要基于大模型,需要有规划的能力,能思考接下来要做的事情,需要有记忆,能够读取长期记忆和短期记忆,需要能够使用工具,他是将支持这些能力的集合体定义为了Agent。

图1 按照规划、记忆、工具、动作分解的Agent定义(OpenAI)

另外的一个定义是复旦大学NLP团队给出来的,他们认为Agent的概念框架包括三个组件:大脑、感知、行动[2]。大脑模块作为控制器,承担记忆、思考和决策等基本任务。感知模块从外部环境感知并处理多模态信息,而行动模块则使用工具执行任务并影响周围环境。比如:当人类询问是否会下雨时,感知模块将指令转换为大模型可以理解的表示,然后,大脑会根据当前天气和互联网天气报告开始推理,最后,行动模块作出回应并将雨伞递给人类。通过重复上述过程,Agent可以不断获得反馈并与环境互动。

图2 按照环境、感知、大脑、动作分解的Agent定义(复旦NLP)

其实这些各种版本的定义实际上是对我们刚才所说的Agent代理「人」做某些事情的一个更细致的拆解而已,大家仔细想想,人要做某件事情,也是需要根据自己的记忆(学过的知识、当前事情的上下文),需要先规划这个事情怎么做,可能需要做一些思考、问题拆解,这中间也可能会使用各种各样的工具,最终通过某些动作、操作去把把某件事情完成。

因此,国内将Agent翻译为智能体,也是在表达,一个能规划、有记忆、能使用工具的东西,它又不是一个人,也不是一个动物,又不能直接将其描述为一个机器人(因为不一定是机器人形态,但有大脑),所以就给他起了个名字,叫“智能体”。

二、反射模式(Reflection pattern)

以下是该模式的工作流程介绍:

  1. 用户输入查询:用户通过界面或API向agent发送一个查询请求。
  2. LLM生成初始输出:大型语言模型(LLM)接收用户的查询,并生成一个初步的响应。
  3. 用户反馈:用户对初步的响应进行评估并给出反馈。
  4. LLM反射输出:基于用户的反馈,LLM对初步的响应进行反思,即重新评估和调整其生成的输出。
  5. 迭代过程:这一过程可能需要多次迭代,直到用户对最终的响应感到满意为止。
  6. 返回给用户:最终的响应被返回给用户,用户可以通过界面或API接收到结果。

这种模式通常用于提高大型语言模型的交互性和准确性,通过用户反馈不断优化模型的输出。

三、工具使用模式(Tool use pattern)

以下是该模式的工作流程介绍:

  1. 用户输入查询:用户通过界面或API向agent发送一个查询请求。
  2. LLM处理查询:agent内部的大型语言模型(LLM)接收用户的查询,并对其进行处理。在这个过程中,LLM可能需要调用外部工具或API来获取更准确的信息。
  3. 调用工具和API:如果查询需要额外的信息或数据,LLM会调用存储在vector数据库中的工具和API来获取这些信息。
  4. 生成响应:LLM根据从工具和API获取的信息生成一个响应,这个响应可能是文本、表格或其他格式的数据。
  5. 返回给用户:最后,生成的响应被返回给用户,用户可以通过界面或API接收到结果。

这种模式通常用于增强大型语言模型的能力,使其能够访问外部资源以提供更全面和准确的回答。

😝 一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

在这里插入图片描述

四、ReAct模式(ReAct Pattern)

以下是该模式的工作流程介绍:

  1. 用户(User):用户向系统提出查询(Query),例如需要完成的任务或请求。
  2. LLM(Reason):接收到用户的查询后,推理型语言模型(LLM - Reason)会分析查询并生成相应的策略或计划。
  3. 工具(Tools):根据生成的策略或计划,系统调用相应的工具来执行具体的操作。
  4. 环境(Environment):工具执行操作后,将结果反馈给环境。
  5. LLM(Generate):环境返回的结果被反馈给生成型语言模型(LLM - Generate),生成型语言模型根据结果生成最终的响应。
  6. 响应(Response):生成型语言模型生成的响应返回给用户。

这种模式通过结合推理型语言模型和生成型语言模型,实现了从用户查询到最终响应的完整闭环。推理型语言模型负责策略生成,生成型语言模型负责结果解释和响应生成。

五、规划模式(Planning Pattern)

以下是该模式的工作流程介绍:

  1. 用户(User):用户向系统提出查询(Query),例如需要完成的任务或请求。
  2. 计划器(Planner):接收到用户的查询后,计划器会分析并生成一系列任务(Generated tasks)。这些任务可能是具体的执行步骤或子任务。
  3. 生成的任务:计划器生成的任务会被传递给执行者(ReAct Agent)。
  4. 执行者(ReAct Agent):执行者根据生成的任务执行单个任务,并将结果返回给计划器。
  5. 结果反馈:执行者执行完一个任务后,会将结果反馈给计划器。如果所有任务都已完成,则计划器会确认任务完成(Finished?)。
  6. 响应(Response):计划器根据任务完成情况和结果,生成最终的响应(Response),返回给用户。

这个模式确保了任务的有序执行和结果的及时反馈,从而实现用户需求的有效处理。

六、多智能体模式(Multi-agent pattern)

以下是该模式的工作流程介绍:

  1. 用户(User):用户向系统提出查询(Query),例如需要完成的任务或请求。
  2. 项目经理代理(PM agent):接收到用户的查询后,项目经理代理(PM agent)会分析并分配任务给其他代理。
  3. DevOps代理(DevOps agent):项目经理代理将任务分配给DevOps代理(DevOps agent)。
  4. 技术负责人代理(Tech lead agent):DevOps代理将任务进一步分配给技术负责人代理(Tech lead agent)。
  5. 软件开发工程师代理(SDE agent):技术负责人代理将任务分配给软件开发工程师代理(SDE agent)。
  6. 执行任务:每个代理根据分配的任务执行相应的操作,并将结果反馈给上一级代理。
  7. 结果反馈:最终,所有代理完成任务后,将结果反馈给项目经理代理。
  8. 综合响应:项目经理代理综合所有代理的结果,生成最终的响应(Response),返回给用户。

这种模式通过多个代理协同工作,可以更高效地处理复杂任务,确保任务的有序执行和结果的及时反馈。

01.Agent的优势

在文章的开头,我列出来了很多人反馈的Agent的几大挑战或者说缺点,但任何新兴事务或者技术在发明初期都会存在这样或者那样的问题或者缺点,如果只看缺点,不看优点,可能很难看清事务发展的方向。

举个例子,就像第一次工业革命的时候,蒸汽火车被发明,相比前一代交通工具马车,火车的缺点是什么呢?它的缺点主要是只能沿着固定轨道走,比较费煤炭,或者速度相比马车太快,容易出现交通事故等等。但是,火车最终还是发展了起来,而马车反而被时代所抛弃,如果仅仅是因为看到火车更容易出现的这些问题,就停止对火车的发展,显然是非常武断和草率的。因为,相比马车来讲,火车速度更快,效率更高,跑起来更稳定,乘坐体验更好。而马车速度慢、十分颠簸,更重要的是驾驭马车是需要很高成本的,需要有骑马的技巧,还需要驯服马匹,毕竟动物没有机器那么容易控制。

图3 马车vs火车,第一次工业革命带来的交通工具的变革

那么,Agent的优势在哪里呢?Agent可以“代理/模拟”「人」来完成相关事情,它有一个非常聪明的大脑,甚至在很多领域比人都聪明,所以,从这个角度来看,Agent的出现,其实是“解放了人的生产力”,所以,从这个角度来说,Agent其实是一个极大提升效率的生产力。具体地,体现在下面几个方面,我将逐一展开分析。

02.降低应用开发门槛

首先,使用Agent智能体的第一个优势是降低了应用开发的成本和门槛。在工作和生活中,我们很多时候存在很多的需求,这些需求如果想要满足,要么就是寻找已经造好的轮子(比如现成的平台或APP),要么就是自己动手DIY一个定制化的轮子,那么就涉及到一个应用开发的问题。

过去,想要实现一个功能,我必须是一个专业的开发人员,必须能够编写专业的代码。但现在,如果你使用Agent而不是传统的硬编码方式,那么首先的好处就是你不需要编写代码,这降低了门槛。也就是说,如果我不是专业的研发人员,我是一个产品经理,或者是一个运营人员,我也可以通过自然语言描述prompt的方式实现一个Agent,来满足我的个性化需求的开发。这是需求开发的巨大的效率提升,也是应用开发的门槛的大幅降低。这是Agent与传统开发范式相比,最大的区别。

这么单纯的讲概念,大家体感还是会不够深,这里我类比两个经典的Case,第一个是字节跳动推出的剪辑软件剪映,它极大地降低了自媒体创作者制作视频的门槛。

图4 在剪映(专业版)中可以很方便的剪辑视频,AI识别字幕

在以前,拍摄视频、剪辑视频需要专业的技巧,尤其是剪辑视频,成本非常的高。你不仅仅是将视频切割成多个片段或者组合片段,更重要的是,还需要做各种转场、加各种元素、特效,甚至还要添加字幕。早期的字幕都是需要在软件里面一个时间帧一个时间帧进行插入和编辑的。但是现在有了剪映,它与传统软件最大的区别就是剪映加入了大量的模板和AI功能,极大地降低了普通人创作视频的难度。它除了提供了丰富的转场模板和特效,你可以直接使用,它更重要的是提供了许多AI带来的功能,比如AI快速剪辑、AI生成素材,甚至AI添加字幕。原来给一段视频添加字幕可能需要一天的时间,现在使用剪映的AI加字幕,几分钟就可以完成。人只需要检查一遍,调整一些小瑕疵,视频就剪辑完成了。这是一个内容创作门槛的巨大降低,使得视频创作越来越简单,让更多原本不能或不会制作视频的人能够制作出好的短视频。抖音、b站、小红书等短视频/内容平台能做的这么火爆,除了自身APP的运营推广之外,降低视频制作门槛,绝对是非常之重要的一个方面,只有提高了内容创作的生产力,才能带来更多内容,真正的让技术不再是门槛,发挥创意成了人要考虑的、最重要的事情,人人都是剪辑师。

图5 美图秀秀(电脑版)中支持的许多功能是基于AI增强的

同样的类似的Case,还有美图秀秀。早年如果你想修图,你必须学习Photoshop,这也是为什么修图也叫P图的原因,因为其首字母就是P开头,要想修图就必须要会用这款软件。你需要学习Photoshop复杂的抠图功能和调色、调光能力。现在有了美图秀秀,你只需要打开APP,它就提供了一系列低成本的工具和AI能力,甚至能够快速让你的图片一键变美。无论是变瘦、磨皮变美,都可以分分钟做到,你要做的只是需要选择一下,点击一下,就可以完成。所以现在修图,真的不需要再去找专业的修图师,完全可以通过这些APP自己完成图片的美化和创作,同样的让P图技术不再是门槛,人人都是修图师。

而在大模型时代,Agent的目标是解放需求开发的生产力。假如你想要做一个APP、一个网站,或者一个小程序来满足个人需求,你以后应该也几乎不需要专业的软件开发团队来完成了,通过Agent,即使你是一个不懂前端、后端、算法,也不懂产品设计的人,也能轻松地用大模型做出一款GenAPP(生成式APP),让代码开发、参数配置的技术不再是门槛。

图6 通义智能体平台上有着许多Agent,他们其实都是GenApp

其实我们可以看到,现在有包括我们在内的很多头部厂商或独角兽已经在加大投入做Agent平台了,这些人的目标也是致力于让更多普通人通过简单的自然语言描述和极为简单的配置,最低成本地实现一个能够解决更复杂问题、执行更复杂任务的Agent。所以这个事情已经不是在未来了,而是已经是进行时了,相信不在远的将来,我们会迎来GenAPP的大爆发时代,人人都是开发者。

03.简化流程复杂度

使用Agent的第二个优势是简化流程复杂度。大模型的引入,可以像“胶水”一样连接各个模块,比如能够自动处理参数转换、能够自动完成一些校验逻辑,这就极大的减少了流程配置的工作量。这种自动化的能力使得开发过程更加高效。

图7 传统的流程编排过程过于复杂

比如,在流程中通常会调许多API,如果是传统的流程编排,前一步的API返回结果传进来,与后一步API输入参数之间的映射,你必须得严丝合缝,包括变量类型和内容,你必须要有完备的转换过程,才能保证不会出现任何bug或错误。但有了Agent之后,你不需要做那么完备,你可以让大模型在中间像“胶水”一样去连接各个模块。大模型就像「人」一样,看到问题、API接口、参数时,它会自然而然地做转换。它可以把用户的问题输入内容自然地转换到相应的API入参上。所以大模型或Agent的出现,它可以做这个粘合剂,把那些不完备的地方,通过模型本身的强大理解能力给弥补完备。就是这样的一个能力,会大大降低一个流程或一个GenApp的构建复杂度。上一步是构建降低了构建的门槛,不但不用写代码和配置,只需要写字就可以,一些不必要的中间过程逻辑也可以不写,只需要关注在最主要、最核心的流程上即可。

对于流程复杂性这一点,在算法模型层面尤为明显。例如,如果我想用传统的方式开发一个APP或功能,需要开发许多小模型来完成某些功能。比如,在一些流程的开头,可能会需要一个“路由”模块,在以往的情况下,这需要训练一个单独的路由模型,从而来判断问题或者意图需要路由到哪个分支。其他类似的,在流程中间涉及到需要算法模型参与识别的地方,我仍然需要去调用或者SFT一些小模型来处理这些单独的任务。每个单独的小模型的训练,都需要收集相应的数据集,构建相应的Label标签,然后训练,最终部署,并且这些小模型最终也就只能做这么一件事情。

但是,基于大模型的Agent实际上就极大的避免了这种流程的复杂性并降低了成本,你完全可以通过prompt来让大模型完成一个简单的操作。大模型甚至自己可以给自己写prompt、自己分解一个复杂问题,分解完之后它自己判断是否需要路由、是否需要中间调用某些识别能力、是否需要做某些判断,它自己完全就可以做好这些事情。也就是说,大模型以及Agent的出现,它不需要你去做一个这样非常“完备”的流程。

04.交互方式多样性

第三点个优势,是关于交互层面的,也就是说是LUI(自然语言交互界面)还是GUI(图形交互界面)的问题。诶?等等,不对啊,在前面不是说,大模型是基于自然语言进行交互的,因此纯文本交互不友好,这应该是Agent的一个缺点吧!怎么放在优势里面讲了呢?其实,与其说是一个缺点,不如说这是一个“误区”。其实,Agent智能体并不局限于自然语言交互,它是可以处理多种形式的输入和输出,包括图形界面和动作执行。这意味着Agent可以适应不同的应用场景,提供更灵活的解决方案。

前面讲过,什么是Agent?让大模型“代理/模拟”「人」的行为,使用某些“工具/功能”来完成某些“任务”的能力就可以定义为Agent。那么,你会发现,这里面其实并没有提到交互的问题,并没有来说必须是自然语言交互还是什么其他形式的交互,所以,自然语言的交互界面,只是人和大模型、接口和大模型之间的交互方式,并不意味着Agent也要以自然语言的形式与大模型进行交互。

给大家看几个非自然语言交互的Agent的例子,大家就能看明白了。比如,国外大模型厂商Anthropic发布过一款控制电脑使用的Agent[3],其效果比较惊艳,大家可以点此查看演示视频(https://www.youtube.com/watch?v=ODaHJzOyVCQ):

图8 Anthropic研发的可以自主控制电脑的Agent

Anthropic的这个Agent,他可以帮我打开电脑上的某个浏览器,甚至都不需要指定浏览器的名称,只说帮我打开浏览器,帮我输入某个网址或打开某个网页搜索什么关键词,点击某个步骤就可以。可以完全用自然语言描述这个需求,描述完毕后,大模型在实际运行的时候,它会直接上去操作。它通过截图,然后给大模型通过多模态识别去获得屏幕上的内容,然后自己判断屏幕上哪个图标是浏览器,自己完成点击操作,然后自己去找哪个地方是地址栏,自动把你说的网站转换成网址填进去,然后帮你搜索东西。整个过程,只有输入是自然语言,但输出其实就是一个系列的操作动作的执行。

再比如,微软发布了十款非常受欢迎的Agent[4],其中有一个是供应链分析Agent,它会通过自主跟踪供应商的表现,检测供应链延迟并做出响应,帮助企业优化供应链,让采购团队摆脱耗时的手动监控,减少供应链中断带来的额外成本。

图9 微软供应链分析Agent可以自主分析供应链延迟检测

在这个Agent里,输入都不是自然语言了,它们可能是一些预设的要求、选项或表单,让用户去交互。交互完毕后,它背后会整理成一个自然语言给到大模型,让大模型完成一些任务。比如,帮我分析这一周的销售情况,你可能就在前端的表单里选个时间,但背后的执行、分析、报告生成过程,是大模型自主思考去完成的。并且,最终生成出来的报告也并非是以自然语言形式,它是直接渲染成了一个图表、表格等在内的各种展示形式的集合体,甚至还有一些曲线预测这样的内容。

综上所述,挑战Agent是以对话形态为主的交互,其实是一个伪命题。Agent并不是一定是以纯自然语言形式去进行交互的,并且这在Agent的定义里面本身也是没有的。

05.协同完成复杂任务

最后,有一个现在非常火热的Agent热点,就是多Agent(Multi-Agent),Agent的存在形式并不是仅仅是单一的功能了,而是可以进行各种各样的组装、协同、竞争[2]。

图10 多Agent的协同模式,如合作方式、竞争方式等

比如多个Agent之间进行组装完成一些复杂的场景,比如在服务领域的某些工单里面,经常会出现客户在同一个工单中连续问多个问题,这个时候,就完全可以调用多个处理不同问题的Agent参与决策进行合作,就像人一样进行接力,把问题解决。有些时候,也可能会面临一些疑难杂症的问题,也可以有多个领域相关的Agent来进行专家会诊,甚至Agent之间都可以相互交流,最终讨论、解决同一个问题。

Agent之间也可以进行竞争,多个子任务Agent给出了多版不同方案,由一个决策Agent或者人来最终决定要使用哪款子任务Agent给出的方案等等。

甚至还有不少人在设想未来会出现由多个Agent组成的社会,甚至人类也可以参与其中。下面这张图就展示了这个多Agent社会中的一些特定场景。在厨房中,一个Agent负责点菜,另一个Agent负责规划和解决烹饪任务。在音乐会中,三个Agent正在合作参与乐队演出。户外有两个Agent正在讨论灯笼制作,计划所需的材料和财务,并选用工具。人可以参与这个社会活动的任何阶段,这个社会就仿佛一个小的世界一般。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝 一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

在这里插入图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝 一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐