暖阳脚本_ 将Agent技术的灵活性引入RPA,清华等发布自动化智能体ProAgent
RPA暖阳脚本
近日,来自清华大学的研究人员联合面壁智能、中国人民大学、MIT、CMU 等机构共同发布了新一代流程自动化范式 “智能体流程自动化” Agentic Process Automation(APA),结合大模型智能体帮助人类进行工作流构建,并让智能体自主处理工作流中涉及复杂决策与动态处理的环节,进一步提升自动化的程度,提高效率,将人类从繁重的劳动中解放出来。
在历史的长河中,自动化是人类技术发展的主要动力,帮助人类从复杂、危险、繁琐的劳动环境中解放出来。自早期农业时代的水车灌溉,到工业时代的蒸汽机,人类一直在不断寻求更加先进的自动化技术,从而解放自身于繁重的工作。
随着信息时代的到来,软件作为信息处理、存储和通信的基础成为了人类生产生活密不可分的一环,从而催成了机器人流程自动化(Robotic Process Automation, RPA)技术。其通过人工编制规则将多个软件协调成一个固化的工作流(Workflow),通过模拟人交互的方式来和软件交互实现高效执行。
图 1 机器人流程自动化 RPA 与智能体流程自动化 APA 对比
RPA 利用软件机器人或称为 “BOT” 来模拟和执行重复性、规则性的任务,从而解放人力资源,提高工作效率。RPA 的应用范围非常广泛。很多企业(包括银行、保险公司、制造业、零售业等各个行业)常利用 RPA 机器人来自动执行一些常规和繁琐的任务,例如:数据录入、数据提取、数据处理。通过自动化任务,RPA 可以大幅度减少错误率,并且能够在 24*7 不间断地执行任务,从而提高了业务的可靠性和响应能力。
根据市场研究,RPA 市场正在迅速增长并取得巨大成功。Gartner 预测,2023 年全球 RPA 市场收入将达到 33 亿美元,相比 2022 年增长 17.5%。这表明了企业对于 RPA 的强烈需求和认可。
但是,RPA 仅能替代简单、机械的人力工作,一些复杂的流程仍旧依赖人工:
编写 RPA 工作流本身需要繁重的人类劳动,成本较高。
复杂任务非常灵活,通常涉及动态决策,难以固化为规则进行表示。
图 2 RPA 与 APA 的效率与智能对比
幸运的是,最近 AI 领域兴起的大模型智能体技术(Large Language Model based Agents, LLM-based Agents)也许给自动化技术创造了新的可能性。有没有可能将 Agent 技术的灵活性引入到 RPA 领域中,来进一步减少人的参与呢?
该团队的研究探讨了大模型智能体时代下新型自动化范式 “智能体流程自动化” Agentic Process Automation (APA)。和传统 RPA 相比,在 APA 范式中,Agent 可以根据人类的需求自主完成工作流构建,同时其可以识别人类需求中需要动态决策的部分,将自动编排进工作流中,并在工作流执行到该部分时主动接管工作流的执行完成相应复杂决策。
为了探索 APA 的可能性,该研究工作实现了一个自动化智能体 ProAgent,其可以接收人类指令,以生成代码的方式构建工作流,同在工作流中引入 DataAgent 和 ControlAgent 来在工作流中实现复杂数据处理与逻辑控制。ProAgent 的研究展现了 APA 在大模型智能体时代下的可行性,也揭示了 LLM 时代下,自动化技术的崭新可能性。
方法介绍
在 RPA 中,工作流是由一系列工具调用组成的图状结构:节点代表一个原子化的工具调用(如 Gmail、Twitter、Google Sheets),而边代表了执行的逻辑顺序(承接、分支、循环)。一个工作流往往包含了对于一个或一类任务的所有先验知识,其中包含解决问题的路径,遇到异常时的处理逻辑等等。因此人编写固化出来的工作流往往是非常稳定周全、非常高效的。
图 3 智能体工作流描述语言示例
在 ProAgent 中,由于 LLM 本身在代码数据中进行预训练,学习到了较强代码能力,该研究便基于代码的智能体工作流描述语言 Agentic Workflow Description Language。该语言使用 JSON 实现对工作流中数据的组织与管理,选择 Python 语法实现对工作流的逻辑控制,将控制流中的跳转、循环等直接通过 Python 语法进行表征,同时将工作流中的工具调用封装为 Python Function。于是对于 ProAgent,工作流构建任务便转化为代码生成任务。当接收到人类指令时,ProAgent 便编写相应的 Agentic Workflow Description Language,从而实现了工作流自动化构建。
图 4 结合 DataAgent 和 ControlAgent 的智能体工作流描述语言示例
复杂的现实任务中通常会涉及动态决策,单纯的 Python 式的逻辑控制规则以及 JSON 式的数据组织形式在面对灵活的需求时便无能为力,此时便需要引入 agent。因此,该研究工作进一步定义出了两种 Agent 操作:
-
DataAgent:对于一个复杂的数据处理需求,工作流构建时会使用自然语言来描述处理的任务,然后在执行时会初始化一个 DataAgent,其会基于该自然语言描述自主处理并完成该数据处理任务。
-
ControlAgent:对于难以用规则表示的逻辑控制规则,工作流构建时使用自然语言对控制逻辑进行描述,然后在运行时会初始化一个 ControlAgent,其会基于该自然语言描述自主选择工作流后续需要执行的分支。
ProAgent 使用 ReACT 模式逐步构建工作流,其共包含四个工作流构建步骤:
Action_Define:决定在工作流中添加什么工具。
Action Implement:将工具的输入 / 输出参数转化为 JSON 结构,同时将工具的调用封装为 Python 函数。
Workflow Implement:定义一个 mainWorkflow 函数,用以组织整个 workflow 的逻辑控制与数据处理。
Task Submit: 当 ProAgent 构建完 workflow 时以该操作标识构建过程结束。
图 5 ProAgent 工作流构建过程示例
另外,为了优化 ProAgent 的效果,又引入了几个优化技巧:
1.Testing-on-Constructing:在构建过程中,ProAgent 会在一次修改工作流之后对工作流进行测试,以保证工作流的正确性。
Function Calling:工作流构建的所有操作均封装为了 GPT-4 的 Function,从而提高对工作流构建过程的控制。
Chain-of-Thought:ProAgent 在编写工作流代码时,需要对于每个 function 都要给出注释 comment 和一个编写 plan,从而提高 ProAgent 工作流构建的性能。
工作流执行过程基于 Python interpreter。给定一个工作流,其对应的 mainWorkflow 函数用作为工作流执行的入口来开始整个执行过程。执行过程遵循 Python 代码执行规则,即按照顺序逐行执行。一旦 mainWorkflow 函数返回,工作流执行就成功完成了。
可行性验证
为了验证 Agentic Process Automation 的可行性,该研究使用 OpenAI GPT-4 作为基础模型,并以一个开源的 RPA 平台 n8n 作为载体,实现了上述的 ProAgent。同时设计了一个需要兼顾灵活与效率的任务:这是一个典型的商业场景,需要从 Google Sheets 中提取各种业务线的营利数据,同时根据业务是否属于 2B 或是 2C,决定后续的行为。一旦确定业务线为 2C,就会向 Slack 频道发送一条消息。而对于 2B 的业务线,则会向相应的经理发送一封电子邮件,其中包括对业务线的评估和简要的盈利概况。
图 6 任务 Instruction 展示
对于该任务,首先它是一个重复性的任务,对于多条产品线,应该走相同的处理流程。其次,分辨一个业务线是 2C 还是 2B 很难通过规则判断,需要涉及 Agent 动态决策来判断后续的工作流执行操作。最后,根据撰写业务线的评估邮件需要一定的智能,所以需要 Agent 的介入。
在 ProAgent 生成中,对于该任务,编写出了一个包含四个原子操作,一个 DataAgent 和一个 ControlAgent 的工作流。总体过程大致如下图所示:
图 7 ProAgent 工作流构建过程展示
可以看到,ProAgent 通过自主编写代码的方式,自动完成了工作流的构建过程,其中无需涉及人工介入。在需要判断业务线是 2B 还是 2C 时,ProAgent 引入了 ControlAgent 来做判断,ControlAgent 的 Prompt 被设置为 “Decide Whether the business line is toC or toB”。当业务线为 2B 时,ProAgent 还引入了一个 DataAgent,其任务设置为 “Write a email of the business line of profit, together with your suggestion”,从而利用 agent 的智能来根据不同业务线的实际情况来撰写邮件。
在工作流被编写、固化下来以后,工作流就会根据不同的数据自动分支到不同的逻辑进行高效地数据处理了。
图 8 ProAgent 工作流执行过程展示
在处理 2C 业务线数据时,ControlAgent 可以根据业务线描述判断出当前业务线的类型,选择调用 Slack 工具。当遇到 2B 业务线数据时,DataAgent 可以撰写邮件发到相应经理的邮箱中。
总结
该研究提出了大模型时代下新的自动化范式 ——Agentic Process Automation,和传统 Robotic Process Automation 技术相比,其可以实现工作流构建的自动化,以及工作流执行时动态决策的自动化。该研究进一步实现了 ProAgent 并通过实验揭示了大模型智能体在自动化中的可行性与潜力。相信未来大模型智能体技术会帮助人类实现更高层次的自动化,将人类从各种繁重的劳动中解放出来。
相关文章:

暖阳脚本_ 将Agent技术的灵活性引入RPA,清华等发布自动化智能体ProAgent
RPA暖阳脚本 近日,来自清华大学的研究人员联合面壁智能、中国人民大学、MIT、CMU 等机构共同发布了新一代流程自动化范式 “智能体流程自动化” Agentic Process Automation(APA),结合大模型智能体帮助人类进行工作流构建&#x…...

JUnit 单元自动化
一、Junit 是什么? Junit 是 Java 中用于单元测试的框架。使用 Junit 能让我们快速高效的完成单元测试。 自动化测试:JUnit提供了自动化测试的能力,开发人员可以编写一次测试用例,然后通过简单的命令或集成到持续集成工具中进行…...
Vue3 源码解读系列(十一)——插槽 slot
slot 插槽的实现实际上就是一种 延时渲染,把父组件中编写的插槽内容保存到一个对象上,并且把具体渲染 DOM 的代码用函数的方式封装,然后在子组件渲染的时候,根据插槽名在对象中找到对应的函数,然后执行这些函数做真正的…...

[github初学者教程] 分支管理-以及问题解决
作者:20岁爱吃必胜客(坤制作人),近十年开发经验, 跨域学习者,目前于新西兰奥克兰大学攻读IT硕士学位。荣誉:阿里云博客专家认证、腾讯开发者社区优质创作者,在CTF省赛校赛多次取得好成绩。跨领域…...
见面礼——图论
给定一个 n 个点 n 条边的无向图,你需要求有多少种选择图上的一个点 p 和一条边 (x,y) 的方案,使得删去 (x,y) 后图变成一棵树,且这棵树以 p 为根时每个节点的儿子个数均不超过 3。保证至少存在一种这样的方案。 Input 输入的第一行一个整数…...

【论文阅读】SPARK:针对视觉跟踪的空间感知在线增量攻击
SPARK: Spatial-Aware Online Incremental Attack Against Visual Tracking introduction 在本文中,我们确定了视觉跟踪对抗性攻击的一个新任务:在线生成难以察觉的扰动,误导跟踪器沿着不正确的(无目标攻击,UA&#x…...

MR混合现实教学系统在汽车检修与维护课堂教学中的应用
传统的汽车检修与维护课堂教学主要依赖教师口头讲解和黑板演示,这种方式存在一定的局限性。首先,对于一些复杂的机械结构和操作过程,教师难以生动形象地展示给学生。其次,学生无法直接观察到实际操作中的细节和注意事项࿰…...
CentOS7安装xvfb,解决服务器没有X-Server的问题
Linux服务器上一般没有图形界面,但是有时候有些软件又需要图形界面.比如oracle,自动化测试(puppeteer).运行的时候会提示没有没有X服务. 这时候一般不会去特地装图形界面.这个时候就要用xvfb来创建虚拟图形窗口. xvfb介绍 Xvfb(X Virtual Frame Buffer)是基于X Window的虚拟服…...

快速集成Skywalking 9(Windows系统、JavaAgent、Logback)
目录 一、Skywalking简介二、下载Skywalking服务端三、安装Skywalking服务端3.1 解压安装包3.2 启动Skywalking 四、关于Skywalking服务端更多配置五、Java应用集成skywalking-agent.jar5.1 下载SkyWalking Java Agent5.2 集成JavaAgent5.3 Logback集成Skywalking5.4 集成效果 …...

起立科技(起鸿)在第25届高交会上展示透明OLED技术创新
第二十五届中国国际高新技术成果交易会 日期:2023年11月15日 地点:福田会展中心7号馆 深圳,2023年11月15日 — 起鸿科技,作为透明OLED领域的引领者,于今日参展了第二十五届中国国际高新技术成果交易会。这一展会将汇…...
大模型LLM 在线量化;GPTQ\AWQ量化
1、大模型LLM 在线量化 参考:https://www.cnblogs.com/bruceleely/p/17348782.html ##8bit model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).quantize(8).half(...

记一次线上bug排查-----SpringCloud Gateway组件 请求头accept-encoding导致响应结果乱码
基于公司的业务需求,在SpringCloud Gateway组件的基础上,写了一个转发服务,测试开发阶段运行正常,并实现初步使用。但三个月后,PostMan请求接口,返回异常,经排查,从日志中获取到转发…...

复杂数据统计与R语言程序设计实验一
1.下载并安装R语言软件,熟悉基本操作的命令及操作界面,掌握软件的使用方法(提供学号加姓名的截图)。 2.下载并安装Rstudio, (提供运行代码及运行结果的截图)。 3.下载并安装R包DT,…...
UEFI实战——键盘操作
一、键盘操作 UEFI下如何获取键盘键值,用户输入按键方式分两种:一种是单个按键,另外一种是组合按键。两种方式对应两个Protocol服务,接下来分步讲解。 二、单个按键 单个按键使用Protocol服务是EFI_SIMPLE_TEXT_INPUT_PROTOCOL,它定义在MdePkg/Include/Protocol/Simple…...

苹果CMS首涂第30套可装修DIY主题模板免授权版
这是一款可以装修的主题,类似淘宝店装修一样,可以针对首页、栏目页、详情页、播放页进行自定义装修,内置10个模块自由选择、添加、修改、删除、排序操作,后续升级还会增加更多实用和个性模块供选择,主题内包含的导航、…...
C#每天复习一个重要小知识day2:有参与无参构造函数
using System;public class MyClass {private int value;// 有参构造函数public MyClass(int v){this.value v;}// 无参构造函数public MyClass(){this.value 0;}public static void Main(string[] args){// 使用有参构造函数实例化对象MyClass obj1 new MyClass(10);Consol…...

大语言模型的三阶段训练
为了训练专有领域模型,选择LLaMA2-7B作为基座模型,由于LLaMA模型中文词表有限,因此首先进行中文词表的扩展,然后进行三阶段训练(增量预训练,有监督微调,强化学习)。 代码将全部上传…...

面试题c/c++ --STL 算法与数据结构
1.6 STL 模板 模板底层实现:编译器会对函数模板进行两次编译, 在声明的地方对模板代码本身进行编译, 在调用的地方对参数替换后的代码进行编译。 模板传参分析 模板重载 vector 是动态空间, 随着元素的加入, 它的内…...

云原生微服务-理论篇
文章目录 分布式应用的需求分布式架构治理模式演进ESB 是什么?微服务架构 MSA微服务实践细节微服务治理框架sidercar 什么是service mesh?康威定律微服务的扩展性什么是MSA 架构?中台战略和微服务微服务总体架构组件微服务网关服务发现与路由…...

Unity模拟薄膜干涉效果
Unity制作薄膜干涉效果,色彩斑斓的黑色石头 大家好,我是阿赵。 这次来做一个模拟薄膜干涉的彩色效果,Shader是使用ASE来连接,也算是ASE做复杂一点的效果的一个例子吧。 一、什么是薄膜干涉 以下解释来源于百度百科࿱…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...