当前位置:首页|资讯

智能应用时代已至!Agent设计模式综述

发布时间:2024-07-29

1、引言  

尽管当前研究者在AI Agent领域投入了巨大努力,但从业者在构建和实施基于基础模型(Foundational Model,FM)的Agent方面面临着陡峭的学习曲线。文章注意到存在一系列可重用的解决方案,这些解决方案可以归纳为模式,以解决设计基于FM的Agent的多样化挑战。然而,Agent的架构设计和架构模式的集合尚未得到系统的探索和制定。

在这方面,本文提出了一个用于设计基于FM的Agent的架构模式目录。在软件工程中,架构模式是软件设计中常见问题的一个可重用的解决方案。因此本文希望基于收集的架构模式,对基于FM的Agent设计和实现感兴趣的软件架构师和开发人员提供指导。

2、架构模式提取方法  

上图展示了AI Agent架构模式的提取和收集过程。

首先,笔者对基于基础模型(FM)的代理进行了系统性文献回顾(SLR)其专注于可用的、高度学术性的材料和研究工作。根据一系列预设的标准选择相关论文,并通过进行正向和逆向的滚雪球过程来识别遗漏的材料。在确定了论文池后,笔者对选定的材料进行了质量评估,以确保工作的质量。最终,共有57项研究被纳入数据提取和综合。基于这些发现,本文提出了一个面向基础模型(Foundation Model, FM)Agent的模式导向参考架构

基于报告的发现,文章深入分析了用于构建集成FM代理的识别模式。通过SLR识别了在开发和实施集成Agent的系统时遇到的一系列架构设计挑战。随后,文章进一步对这一主题进行了广泛的审查,包括灰色文献和现实世界的应用(通过审查官方网站和可用文件),以识别已知的用途。结合SLR和额外审查的发现,在本文中,笔者最终提取了对17个架构模式的分析。    

3、FM Agent系统生态  

上图展示了基于基础模型(Foundation Model)的Agent系统的生态系统,Agent组件和不同实体之间的交互被用相关模式进行了注释:

  1. 在画像模块中,主要包含被动目标创建者(4.1)主动目标创建者(4.2)
    a)被动目标创建者通过角色/任务相关的prompt分析用户表达的目标,以保持交互性、目标寻求和直观性。

    b)主动目标创建者通过理解人际交互并通过相关工具捕获上下文来预测用户的目标。

  2. 在模型调用模块中,主要包含prompt/响应优化器(4.3)、一次性模型查询(4.5)增量模型查询(4.6)

    a)prompt/响应优化器(4.3)根据期望的输入/输出内容并优化prompt/响应的格式,根据预定义的模板对其他Agent/工具的提示或指令进行优化,以满足特定格式或内容要求。

    b)一次性模型查询(4.5)在单一实例中访问基础模型以生成计划的所有必要步骤。

    c)增量模型查询(4.6)在计划生成过程的每一步都去访问基础模型。
  3. 在规划能力中,主要包括单路径计划生成器(4.7)多路径计划生成器(4.8)以及自我反思(4.9)

    a)单路径计划生成器(4.7)通过生成单路径的计划步骤以实现用户目标。

    b)多路径计划生成器(4.8)在每个中间步骤中创建多个选择,以实现用户目标。

    c)自我反思(4.9)使Agent能够生成对计划和推理过程的反馈,并提供自身改进指导。
  4. 在行动能力中,主要包含检索增强生成(4.4)以及工具/Agent注册表(4.16)

    a)检索增强生成可以提升Agent的知识更新能力,同时维护本地基础模型Agent/系统实现的数据隐私。

    b)工具/Agent注册表是指通过注册表的形式维护一个统一且方便的调用来源,供用户选择多样化的Agent和工具。
  5. 在多Agent协作方面,主要包含了交叉反思(4.10)以及基于投票的、基于角色的或基于辩论的合作(4.12-4.14)。

    a)交叉反思使用不同的Agent或基础模型提供反馈,以优化生成的计划和相应推理过程。

    b)基于投票的合作是指Agent可以自由提供意见,并通过投票达成共识。

    c)基于角色的合作是指根据Agent的角色分配任务,并根据角色做出决策。

    d)基于辩论的合作是指Agent接收其他Agent的反馈,并在与其他Agent的辩论中调整思想和行为,直到达成共识。
  6. 在人机协同方面,主要包含了人类反思(4.11)Agent评估器(4.17)

    a)人类反思(4.11)收集人类反馈以改进计划,有效与人类偏好对齐。

    b)Agent评估器在设计时和运行时评估Agent的性能,同时可以执行测试,根据多种需求和指标来评估Agent。

4、17种架构模式总结  

4.1 被动目标创建者(Passive Goal Creator) 

被动目标创建者通过对话接口分析用户表达的目标,以保持交互性、目标寻求和直观性。    

使用场景
当用户通过prompt向Agent解释他们期望实现的目标时。
问题
Agent在给定的上下文信息不足时,可能会对用户的指令生成不准确的响应。
驱动因素
  • 交互性:用户需要与Agent交互以提供指令并接收响应。
  • 目标寻求:Agent需要尽可能多的信息来理解用户的目标。
  • 直观性:简单任务应以直观的方式分配和报告。
解决方案如图所示,被动目标创建者提供了一个对话接口,用户可以直接指定场景和问题,这些信息被传递给被动目标创建者以生成目标。同时,被动目标创建者也可以从记忆中检索相关信息,包括正在处理的工件库、最近任务中使用的相关工具、对话历史记录以及正面和负面的例子。这些信息被附加到用户的prompt中,以实现目标寻求。生成的目标被发送到其他组件进行进一步的任务分解和完成。在这种情况下,Agent被动地接收来自用户的输入,并生成实现目标的策略,因为它只接收用户提供的上下文信息。
好处    
  • 交互性:用户可以通过对话接口与Agent交互。
  • 目标寻求:Agent可以分析用户提供的上下文信息,确定目标并创建相应的策略。
  • 直观性:用户可以直接指定目标,向Agent提供上下文,并通过对话接口接收Agent的响应,这是直观且易于使用的。
缺点:
响应不准确性:由于用户可能具有不同的背景和经验,且没有标准的prompt要求,不清晰的用户提供的上下文信息可能导致Agent产生幻觉反应。
已知用途:
  • 可以通过对话接口与用户交流并帮助细化研究问题。
  • 使用户能够通过对话接口将任务分解并分配给机器人。
  • HuggingGPT 可以通过聊天机器人生成响应以解决用户请求。用户的请求,包括复杂的意图,可以被解释为他们预期的目标。
相关模式:
  • 主动目标创建者:主动目标创建者可以被视为被动目标创建者的替代方案,它支持多模态上下文注入。
  • prompt/响应优化器:被动目标创建者首先处理用户的输入,然后将目标和相关的上下文信息传递给prompt/响应优化器以优化prompt。

4.2 主动目标创建者(Proactive Goal Creator) 

通过理解人际交互并通过相关工具捕获上下文来预测用户的目标。    
摘要:
主动目标创建者通过理解人际交互并利用相关工具捕获上下文,来预测用户的目标。
使用上下文:
用户通过prompt向Agent解释他们期望实现的目标。
问题:
仅通过对话接口收集的上下文信息可能有限,可能导致对用户目标的响应不准确。
驱动因素:
  • 交互性:用户需要与Agent交互以提供指令和接收响应。
  • 目标寻求:Agent需要尽可能多的信息来理解用户的目标。
  • 可访问性:可能有特定残疾的用户无法直接通过被动目标创建者与Agent进行交互。
解决方案:
上图展示了主动目标创建者的简单图形表示。除了来自对话接口的prompt和从记忆中检索的相关上下文外,主动目标创建者可以通过向探测器发送需求来预测用户的目标,然后探测器将捕获并返回用户周围环境的信息,以便进行进一步的分析和理解以生成目标。例如,通过摄像头识别用户的手势,或通过屏幕截图识别应用程序 UI 布局等。主动目标创建者应以低误报率通知用户有关上下文捕获和其他相关问题,以避免不必要的中断。    
好处:
  • 交互性:用户可以通过提供多模态信息与Agent交互。此外,在多Agent环境中,主动目标创建者可以通过主动预测他们的决策来促进不同Agent之间的交互。
  • 目标寻求:多模态输入可以为Agent提供更详细的信息,以帮助理解用户的目标,并提高生成响应的准确性。
  • 可访问性:额外的工具可以帮助捕获来自残疾用户的情感和其他上下文信息,确保可访问性并扩大基础模型Agent的人文价值。
缺点:
开销:i) 主动目标创建者由相关工具捕获的多模态上下文信息启用,这可能会增加Agent的成本。ii) 有限的上下文信息可能会增加用户和Agent之间的通信开销。
已知用途:
  • GestureGPT 能够解读用户的手势描述,从而理解用户的意图。
  • 编程屏幕录像分析工具,可以提取编码步骤和代码片段。
  • ProAgent 可以观察其他队友Agent的行为,推断他们的意图,并相应地调整计划。
相关模式:
  • 被动目标创建者:主动目标创建者可以被视为被动目标创建者的替代方案,支持多模态上下文注入。
  • prompt/响应优化器:主动目标创建者首先处理用户的输入,然后将目标和相关上下文信息传递给prompt/响应优化器,以优化prompt。
通过主动目标创建者模式,Agent能够更全面地理解用户的目标和意图,即使在用户无法直接通过标准界面与Agent交互的情况下也能提供准确的响应。这种模式增强了Agent的预测能力和对用户需求的响应性。

4.3 Prompt/响应优化器(Prompt/Response Optimiser) 

根据期望的输入或输出内容和格式优化prompt/响应。
摘要
prompt/响应优化器根据期望的输入或输出内容和格式,对prompt(prompts)和响应(responses)进行优化。
使用上下文
用户可能在撰写有效的prompt方面存在困难,尤其是在需要注入全面上下文的情况下。同样,在某些情况下,用户可能难以理解Agent的输出。
问题
如何生成与用户目标或目的一致的有效prompt和标准化响应?
驱动因素
  • 标准化:prompt和响应可能在结构、格式和内容上有所不同,这可能导致Agent的潜在混淆或不一致行为。
  • 响应准确性:确保prompt和响应与最终目标或目的一致,可以帮助Agent实现期望的结果。
  • 互操作性:生成的prompt和响应可能直接输入到其他组件、外部工具或Agent中,以完成进一步的任务。    
解决方案
上图展示了prompt/响应优化器的高级图形表示。用户可能向Agent输入初始prompt,但由于缺乏相关上下文或无意的注入攻击等原因,这些prompt可能效果不佳。在这方面,prompt/响应优化器可以根据预定义的约束和规格构建优化的prompt。这些约束和规格概述了输入和输出的期望内容和格式,确保与最终目标一致。prompt或响应模板通常在prompt/响应优化器中使用,作为创建特定实例的prompt或响应的工厂。此模板提供了一种结构化方法来标准化查询和响应,提高响应的准确性,并促进与外部工具或Agent的互操作性。例如,prompt模板可以包含对Agent的指令、一些少样本学习的示例,以及Agent要解决的问题/目标。
好处
  • 标准化:prompt/响应优化器可以创建符合模板中指定要求的标准化prompt和响应。
  • 响应准确性:优化的prompt和响应符合用户定义的条件,因此它们可以实现更高的准确性和与目标的相关性。
  • 互操作性:prompt/响应优化器促进了Agent与外部工具之间的互操作性,它可以提供一致且定义良好的prompt和响应。
  • 适应性:prompt/响应优化器可以通过使用知识库完善模板,适应不同的约束、规格或特定领域要求。
缺点
  • 响应不准确性:在某些情况下,prompt/响应优化器可能难以有效地捕获和整合所有相关上下文信息,特别是考虑到用户输入的歧义性和对上下文工程的依赖性。因此,优化器可能难以生成适当的prompt或响应。
  • 维护开销:更新和维护prompt或响应模板可能会导致显著的开销。需求的变化可能需要修改多个模板,这既耗时又容易出错。
已知用途
  • LangChain:LangChain 提供prompt模板,供从业者开发定制的基础模型Agent。
  • Amazon Bedrock:用户可以在 Amazon Bedrock 中配置prompt模板,定义Agent应如何评估和使用prompt。
  • Dialogflow:Dialogflow 允许用户创建生成器,以在运行时指定Agent行为和响应。    
相关模式
  • 被动目标创建者和主动目标创建者:可以先处理用户的输入,然后将目标和相关的上下文信息传递给prompt/响应优化器,以优化prompt。
  • 自我反思、交叉反思和人工反思:反思模式可以应用于评估和完善prompt/响应优化器的输出。
通过这种方式,prompt/响应优化器模式帮助确保Agent与用户的交互更加高效和准确,同时提高了系统的互操作性和适应性。

4.4 检索增强生成(Retrieval Augmented Generation, RAG) 

增强Agent的知识更新能力,同时维护本地基础模型Agent/系统实现的数据隐私。
摘要
检索增强生成技术通过从其他来源(内部或在线数据)检索事实来增强Agent的准确性和可靠性。
使用上下文
大型基础模型Agent不具备通过模型训练学习到的特定领域相关知识,尤其是涉及高度保密和隐私敏感的本地数据
问题
给定一个任务,Agent如何使用基础模型未通过模型训练学习到的数据/知识进行推理?
驱动因素    
  • 推理不确定性:当Agent需要完成特定领域的任务,而这些任务在Agent没有知识储备时,推理过程可能是不可靠的。
  • 开销:使用本地数据微调大型基础模型或在本地训练大型基础模型需要消耗大量的计算和资源成本。
  • 数据隐私:本地数据是保密的,不能用于训练或微调模型。
解决方案
上图展示了检索增强生成的高级图形表示。RAG 是一种技术,通过从其他来源(内部或在线数据)检索事实来增强Agent的准确性和可靠性。Agent在记忆中缺乏的知识空白可以通过向量数据库中生成的参数化知识来填补。例如,在计划生成期间,特定步骤可能需要原始Agent记忆中没有的信息。Agent可以从参数化知识中检索信息并用于计划,而增强的响应(即计划)将返回给用户。检索过程不需要对Agent服务的基础模型进行预训练或微调,这保留了本地数据的数据隐私,减少了训练和计算成本,并提供了所需的最新和更精确的信息。目前有一系列 RAG 技术,专注于各种增强方面、数据源和应用等。
好处
  • 推理确定性:Agent可以搜索和检索与给定任务相关的知识,确保推理步骤的可靠性。
  • 可更新性:使用 RAG 由Agent生成的prompt/响应可以通过补充的参数化知识进行更新。
  • 数据隐私:Agent可以从本地数据存储中检索额外知识,确保数据隐私和安全。
  • 成本效益:在数据隐私约束下,RAG 可以在不完全训练新的基础模型的情况下为Agent提供必要的知识。这降低了训练成本。
缺点
  • 维护开销:维护和更新向量存储中的参数化知识需要额外的计算和存储成本。
  • 数据限制:Agent仍然主要依赖于其训练过的数据来生成prompt。这可能会影响到特定领域中生成内容的质量和准确性。
已知用途    
  • LinkedIn:LinkedIn 应用 RAG 构建基于基础模型的Agent管道,该管道可以搜索适当的案例研究以响应用户。Yan 等人设计了一个检索评估器,在评估检索数据的质量后可以输出置信度。该解决方案可以提高 RAG 对Agent的鲁棒性和整体性能。
  • 数学辅助:使用 GPT-3.5 应用 RAG,开发了一个Agent,可以检索高质量开源数学教科书的内容,以生成对学生的响应。
相关模式
检索增强生成可以通过提供来自本地数据存储的额外上下文信息,补充所有其他模式。
通过检索增强生成模式,智能Agent能够更加准确地理解和回应复杂的查询,同时保护用户数据的隐私和安全。这种模式特别适用于需要结合最新信息或特定领域知识以提供精确答案的场景。

4.5 一次性模型查询(One-shot Model Querying) 

在单一实例中访问基础模型以生成计划的所有必要步骤。
摘要
在单一实例中访问基础模型以生成计划所需的所有必要步骤。
使用上下文
当用户与Agent交互以实现特定目标时,所包含的基础模型将被查询以生成计划。
问题    
Agent如何高效地生成计划的步骤?
驱动因素
  • 效率:对于某些紧迫的任务,Agent应该能够快速进行规划并做出响应。
  • 开销:用户需要为与商业基础模型的每次交互付费。
解决方案
上图展示了用户与Agent在一次性模型查询中的交互。用户在一次prompt中指定目标和约束后,Agent将查询集成的基础模型以生成相应的响应(例如,行动计划)。基础模型不需要多次交互就能理解上下文和要求。通过这种方式,Agent可以制定一个多步骤的计划来实现一个广泛目标,并为这个计划提供一个整体的解释,而无需深入到详细的推理步骤中。
好处
  • 效率:Agent可以通过仅查询一次基础模型来生成实现用户目标的计划,节省了时间。
  • 成本效益:由于基础模型只被查询了一次,用户的费用可以减少。
  • 简单性:一次性模型查询可以满足不需要复杂行动计划的任务。
缺点
  • 过度简化:对于复杂任务,一次性模型查询可能无法一次捕获所有要求,因此过度简化了任务并且不能返回正确的响应。
  • 缺乏可解释性:由于只查询了一次基础模型,一次性模型查询可能缺乏可解释性,可能无法提供计划生成的详细推理步骤。
  • 上下文窗口大小:考虑到基础模型处理长对话上下文和令牌限制的当前能力,响应质量可能受到限制。
已知用途
当用户利用基础模型时,一次性模型查询可以被视为默认的配置或使用方式,而CoT和Zero-shot-CoT都是这种模式的示例。
相关模式    
  • 增量模型查询(Incremental Model Querying):增量模型查询可以被视为一次性模型查询的替代方案,具有迭代功能。
  • 单路径计划生成器(Single-path Plan Generator):一次性模型查询通过仅对基础模型进行一次查询,启用了单路径计划的生成。

4.6 增量模型查询(Incremental Model Querying) 

在计划生成过程的每一步访问基础模型。
摘要
增量模型查询涉及在计划生成过程的每一步访问基础模型。
背景
当用户与Agent交互以实现特定目标时,所包含的基础模型将被查询以生成计划。
问题
基础模型可能在第一次尝试时难以生成正确的响应。Agent如何进行准确的推理过程?
驱动因素
  • 上下文窗口大小:基础模型的上下文窗口可能有限,因此用户可能无法提供完整和全面的prompt。
  • 过度简化:推理过程可能过于简化,因此只有一次模型查询尝试就可能存在不确定性。
  • 缺乏可解释性:基础模型生成的响应需要详细的推理过程以保持可解释性和最终的可信度。
解决方案    

上图展示了用户和Agent在增量模型查询中的交互。Agent可以通过逐步推理过程,通过多次查询基础模型来制定实现目标的计划。与此同时,用户反馈可以随时提供给推理过程和生成的计划,并且在模型查询过程中相应地进行调整。请注意,增量模型查询可以依赖于一个可重用的模板,该模板通过上下文注入或明确的工作流程/计划存储库和管理指南来指导过程。

好处:
  • 补充上下文:增量模型查询允许用户通过多个prompt来分割上下文,以解决上下文窗口限制的问题。
  • 推理确定性:基础模型将通过自我检查或用户反馈迭代地完善推理步骤。
  • 可解释性:用户可以通过增量模型查询查询基础模型以提供详细的推理步骤。
缺点:
开销:i) 增量模型查询需要与基础模型多次交互,这可能会增加规划确定的时间消耗。ii) 当使用商业基础模型时,大量的用户查询可能是成本密集型的。
已知用途
  • HuggingGPT:HuggingGPT的基础模型被多次查询,以将用户请求分解为细粒度的任务,然后确定任务的依赖关系和执行顺序。
  • EcoAssistant:EcoAssistant应用代码执行器与基础模型交互,以迭代地改进代码。
  • ReWOO:ReWOO查询基础模型来i) 生成相互依赖计划的列表,以及;ii) 结合从工具中获取的观察证据与相应的任务。
相关模式
  • 一次性模型查询:增量模型查询可以被视为带有迭代的一次性模型查询的替代方案。
  • 多路径计划生成器:Agent可以在每一步捕获用户的偏好,并通过迭代查询基础模型来生成多路径计划。
  • 自我反思:自我反思要求Agent多次查询其集成的基础模型以进行响应审查和评估。
  • 人类反思:人类反思通过增量模型查询得以实现,以在用户/专家和Agent之间进行迭代通信。

4.7 单路径计划生成器(Single-path Plan Generator)  

通过生成单路径的计划步骤以实现用户目标。    
摘要
单路径计划生成器协调生成中间步骤,以实现用户目标。
背景
Agent可能对用户来说是一个“黑箱”,而用户可能关心Agent是如何实现用户目标的过程。
问题
Agent如何有效地制定策略来实现用户目标?
驱动因素
  • 欠规格化:用户可能分配具有高层次抽象的任务,这对Agent来说可能难以处理所提供的上下文中的不确定性或模糊性。

  • 连贯性:用户和其他交互工具/Agent将期望为实现特定目标提供一致的响应或指导。

  • 效率:不确定的决策可能会影响Agent的效率,这将导致用户满意度降低。
解决方案
上图展示了单路径计划生成器的高级图形表示。在接收并理解用户目标后,单路径计划生成器可以协调为其他Agent或工具创建中间步骤,并确定任务优先级,以逐步实现目标完成。具体来说,这个过程中的每个步骤都被设计为只有一个单一的后续步骤,例如思维链(Chain-of-Thought, CoT)。自我一致性被用来多次确认基础模型,并选择最一致的答案作为最终决策。
好处    
  • 推理确定性:单路径计划生成器生成多步骤计划,可以反映推理过程,并减少实现用户目标的不确定性或模糊性。

  • 连贯性:与用户交互的Agent、工具和其他Agent提供了一条清晰、连贯的通往最终目标的路径。

  • 效率:单路径计划生成器可以通过削减不必要的步骤或干扰来提高Agent的效率。
缺点
  • 灵活性:单路径计划可能导致灵活性有限,无法适应不同的用户偏好或应用场景,因此用户无法定制他们的解决方案。

  • 过度简化:Agent可能过度简化生成的计划,而该计划需要多方面的方法。
已知用途
  • LlamaIndex:LlamaIndex微调ReActAgent,通过CoT实现更好的性能。

  • ThinkGPT:ThinkGPT提供了一个工具包,以促进单路径计划生成器模式的实施。

  • Zhang等人:通过阐明CoT的基本机制和范式转变,推动了实施。
相关模式
  • 一次性模型查询:一次性模型查询通过仅对基础模型查询一次,启用了单路径计划的生成。

  • 多路径计划生成器:多路径计划生成器可以被视为单路径计划生成器的替代方案,用于定制策略。

  • 自我反思:单路径计划生成器和自我反思都有助于通过思维链实现自我一致性。

4.8 多路径计划生成器(Multi-path Plan Generator) 

在每个中间步骤中创建多个选择,以实现用户目标。
摘要    
多路径计划生成器在实现用户目标的每个中间步骤中都允许创建多种选择。
背景
Agent对用户来说可能被视为“黑箱”,而用户可能关心Agent是如何实现用户目标的过程。
问题
当面对复杂任务或问题时,Agent如何生成高质量、连贯、高效的解决方案,同时考虑到包容性和多样性?
驱动因素
  • 欠规格化:用户可能分配具有高层次抽象的任务,这对Agent来说可能难以处理所提供的上下文中的不确定性或模糊性。

  • 连贯性:用户和其他交互工具/Agent将期望为实现特定目标提供一致的响应或指导。

  • 符合人类偏好:某些目标要求Agent捕获用户的偏好,以提供定制化的解决方案。

  • 过度简化:对于特定复杂任务,Agent可能过度简化推理过程,因此提供的解决方案无法满足用户的要求。
解决方案
展示了多路径计划生成器的高级图形表示。基于单路径计划生成器,多路径计划生成器可以在实现目标的每个步骤中创建多种选择。用户的偏好可能影响随后的中间步骤,导致不同的最终计划。所涉及的Agent和工具的使用将相应调整。Tree-of-Thoughts(ToT)是这种设计模式的一个例子。
好处
  • 推理确定性:多路径计划生成器可以生成具有多种中间步骤选择的计划,以解决推理过程中的不确定性或模糊性。

  • 连贯性:交互用户、Agent和工具提供了一条清晰、连贯的通往最终目标的路径。

  • 符合人类偏好:用户可以确认每个中间步骤以完成计划,因此人类偏好被纳入生成的定制策略中。

  • 包容性:Agent可以在复杂任务的推理过程中指定多个方向。
缺点
开销:任务分解和多计划生成可能增加用户和Agent之间的通信开销。    
已知用途
  • AutoGPT:AutoGPT通过整合Tree-of-Thoughts作为多路径计划生成器,可以做出明智的决策。

  • Gemini:对于一个任务,Gemini可以为用户生成多种选择。在收到用户的响应后,Gemini将为下一步提供多种选择。

  • Open AI:利用GPT-4实现了基于Tree-of-Thoughts的多路径计划生成器。
相关模式
  • 增量模型查询:Agent可以在每一步捕获用户的偏好,并通过迭代查询基础模型来生成多路径计划。

  • 单路径计划生成器:多路径计划生成器可以被视为单路径计划生成器的替代品,用于定制策略。

  • 人类反思:多计划生成器创建了具有各种方向的计划,人类反思可以帮助通过用户反馈确定每个中间步骤的选择。

4.9 自我反思(Self-Reflection)  

使Agent能够生成对计划和推理过程的反馈,并提供自身的改进指导。
摘要
自我反思使Agent能够对计划和推理过程生成反馈,并提供自身改进指导。
背景
鉴于用户的目标和需求,Agent将生成计划,将目标分解为实现目标的一系列任务。
问题    
生成的计划可能会受到基础模型的幻觉影响,如何有效审查计划和推理步骤并纳入反馈?
驱动因素
  • 推理不确定性:Agent的推理过程中可能存在不一致性或不确定性,影响任务成功率和响应准确性。

  • 缺乏可解释性:Agent的可信度可能会因计划生成的透明度和可解释性问题而受到干扰。

  • 效率:某些目标要求在特定时间内完成计划。
解决方案
展示了自我反思的高级图形表示。特别是,反思是一个优化过程,正式化为迭代审查和改进Agent生成的响应。用户通过prompt向Agent明确目标,然后Agent生成计划以满足用户的需求。随后,用户可以指示Agent反思计划以及推理过程。Agent将审查响应以识别和精确定位错误,然后生成一个改进的计划,并相应调整其推理过程。最终确定的计划将逐步执行。
好处
  • 推理确定性:Agent可以评估自己的响应和推理程序,检查是否存在错误或不当输出,并相应进行改进。

  • 可解释性:自我反思允许Agent向用户回顾和解释其推理过程,有助于更好地理解Agent的决策过程。

  • 持续改进:Agent可以不断更新记忆或知识库以及形式化prompt和知识的方式,以在没有或减少反思步骤的情况下向用户提供更可靠和连贯的输出。

  • 效率:一方面,Agent自我评估其响应可以节省时间,因为与其他反思模式相比,没有额外的通信开销。另一方面,Agent可以在未来提供更准确的响应,以减少整体推理时间消耗,考虑到持续改进。
缺点
  • 推理不确定性:评估结果取决于自我反思的复杂性和Agent评估其生成响应的能力。

  • 开销:自我反思可能会增加Agent的复杂性,这可能会影响整体性能。

  • 维护开销:完善和维护具有自我反思能力的Agent需要专业知识和开发过程。
已知用途
  • Reflexion:Reflexion采用了一个自我反思模型,可以根据成功状态、当前轨迹和持久记忆生成细腻和具体的反馈。    

  • Bidder agent:这个Agent的重规划模块利用自我反思根据拍卖的状态和新的上下文信息创建新的文本计划。

  • Generative agents:Agent每天执行两到三次反思,首先根据最近的活动确定反思的目标,然后生成将存储在记忆流中的反思。
相关模式
  • prompt/响应优化器:自我反思可以应用于评估和改进prompt/响应优化器的输出。

  • 增量模型查询:自我反思要求Agent多次查询其集成的基础模型以进行响应审查和评估。

4.10 交叉反思(Cross-Reflection) 

使用不同的Agent或基础模型提供反馈,以改进生成的计划和相应的推理过程。
摘要
交叉反思使用不同的Agent或基础模型来提供反馈,并对生成的计划和相应的推理程序进行改进。
背景
Agent生成计划以实现用户的目标,而这个计划的质量应该被评估。
问题
当一个Agent的能力有限,无法以令人满意的性能进行自我反思时,如何评估这个Agent的输出和推理步骤?
驱动因素    
  • 推理不确定性:Agent推理过程中的不一致性和错误可能会降低响应的准确性,影响整体的可信度。

  • 缺乏可解释性:Agent的可信度可能会因为计划生成的透明度和可解释性问题而受到干扰。

  • 能力有限:由于自我反思的复杂性和Agent的能力限制,Agent可能无法很好地执行反思。
解决方案
包含了交叉反思的高级图形表示。如果一个Agent无法通过反思其输出来生成准确的结果或精确的计划步骤,用户可以指示Agent调用另一个专门用于反思的Agent。后者可以审查并评估原始Agent的输出和相关推理步骤,并提供改进建议。这个过程可以是迭代的,直到反思Agent确认计划为止。此外,可以查询多个Agent进行反思,以生成全面响应。
好处
  • 推理确定性:Agent的输出和相应的方法由其他Agent进行评估和改进,以确保推理确定性和响应准确性。

  • 可解释性:多个Agent可以被用来审查原始Agent的推理过程,向用户提供详尽的解释。

  • 包容性:当查询多个Agent时,反思反馈包括不同的推理输出,这可以帮助形成一个全面的改进建议。

  • 可扩展性:交叉反思支持可扩展的基于Agent的系统,因为反思Agent可以灵活更新,而不会破坏系统操作。
缺点
  • 推理不确定性:整体响应质量和可靠性取决于其他反思Agent的性能。

  • 公平性维护:当不同Agent参与反思过程时,一个关键问题是如何保持所有提供反馈的公平性。

  • 复杂的责任归属:如果交叉反思反馈导致严重或有害的结果,当使用多个Agent时,责任归属过程可能变得复杂。

  • 开销:i) Agent之间的交互将有通信开销。ii) 用户可能需要支付使用反思Agent的费用。
已知用途
  • XAgent:在XAgent中,工具Agent可以将反馈和反思发送给计划Agent,以指示任务是否完成,或指出需要改进的地方。

  • Yao等人:探索Agent通过彼此通信学习的能力。思考Agent可以向执行Agent提供建议,后者负责决策。

  • Qian等人:基于Agent开发了一个虚拟软件开发公司,其中测试Agent可以检测错误并向编程Agent报告。    

  • Talebirad和Nadir:分析了Agent之间的互Agent反馈,包括彼此的批评,这可以帮助Agent调整他们的策略。
相关模式
  • prompt/响应优化器:交叉反思可以提供反馈,以改进prompt/响应优化器的输出。

  • 基于投票的、基于角色的和基于辩论的合作:反思Agent可以协作,以不同的合作方案评估Agent的输出。

  • 工具/Agent注册表:Agent可以通过工具/Agent注册表搜索用于交叉反思的反思Agent。

4.11 人工反思(Human Reflection) 

收集人类反馈以改进计划,有效与人类偏好对齐。
摘要
Agent收集来自人类的反馈以优化计划,有效符合人类偏好。
背景
Agent创建计划和策略,将用户的目标和需求分解为一系列任务。这些任务将由其他工具和Agent完成。
问题
如何确保充分且正确地捕获并整合人类偏好到推理过程和生成的计划中?
驱动因素    
  • 符合人类偏好:Agent最终期望实现用户的目标,因此,对于Agent来说,理解用户的偏好至关重要。

  • 可争辩性:如果Agent的输出不能满足用户的要求并可能造成负面影响,应该有一个及时的过程让用户对Agent的响应提出异议。
解决方案
展示了人类反思的高级图形表示。当用户prompt他/她的目标和指定的约束时,Agent首先创建一个包含一系列中间步骤的计划。构建的计划及其推理过程可以呈现给用户进行审查,或发送给其他人类专家以验证其可行性和有用性。用户或专家可以提供评论或建议,指出哪些步骤可以更新或替换。计划将经过迭代评估和改进,直到获得用户/专家的批准。
好处
  • 符合人类偏好:Agent可以直接从用户或其他人类专家那里接收反馈,了解人类偏好,并改进结果或程序公平性、结果的多样性等。

  • 可调试性:如果发现异常行为或响应,用户或人类专家可以立即对Agent的结果提出异议。

  • 有效性:人类反思允许Agent包括用户的观点进行计划优化,这可以帮助形成根据用户特定需求和理解水平量身定制的响应。这可以确保策略的可用性,并提高实现用户目标的有效性。
缺点
  • 公平性维护:Agent可能受到提供有关现实世界信息有偏见的用户的影响。

  • 能力有限:Agent可能仍然在理解人类情感和经历方面能力有限。

  • 欠规格化:用户提供的反思反馈可能有限或含糊。

  • 开销:用户可能需要为与Agent进行多轮沟通耗费更多token。
已知用途
  • 内心独白:内心独白在机器人系统中实现,它可以将用户的指令分解为可操作的步骤,并利用人类反馈进行物体识别。

  • Ma等人:探索用户和Agent之间的决策商议。用户和Agent都需要为他们的冲突观点提供相关证据和论据。

  • Wang等人:纳入人类反馈,让Agent捕捉用户兴趣的动态演变,并据此提供更准确的推荐。
相关模式
  • prompt/响应优化器:人类反思可以提供人类偏好和建议,以改进生成的prompt和响应。    

  • 多路径计划生成器:多计划生成器创建具有各种方向的计划,人类反思可以帮助通过用户反馈确定每个中间步骤的选择。

  • 增量模型查询:人类反思通过增量模型查询实现,以在用户/专家和Agent之间进行迭代通信。

4.12 基于投票的合作(Voting-based Cooperation) 

Agent可以自由提供意见,并通过投票达成共识。
摘要
Agent可以通过基于投票的合作自由提供意见并通过投票达成共识。
背景
在复合人工智能系统中,可以利用多个Agent。Agent需要在拥有各自视角的同时,就同一任务进行合作。
问题
如何正确地完成Agent的决策,以确保不同Agent之间的公平性?
驱动因素
  • 多样性:所采用的Agent可能对计划的构建方式或任务的完成方式有不同的看法。

  • 公平性:Agent之间的决策应该考虑到它们的权利和责任,以保持公平。

  • 可问责性:Agent的行为应该被记录下来,以便在发现合作结果中的任何违规行为时进行未来的审计。    
解决方案
上图展示了Agent如何通过投票合作来最终确定决策。具体来说,一个Agent可以首先针对用户的prompt生成一个候选响应,然后举行一个投票,在其中不同的反思建议被呈现为选择项。其他Agent被请求根据它们的能力和经验提交它们的投票,以选择最合适的反馈。在这种情况下,Agent以集中的方式进行通信,原始Agent将充当协调者。投票结果将被正式确定并发送回原始Agent,后者可以根据需要完善响应后再回答用户。
好处
  • 公平性:可以通过多种方式举行投票以保持公平。例如,通过计算头数来确保Agent的权利平等,或者可以根据Agent的角色分配权重等。

  • 可问责性:整体程序和最终结果在各自的投票系统中被记录下来。利益相关者可以追溯以识别选择某些选项的可问责Agent。

  • 集体智慧:投票后最终确定的决策可以利用多个Agent的优势(例如,全面的知识库),因此它们被认为比单个Agent生成的决策更准确、更可靠。
缺点
  • 中心化:特定的Agent可能获得决策权的大多数,因此有能力破坏投票过程。

  • 开销:举办投票可能会增加Agent检查和投票选择的通信开销。
已知用途
  • Hamilton:Hamilton利用九个Agent模拟法庭,Agent需要对收到的案件进行投票。每个案件都由占优势的投票结果决定。

  • ChatEval:Agent可以通过投票对用户的prompt达成共识,而投票结果可以通过计算多数票或平均分数来汇总。

  • Yang等人:探索基于GPT-4和LLaMA-2的Agent选民与人类选民在24个城市项目上的一致性。结果表明,Agent选民倾向于有统一的选择,而人类选民有多样化的偏好。

  • Li等人:逐步查询基础模型以生成N个样本,并利用多个Agent通过多数投票选择最终响应。
相关模式
  • 交叉反思:Agent可以查询多个Agent以提供反馈,这些反馈可以通过反思Agent之间的基于投票的合作来确定。

  • 基于角色的和基于辩论的合作:基于投票的合作可以被视为其他合作模式的替代方案,通过在Agent之间举行投票,同时它们可以一起应用以相互补充。    

4.13 基于角色的合作(Role-based Cooperation)  

根据Agent的角色分配任务,并根据角色做出决策。
摘要
Agent被赋予不同的角色,并根据他们的角色来最终确定决策。
背景
在复合人工智能系统中,可以利用多个Agent。Agent需要在拥有各自视角的同时,就同一任务进行合作。
问题
Agent如何能够考虑他们的特殊性,在某些任务上进行合作?
驱动因素
  • 多样性:所采用的Agent可能对计划的构建方式或任务的完成方式有不同的看法。

  • 分工:由于Agent可以针对不同目的使用不同的语料库进行训练,他们的长处和专业知识应该被考虑用于完成任务。

  • 容错性:在合作过程中,Agent可能不可用,这将影响最终的任务结果。
解决方案
上图展示了基于角色的合作的高级图形表示,其中Agent以分层方案进行协调。具体来说,作为规划者的Agent可以通过将用户的目标分解为任务链来生成多步骤计划。随后,作为分配者的Agent可以协调任务分配,即一些任务可以由分配者本身完成,而其他任务可以根据他们的能力和专业知识委托给特定的作为工作者的Agent。此外,如果没有可用的Agent,可以调用作为创造者的Agent来创建一个具有特定角色的新Agent,通过提供必要的资源、明确的目标和初始指导,以确保任务和责任的无缝过渡。请注意,可以定义并分配更精细的角色给Agent。    
好处
  • 分工:Agent可以根据他们在现实世界中的角色,模拟分工,这使得可以观察社会现象。

  • 容错性:由于利用了多个Agent,系统可以通过用同一角色的其他Agent替换不活动的Agent来继续操作。

  • 可扩展性:可以随时雇佣或创建具有新角色的Agent,以完善任务工作流程并扩展整个系统的能力。

  • 可问责性:由于Agent的责任根据他们预期的角色被明确归因,因此便于问责。
缺点
开销:Agent之间的合作将增加通信开销,而具有不同角色的Agent服务可能有不同的价格。
已知用途
  • XAgent:XAgent由三个主要部分组成:任务生成的规划Agent、任务分配的调度Agent和任务完成的工具Agent。

  • MetaGPT:MetaGPT利用扮演不同角色(例如,建筑师、项目经理、工程师)的各种Agent执行标准化操作程序。

  • MedAgents:Agent被赋予各种领域专家的角色(例如,心脏病学、外科、胃肠病学),以提供专业的分析并协作处理医疗问题。

  • Li等人:提出了选择性反思调整,其中教师Agent对数据质量的反思与学生Agent的数据选择相协同。
相关模式
  • 交叉反思:Agent可以查询多个Agent以提供反馈,这些反馈可以通过反思Agent之间的基于角色的合作来确定。

  • 基于投票的和基于辩论的合作:基于角色的合作可以被视为其他合作模式的替代方案,通过明确分配角色给Agent,然后根据给定的角色进行工作和协作。而这些模式可以一起应用以相互补充。

  • 工具/Agent注册表:具有不同角色的Agent可以通过工具/Agent注册表进行搜索和雇佣。

4.14 基于辩论的合作(Debate-based Cooperation) 

Agent接收其他Agent的反馈,并在与其他Agent的辩论中调整思想和行为,直到达成共识。
摘要
Agent从其他Agent那里接收反馈,并在与其他Agent的辩论中调整思想和行为,直到达成共识。
背景
复合人工智能系统可以整合多个Agent,以提供更全面的服务。所包含的Agent需要在拥有各自视角的同时,就同一任务进行合作。
问题
如何利用多个Agent创建精炼的响应,同时促进Agent的进化?
驱动因素
  • 多样性:不同的Agent可能有各种意见,有助于改进对用户的生成响应。

  • 适应性缺乏:Agent在面对新情境或任务时,可能表现出有限的创造力。

  • 可解释性缺乏:Agent的互动过程应该被解释,以便于审核,如果发现违规行为。
解决方案
上图展示了基于辩论的合作的高级图形表示。用户可以向Agent发送查询,然后Agent将问题分享给其他Agent。在共享问题的基础上,每个Agent生成自己的初始响应,随后开始Agent之间的辩论。Agent将以分散的方式将初始响应传播给彼此进行验证,同时提供指导和潜在的规划方向,以基于包容和集体成果构建更全面的响应。此外,Agent可能在某些情况下使用共享记忆,或允许彼此访问各自的记忆以促进辩论。这个辩论过程可以是迭代的,以提高所有参与Agent的性能。基于辩论的合作可以根据预定的辩论轮数结束,或者Agent将继续程序,直到获得共识答案。    
好处
  • 适应性:Agent可以在辩论过程中适应其他Agent,实现持续学习和进化。

  • 可解释性:基于辩论的合作结构化地展示了Agent的论点和呈现的证据,保留了整个过程的透明度和可解释性。

  • 批判性思维:与其他Agent辩论可以帮助Agent发展批判性思维能力,用于未来的推理过程。
缺点
  • 能力有限:基于辩论的合作的有效性依赖于Agent的推理、论证和评估其他Agent陈述的能力。

  • 数据隐私:Agent可能需要保留某些敏感信息,这可能影响辩论过程。

  • 开销:辩论的复杂性可能增加了通信和计算开销。

  • 可扩展性维护:随着参与Agent数量的增加,系统的可扩展性可能会受到影响。Agent的协调和他们的论点处理可能变得复杂。
已知用途
  • crewAI:crewAI提供了一个多Agent协同框架,多个Agent可以就给定主题进行讨论。

  • Liang等人:利用多Agent辩论来解决“思维退化”问题。在辩论中,一个Agent需要说服另一个Agent并纠正错误。

  • Du等人:使用多个Agent讨论给定的用户输入,实验结果表明,Agent在多轮辩论后可以达成共识答案。

  • Chen等人:探索多Agent系统中的谈判过程,每个Agent可以感知其他Agent的结果,并调整自己的策略。
相关模式
  • 交叉反思:Agent可以通过基于辩论的合作决定对另一个Agent的反思反馈。

  • 基于投票的和基于角色的合作:基于辩论的合作可以被视为其他合作模式的替代方案,通过在Agent之间举办辩论,同时它们可以一起应用以相互补充。

  • 工具/Agent注册表:参与辩论过程的Agent可以通过工具/Agent注册表进行雇佣。

4.15 多模态护栏(Multimodal Guardrails)  

控制基础模型的输入和输出,以满足特定要求,如用户需求、道德标准和法律。
摘要
多模态护栏可以控制基础模型的输入和输出,以满足特定要求,如用户需求、道德标准和法律。
背景
Agent由基础模型和其他组件组成。当用户向Agent提示特定目标时,基础模型被查询以实现目标。
问题
如何防止基础模型受到对抗性输入的影响,或对用户和其他组件生成有害或不期望的输出?
驱动因素
  • 鲁棒性:对抗性信息可能被发送到基础模型,这将影响模型的内存和所有随后的推理过程和结果。

  • 安全性:由于幻觉,基础模型可能会生成不适当的响应,这可能对用户造成冒犯,并扰乱其他组件(例如,其他Agent、外部工具)的操作。

  • 标准一致性:Agent和基础模型应与行业和组织中的特定标准和要求保持一致。    
解决方案
上图展示了多模态护栏的简化图形表示。护栏可以作为基础模型和复合人工智能系统中所有其他组件之间的中间层。当用户发送提示或其他组件(例如,内存)向基础模型传输任何消息时,护栏首先验证信息是否满足特定的预定义要求,只有有效信息才会传递给基础模型。例如,应谨慎处理或删除个人身份信息以保护隐私。护栏可以依靠预定义的示例或以“无参考”方式评估内容。同样地,当基础模型创建结果时,护栏需要确保响应不包含对用户的偏见或不相关信息,或满足其他系统组件的特定要求。请注意,可以实施一组护栏,每个护栏负责专门的交互,例如,从数据存储库检索信息、验证用户输入、调用外部API等。同时,护栏能够处理多模态数据,如文本、音频、视频,以提供全面的监控和控制。
好处
  • 鲁棒性:护栏通过过滤不适当的上下文信息来保护基础模型的鲁棒性。

  • 安全性:护栏作为基础模型结果的验证者,确保生成的响应不会对Agent用户造成伤害。

  • 标准一致性:护栏可以根据组织政策和策略、道德标准和法律要求进行配置,以调节基础模型的行为。

  • 适应性:护栏可以在各种基础模型和Agent中实施,并部署具有定制要求。
缺点
  • 开销:i) 收集多样化和高质量的语料库以开发多模态护栏可能是资源密集型的。ii) 实时处理多模态数据可能增加计算要求和成本。

  • 缺乏可解释性:多模态护栏的复杂性使其难以解释最终的输出。
已知用途
  • NeMo护栏:NVIDIA发布了NeMo护栏,这些护栏专门设计用于确保用户和AI系统之间对话的一致性,并防止错误信息和敏感主题的负面影响。

  • Llama护栏:Meta发布了Llama护栏,这是一种基于安全风险分类学微调的基础模型护栏模型。Llama护栏可以识别用户提示和模型输出中潜在的风险或违规内容。

  • 护栏AI:护栏AI提供了一个中心,列出了处理基础模型输入和输出中不同风险的各种验证器。
相关模式
  • 主动目标创建者:多模态护栏可以帮助处理主动目标创建者捕获的多模态数据。

  • 一次性和增量式模型查询:多模态护栏作为中间层,管理模型查询的输入和输出。

4.16 工具/Agent注册表(Tool/Agent Registry)  

维护统一且方便的来源以选择多样的Agent和工具。
摘要
工具/Agent注册表维护了一个统一且方便的来源,用于选择多样化的Agent和工具。
背景
在Agent内部,任务执行者可能需要与其他Agent合作或利用外部工具以扩展能力。
问题
存在多样化的Agent和工具,Agent如何高效地选择适当的外部Agent和工具?
驱动因素
  • 可发现性:鉴于多样性,用户和Agent可能难以发现可用的Agent和工具。

  • 效率:用户/Agent需要在一定时间内完成Agent和工具的选择。

  • 工具适当性:特定任务可能对Agent/工具有特定要求(例如,特定能力)。
解决方案
上图展示了Agent如何通过工具/Agent注册表搜索外部Agent和工具。用户向Agent提示目标,Agent然后将目标分解为细粒度的任务。Agent可以查询工具/Agent注册表,这是收集和分类各种工具和Agent的主要入口点,根据一系列指标(例如,能力、价格、上下文窗口)。基于返回的信息,Agent可以雇用并分配任务给相应的工具和Agent。请注意,注册表可以以不同方式实现,例如,具有特定知识库的协调Agent、基于区块链的智能合约等,注册表可以扩展为工具/Agent服务交易的市场。    
好处
  • 可发现性:注册表为用户提供了目录,以发现具有不同能力的Agent和工具。

  • 效率:注册表提供了直观的清单,列出了工具和Agent的属性(例如,性能、价格),节省了比较时间。

  • 工具适当性:鉴于任务要求和条件,用户和Agent可以按照提供的属性选择最合适的工具/Agent。

  • 可扩展性:注册表仅存储有关工具和Agent的某些元数据,因此数据结构简单且轻量级,确保了注册表的可扩展性。
缺点
  • 中心化:注册表可能成为供应商锁定解决方案,导致单点故障。如果由外部实体维护,它可能被操纵和破坏。

  • 开销:实施和维护工具/Agent注册表可能会引入额外的复杂性和开销。
已知用途
  • GPTStore:GPTStore提供了一个目录,用于搜索基于ChatGPT的Agent。

  • TPTU:TPTU整合了一套工具,以扩展AIAgent的能力。

  • VOYAGER:VOYAGER可以存储动作程序,因此逐步建立可重用的技能库。

  • OpenAgents:特别开发的Agent用于管理插件的API调用。
相关模式
  • 交叉反思:Agent可以通过工具/Agent注册表搜索用于交叉反思的Agent。

  • 基于投票的、基于角色的和基于辩论的合作:工具/Agent注册表可以为合作模式提供Agent来源。

4.17 Agent评估器(Agent Evaluator)   

摘要
Agent评估器可以执行测试,根据多种需求和指标来评估Agent。
背景
在Agent中,基础模型和一系列组件协调进行推理并生成对用户提示的响应。
问题
如何评估Agent的性能,确保它们按预期运行?
驱动因素
  • 功能适用性保证:Agent开发者需要确保部署的Agent按预期运行,为用户提供完整、正确和适当的服务。

  • 适应性改进:Agent开发者需要了解和分析Agent在特定场景中的使用情况,以执行适当的调整。
解决方案    
上图展示了Agent评估器的简化图形表示。开发者可以在设计时运行时部署评估器,以评估Agent的响应和推理过程。具体来说,开发者需要构建评估流程,例如,定义基于特定场景的要求、指标和预期的Agent输出。给定特定上下文,Agent评估器准备上下文特定的测试用例(要么从外部资源搜索,要么自己生成),并分别对Agent组件进行评估。评估结果提供有价值的反馈,如边界情况、近乎失误等,而开发者可以进一步微调Agent或采用相应的风险缓解解决方案,并根据结果升级评估器。
好处
  • 功能适用性:Agent开发者可以通过评估结果了解Agent的行为,并将实际响应与预期的响应进行比较。

  • 适应性:Agent开发者可以分析评估结果,根据基于场景的要求,决定Agent是否应该适应新的要求或测试用例。

  • 灵活性:Agent开发者可以定义自定义的指标和预期的输出,以测试Agent的特定方面。
缺点
  • 度量量化:为软件质量属性的评估设计量化的评分标准是困难的。

  • 评估质量:评估质量取决于准备的测试用例。
已知用途
  • Inspect:英国人工智能安全研究所设计了一个大型语言模型的评估框架,提供了一系列内置组件,包括提示工程、工具使用等。

  • DeepEval:DeepEval包含14个评估指标,并支持LlamaIndex、Hugging Face等Agent开发框架。

  • Promptfoo:Promptfoo可以提供高效的评估服务,具有缓存、并发和实时重载功能,并还可以根据用户定义的指标实现自动化评分。

  • Ragas:Ragas通过测试数据集生成和利用LLM辅助评估指标,促进对RAG管道的评估。
相关模式
Agent评估器可以配置并部署,以在设计时和运行时评估其他面向模式的Agent组件的性能。

5. 不足  

上述文章提出的架构模式目录,仍有以下不足之处:  

  • 多Agent协作模式涵盖不足,仅根据场景大致划分为3-4类(基于投票、基于辩论等),对于开发者而言指导意义不足,难以实现“按图索骥”。

在后续的《AI Agent架构模式》系列文章中,可以考虑将之前整理的10+种多Agent协作(架构)模式作为示例,呈现给读者。

  • 相较于角色、投票、辩论的划分形式,建议按照互动协作类、分发求解类、议题决策类进行划分。
  • 设计模式未能体现Agent的编排能力、工具使用能力相关的架构模式。
  • 编排相关架构模式包含多语言SDK、workflow低代码编排等能力。
  • 工具使用相关架构模式包含安全沙箱、实时图计算等能力。

6 参考资料 

Yue Liu, Sin Kit Lo, Qinghua Lu, Liming Zhu, Dehai Zhao, Xiwei Xu, Stefan Harrer, Jon Whittle. "Agent Design Pattern Catalogue: A Collection of Architectural Patterns for Foundation Model based Agents," arXiv:2405.10467
推荐阅读
丝分缕解DSPy-03篇!带你了解DSPy核心模块-Optimizer类源码实现
丝分缕解DSPy-02篇!带你了解DSPy核心模块-Module类源码实现
丝分缕解!带你了解DSPy核心模块源码实现原理之01篇-Signature类


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1