论文阅读_使用有向无环图实现流程工程_AgentKit

英文名称: AgentKit: Flow Engineering with Graphs, not Coding
中文名称: AgentKit:使用图而非编码进行流程工程
链接: https://arxiv.org/pdf/2404.11483.pdf
代码: https://github.com/holmeswww/AgentKit
作者: Yue Wu, Yewen Fan, So Yeon Min, Shrimai Prabhumoye, Stephen McAleer, Yonatan Bisk, Ruslan Salakhutdinov, Yuanzhi Li, Tom Mitchell
机构: 卡内基梅隆大学, NVIDIA, 微软, 波士顿大学
日期: 2024-04-17
引用次数: 80

1 摘要

  • 目标:提出了 LLM 提示框架 AgentKit,用于构建能通过自然语言提示进行复杂“思考过程”的多功能代理。
  • 方法:AgentKit 使用节点作为基本构建块,每个节点包含一个特定子任务的自然语言提示。用户可以将这些节点像乐高积木一样堆叠起来,形成一个复杂的思考过程。
  • 结果:AgentKit 设计的代理在 WebShop 和 Crafter 上实现了最先进的性能。

2 相关知识

2.1 Agent

在不同的上下文中,"Agent" 可能有不同的含义。有时 "Agent" 被用来指代一个完整的系统,它可以解决复杂的问题,通过将大任务拆分成小块,并使用各种工具或 LLM 来处理这些小块。有时 "Agent" 用来指代这些小块,这些小块各自执行特定的任务,并协同工作以完成更大的任务。

在 Langchain 或类似的系统中,Agent 常被分为思考模块和行动模块。思考模块负责处理信息、做出决策和规划,而行动模块则负责执行这些决策和规划。这是一种根据角色和职责的分类,与具体工具或方法无关。

2.2 问题分析

在处理复杂问题或者提供多元化功能时,一个 Agent 执行完之后,可能需要多个 Agent 来进行后续操作。如果需要手动指定,则需要编写大量的逻辑来管理这些 Agent 之间的关系。当增加或修改功能时,会面临复杂的逻辑修改。

许多时候,行动模块的功能已经比较完善。如果我们能清晰地描述模块间的依赖关系,从而避免穷举;思考模块会根据当前的环境来构建解决问题的流程,并对这个流程进行反思和优化,那么整个链路就打通了。

3 读后感

前几天,和朋友讨论了如何让 Agent 自我构建知识体系,自我进化。刚好看到了这篇论文,作者对 Agent 结构进行了更为深入和丰富的思考,并提出了流程工程,或者思维工程的概念。

以前,Agent 的组合相对较简单。一种方法是通过程序限定当前步骤可以使用哪些 Agent,这需要大量人工干预。另一种方法是将当前环境和所有可用的 Agent 一起交给思考 Agent 自由选择,但这可能会引发许多错误,出及 token 的浪费。

这篇论文提出的方法,类似于使用强化学习通过精调 LLM 优化 Agent。不同之处在于本篇中知识存储在模型的外部,更具有可解释性。这两种方法各有千秋。

这篇论文针对思考和行动这两个目标,在结构上分别进行了优化:在行动方面,将每个子功能都抽象成模块,可灵活组合。同时,通过图形的方式建立并约束了模块之间的关系。在执行过程中,根据具体情况进行动态路由,而非预先设定好具体逻辑。在思考方面,结合了反思,分层规划,长短期记忆,并在探索过程中构建知识库,以优化 Agent 的调用过程。

4 引言

图 1:用户将任务分解为代表“思维过程”的子任务(节点),并为子任务(节点)创建提示。AgentKit 中的子任务(节点)可以以不同的方式设计和组装,以实现不同的功能,类似于乐高积木。

本文的主要贡献是提出了一个端到端多功能人工智能代理的自然语言“编码”框架。这个框架具备进行计划、反思和学习的能力。

具体方法是生成了一个有向无环图,该图由动态节点和依赖关系的集合构成。在执行过程中,遍历这个图,根据动态图的拓扑顺序计算每个节点的 LLM 结果。使用最后一个节点直接输出环境操作。为了提高功能性,可以通过编码在推理过程中动态添加和删除节点和依赖项,从而完成复杂的路由。

5 优化行动

首先,将“思维过程”定义为一系列相互关联的自然语言子任务。每个子任务都以节点形式呈现,这些节点通过有向无环图(DAG)中的依赖关系链接,以实现各种逻辑和连贯的过程。

每个节点都能够接触到中央数据库。用户可以通过此数据库将任务规范、指令和当前的游戏观察结果传递到图中的每个节点。此外,数据库还使节点能够存储持久信息(例如,计划或知识库),并将这些信息传递给未来的步骤。

图 -2 展示了子节点内部和外部的构造。

5.1 节点组件

对于每个节点 v,用户通过指定提示 q 和依赖项 D 列表来定义子任务。在节点内部,AgentKit 运行一个内置流,该流对输入进行预处理(Compose),LLM 使用预处理的输入和提示 q 进行查询,并选择性地对 LLM(After-query)的输出进行后处理,如:图 -2 的左侧所示。(图 -2 已经画得非常清楚,就不在此展开了,细节请见论文)

5.2 动态组件

为了支持如分支等高级功能,AgentKit 提供了 API,供用户在推理过程中可以动态地修改 DAG。如图 -2 的右侧显示,节点 n7 可以根据当前的状态,动态地在图中增加(或删除)组件。值得注意的是,所有这些修改都是临时性的,并且,禁止对已在此阶段的评估节点进行修改。

5.3 动态图遍历

使用了 Kahn 算法来遍历有向无环图的静态节点和动态添加/删除的节点。这种算法特别适用于拓扑排序。由于给定图可能存在多种拓扑排序,因此组件的动态添加/删除可能引发不确定性或意外行为。为了防止这种情况,采取了相应的保护措施,以捕捉潜在的意外行为。

6 优化思考

这里演示了 Crafter(Hafner,2021)游戏的代理,下面按图 -3 中的 a-d 分别说明。

6.1 总结并跟踪

图 3(a),在每一步,Agent 会总结并跟踪:1)观察(OTns-obs);2)计划和推理(OTns-plan);3)观察变化以推断基于前一动作是否成功(OT−1ns-action)。

6.2 具有短期反思的分层规划器

图 3(b),在步骤 T 中,所有的规划节点将 oT−1、oT 和手册 I 作为输入,并输出 3 个子目标和一个技能 sT。nreflect 反思最近 25 步的总结,而 nchallenge 和 ngate 决定是否保留(T - 1)的子目标或进行更新。

利用关于最重要的子目标的信息,代理会跟踪一个“技能”列表(nskills),提示 LLM 检索和创建新的技能,以构建一个技能库 S。

6.3 长期反思

图 3(c),每 3 个步骤,通过 LLM 提示技能 s 下的所有先前步骤来计算特定于技能的反馈。

Onfeed 将成为后续计划和行动决策的上下文。

6.4 在与知识库交互的过程中学习

图 3(d),代理使用两个精心设计的提示(节点):nunknown 和 nkb-add,维护未知信息列表 Lunk 和知识库 KB。在每个步骤 T 中,nkb-add 提示 LLM 通过理解最后两步的观察 oT−1 和 oT,从 Lunk 中识别信息。识别的信息被存储在知识库 KB 中。然后,nunknown 提示 LLM 列出当前子目标需要的缺失信息(来自说明手册和知识库)。缺失的信息列表随后被添加到 Lunk 中。

7 实验结果

8 相关论文

  • SPRING: Studying Papers and Reasoning to play Games

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows系统完全卸载删除 Node.js (包含控制面板找不到node.js选项情况)

1.打开cmd命令行窗口,输入npm cache clean --force 回车执行 2.打开控制面板,在控制面板中把Node.js卸载 移除之后检查环境变量是否也移除:点击Path,点击编辑。 把环境变量中和node有关的全部移除,然后点击确定。 3.重…

第八届大数据与物联网国际会议(BDIOT 2024)即将召开!

第八届大数据与物联网国际会议(BDIOT 2024)将于2024年9月14-16日在澳门圣若瑟大学举行。数聚未来,物联世界!BDIOT 2024旨在搭建为各位与会代表展示自己研究成果、分享经验、建立联系和开展合作的平台,共同探讨大数据与物联网领域的未来发展方…

Java17 --- SpringCloud之Gateway

目录 一、Gateway网关创建 1.1、创建微服务子工程9527及配置和依赖 1.1.1、pom依赖 1.1.2、yml配置 1.1.3、主启动类并测试入驻consul 二、实现路由映射 2.1、服务8001新增测试代码 2.2、修改9527服务yml配置文件 2.3、远程调用接口加gateway 2.3.1、新增80服务测…

智能商品计划系统:引领未来零售业的革新之路

随着科技的飞速发展,人工智能(AI)和大数据技术已成为推动各行业革新的关键动力。在零售行业中,智能商品计划系统的出现,正逐步改变着传统的商品规划与管理方式,为品牌注入新的活力与竞争力。本文将对智能商…

Marin说PCB之国产电源芯片方案 ---STC2620Q

随着小米加入的造车大家庭,让这个本来就卷的要死的造车大家庭更加卷了。随之带来的蝴蝶效应就是江湖上各个造成门派都开始了降本方案的浪潮啊,开始打响价格战了。各家的新能源车企也是不得不开始启动了降本方案的计划了,为了应对降价的浪潮。…

5月8日学习记录

_[FBCTF2019]RCEService(preg_match函数的绕过) 涉及知识点:preg_match函数绕过,json的格式,正则回溯 打开环境,要求用json的格式输入 搜索学习一下json的语法规则 数组(Array)用方括…

【除了协程还有哪些方式可以实现异步编程】

在Unity中,除了使用协程实现异步编程外,还有以下几种方法: 异步加载资源: 使用UnityWebRequest类进行异步加载资源,这在加载网络资源或动态加载资源时非常有用。 using UnityEngine; using UnityEngine.Networking;…

Linux的虚拟机操作

一、linux系统 我们知道的系统用到的大多数是Windows系统。 Windows个人用到的有:win7 win10 win11 winxp 服务器用到的有:windows server 2003、2008、2013...........等等 linux也有系统。 centos 7 有5、6、8等等 redhat ubuntu kail 二、了…

原码、反码、补码、移码

原码、反码、补码、移码 数值在计算机中的表示为机器数,特点是采用二进制来表示。 对于n位的机器数其表示编码有原码、反码、补码、移码等表示。 以下均假设n8: 1、原码: 最高位为符号位,0表示正号,1表示负号&#x…

PDF转word转ppt软件

下载地址:PDF转word转ppt软件.zip 平时工作生活经常要用到PDF转word转ppt软件,电脑自带的又要开会员啥的很麻烦,现在分享这款软件直接激活就可以免费使用了,超级好用,喜欢的可以下载

长难句打卡5.6

For H&M to offer a $5.95 knit miniskirt in all its 2,300-plus stores around the world, it must rely on low-wage overseas labor, order in volumes that strain natural resources, and use massive amounts of harmful chemicals. 翻译:H&M若要在其全球总共2…

ue引擎游戏开发笔记(35)——为射击添加轨道,并显示落点

1.需求分析: 我们只添加了开枪特效,事实上并没有实际的效果产生例如弹痕,落点等等。所以逐步实现射击的完整化,先从实现落点开始。 2.操作实现: 1.思路:可以这样理解,每次射击的过程是一次由摄…