AgentLite: 构建和推进面向任务LLM智体系统的轻量库

24年2月Salesforce AI research的论文“AgentLite:A Lightweight Library for Building and Advancing Task-Oriented LLM Agent System”。

LLM的蓬勃发展推动了LLM智体的快速发展。尽管LLM智体的基础是生成模型,但设计最佳推理策略和智体架构至关重要。相应地,LLM 智体研究从简单的思维链提示向更复杂的ReAct和Reflection推理策略发展;智体体系结构也从单智体生成发展到多智体会话,以及多LLM多智体群聊(group chat)。然而,在现有复杂的框架和库的情况下,创建和评估新的推理策略和智体架构已成为一项复杂的挑战,这阻碍了LLM智体的研究。

作者开源了一个新的人工智能智体库AgentSite,它通过提供一个轻量级、用户友好的平台来简化这一过程,从而轻松创新LLM智体推理、架构和应用程序。AgentSite是一个面向任务的框架,旨在增强智体分解任务的能力,并促进多智体系统的开发。此外,作者还介绍了使用AgentSite开发的多个实际应用程序,以展示其便利性和灵活性。

在推理策略方面,ReAct(Yao,2023a)在激活智体动作执行中思考一步时表现出更高的执行正确性。此外,Reflection(Shinn,2023;Yao,2023b)推理可以增强智体的性能。ReWOO(Xu,2023)将智能体执行中的推理和观察解耦。Divergent Think(Wang et al.,2023)也被证明是一种有效的推理策略,可以让智体探索更多的行动空间。

此外,最优智体体系结构还没有很好地建立起来。Langchain(Chase,2023)作为人工智能智体库之一迅速发展,简化了定制工具智体的开发。BOLAA(Liu,2023b)比较了不同的智体体系结构,并提出使用多智体框架来分解任务的复杂性。AutoGen(Wu,2023)开发了一种多智体对话机制,并将代码执行作为行动。α−UMi(Shen,2024)介绍了一种多LLM智体。它在多智体框架中微调多个小型LLM,甚至优于GPT-4。因此,对智体架构设计进行更多的探索(Liu,2023a;Zeng,2023)对于推进LLM智体的发展至关重要。

Langchain作为开发LLM应用程序的代表性库之一,提供了内置接口来初始化不同类型的智体。然而,对于研究人员来说,Langchain实现新的智体推理类型和架构过于复杂。此外,为新的研究场景重构Langchain库是相当具有挑战性的,因为它在创建智体时会产生大量开销。Autogen虽然在授权LLM智体构建方面取得了成功,但其智体接口中有硬编码的推理类型,这需要大量的重构工作。此外,其智体架构固定为多智体对话和代码执行,这可能不适合新的研究场景和基准。

如表中列出了现有智体构建库的比较,包括AutoGen(Wu,2023)、LangChain(Chase,2023。AgentSite用不到1k行的代码实现了LLM智体的综合能力。

添加图片注释,不超过 140 字(可选)

AgentSite框架概述如图所示:包括Individual Agent和Manager Agent。(a) Individual Agent是AgentSite中的基本Agent类。它由四个模块组成:即PromptGen、LLM、Actions和Memory。PromptGen从智体的内存中组成LLM的提示。LLM生成一个可执行的操作,该操作被转发以获得观察结果。动作和观察都会被记忆起来。(b) Manager Agent是一个individual agent的子类,在TaskPackage(TP)创建中有更多方法。Manager Agent根据给定的任务指令创建子任务和相应的TP。这些TP被依次转发到相关联的各个智体。

添加图片注释,不超过 140 字(可选)

先说Individual Agent。

PromptGen是一个模块,用于构建将发送给LLM以生成操作的提示。智体提示由多个组件组成,包括智体角色描述、智体指令、生成约束、智体操作和示例。AgentSite支持组合这些组件的默认方法。此外,AgentSite允许开发人员为操作生成设计自定义提示。

Actions是智体具有并可以自动执行的类。AgentSite提供BaseAction作为包装类,供开发人员对其操作进行子类化,代码如下:

添加图片注释,不超过 140 字(可选)

action name、action desc和params-doc是智体了解如何使用此操作所需的属性。具体来说,params-doc包含K-V对,用于描述call()方法的所有输入参数。任何自定义的智体操作都应该将此BaseAction子类化,并覆盖call()方法以返回一个字符串观测。请注意,操作名称可能与实际类名不同。通过这种方式,开发人员可以更灵活地针对各种场景进行更改。在执行过程中,LLM生成动作名称及其输入参数,这些参数用于标识可执行动作及其函数调用输入。智体的不同行为也会导致不同的推理能力。例如,具有思考动作的智体相当于ReAct推理策略。

LLM是基于API调用方法。AgentSite有一个简单的BaseLLM包装类,它使用输入字符串进行调用,并返回LLM生成的另一个字符串。
Memory存储智体的动作观察链。在执行过程中,智体获取其历史操作和相应的观察结果,这些操作和观察结果被连接并输入到PromptGen。所有生成的操作和返回的观察结果都会立即保存到内存中。

在AgentSite中初始化单个智体就像下面的代码片段一样简单:

在这里插入图片描述

Individual Agent的典型工作流程如下:首先,用户向智体发出任务指令。然后,智体使用其PromptGen来构造提示,如果执行了多个步骤,则该提示将检索有关此任务的历史操作观察链。在得到完整提示后,LLM生成一个动作供智体执行。这个动作的观察结果会被记忆起来。请注意,BaseAgent具有默认的Finish动作,用于完成当前任务并返回响应。还开发了一个默认的“Think”操作,以启用推理步骤。

再说Manager Agent。

Manager Agent是AgentSite中的另一个核心智体类。它是BaseAgent的子类,具有更强的与其他智体通信的能力。Manager Agent是为AgentSite中的多智体系统开发而设计的。将这个多智体系统设计为分层的。具体来说,一个Manager Agent能够将任务分解为子任务,并将它们发送给不同的单个智体。因此,当添加到此Manager Agent的团队时,每个单独的智体都被解释为此Manager Agent的一种操作类型。因此,如果将一个Manager Agent设置为另一个Manager Agent的团队成员,则可以设计具有更深层次的多智体。

在AgentSite中初始化Manager Agent非常简单明了。开发人员直接传入其他智体作为该Manager Agent的TeamAgents。例如

添加图片注释,不超过 140 字(可选)

Manager Agent的典型工作流程如上图(b)所示。用户向Manager Agent发送任务指令。然后,Manager Agent的每个操作都是将任务分配给其团队智体中的一个来完成。在此步骤中,Manager Agent创建一个Task Package,将此Task Package转发到此团队智体,并等待来自此团队智体的响应。TaskPackage子类化了AgentSite中一个通用的pydantic.BaseModel,它具有以下主要属性:

添加图片注释,不超过 140 字(可选)

任务包(TP)充当管理智体与其下属团队智体之间的通信基础。管理智体的主要作用是集中精力生成子任务并将其委托给这些团队智体。在接收到子任务后,指定的智体负责解决该子任务,并随后将结果传达回Manager Agent。这种模块化方法有助于组装多智体系统,在该系统中,开发人员可以在管理智体的监督下合并多个专门的智体,解决需要不同操作的复杂任务。利用其组件的集体能力可以提高其效率,并为可扩展的多智体系统带来许多潜力。请注意,TP的生成遵循顺序,后续TP的创建基于从其前一个TP的执行中接收到的反馈。这个顺序过程确保系统动态地适应和响应初始任务的不断发展的需求。

如下介绍AgentLite作为code base去开发新的推理类型和架构。

在AgentSite中添加新的推理类型类似于在智体中添加新动作,这很容易实现。例如,推理类型为direct Act的智体具有要执行的动作。相比之下,具有ReAct(Yao et al.,2023a)推理的智体在实际执行之前会采取一个思考步骤。在AgentSite实现中,将这些智体的内部操作(如Think和Plan)以及其他可执行操作(如Search)统一为智体要调用的相同动作模块。AgentSite中Think操作的示例实现如下:

添加图片注释,不超过 140 字(可选)

启用智体的ReAct推理被简化为将此新的ThinkAction添加到智体的动作中,如下所示:

添加图片注释,不超过 140 字(可选)

更具体地说,LLM使用动作名称和动作描述来理解这个动作。开发人员还可以将它们更改为不同的提示。制定了LLM的实际推理过程,生成ThinkAction的参数。通过这种方式,推理过程和工具使用执行是统一的。也可以类似地制定规划和反思动作。

AgentSite还支持新的智体体系结构,可以在Python代码行中轻松配置。它为用户设计智体提供了足够的灵活性。如下是AgentSite两种新智体体系结构。

Copilot智体。Copilot Agent能够接收人工指令并相应地完成任务,这对广泛的实际应用非常有用。它可以通过定义HumanInstruction动作并将新动作添加到智体中来轻松构建。新动作应继承自AgentSite中的BaseAction类,代码如下所示:

添加图片注释,不超过 140 字(可选)

通过将新定义的HumanInput Action添加到Agent中,可以获得能够从人类获取指令的Copilot Agent。构建Copilot Agent的代码如下所示:

添加图片注释,不超过 140 字(可选)

Copilot多智体。AgentSite还支持任意数量的智体进行多智体协调。例如,Copilot Multi-Agent是一个多智体系统,它有一个人工智体来从人工输入中收集指令。使用AgentSite设计此智体结构是通过在Manager Agent中添加HumanAgent来实现的。一个简单的HumanAgent子类来自AgentSite中的抽象智体类,即ABCAgent。

添加图片注释,不超过 140 字(可选)

然后将Copilot多智体定义为一个管理者智体,将该人类智体作为一个团队来控制其他智体。示例代码块如下所示:

添加图片注释,不超过 140 字(可选)

Multi-LLM Multi-Agent。AgentSite还支持不同的LLM作为不同智体的主干。在初始化智体之前,应该提供不同的LLM配置。然后,具有特定LLM的智体定义如下:

添加图片注释,不超过 140 字(可选)

假设有多个具有不同LLM的智体,最终将它们作为一个团队构建为管理智体,如下所示:

添加图片注释,不超过 140 字(可选)

请注意,此ManagerAgent的LLM也可以通过此LLMConfig进行配置。

另外提供一些AgentLite的应用例子,如图所示:这些例子展示了各种各样的特征,包括实际应用(A3,A4)、人在环(A1,A2)、多模态(A1,A2)、创新潜力(A5)。

添加图片注释,不超过 140 字(可选)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值