AI Agent当前仍然处于技术爬坡与实验阶段,特别是在企业领域,真正的成熟应用还处于广泛探索与原型验证阶段,离成熟还尚待时日。而同时另外一种在最近几年广受欢迎的自动化解决方案-RPA(机器人流程自动化)也在LLM时代不断升级进化。
本文将尝试结合理论与实例来梳理与探讨RPA在LLM影响下的应用与发展。
RPA概念/场景/技术/与BPA & AI Agent的区别
实例:构建一个RPA机器人
LLM时代RPA的进化与场景
实例:RPA与LLM的融合应用
RPA是指Robotic Process Automation,即机器人流程自动化。是一种利用软件机器人(或称为“数字员工“)来模拟与整合人类在数字系统中进行的交互与操作流程的自动化技术。RPA在企业中通常用来取代人类员工在企业中执行的一些重复性的、规则明确的、频率较高的任务,解放员工以从事更需创造性、更高附加值的工作,达到降本增效的目的。
一个可能的RPA流程
RPA的任务场景
RPA在一些大型企业已经得到较为广泛的应用,应用场景随着技术的发展也在不断完善与发展,一些常见的RPA应用包括:
数据录入整合:批量地自动化数据录入,比如从不同系统和文件中获取,并整合到单一应用系统或者数据库中。
财务流程自动化:在企业日常的财务流程中用于频繁的发票与报销审核、定期财务报表生成发送、批量报税等。
客户关系管理:来自动搜集、整理与回复客户反馈;市场营销中的自动化信息生成与邮件发送;电商自动化的订单接收与处理。
采购与供应链:借助机器人完成自动化的采购申请的处理,如搜集信息、验证信息、生成订单等。
人力资源管理:使用机器人来帮助人事部门批量筛选简历与联络;员工入职离职流程处理、考勤统计管理等。
企业IT运维:自动化的IT支持与运维任务,如系统监控、故障排除、软件部署,版本升级、安全补丁等。
RPA的技术特点
传统RPA技术主要通过计算机程序实现模拟键盘鼠标操作、识别与定位界面元素、文件与接口访问等,并按照设定的规则与控制流程自动执行任务。
非侵入性。传统RPA主要工作在软件UI操作层做人工操作仿真。特别在企业应用中,对现有应用无侵入性,无需建设与提供特别的应用接口。
自动化:这是RPA的基本特点,能够自动执行重复性、规则性的任务流程。
可编程:能够对模拟人类的计算机操作规则与流程做编程与设定,包括键鼠操作、web浏览、文件处理、软件操作等。
低代码:RPA平台通常需要支持低代码甚至无代码的开发,从而降低机器人的设计与开发门槛,加快机器人的上线速度。
智能性:随着AI技术发展,RPA在智能性上不断提升。如借助OCR识别界面元素;或借助AI模型处理各非结构化数据等。
集成性:自动化的RPA任务与流程也需要能够与现有应用做深度集成,如由其他应用来驱动RPA,或者RPA也能实时访问其他应用的接口。
从RPA的技术特点上也能分析出其最大的不足与缺陷:由于RPA本质是一种UI自动化,虽然对后向集成要求很低,但是却有着较高的UI层耦合性。比如:某个Web应用UI发生了较大变化,可能导致RPA识别不到某个界面元素而失败。当然这个问题在RPA引入了一些AI技术后得到了一定的改进。
RPA与BPA
提到流程自动化,很多企业应用的集成者都会接触过BPA(业务流程自动化)/BPM(业务流程管理),那么RPA与BPA之间的区别在哪里呢?
实施目标
RPA是通过软件机器人来模拟和整合现有的应用程序的人工操作,以执行重复性、规则性和可预测的任务。侧重于自动处理特定的任务和操作。
BPA的目标是对组织内的端到端业务流程进行自动化改进,实现跨部门、跨岗位、跨应用的复杂流程、决策和协作的自动化。
自动化范围
传统的RPA用UI操作自动化来实现特定任务自动化,比如批量数据录入、报告生成、客户回复等
BPA的范围通常会更广泛,可以涵盖组织内全部业务流程,通过组织内业务流程自动化实现多部门、多系统之间的有效协作。
集成复杂度
RPA通过使用软件技术来模拟人工操作,无需对已有系统进行深度集成改造,侵入性低。
BPA实施是一项复杂的组织内系统性工程。需要广泛的业务梳理、流程设计与深度集成工作,涉及的现有系统通常需要配合BPMS(工作流管理系统)进行改造升级,以实现跨部门跨系统的流程整合与自动化。
所以,RPA通常更专注于局部的、任务级别的自动化;而BPA则更注重全局的端到端业务流程自动化。
值得注意的是,近几年随着RPA的不断发展,如基于AI的智能化水平提升、对外集成能力的增强等,且RPA更易集成的优势进一步放大;而传统的BPM/BPA集成成本过高的问题凸显,RPA与BPA出现了融合的趋势:BPA借助RPA来实现部分流程的自动化,成为一种常见的集成方案。这在类似SAP、IBM、微软这些大厂的BPA解决方案中都有明显体现。
RPA与AI Agent
越来越多的企业开始考虑借助AI Agent智能体来提升企业部分场景的智能化水平,所以AI Agent本质上也是一种用于自动化的机器人(在之前介绍的AI Agent中有一种实现了自动Web页面导航与操作的Agent,其本质上就是一种个人RPA)。那么基于RPA与AI Agent的自动化方案区别在哪里呢?
自动化范围
RPA主要用于自动化重复性的规则性的任务。
AI Agent则更专注需要智能推理与决策的任务。如需要自然语言识别、智能推荐、智能分析等。
技术原理
RPA基于规则和预先定义的逻辑来执行任务,通常不具备智能学习与推理能力。自动化的能力主要依赖于设定的规则。
AI Agent则基于深度学习技术与AI模型(当前主要是大模型),具备智能学习与推理能力。自动化的能力主要来源于AI模型推理。
集成复杂度
RPA工作以操作层面为主,是一种侵入性较低的自动化流程方案,因此更易于在复杂应用环境下的集成。
AI Agent在自动化规划与执行企业任务的过程中,通常需要借助“工具”,比如API或者编码来完成任务,对现有系统API的改造要求较高。
适用场景
RPA更适用于重复性高、规则性强的任务与流程,关注于提高任务效率和准确性。
AI Agent则更适用于需要提升智能化水平与推理能力的场景。比如基于自然语言的智能咨询、交互式数据分析、会自动选择工具的个人助手等。
即使在当前AI Agent异常火热的背景下,我们也并不能忽视RPA自身的优势,比如:RPA集成复杂度较低(这往往意味着成本)、基于规则的自动化相对于大模型的不确定性有更好的稳定性和可控性等,所以AI Agent与RPA二者的融合,充分利用各自的优势,取长补短,或许是未来企业内流程自动化的方向之一。
我们会在后面部分进一步探讨RPA与LLM大模型的集成与融合。
在本部分我们将构建一个RPA机器人,完成一个自动化任务,以帮助直观了解RPA工作方式与原理。
任务需求设计
Maria是一名助理,每周需要从公司的一个在线销售系统中导出公司各个销售员的销售数据(Excel),然后通过手工录入到公司的内部系统,并汇总成最新的销售报告(pdf),用来发送邮件给领导。录入界面如下:
【本任务来自Robocorp培训课程】
工具
我们采用基于python的开源项目来实现完成这个任务的RPA自动化机器人:
Robot Framework:一个通用的开源自动化任务框架,主要用于自动化测试与RPA(软件的自动化测试与RPA在场景上非常相似)
RPA Framework:?基于Robot Framework之上扩展的一个用于RPA的开源库与工具,简单说就是Robot Framework的一个增强库与系列工具包。包括开发与构建机器人流程工具,以及云端监控调度中心(收费产品)。
RPA Framework组成
构建RPA机器人
基于RPA Framework构建RPA机器人可以直接使用Python代码构建,也可以采用其独有的一种脚本命令来编写以.robot结尾的机器人文件,然后加载运行即可。本次我们设计RPA机器人需要完成的任务细节流程如下:
下载销售数据
打开内部Web应用
账号登录
用Excel文件的数据逐个提交表单
保存最后结果截图
保存业绩汇总表格
退出登录并关闭浏览器
我们编写RPA机器人如下(详细构建过程请关注后续视频),此处给出该RPA机器人的核心内容,可以看到,借助RPA Framework,你只需要描述Robot需要完成的任务(Tasks),并为任务编写其详细的命令细节即可(即Keywords,RPA Framework提供了大量开箱即用的库与命令):
【tasks.robot】
......
***?Tasks?***
插入销售数据,并且导出成PDF.
????下载销售数据
????打开内部应用网址
????登录
????用Excel文件的数据逐个提交表单
????保存最后结果截图
????保存业绩汇总表格
????[Teardown]?退出登录并关闭浏览器
***?Keywords?***
下载销售数据
????Download?https://robotsparebinindustries.com/SalesData.xlsx overwrite=True
打开内部应用网址
????Open?Available?Browser?https://robotsparebinindustries.com/
登录
????Input?Text?username?maria
????Input?Password?password?thoushallnotpass
????Submit?Form
????Wait?Until?Page?Contains?Element?id:sales-form
填写单个销售数据
????[Arguments]?${sales_rep}
????Input?Text?firstname?${sales_rep}[First Name]
????Input?Text?lastname?${sales_rep}[Last Name]
????Input?Text?salesresult?${sales_rep}[Sales]
????Select?From?List?By?Value?salestarget?${sales_rep}[Sales Target]
????Click?Button?Submit
用Excel文件的数据逐个提交表单
????Open?Workbook?SalesData.xlsx
????${sales_reps}=?Read?Worksheet?As?Table?header=True
????Close?Workbook
????FOR?${sales_rep}?IN?@{sales_reps}
????????填写单个销售数据 ${sales_rep}
????END
保存最后结果截图
????Screenshot?css:div.sales-summary?${OUTPUT_DIR}${/}sales_summary.png
保存业绩汇总表格
????Wait?Until?Element?Is?Visible?id:sales-results
????${sales_results_html}=?Get?Element?Attribute?id:sales-results?outerHTML
????Html?To?Pdf?${sales_results_html} ${OUTPUT_DIR}${/}sales_results.pdf
退出登录并关闭浏览器
????Click?Button?Log?out
????Close?Browser
运行RPA机器人
基于RPA Framework的机器人构建完成后可以有几种运行方法:
直接在开发工具中测试运行(VS code,需安装RPA Framework相关扩展)
使用独立开源工具rcc在本机调度运行
上传到control room,然后调度运行(收费服务)
此处我们在本地运行,可以很清楚的看到运行效果:
至此,我们完成了一个简单的RPA机器人,并且取得了预期效果。在下篇中我们将继续探讨基于LLM的生成式AI能力与RPA的融合话题。
-? END??-