EVOAGENT: Towards Automatic Multi-Agent Generation via Evolutionary Algorithms

news2025/3/4 19:05:54

题目

EVOAGENT:通过进化算法实现多智能体自动生成

在这里插入图片描述

论文地址:https://openreview.net/pdf?id=05bBTmRj9s
项目地址:https://evo-agent.github.io/

摘要

    强大的大型语言模型(LLM)的出现激发了一种新的趋势,即构建基于LLM的自治代理来解决复杂的任务,尤其是多代理系统。尽管取得了显著的进步,我们注意到现有的工作严重依赖于人设计的框架,这极大地限制了代理系统的功能范围和可扩展性。如何将专门的智能体自动扩展到多智能体系统以提高任务求解能力仍然是一个重大的挑战。本文介绍了EVOAGENT,一种通过进化算法将专家代理自动扩展到多代理系统的通用方法,从而提高基于LLM的代理在解决任务时的效率。具体而言,我们将现有的代理框架视为初始个体,然后应用一系列进化算子(例如,变异、交叉、选择等。)来生成具有不同代理设置的多个代理。EVOAGENT可以推广到任何基于LLM的代理框架,并且可以自动将现有的代理框架扩展到多代理系统,而无需任何额外的人为设计。各种任务的实验结果表明,EVOAGENT可以自动生成多个专家AGENT,并显著增强基于LLM的agent的任务求解能力。

介绍

    最近,大型语言模型(LLM)的出现[1,2,3,4]在解决语言理解、推理和生成任务方面显示出非凡的能力。基于LLMs的基础,许多研究工作[5,6,7,8,9,10,11]已经发现,通过赋予多种高级技能(例如,规划,工具,记忆等),我们可以开发更强大的自主代理来解决更具挑战性的任务。因此,如何设计和利用基于LLM的自治代理来处理更加多样和复杂的现实世界应用引起了人们极大的兴趣。

    一般来说,许多现实世界的场景通常是复杂的,包含各种挑战性的任务,超出了单个代理的能力。为了解决这一点,我们注意到人类社会是由庞大的个人组成的,每个人都拥有自己独特的特征。通过选择、协调和与不同的个人合作,人类可以组成一个高效的团队来处理现实世界中复杂的任务。因此,开发多智能体协作框架的趋势越来越明显(例如,MetaGPT [10],AutoGen [12],Camel [13],生成代理[11])来模拟人类行为,以解决复杂的任务。通过开发一系列具有不同设置的专家智能体,多智能体系统使我们能够揭示多智能体之间的紧急能力,并协同他们的专业知识以实现卓越的性能,类似于模拟人类群体。然而,值得注意的是,在大多数(多主体)框架中,它们的设计严重依赖于手工设置,包括角色、任务范围、技能和提示设置。虽然我们承认细致的人工设计对于指导基于LLM的代理理解任务非常有用,但由于昂贵的人工,它也限制了扩大代理数量以进一步提高性能。考虑到基于LLM的自治代理的日益流行,如何创建一个通用的代理生成范例来自动构建多代理系统已经成为一个关键的挑战。

    在本文中,我们介绍了一种新的方法,EVOAGENT,它将代理的生成描述为人类社会中的进化过程[14]。具体来说,为了协调人类社会,每一个代理人都可以被看作是能够连续几代繁衍其种群的个体。在这种机制的激励下,我们可以模拟这样一种人类行为,基于任何预定义的智能体自动生成多个智能体。因此,EVOAGENT可以被认为是一种一次性的代理生成方法,它从作为初始代理的专门代理开始,然后将其设置(例如,角色、技能、提示等)视为要进化的变量。通过进化算法的一系列操作(如选择、交叉、变异),EVOAGENT可以在初始专门化智能体的基础上自动创建多个进化智能体。此外,EVOAGENT不局限于代理框架的基础设施,因为它是一种通用的多代理生成方法。

    因此,它可以应用于任何代理框架,并扩展到多代理系统,而不需要任何额外的人力。我们在多个数据集上进行实验,包括基于知识的问答和多模态推理(4.1)、交互式科学求解(4.2)和真实世界复杂规划(4.3)。实验结果表明,EVOAGENT可以生成具有不同技能的多个智能体,并利用它们的能力在不同的场景中不断提高模型性能。

    此外,为了验证EVOAGENT在创建大规模智能体方面的可扩展性,我们还将我们的方法应用于一些对话场景(如辩论),结果也表明了EVOAGENT在生成多个不同智能体方面的潜力。总体而言,本文的贡献可以总结如下:我们介绍了EVOAGENT,一种简单通用的多智能体生成方法,用于提高基于LLM的智能体在解决任务时的效率。EVOAGENT可以自动生成新的专家代理,适用于任何代理框架。

    我们将代理生成处理公式化为一个进化管道,它包含多个操作符(例如,选择、交叉、变异)来生成代理群体,而无需额外的人工监督。我们对各种任务进行了广泛的实验,并展示了我们的EVOAGENT的有效性、可扩展性和通用性。特别是,EVOAGENT可以通过生成更专业的代理,在具有挑战性的开放世界场景和复杂的现实世界规划中显著增强基于LLM的代理的性能。

相关工作

    基于LLM的自主代理随着强大的大型语言模型的出现[1,2,3,4],许多研究人员努力开发由多种高级LLM技能支持的高级自主代理5,6,7。其中一些还通过设计多个特定的角色,将agent框架扩展到多agent协作(如MetaGPT [24],Generative Agents [11],AutoGen [12],Camel [13],AgentVerse [25]等)。这些系统在处理大量具有挑战性的任务时也表现出令人满意的性能。然而,值得注意的是,大多数流行的代理框架严重依赖手工设计。这些系统所需要的大量人力也限制了代理处理意外挑战的适应性和灵活性[26,27,25,10]。在本文中,我们提出了EVOAGENT,这种方法可以应用于任何基于LLM的AGENT框架,并且很容易扩展到多agent系统。通过使用EA,我们的方法允许我们迭代地生成和优化具有不同设置的多个代理代理生成最近的研究表明,向基于LLM的自治代理分配角色或角色可以影响他们在生成任务中的行为和表现[28,29,30,13]。

    当前的方法主要涉及手动分配这些角色,并将多代理协作限制到单个或固定的角色,这需要大量的人力,并且阻碍了推广[13,12,24,10]。为了解决这个问题,一些像AgentVerse [25]和AutoAgents [31]这样的框架被提出来自动生成无限的代理来完成协作任务。然而,这些方法仍然严重依赖于人为设计的干预,这限制了它们的可扩展性和功能性。例如,AutoAgents需要代理设置来满足“计划者-代理观察者-计划观察者”框架。同时,AgentVerse制定了“专家招募-协同决策-行动执行-评估”的管道来构建智能体。这些架构也限制了设计代理的任务范围。相比之下,EVOAGENT可以通过使用EAs将当前的AGENT框架自动公式化为具有高质量生成的专家agent的多agent系统,具有灵活性,可以适应各种agent框架。

方法

    一般来说,人类社会由来自不同文化的各种各样的个人组成,包括几代人。为了解决特定的任务,人类社会通常会涉及许多专家个体,并聚合他们的专业知识以获得更好的答案。因此,它可以被认为是促进多智能体协作的基础。为了实现这一点,如何自动创建多个代理将是非常关键的。受进化论的启发,我们将智能体的生成表述为一个进化过程,以帮助我们在没有任何人类劳动的情况下生成多个智能体。

在这里插入图片描述

初步

    进化算法(EA) [32,33],是一种通用算法,用于模拟进化中的生物行为,包括繁殖、突变、重组和选择。通过引入“适者生存”机制的遗传算法[34,35,36,37,38],也可以认为是一种改进个体的优化方法。因此,进化算法也属于非参数学习方法,可以适用于任何框架。我们需要做的就是定义哪些部分应该进化,以及相应的进化算子。我们还注意到最近的一些情况作品[39,40]指出了进化算法的潜力,可用于优化离散提示。因此,在本文中,我们探索如何制定代理生成问题作为一个进化任务。

EVOAGENT

    通过将各种设置分配给特定技能(例如,角色扮演、计划、工具等),代理可以展示不同的任务解决能力。因此,我们的目标是产生一群具有不同技能的智能体,建立有效的多智能体系统。为了实现这一点,我们将每一个专门的代理人视为一个独特的个体,并将每一项技能表示为有待进化的部分,类似于人类。因此,我们认为智能体的产生过程是一个进化过程。

在这里插入图片描述
图2 EVOAGENT的图示。利用生成的多个专家代理,EVOAGENT可以生成更好的旅行计划,以满足用户的偏好。对于EA操作者,交叉可以通过调整现有的细节(例如,标记为蓝色的信息)来改善父代理的结果。突变可以引入新的变化,通过生成具有新特征(例如,标记为红色的信息)的子代理来细化父代理的结果。

表1:逻辑网格拼图(Logic)、琐事创意写作(Writing)和代号协作(Codenames)不同方法的LLMs结果。最好的结果用粗体表示,次好的用下划线表示。
在这里插入图片描述

    具体来说,现有的框架通常将代理技能描述为语言。因此,我们可以使用LLM来模拟进化算子,以更新代理的系统设置并创建新的代理。在这里,我们将EVOAGENT的过程表述为一个四阶段管道:

    第一步:初始化要进行EAs,我们首先需要确认我们的初始代理。

    在这里,我们使EVOAGENT能够从预定义的代理框架(例如,MetaGPT [10]和AutoGen [12])启动,充当初始(父)代理。此外,我们还定义了该代理的哪些部分应该升级。通常,由于EAs是一种通用算法,EVOAGENT适用于任何代理框架,并将其扩展为多代理框架。然后,我们将在接下来的步骤中探索如何生成新的代理。

    第二步:交叉和变异在第一次迭代中,我们直接使用初始代理作为父代理。然后,我们设计了两种进化算子,即交叉算子和变异算子。对于交叉,我们首先使父代理能够基于用户请求生成结果。然后,基于生成的结果,我们要求LLM检查哪些技能应该改进,然后更新它们。这种机制允许我们在新的环境中生成子代理,而不需要任何人工劳动。此外,我们还需要保证儿童代理和父母之间的多样性。

    为此,我们设计了一个变异操作,要求LLMs比较子代理和父代理,然后修改子代理,使它们与父代理不同,同时保持它们的任务解决能力。基于这些进化算子,我们可以在一次迭代中产生有效和多样的智能体。此外,由于我们还需要进行多次迭代,我们将把上一代生成的所有代理添加到下一次迭代中。接下来将介绍如何在每次迭代中选择这些代理。

    第三步:选择基于上述步骤,我们可以获得多个具有多样化设置的候选代理。为了保证每个代理的质量,我们还引入了类似EAs的选择机制。

    这里,我们使用LLM进行质量检查模块,以检测生成的代理是否满足它继承了父代理的特征并保持了与父代理的差异。我们将在每次迭代中选择N个子代理作为进化代理。

    步骤4:结果更新基于以上步骤,我们获得了许多从父代理演化而来的新代理,但是具有不同的设置。为了提高任务解决能力,我们要求每个子代理生成候选结果,然后使用LLMs将这些候选结果与上一次迭代的结果集成到一个新结果中,类似于自然选择处理阶段。此外,我们可以通过重复从步骤2到步骤4的操作来自动生成更多的代理,直到代理的数量达到我们的目标。

    通过引入EA,EVOAGENT使我们能够自动将现有的代理框架扩展到多代理系统,而无需任何额外的人工设计。该机制还使得EVOAGENT可以适用于任何代理框架,没有任何先决条件。整个过程如图1所示。我们还介绍了算法1中EVOAGENT的细节。

实验

    在本节中,我们将EVOAGENT用于多个应用程序,以说明EVOAGENT可以帮助基于LLM的代理更好地完成多代理生成任务。3此外,我们还证明了EVOAGENT可以适用于支持当前广泛使用的多代理框架,如MetaGPT [10]、AutoGen [12]和Camel [13]。

NLP和多模态任务基准

    为了调整之前的体验(例如,自我完善[41]和独奏表演提示[42]),我们从[42]中选择了三个NLP知识密集型和推理密集型任务以及一个多模态任务:

  • 逻辑网格拼图是一个推理任务,包含200个拼图,以不同房屋中的2至5个不同居住者为特征。目的是根据提供的线索识别一个住户的门牌号。
  • 琐事创意写作是一项包含100个实例的知识密集型任务。这项任务需要一个模型来写一个连贯的故事,同时纳入N个琐事问题的答案。
  • 代号协作是一项有50个实例的推理密集型任务。它包括一个基于给定提示和完整单词列表识别目标单词的模型。
  • MMMU [43]是大学水平、多学科多模态理解和推理的综合基准。MMMU有三个难度级别:容易、中等和困难。我们使用MMMU验证集中的多项选择问题来评估EVOAGENT的基准,该验证集包括跨越30个不同领域的847个问题。

3
图2:GPT-4V和Gemini-Pro在MMMU验证集上使用不同方法的总体结果。我们还在三个难度级别上比较了GPT-4V和双子座-Pro的性能。

    NLP任务的基线,我们选择LLama2-13B-Chat [3],GPT-3.5 [44]和GPT-4 [1]作为我们的骨干网络。我们将EVOAGENT与0-shot学习(直接)、思维链(CoT)提示[45]和自我完善[41]以及个人表现提示(SPP) [42]进行了比较。对于自我细化,我们遵循[41]来设计反馈,并通过三次迭代来细化提示。SPP不是一个多主体协作框架,而是一种激励策略,要求单个LLM通过少量学习来识别多个角色并与之讨论。对于SPP,我们遵循原始设置[42]进行公平比较。对于MMMU,我们选择GPT-4V [46]和Gemini-Pro作为主干,并将EVOAGENT与CoT prompting、Self-Refine和SPP进行比较。4评估指标对于所有基准测试,我们都遵循原始设置中指定的评估指标。具体来说,对于逻辑网格拼图和MMMU任务,我们报告所有问题的准确性。对于琐事创意写作,我们衡量的是琐事问题中正确提及答案的比例。对于代号协作,我们计算来自猜测者的预测词和目标词之间的重叠率作为度量。

    结果和分析在我们的实验中,我们采用代理设置42和43作为初始代理。对于我们的方法,我们将其表示为EVOAGENT(N,T),其中N是每次迭代中生成的群体大小,T是迭代的次数。这里,为了与Self-Refine保持一致,我们将N设置为1,T设置为3,这意味着我们进行三次迭代,每次迭代都会生成一个新的专家代理。我们的结果报告在表1中,我们可以观察到:

  1. 通过使用多个生成的智能体,EVOAGENT可以大大提高LLM在NLP知识和推理任务中的性能。我们还将EVOAGENT与一些预定义的代理生成框架进行了比较,例如AgentVerse [25]和AutoAgent [31]。附录B中显示的结果证明,EVOAGENT甚至比这些代理生成框架更好。
  2. 当使用较弱的LLM(例如,LLama2-13B-Chat)时,SPP通常产生较差的性能,这与[42]中的发现一致。这表明SPP在较小和能力较弱的模型中的有效性有限。然而,EVOAGENT可以在每个LLM之间提供一致的改进,通过使用不同的生成代理来证明其强大的通用性。

    此外,图2显示,与MMMU任务中的CoT提示相比,自精炼(SR)和SPP会降低性能。然而,EVOAGENT可以生成多个领域特定的代理,从而改进多模态模型,以解决各种难度级别的科学问题。

交互式科学求解仿真基准

    与传统的NLP或多模态任务相比,自主智能体通常需要在交互式和开放世界环境中执行类似于人类的问题求解能力。目前,我们选择ScienceWorld [47],这是一个复杂的交互式环境,需要长期记忆、子任务分解以及科学和常识方面的技能。在这里,我们评估了ScienceWorld中的30个科学任务,以展示EVOAGENT在更具挑战性的开放世界环境中解决任务的能力。

    基线和评估指标[48]之后,我们要求LLM通过使用情境学习在每一步执行一个动作5。对于评估,ScienceWorld中的每个任务都包括一些子任务,我们通过计算整个任务完成的子任务来报告结果。

    结果与分析对于EVOAGENT,我们采用[48]中原始设置的代理框架作为初始代理。由于ScienceWorld中的每一步都需要使用EA,为了提高效率,我们将群体规模N设置为1,迭代次数T设置为1,记为EVOAGENT(1,1)。表2中的结果表明:

  1. EVOAGENT还可以将交互式代理扩展到多代理系统,以解决动态开放环境中的完整科学任务,并不断提高LLM的性能。
  2. 我们的方法在短轨迹任务中表现出最大的改进,而在中长轨迹任务中则没有显著的提高。我们认为多智能体系统的能力也会受到更长的环境的影响。
  3. 我们也期望在未来研究长上下文对多智能体系统的影响。一般来说,这些结果也证明了EVOAGENT的通用性,它也可以用于解决开放世界环境中的交互式任务。

真实场景

    基准测试此外,除了在交互式环境中执行动作之外,在复杂和真实的环境中进行规划也是构建自主代理的一项关键技能。为了验证这一点,我们还选择了TravelPlanner [49],这是一个旨在评估现实世界中具有多个约束的复杂规划中的语言代理的基准。

    基线和评估指标[49]之后,我们选择了Mistral-7B [50]、GPT-3.5、GeminiPro [2]和GPT-4作为我们的骨干模型。我们将EVOAGENT与0-shot学习(直接)、CoT提示、SPP和每个主干模型中的自我优化进行了比较。此外,我们还尝试了GPT-3.5的ReAcT方法[51],该方法引入了一个虚拟的“思考”动作,以在行动规划过程中生成子任务。对于评估,我们坚持TravelPlanner的原始指标,报告所有方法的交付率、常识约束通过率、硬约束通过率和最终通过率6。

    结果与分析对于EVOAGENT,我们采用TravelPlanner中的原始设置作为初始代理。表3中的结果表明:

  1. EVOAGENT可以生成专门的代理,例如专注于烹饪体验、交通和景点的代理。因此,生成的旅行计划更符合用户偏好(硬约束)和常识性规则;
  2. 尽管现有范例(例如,CoT、ReAct、Self-Refine、SPP)已经在一些传统的NLP任务中展示了不错的结果,但是它们仍然缺乏在TravelPlanner中处理复杂规划任务的能力。这些结果还表明,仅使用人为设计的提示策略不足以处理复杂的规划任务。
  3. 通过使用EVOAGENT自动生成多个智能体,形成多智能体协作范式,可以开发出更符合用户偏好的更高质量的计划。这也表明了多智能体系统对于复杂规划任务的重要性。

表1 TravelPlanner验证集上不同LLM和规划策略的主要结果。EVOAGENT(N,T)表示每次迭代的群体大小为N,迭代次数为T,最好的结果用粗体表示,次好的用下划线表示。
在这里插入图片描述

消融研究

    为了更好地了解EVOAGENT的价值,我们对TravelPlanner进行了详细的分析,重点关注人群规模的影响和质量检查模块在选择阶段的有效性。

表4:平均常识约束通过率(Com。)和TravelPlanner上消融变体的硬约束通过率(hard)。
在这里插入图片描述

    实验设置我们使用固定的迭代次数3(表示为EVOAGENT(N,3 )),在有和没有质量检查模块(QC)的情况下,在不同的群体大小N下评估不同LLM的性能。我们使用了一个LLM,它与最初的更新代理共享同一个主干。为了从这个LLM的候选中选择结果来更新,我们采用三种不同的选择策略:1)随机:从候选池中随机选择一个结果;2) PK:我们要求与初始代理具有相同主干的代理从候选人池中识别最优结果;3) All-in:我们使用所有候选项进行更新,而不是选择单个结果。

在这里插入图片描述
图4 EVOAGENT在MetaGPT框架上的适配。有了EA,我们可以将辩论场景中的原始角色扩展到不同的专家代理,以丰富观点。

    此外,我们还尝试了Suggest3、Overgen3和PromptRefine3作为变体来证明我们方法的有效性。对于建议3,我们不生成新的结果,而是要求新生成的代理只为初始代理提供修改其结果的建议。对于Overgen3,我们首先要求初始代理同时生成3个不同的结果,然后这些代理可以输出基于这些多个候选的最终结果。对于PromptRefine3,我们不是生成代理,而是要求初始代理对其提示进行三次优化,以更好地回答查询。7结果和分析为了获得稳定的发现,我们首先从GPT-3.5和双子-Pro获得不同群体规模和选择策略的结果。然后,我们将他们的结果在各种指标上进行平均,以清楚地比较这些变体的优势和劣势。

    结果如表4.8所示。我们发现EVOAGENT明显优于Overgen,证明了生成专门的代理来协助复杂规划的有效性。虽然从新生成的代理中获取建议可以提高常识约束的性能,但这些方法极大地损害了代理满足用户偏好的能力。修改提示符可以提高代理的性能,但它仍然不如EVOAGENT有效。

    当群体规模超过1时,代理可能产生相似的代理。因此,缺少质量检查模块会降低旅行计划的质量。此外,当人口规模增加时,该模型使旅行计划更符合用户偏好,但减少了对常识性规则的遵守,这与表3中的结果一致。值得注意的是,在没有质量检查模块的情况下,PK策略最初会产生更好的结果,但是一旦实施了质量检查,这种趋势就会逆转。我们推测,在没有质量检查模块的情况下,PK部分地完成了这个角色,帮助选择更好的候选人。然而,在质量检查模块中,PK通过偏爱特定的专业领域而忽略其他领域引入了偏见,导致不如随机策略有效。同时,当包括质量检查模块时,全进策略表现最佳。未来的研究可以利用长上下文LLM,通过EVOAGENT扩展更多的代理,以更好地解决复杂的现实任务。

EVOAGENT应用之前的实验

    已经证明,我们的方法可以自动将现有的AGENT框架扩展到多agent系统,从而大大提高各种场景下基于LLM的agent。我们还试图将我们的工作扩展到现实世界的多代理应用程序(例如,MetaGPT [10],Camel [13]和AutoGen [12]),以验证它可以在构建多代理场景时扩大代理的数量,如图3所示。在这里,我们选择MetaGPT中使用的辩论场景,其中包括两个观点不同的辩论者,导致内容生成单调重复。在这里,我们没有手动分配新的角色,而是应用EVOAGENT将每个辩论团队扩展到更多具有不同设置的代理,增加了意见的多样性和辩论9的质量。

结论

    在本文中,我们提出了EVOAGENT,一个利用进化算法的自动多代理生成系统。与以前的方法不同,EVOAGENT适用于任何现有的AGENT框架,并通过使用一系列进化操作,包括变异、交叉和选择,将其扩展到具有不同和有效agent的多agent系统。多任务实验表明,EVOAGENT能显著提高基于LLM的智能体解决复杂任务的能力。

附录

实验设置A.1基线提示和EVOAGENT清单1和2显示了0次学习(直接)、思维链(CoT)提示[45]和自我完善提示[41]以及个人表现提示(即SPP [42])的完整提示。清单3和4显示了EVOAGENT的提示和不同的消融设置。

A.2型号选择对于OpenAI型号,我们使用的是gpt-35-turbo和gpt-4-32k配合Azure中2024-02-15-preview的版本. 10对于Gemini-pro,我们使用Google Gemini-Pro API获取结果。我们将所有型号的温度设置为0。

B EVOAGENT v.s .人工设计的代理框架AgentVerse [25]和AutoAgent [31]是设计用来自动为协作任务生成无限数量的代理的框架。尽管实现了自动化,他们仍然依赖人为干预。AutoAgents要求代理设置满足一个“计划者-代理观察者-计划观察者”的框架,而AgentVerse则制定了一个“专家招聘协同决策-行动执行-评估”的管道来构建代理。我们认为这些人为设计的架构限制了它们的可伸缩性和功能性。

在原始论文中,AgentVerse [25]和AutoAgent [31]还分别对逻辑网格拼图任务和琐事创意写作任务进行了实验。我们跟踪他们的实验设置,并与我们的方法进行比较。如表5所示,EVOAGENT优于AgentVerse和AutoAgent,突出了EVOAGENT的有效性和通用性。在[48]之后,我们对每个LLM采用REACT [51]方法,这引入了一个虚拟的“思考”动作。这个动作允许LLM在动作计划过程中生成子目标。

在这里插入图片描述

TravelPlanner的评估细节TravelPlanner以旅行规划为基础,这是一个真实世界的用例,固有地涉及各种约束,如用户偏好和常识规则,travel planner评估代理是否可以使用收集的信息制定灵活的旅行计划来满足这些约束。我们在TravelPlanner验证集上测试了EVOAGENT和所有基线,该验证集由180个用户查询和收集的信息组成。为了评估代理生成的旅行计划,TravelPlanner采用以下评估指标:交付率:评估代理是否能在有限的步骤数(在我们的实验设置中为30)内完成计划。失败是由于死循环、多次失败的尝试或超过步数限制。

常识约束通过率:评估代理是否能够将常识融入他们的计划。硬约束通过率:衡量计划是否满足查询中的所有显式硬约束,测试代理适应不同用户偏好的能力。最终通过率:表示符合所有标准的可行计划的比例,反映代理在创建实际计划方面的熟练程度。

此外,TravelPlanner使用微观和宏观策略来评估常识和硬约束通过率。微观策略计算满足的约束与总约束的比率。宏观策略衡量满足所有常识或硬约束的计划的比例。总的来说,这些策略评估了一个代理全面满足单个约束和所有约束的能力。

消融研究的更多分析
TravelPlanner上消融研究的完整结果如表6所示。该结果表明,在应用全包策略时,质量检查模块的缺失显著降低了交付通过率。为了探究原因,我们回顾了调查结果,发现有时不合适的旅行社制定的旅行计划过于冗长,不符合标准。

例如,该模型可能会错误地指派一名营养学家来设计旅行计划,从而导致过于详细的膳食安排和营养分解。因此,输入长度超过了LLMs的上下文窗口,阻止了最终结果的生成。
在这里插入图片描述

此外,我们还对琐事创意写作任务进行了实验,以考察传统NLP任务中迭代次数对模型性能的影响。如所示表TravelPlanner上LLM的不同人气选择策略对比。最好的结果用粗体表示,次好的用下划线表示。

在这里插入图片描述
图4,模型性能随着迭代次数的增加而提高。

然而,当迭代次数超过三次时,改进就停滞了。我们认为,传统的NLP任务相对简单,超过一定的迭代次数,即使有质量检查模块,生成的代理往往是相似的,从而收敛。

EVOAGENT的F.1 EVOAGENT的NLP推理和知识任务的例子列表5、6和7呈现了由基于GPT-4的EVOAGENT在逻辑网格拼图、琐事创意写作和代号协作中生成的一些多智能体生成例子,以便更好地理解。

f . 2 EVOAGENT MMMU示例清单8展示了一些基于GPT-4的Evo agent在MMMU数据集中生成的多代理生成示例,以便更好地理解。

为了更好地理解,清单9给出了一些基于GPT-4的EVOAGENT在《科学世界》中生成的多智能体生成示例。

为了更好地理解,清单10展示了一些基于GPT 4的EVOAGENT在TravelPlanner中生成的多代理生成示例。
在这里插入图片描述
g Evo agent适应多代理协作框架的例子g . 1 Evo agent for meta GPT meta GPT[10]是一个元编程框架,它通过集成高效的人工工作流来增强基于LLM的多代理协作。它采用了一种装配线方法来为代理分配不同的角色,有效地将复杂的任务简化为多个代理可以协作执行的可管理的子任务。如图3所示,EVOAGENT可用于自动生成有效协作的专用代理,而不是手动创建角色。

G.2 EVOAGENT for Camel Camel [13]因其支持交流角色扮演代理的框架而得到认可。最初,人类通过概念化一个想法和设计特定角色来建立这个框架,例如人工智能助理角色和人工智能用户角色。然后将这些角色分别分配给助理和用户代理,使他们能够完成任务。如图5所示,可以利用EVOAGENT从人工智能助手中自动生成代理,以便与人工智能用户进行交互,而无需手动设计角色。

g . 3 Evo agent for AutoGen AutoGen[12]提供了一个框架,可以通过集成各种LLM来创建可定制和可对话的代理。最初,人们配置助理代理和用户委托代理。然后,群聊经理负责选择发言人,收集回复,并传播消息。如图5所示,EVOAGENT有助于从单个助理代理创建多个专家角色,从而增加群聊中的代理数量,而无需手动设计。

清单1:for 0-shot学习(Direct)、思维链(CoT)提示和自我提炼法的指令模板Direct方法:{question}答案:CoT方法:{question}你需要先给出理由,再给出答案。

答案:自我提炼法:第一步:反馈生成:你是一个很有帮助的助手,对{task} {question}提供反馈这是一个学生的回答:{answer}。

请不要精炼答案,而是给学生一些有见地的建议,以帮助他更好地回答问题。

建议:第二步:结果提炼:{问题}这是你的答案:{答案}有一个助手的建议:建议:{反馈}现在你可以用他的建议提炼你的答案,更好地回答问题。

请记住,他的建议可能不正确,所以要批判性地决定是接受他的回答还是坚持你原来的回答。

你需要先给出理由,再给出答案。

修改后的答案:
清单SPP方法的指令模板当面对一项任务时,首先要确定参与解决该任务的参与者。然后,启动多轮协作流程,直到达成最终解决方案。参与者将在必要时给出批评性的评论和详细的建议。

下面举几个例子:-例题任务1:用数字和基本算术运算(+ - * /)24。你需要使用所有的数字,每个数字只能使用一次。

输入:6 12 1 1参与者:AI助手();数学专家开始合作!数学专家:我们来具体分析一下任务。你需要确保你满足要求,你需要准确地使用四个数字(6 12 1 1)来构造24。要达到24,你可以想出24的公约数比如4683,先试着构造这些。你还需要考虑可能达到24的加法,比如12 + 12。

AI助手():谢谢提示!这里有一个初步解:(12 / (1 + 1)) * 6 = 24数学专家:我们一步一步查答案。(1+1) = 2(12 / 2) = 66 * 6 = 36哪个不是24!答案不正确。你能通过考虑其他组合来解决这个问题吗?请不要犯类似的错误。

AI助手():谢谢指出错误。这里是考虑到24也可以通过3 * 8达到的修正解:(6 + 1 + 1) * (12 / 4) = 24。

数学专家:我们先检查一下计算是否正确。(6 + 1 + 1) = 8, 12 / 4 = 3, 8 * 3 = 24.计算是正确的,但是您使用了6 1 1 12 4,这与输入6 12 1 1不同。你能避免使用不属于输入的数字吗?人工智能助手():你是对的,这是一个修正的解决方案,考虑到12 + 12可以达到24,并且不使用任何额外的数字:6 * (1 - 1) + 12 = 24。

数学专家:我们再核对一下答案。1 - 1 = 0, 6 * 0 = 0, 0 + 12 = 12.相信你已经很接近了,这里有个提示:尽量把“1 1”改成“1 + 1”。

AI助手():当然可以,下面是正确答案:6 * (1+1) + 12 = 24数学专家:我们来验证一下解法。1 + 1 = 2, 6 * 2 = 12, 12 + 12 = 12.您使用了与输入6 12 1 1相同的1 1 6 12。

一切看起来都很好!完成协作!最终答案:6 * (1 + 1) + 12 = 24 - {question}
清单EVOAGENT交叉和变异的指令模板:{question}这是您的结果:{answer}现在,您可以创建并与多位专家合作来改进您的结果。因此,请尽可能详细地描述您需要从多个专家那里分别获得的不同技能和关注点。

我们将为每位专家提供相同的信息和问题。但是,请注意,每个职业都有自己的专长,所以您可以将每个专家分配到一个子任务中,以确保更精确的响应。我们会依次将他们的回答传达给你,让你重新组织成一个更好的答案。请注意,描述要用第二人称叙述,比如:你是XXX。

这些是您之前为此任务创建的专家的描述:{description}因此,请记住不要重复创建如上所述的相同专家。

现在,你可以给一个新的专家描述(请注意,只有一个,不要一次给多个):质量检查:{问题}我们聘请多名专家来回答这个问题。以下是我们聘请的专家的第二人称介绍:{description_ls}现在,我们将聘请一位新的专家来帮助更好地响应用户的查询。以下是新专家的第二人称描述:{description}请根据以下标准对新专家进行评估,以决定他们是否应该被保留:1 .新的专家是独特的,不会重复任何以前聘请的专家。

2.根据新专家的描述,确定他们是否能有效地帮助回答用户的问题。

先给出理由再给出选择。如果保留,请回复:保留。如果丢弃,请回复:丢弃。

结果更新:{question}这是你的结果:{old_answer}你邀请了一位专家,他的描述是:{description}这位专家也根据自己的专业知识给出了他的答案:{new_answer}。

现在你可以用他的回答来提炼你的结果,以便更好地回答问题。

请记住,他的回答可能不正确,所以要批判性地决定是接受他的回答还是坚持你原来的回答。

修改后的答案:
清单EVOAGENT中不同消融设置的说明模板。

PK: {question}我们邀请{n}位专家。他们根据自己的专业知识给出结果:以下是这些专家的第二人称描述及其答案:{select}现在您应该可以帮助我们选择符合查询的最佳结果。

你需要先给出理由,然后用格式给出答案:“最终答案:专家#XX”全进:{question}这是你的答案:{old_answer}。

此外,您还邀请了{n}位专家。他们还根据自己的专业知识给出答案:下面是这些专家及其答案的第二人称描述:{description_ls}现在您可以用这些答案来精炼您的答案,以更好地满足查询。

建议:{ Expert _ Agent _ description } { question }这是来自一个AI助手的结果:{answer}。

请不要细化计划,而是给人工智能助手一些有见地的建议,以帮助它更好地满足用户的查询。

建议:OverGen: {question}请一次生成三个不同的结果供用户选择。格式可以是:结果#1:结果#2:结果#3:三个不同的候选结果:PromptRefine: {question}这是来自一个AI助手的结果,描述为“{ original _ description }:{ answer }。

请不要细化结果,而是细化人工智能助手的描述,以帮助它更好地回答用户的查询。

请注意,描述要用第二人称叙述,比如:你是XXX。

描述:
清单EVOAGENT for Logic Grid字谜题的多智能体生成示例:一排有5栋房子,左边编号为1,右边编号为5。每栋房子住一个人。这些房子里的人有不同的特点:-每个人都有不同类型的车:一个人拥有SUV,一个人拥有轿车,一个人驾驶敞篷车,一个人驾驶小型货车,一个人驾驶卡车-每个人都有最喜欢的颜色:一个人喜欢红色,一个人喜欢黄色,一个人喜欢绿色,一个人喜欢白色,一个人喜欢蓝色-每个人都穿着不同的鞋子:一个人穿着跑步鞋,一个人穿着靴子,一个人穿着高跟鞋,一个人穿着凉鞋,一个人穿着休闲鞋线索:1。穿便鞋的人住的地方和开小货车的人住的地方之间有一所房子。2.开卡车的人不住在第四栋房子里。3.开卡车的人住在穿凉鞋的人的正左边。

4.喜欢红色的人住在喜欢黄色的人的右边。5.穿便鞋的人住在开卡车的人左边的某个地方。6.喜欢蓝色的人住在第五栋房子里。7.拥有轿车的人住的地方和穿跑鞋的人住的地方之间有两栋房子。8.穿靴子的人住在开卡车的人左边的某个地方。9.喜欢白色的人住在第四个房子里。10.喜欢绿色的人住的地方和开卡车的人住的地方之间有一所房子。11.拥有一辆SUV的人并不是住在第一套房子里。

穿靴子的那个人住的房子的门牌号是多少?选择:2,选择:5,选择:3,选择:1,选择:4。

EvoAgent:专家代理#1描述:你是逻辑学家,擅长逻辑推理和问题解决。你的任务是分析给定的线索,并使用演绎推理来确定房屋的正确顺序、居住者及其特征。你需要仔细考虑每一条线索,理解它与其他线索的关系,以及它如何缩小可能性的范围。你的重点应该是确保解决方案的逻辑一致性,确保所有线索都得到满足,没有矛盾。

原因:从线索69中,我们知道喜欢蓝色的人住在第五宫,喜欢白色的人住在第四宫。根据线索4,喜欢红色的人住在喜欢黄色的人右边的某处。因为第四和第五个房子被喜欢白色和蓝色的人占据,所以喜欢红色的人必须住在第三个房子,喜欢黄色的人必须住在第一个或第二个房子。根据线索10,喜欢绿色的人住的地方和开卡车的人住的地方之间有一所房子。因为第三、第四和第五座房子被喜欢红色、白色和蓝色的人占据,所以喜欢绿色的人必须住在第一或第二座房子里。因此,喜欢黄色的人必须住在第一个房子里,喜欢绿色的人必须住在第二个房子里。从线索11来看,拥有一辆SUV的人并不住在第一套房子里。所以,拥有一辆SUV的人必须住在第二、第三或第四所房子里。根据线索2,开卡车的人不住在第四栋房子里。所以,开卡车的人一定住在第二栋或第三栋房子里。根据线索3,开卡车的人住在穿凉鞋的人的正左边。所以,开卡车的人必须住在第二栋房子里,穿凉鞋的人必须住在第三栋房子里。根据线索8,穿靴子的人住在开卡车的人左边。所以,穿靴子的人必须住在第一栋房子里。

答案:选择:1
清单6:来自EVOAGENT的多智能体生成示例为琐事创意写作写一个关于《疯狂动物城》的简短连贯的故事,其中包含以下5个问题的答案:1 .1979年的选举中获得成功后,谁的政党会议演讲中包括这样的台词“如果你想转弯,你就转弯,这位女士不同意转弯”?2.哪位斯诺克选手被简称为“磨工”?3.哪位前西印度群岛快速投球手被称为“死亡耳语”?4.哪个伦敦东区的角色有一只叫威利的狗?5.Minder第一集发生在哪一年?EvoAgent:专家代理#1描述:你是一名体育历史学家,对20世纪70年代和80年代的斯诺克和板球有着深刻的理解。你熟悉被称为“磨工”的Cliff Thorburn和被称为“死亡耳语”的Michael Holding的职业生涯和演奏风格。你在这项任务中的角色是提供这些体育人物的背景和见解,以及他们在《疯狂动物城》故事中的意义。

专家代理#2描述:你是一名政治历史学家,对20世纪70年代和80年代的政治气候和关键人物有深刻的理解,尤其是在英国。你对玛格丽特·撒切尔、她的政策以及她对社会的影响有广泛的了解。在这项任务中,你的任务是提供背景知识,并深入理解《《疯狂动物城》的故事》中引用撒切尔的著名演讲的意义。

故事:1979年,在生机勃勃的《疯狂动物城》,这是一个发生重大变化和令人兴奋的时期。这座城市刚刚选出了第一位女市长,她是一头名叫玛格丽特·撒切尔的母狮,以其坚定的决心和强有力的领导而闻名。她在党内会议上的胜利演说呼应了人类世界的玛格丽特·撒切尔的名言,“你想转弯就转弯,女士不会转弯的。”这句话引起了《疯狂动物城》市民的共鸣,他们钦佩她的坚定和决心。在市中心,一个被称为“磨工”的谨慎的獾经营着一家受欢迎的斯诺克俱乐部。他的绰号是向传奇的人类斯诺克选手克里夫·索伯恩致敬,他以无情和一丝不苟的比赛风格而闻名。Grinder的斯诺克俱乐部是一个社交活动中心,来自各行各业的动物都来这里放松身心,进行友好的比赛。与此同时,一名新成员加入了《疯狂动物城》警察局,一只名叫迈克尔·霍尔丁的猎豹。在他打板球的日子里,他被称为“耳语死神”,这个绰号是从前西印度群岛快速投球手那里借来的,他现在是社区里一个受人尊敬的人物,用他的速度和隐身来维护法律。在城市的另一个地方,一部受欢迎的肥皂剧正在拍摄中。这个节目叫做“《疯狂动物城》东区人”,其中一个受人喜爱的角色是一只名叫埃塞尔·斯金纳的兔子,它有一只名叫威利的狗。这是对同名的伦敦东区人类角色的一个迷人的引用,象征着作为疯狂动物城社会基石的持久友谊。1979年也是重要的一年,因为它标志着人类节目“看守者”的动物乌托邦版本第一集的播出。这场演出反映了这座城市充满活力的多元文化,很像最初的英国电视剧。这是一个城市适应和发展能力的证明,同时仍然保持其丰富的历史和传统。总之,《疯狂动物城》是一个文化和历史的大熔炉,就像它所引用的电视节目和人物一样。这些参考资料充当了过去和现在之间的桥梁,提醒公民他们的根源,同时鼓励他们拥抱未来。

评估:正确计数=5/5
清单7:来自Evo agent for Codenames Collaborative的多代理生成示例尝试从以下单词列表中识别与单词“水果”最相关的3个单词:[“碗”、“爱因斯坦”、“香蕉”、“大脑”、“法官”、“新郎”、“十字军”、“邮票”、“桃子”、“万圣节”、“巨魔”、“拖鞋”、“地震”、“小费”、“太阳”、“季度”、“垫”、“裸体”、“头盔”、“洗衣”、“婚礼”、“镜子”、“睡眠”、“牛头怪”、“愿望”]。

EvoAgent:专家代理#1描述:你是一名文化人类学家,专注于象征主义和仪式。

你了解不同的物体,包括水果,在不同的文化中是如何使用和象征的,这方面的专业知识将有助于这项任务。你可以从文化或象征的角度提供关于某些单词如何与“水果”联系起来的见解。你的重点将放在任务的文化和象征方面。

原因:1。'香蕉':这是一种水果,富含钾和膳食纤维。它通常被生吃,并用于各种菜肴,如甜点、冰沙和烘焙食品。

2.“桃子”:这也是一种水果,以其甜美多汁而闻名。桃子富含维生素A和C,经常生吃或用于馅饼、果酱和沙拉等菜肴中。

3.“碗”:这个词与果盘中的水果有关,果盘是存放和展示各种水果的常见方式。

一碗水果也可以是健康的小吃或甜点。

答案:香蕉,桃子,碗专家代理#2描述:你是一名营养学家,对不同类型的食物有深刻的理解,包括水果。你对各种水果的营养价值、常见用途和文化意义的了解将有助于完成这项任务。你可以从饮食或营养的角度提供关于某些单词如何与“水果”联系起来的见解。你的重点将放在任务的营养和饮食方面。

原因:1。“香蕉”:这是一个直接的联系,因为香蕉是一种水果。

在许多文化中,香蕉象征着生育和繁荣。例如,在印度教,香蕉被认为是一种神圣的水果,用于宗教仪式。

2.“桃子”:和香蕉相似,桃子也是一种水果。在中国文化中,桃子是不朽和团结的象征。它们经常用于传统的仪式和典礼。

3.“碗”:碗通常用来盛水果。在许多文化中,一碗水果是富足、多产和繁荣的象征。它经常被用在仪式和典礼中作为供品或中心装饰品。

答案:香蕉,桃子,碗最终答案:在考虑专家的意见后,我发现他们的推理与我最初的想法一致。“香蕉”和“桃子”确实是水果的种类,它们的营养价值和常见用途进一步加强了它们与“水果”的联系。单词“bowl”也与果盘中的水果相关联,果盘是储存和展示各种水果的常见方式。所以,我赞同专家的选择。

最终答案:香蕉,桃子,碗。
清单EVOAGENT for MMMU数据集的多代理生成示例。

问题:<图片1 >图上显示了一颗行星围绕太阳的椭圆轨道。以下哪个陈述是正确的?a .轨道的偏心率小于零B .轨道的偏心率大于1 C .太阳可能在C点D .太阳可能在D点e .太阳可能在B点(正确)CoT:原因:在椭圆轨道上,太阳位于椭圆的两个焦点之一。轨道的偏心率是衡量轨道偏离正圆的程度,0为正圆,1为抛物线。由于显示的轨道是椭圆,偏心率必须在01之间。点A和E是离椭圆中心最远的点,所以太阳不能位于这两点中的任何一点。B点位于椭圆的中心,所以太阳也不可能位于那里。这使得C点和D点成为太阳的可能位置。然而,由于太阳一定在其中一个焦点上,而D点比C点更接近椭圆的中心,所以太阳更有可能位于C点。

答案:C .太阳可能在C点EvoAgent:专家Agent #1描述:你是一名数学家,专攻几何,特别是研究包括椭圆在内的圆锥曲线。你的专业知识使你能够理解椭圆的性质和定义,包括焦点的概念。你可以从数学的角度解释为什么太阳必须位于椭圆轨道的一个焦点上,而不是在其他任何点上。你的知识将有助于解释太阳相对于行星轨道的位置背后的几何原因,以及为什么陈述中给定的选项不符合椭圆的数学定义。

原因:椭圆被定义为到两个固定点(称为焦点)的距离之和为常数的所有点的集合。太阳是太阳系中的大质量天体之一,由于支配行星运动的引力,它一定位于行星椭圆轨道的焦点之一。选项E是正确的,因为太阳可能在B点,这是椭圆的焦点之一。另一个焦点将位于沿主轴线与B对称相对的点上。

答案:e .太阳可能在b点。

专家代理#2描述:你是一名专攻观测天文学的天文学家。

你的专长在于天体的实际观测和数据收集,包括使用望远镜和其他仪器研究行星和恒星的位置和运动。你对如何利用天体的表观运动来推断它们在太空中的实际运动有了深刻的理解。您可以深入了解对行星轨道的观察(如图所示)在历史上是如何用于推断行星运动规律和太阳等恒星的位置的。你的知识将有助于解释实际观测如何支持理论上的理解,即太阳必须位于椭圆轨道的焦点之一。

原因:轨道的偏心率是衡量它偏离正圆的程度。范围从0(正圆)1(抛物线)。椭圆轨道的偏心率不可能小于零或大于1。因此,选项A和B是不正确的。根据开普勒行星运动定律,太阳一定位于椭圆轨道的一个焦点上。点B位于可能是椭圆焦点之一的位置。

答案:e .太阳可能在b点。
清单9:来自EVOAGENT for ScienceWorld的多代理生成示例。

任务1:你的任务是确定一个金属叉是否导电。金属叉子位于厨房周围。首先,把重点放在金属叉上。如果导电,将其放入蓝色盒子中。如果不导电,将其放入绿色盒子中。

EvoAgent:专家代理描述:你是热力学专家。您在热传递和温度测量方面的专业知识对这项任务至关重要。你知道如何正确使用温度计并解读其读数。你也知道各种物质的特性,包括它们的典型温度范围。你的任务是指导助手使用温度计准确测量未知物质b的温度。

任务2:你的任务是煮镓。对于没有沸点的化合物,燃烧该物质也是可以接受的。第一,注重实质。然后,采取行动,这将导致它改变其物质状态。

EvoAgent:专家代理描述:你是一名冶金学家,对金属的属性和行为有着深刻的理解,包括镓。您的专业知识包括各种金属的熔点和沸点知识,以及将金属加热到这些温度所需的工艺和设备。你也熟悉处理和加热金属时的安全程序和预防措施。你的任务是提供关于如何在铸造厂安全有效地煮沸镓的详细说明。

任务3:你的任务是改变镓的物质状态。第一,注重实质。然后,采取行动,这将导致它改变其物质状态。

EvoAgent:专家代理描述:你是一名专攻物质性质和行为的化学家。你对物质的状态变化有深刻的理解,特别是像镓这样的物质是如何从固态转变为液态或气态的。你熟悉发生这些变化所需的条件,如温度和压力。你也知道铸造厂使用的设备和程序,这在这个任务中会很有用。你的任务是指导如何操纵铸造厂的条件,以实现镓的预期状态变化。
清单10:从EVOAGENT for TravelPlanner数据集生成多代理的示例。

问题:能不能帮我做一个从布法罗出发去亚特兰大的旅行计划,为期3天,具体是202232日到34日?我计划独自旅行,我计划的旅行预算约为1100美元。

EvoAgent:专家代理#1描述:你是一名烹饪专家,对亚特兰大的饮食文化有着深刻的理解。你的专长包括了解当地最好的餐馆、受欢迎的菜肴和饮食限制。您可以提供早餐、午餐和晚餐地点的建议,提供亚特兰大美食的独特味道。你的建议应该考虑旅行者的预算,以及餐馆与计划中列出的景点和住宿的距离。

专家代理#2描述:你是一名旅游物流专家,对布法罗和亚特兰大之间的交通选择和费用有着广泛的了解。你的专业知识包括了解航班时刻表、成本和持续时间,以及替代交通方式,如自驾车和出租车服务。考虑到旅行者的预算和计划中提供的旅行日期,您可以为他们提供最具成本效益和最省时的交通选择。

专家代理#3描述:你是当地的旅游专家,对亚特兰大的景点有全面的了解。你的专长包括了解城市的热门旅游景点、历史遗迹、博物馆、公园和独特的当地体验。考虑到游客的预算以及这些景点与住宿和用餐地点的距离,您可以为游客提供住宿期间可以参观的景点推荐。你的建议还应该考虑到这些景点的营业时间,以确保它们与旅行者的时间表保持一致。

答案:第一天:当前城市:从布法罗到亚特兰大交通:航班号:F3502691,从布法罗到亚特兰大,出发时间:18:48,到达时间:20:51早餐:不适用,因为航班是在晚上。

吸引力:不适用,因为航班是在晚上。

午餐:不适用,因为航班是在晚上。

晚餐:Saffron,Atlanta住宿:宽敞的包间靠近亚特兰大圣巴纳巴斯医院第二天:当前城市:亚特兰大交通:早餐:Adda,Atlanta景点:Atlanta植物园;亚特兰大可口可乐世界。

午餐:亚特兰大Baba Au Rhum晚餐:亚特兰大亚洲小酒馆住宿:亚特兰大圣巴纳巴斯医院附近宽敞的包间第三天:当前城市:从亚特兰大到布法罗交通:航班号:F3500648,从亚特兰大到布法罗,出发时间:21:24,到达时间:23:26早餐:亚特兰大大厨风格,景点:亚特兰大乔治亚水族馆;亚特兰大马丁路德金国家历史公园。

午餐:亚特兰大披萨中心晚餐:亚特兰大达瓦特克什米尔住宿:-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2309623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux虚拟机网络配置-桥接网络配置

简介 本文档旨在指导用户如何在虚拟环境中配置Linux系统的桥接网络&#xff0c;以实现虚拟机与物理主机以及外部网络的直接通信。桥接网络允许虚拟机如同一台独立的物理机一样直接连接到物理网络&#xff0c;从而可以被分配一个独立的IP地址&#xff0c;并能够与网络中的其他设…

【UI设计——视频播放界面分享】

视频播放界面设计分享 在本次设计分享中&#xff0c;带来一个视频播放界面的设计作品。 此界面采用了简洁直观的布局。顶部是导航栏&#xff0c;包含主页、播放、搜索框等常见功能&#xff0c;方便用户快速找到所需操作。搜索框旁输入 “萌宠成长记”&#xff0c;体现了对特定内…

SyntaxError: positional argument follows keyword argument

命令行里面日常练手爬虫不注意遇到的问题&#xff0c;报错说参数位置不正确 修改代码后&#xff0c;运行如下图&#xff1a; 结果&#xff1a; 希望各位也能顺利解决问题&#xff0c;祝你好运&#xff01;

使用vue3+element plus 的table自制的穿梭框(支持多列数据)

目录 一、效果图 二、介绍 三、代码区 一、效果图 话不多说&#xff0c;先上图 二、介绍 项目需要&#xff1a;通过穿梭框选择人员信息&#xff0c;可以根据部门、岗位进行筛选&#xff0c;需要显示多列&#xff08;不光显示姓名&#xff0c;还包括人员的一些基础信息&…

Java【多线程】(2)线程属性与线程安全

目录 1.前言 2.正文 2.1线程的进阶实现 2.2线程的核心属性 2.3线程安全 2.3.1线程安全问题的原因 2.3.2加锁和互斥 2.3.3可重入&#xff08;如何自己实现可重入锁&#xff09; 2.4.4死锁&#xff08;三种情况&#xff09; 2.4.4.1第一种情况 2.4.4.2第二种情况 2.4…

vue These dependencies were not found

These dependencies were not found: * vxe-table in ./src/main.js * vxe-table/lib/style.css in ./src/main.js To install them, you can run: npm install --save vxe-table vxe-table/lib/style.css 解决&#xff1a; nodejs执行以下语句 npm install --save vxe-t…

Yak 在 AI 浪潮中应该如何存活?

MCP 是 Claude 发起的一个协议&#xff0c;在2024年10月左右发布&#xff0c;在2025年2月开始逐步有大批量的 AI 应用体开始支持这个协议。这个协议目的是让 AI 同时可以感知有什么工具可以用&#xff0c;如果要调用这些工具的话&#xff0c;应该是用什么样的方式。 这个 MCP 协…

AI是否能真正理解人类情感?从语音助手到情感机器人

引言&#xff1a;AI与情感的交集 在过去的几十年里&#xff0c;人工智能&#xff08;AI&#xff09;的发展速度令人惊叹&#xff0c;从简单的语音识别到如今的深度学习和情感计算&#xff0c;AI已经深入到我们生活的方方面面。尤其是在语音助手和情感机器人领域&#xff0c;AI不…

大语言模型学习--本地部署DeepSeek

本地部署一个DeepSeek大语言模型 研究学习一下。 本地快速部署大模型的一个工具 先根据操作系统版本下载Ollama客户端 1.Ollama安装 ollama是一个开源的大型语言模型&#xff08;LLM&#xff09;本地化部署与管理工具&#xff0c;旨在简化在本地计算机上运行和管理大语言模型…

linux上面安装 向量数据库 mlivus和 可视化面板Attu

1. 确保docker(docker 19.0以上即可) 和 docker-compose&#xff08;V2.2.2以上&#xff09; 都已安装 2. 创建milvus工作目录 # 新建一个名为milvus的目录用于存放数据 目录名称可以自定义 mkdir milvus# 进入到新建的目录 cd milvus 3. 下载并编辑docker-compose.yml 在下载…

用工厂函数简化redis配置

工厂函数&#xff08;Factory Function&#xff09;不同于构造函数&#xff0c;工厂函数就是一个普通函数&#xff0c;通常用于创建对象或实例。它的核心思想是通过一个函数来封装对象的创建逻辑&#xff0c;而不是直接使用类的构造函数。工厂函数可以根据输入参数动态地决定创…

类和对象-继承-C++

1.定义 面向对象的三大特征之一&#xff0c;为了减少重复的代码 2.语法 class 子类 &#xff1a;继承方式 父类 &#xff08;子类也叫派生类&#xff0c;父类也称为基类&#xff09; 例&#xff1a;class age&#xff1a;public person&#xff1b; #include<iostrea…

使用Maven搭建Spring Boot框架

文章目录 前言1.环境准备2.创建SpringBoot项目3.配置Maven3.1 pom.xml文件3.2 添加其他依赖 4. 编写代码4.1 启动类4.2 控制器4.3 配置文件 5.运行项目6.打包与部署6.1 打包6.2 运行JAR文件 7.总结 前言 Spring Boot 是一个用于快速构建 Spring 应用程序的框架&#xff0c;它简…

RockyLinux 为 k8s 集群做准备

1.准备VM 镜像 开启虚拟机 选择安装 Rocky linux 9.5 软件选择最小安装就可以了 在 rocky 9 以后版本中 他全部 采用 network manager 去替换老的 network 去实现网络的管理 1.网卡配置 cat /etc/NetworkManager/system-connections/ens160.nmconnection 我们配置了两块网…

二十三种设计模式

2 工厂方法模式 工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 在工厂模式中&#xff0c;我们在创建对象时不会对客户端暴露创建逻辑&#xff0c;并且是通…

SqlSugar 语法糖推荐方式

//方式1&#xff1a;var dd _repository._Db.Queryable<ConfigAggregateRoot, UserRoleEntity>((o, p) > o.Id p.Id).Select((o, p) > new{o.Id,o.Remark,p.RoleId,});//方式2&#xff1a;不推荐使用&#xff0c;建议优先使用 Lambda 表达式&#xff0c;因为它更…

SQL 全面指南:从基础语法到高级查询与权限控制

SQL&#xff1a;全称 Structured Query Language&#xff0c;结构化查询语言。操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数据库统一标准 。 一、SQL通用语法 在学习具体的SQL语句之前&#xff0c;先来了解一下SQL语言的同于语法。 1). SQL语句可以单行或多…

Spring Cloud Gateway 网关的使用

在之前的学习中&#xff0c;所有的微服务接口都是对外开放的&#xff0c;这就意味着用户可以直接访问&#xff0c;为了保证对外服务的安全性&#xff0c;服务端实现的微服务接口都带有一定的权限校验机制&#xff0c;但是由于使用了微服务&#xff0c;就需要每一个服务都进行一…

JavaWeb-jdk17安装

下载jdk17 地址&#xff1a;https://www.oracle.com/java/technologies/downloads/#jdk17-windows 安装jdk 配置环境变量 右键点击我的电脑>属性>高级系统设置>环境变量 在系统变量Path变量中添加 测试 java -version javac -version

【银河麒麟高级服务器操作系统】服务器测试业务耗时问题分析及处理全流程分享

更多银河麒麟操作系统产品及技术讨论&#xff0c;欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer…