【基于大模型(LLM)的Agent 应用开发】

文末有福利!

目前,业界一般认为基于大模型的应用集中在两个方向上:RAG 和 Agent,无论哪一种应用,设计、实现和优化能够充分利用大模型(LLM)潜力的应用都需要大量的努力和专业知识。随着开发人员开始创建日益复杂的LLM应用程序,开发流程不可避免地变得更加复杂。这种流程的潜在设计空间可能是巨大而复杂的,《如何构建基于大模型的App》一文给出了一种探索中的大模型应用开发基础框架,基本可以适用于RAG 和Agent。但是,对于面向Agent的大模型应用开发,有没有其独特之处呢?有没有聚焦于Agent的大模型应用开发框架呢?

那么,什么又是Agent 呢?

1. 什么是Agent

这里的Agent 指的是智能体,可以追溯到明斯基的《society of mind》一书。在那本书中,明斯基对Agent的定义有点抽象——“社会中某个个体经过协商后可求得问题的解,这个个体就是agent”。在计算机领域,agent是一种通过传感器感知其环境,并通过执行器作用于该环境的实体,因此,可以把实体定义为一种从感知序列到实体动作的映射。一般认为,Agent是指驻留在某一环境下,能持续自主地发挥作用,具备自主性、反应性、社会性、主动性等特征的计算实体。

智能,是Agent 与环境相互作用的涌现属性。

1.1 Agent 的结构与特性

Agent 的一般结构如下图所示:

Agent 的主要特性有:

● 自主性(Autonomy) :运行无需人类或其它 Agent 的直接干预,对其自身行为及内部状态进行某种控制。

● 社会性(Social Ability) 能通过某种 通信与其它 Agent(或人类)进行交互。交互主要有 三种类型:协作(Cooperation)、协调(Coordination)和协商 (Negotiation)。

● 反应性(Reactivity):能感知环境(可以是物理世界、一个经图形用户接口连接的用户、一系列其 它Agent、Internet 或所有这些的组合),并能对环境的变化及时作出反应。

● 主动性(Pro-activeness):不但能对环境作出反应,能够积极主动地做出使其目标得以实现的行为。

如果尝试对Agent做一点儿形式化表达,可能是这样的: Agent = platform+ agent program platform = computing device + sensor+ action agent program 是 agent function 的真子集

1.2 大模型领域中的Agent

在大模型领域,大模型替代了传统agent 中的规则引擎以及知识库,Agent提供了并寻求推理、观察、批评和验证的对话通道。特别是当配置了正确的提示和推理设置时,单个LLM就可以显示出广泛的功能 ,不同配置的Agent之间的对话可以帮助以模块化并以互补的方式将这些广泛的LLM功能结合起来。

开发人员可以轻松、快速地创建具有不同角色的Agent,例如,使用Agent来编写代码、执行代码、连接人工反馈、验证输出等。通过选择和配置内置功能的子集,Agent的后端也可以很容易地进行扩展,以允许更多的自定义行为。
在这里插入图片描述

2. 什么是Multi-Agent

Multi-Agent(多智能体系统) 是指由多个自主个体组成的群体系统,其目标是通过个体间的相互信息通信和交互作用。

一般地,Multi-Agent由一系列相互作用的Agent及其相应的组织规则和信息交互协议构成,内部的各个Agent之间通过相互通信、合作、竞争等方式,完成单个Agent不能完成的,大量而又复杂的工作,是“系统的系统”。

2.1 Multi-Agent 的系统分类和特点

Multi-Agent 系统(MAS) 主要可以分成以下类别:

Multi-Agent系统的主要具有以下的特点:

  1. 自主性。在Multi-Agent系统中,每个Agent都能管理自身的行为并做到自主地合作或者竞争。
  2. 容错性。Agent可以共同形成合作的系统用以完成独立或者共同的目标,如果某几个智能体出现了故障,其他智能体将自主地适应新的环境并继续工作,不会使整个系统陷入故障状态。
  3. 灵活性和可扩展性。Multi-Agent系统本身采用分布式设计,Agent具有高内聚低耦合的特性,使得系统表现出极强的可扩展性。
  4. 协作能力。Multi-Agent系统是分布式系统,Agent之间可以通过合适的策略相互协作完成全局目标。
2.2 大模型领域中的Multi-Agent

具体而言, 在基于大模型的应用领域中,当复杂任务被分解成更简单的子任务时,LLM已经被证明了拥有解决复杂任务的能力。Multi-Agent 的通信与协作可以通过“对话”这一直观的方式实现这种子任务的分拆和集成。

为了使基于大模型的Agent适合于Multi-Agent的对话,每个Agent都可以进行对话,它们可以接收、响应和响应消息。当配置正确时 ,Agent可以自动与其他代理进行多次对话,或者在某些对话轮次中请求人工输入,从而通过人工反馈形成RLHF。可对话的Agent设计利用了LLM通过聊天获取反馈并取得进展的强大能力,还允许以模块化的方式组合LLM的功能。

3. 基于大模型的常见Agent 和 Multi-Agent 系统
3.1 单Agent 系统

基于大模型的常见单Agent 系统包括:

  • AutoGPT:AutoGPT是一个AI代理的开源实现,它试图自动实现一个给定的目标。它遵循单Agent范式,使用了许多有用的工具来增强AI模型,并且不支持Multi-Agent协作。
  • ChatGPT+ (code interpreter or plugin) :ChatGPT是一种会话AI Agent,现在可以与code interpreter或插件一起使用。code interpreter使ChatGPT能够执行代码,而插件通过管理工具增强了ChatGPT。
  • LangChain Agent:LangChain是开发基于LLM应用的通用框架。LangChain有各种类型的代理,ReAct Agent是其中一个著名的示例。LangChain所有代理都遵循单Agent范式,并不是天生为交流和协作模式而设计的。
  • Transformers Agent:Transformers Agent 是一个建立在Transformer存储库上的实验性自然语言API。它包括一组经过策划的工具和一个用来解释自然语言和使用这些工具的Agent。与 AutoGPT类似,它遵循单Agent范式,不支持Agent间的协作。
3.2 Multi-Agent 系统

基于大模型的常见Multi-Agent 系统包括:

  • BabyAGI:BabyAGI 是一个用Python脚本实现的人工智能任务管理系统的示例。在这个已实现的系统中,使用了多个基于LLM的代理。例如,有一个Agent用于基于上一个任务的目标和结果创建新任务,有一个Agent用于确定任务列表的优先级,还有一个用于完成任务/子任务的Agent。BabyAGI作为一个Multi-Agent系统,采用静态Agent对话模式,一个预定义的Agent通信顺序。
  • CAMEL:CAMEL 是一个agent 通信框架。它演示了如何使用角色扮演来让聊天Agent相互通信以完成任务。它还记录了Agent的对话, 以进行行为分析和能力理解,并采用初始提 示技术来实现代理之间的自主合作。但是,CAMEL本身不支持工具的使用,比如代码执行。虽然它被提议作为多代理会话的基础设施,但它只支持静态会话模式。
  • Multi-Agent Debate:Multi-Agent Debate试图构建具有多代理对话的LLM应用程序,是鼓励LLM中发散思维的有效方式,并改善了LLM的事实性和推理。在这两种工作中 ,多个LLM推理实例被构建为多个Agent来解决与Agent争论的问题。每个Agent都是一个LLM推理实例,而不涉及任何工具或人员,并且Agent间的对话需要遵循预定义的顺序。
  • MetaGPT:MetaGPT 是一种基于Multi-Agent对话框架的LLM自动软件开发应用程序。他们为各种gpt分配不同的角色来协作开发软件,针对特定场景制定专门的解决方案。

在了解了Agent 和 Multi-Agent 的基本概念以及常见系统之后,如何开发一个基于大模型的Agent应用呢?上个月(2023年9月),微软提出了一个Autogen 的开源框架,为开发LLM的Agent 应用提供了有价值的参考。

4. 基于Multi-Agent的LLM 应用开发框架:Autogen

AutoGen 是一个用于简化 LLM 工作流的编排、优化和自动化的开发框架。它提供了可定制和可对话的Agent,利用 LLM 的最强功能,如 GPT-4,同时通过与人和工具集成以及通过自动聊天在多个Agent之间进行对话来解决它们的局限性。

4.1 Autogen 的典型示例

Autogen 使用Multi-Agent会话启用复杂的基于 LLM 的工作流,典型的示例如下:

左图代表基于AutoGen生成的可定制Agent,可以基于LLM、工具、人,甚至它们的组合。右上代表了Agent可以通过对话来解决任务,右下表示Autogen支持许多额外的复杂对话模式。

4.2 Autogen 的 一般用法

使用 AutoGen,构建一个复杂的Multi-Agent会话系统可以归结为:

  • 定义一组具有专门功能和角色的Agent。
  • 定义Agent之间的交互行为,例如,当一个代理从另一个代理接收到消息时应该回复什么。

这两个步骤都是模块化的,使这些Agent可重用和可组合。例如,要构建一个基于代码的问答系统,可以设计Agent及其交互,这样的系统可以减少应用程序所需的手动交互次数。一个解决代码中问题的工作流如下图所示:

commander接收用户提出的问题,并与writer和saftguard协调。writer编写代码并进行解释,tguard确保安全,commander执行代码。如果出现问题,该过程可以重复,直到问题得到解决。

5. 小结

Agent 是与大模型主动交互的一种重要程序形式,而Multi-Agent则是多个Agent利用大模型完成复杂任务的系统机制。微软的AutoGen 是一个开源的、社区驱动、面向Multi-Agent会话的项目,还在在积极发展中。AutoGen 旨在为开发者提供一个有效且易于使用的框架来构建下一代应用程序,并且已经展示了构建创造性应用程序的良好机会,为创新提供了广阔的空间。

那么,如何系统的去学习大模型LLM?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~ , 【保证100%免费

在这里插入图片描述

篇幅有限,部分资料如下:
👉LLM大模型学习指南+路线汇总👈

💥大模型入门要点,扫盲必看!
在这里插入图片描述
💥既然要系统的学习大模型,那么学习路线是必不可少的,这份路线能帮助你快速梳理知识,形成自己的体系。
在这里插入图片描述

👉大模型入门实战训练👈

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

👉国内企业大模型落地应用案例👈

💥《中国大模型落地应用案例集》 收录了52个优秀的大模型落地应用案例,这些案例覆盖了金融、医疗、教育、交通、制造等众多领域,无论是对于大模型技术的研究者,还是对于希望了解大模型技术在实际业务中如何应用的业内人士,都具有很高的参考价值。 (文末领取)

在这里插入图片描述
💥《2024大模型行业应用十大典范案例集》 汇集了文化、医药、IT、钢铁、航空、企业服务等行业在大模型应用领域的典范案例。

在这里插入图片描述

👉LLM大模型学习视频👈

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

在这里插入图片描述

👉640份大模型行业报告👈

💥包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

👉获取方式:
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

在这里插入图片描述

  • 19
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值