在人类技术发展的历史长河中,自动化一直是主要的推动力,它帮助人类从复杂、危险、繁琐的劳动环境中解脱出来。从早期农业时代的水车灌溉,到工业时代的蒸汽机,人类一直在不断追求更先进的自动化技术,以解放自己从繁重的工作中
随着信息时代的到来,软件作为信息处理、存储和通信的基础成为了人类生产生活密不可分的一环,从而催成了机器人流程自动化(Robotic Process Automation, RPA)技术。其通过人工编制规则将多个软件协调成一个固化的工作流(Workflow),通过模拟人交互的方式来和软件交互实现高效执行。
在这张图中,我们将机器人流程自动化(RPA)与智能体流程自动化(APA)进行了比较
RPA(机器人流程自动化)利用软件机器人或“BOT”来模拟和执行重复性、规则性的任务,以解放人力资源,提高工作效率。RPA的应用范围非常广泛。许多企业(包括银行、保险公司、制造业、零售业等各个行业)通常使用RPA机器人来自动执行一些常规和繁琐的任务,例如数据录入、数据提取、数据处理。通过自动化任务,RPA可以大幅度减少错误率,并能够24*7不间断地执行任务,从而提高业务的可靠性和响应能力
根据市场研究,RPA市场正在迅速增长并取得巨大成功。Gartner预测,到2023年全球RPA市场收入将达到33亿美元,增长率为17.5%。这表明企业对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 操作:
1. DataAgent:对于一个复杂的数据处理需求,工作流构建时会使用自然语言来描述处理的任务,然后在执行时会初始化一个 DataAgent,其会基于该自然语言描述自主处理并完成该数据处理任务。
2. ControlAgent:对于难以用规则表示的逻辑控制规则,工作流构建时使用自然语言对控制逻辑进行描述,然后在运行时会初始化一个 ControlAgent,其会基于该自然语言描述自主选择工作流后续需要执行的分支。
ProAgent 使用 ReACT 模式逐步构建工作流,其共包含四个工作流构建步骤:
示例中展示了 ProAgent 工作流构建过程的图 5
另外,为了优化 ProAgent 的效果,又引入了几个优化技巧:
工作流的执行过程是基于 Python 解释器的。当给定一个工作流时,对应的 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技术相比,Agentic Process Automation能够自动化工作流的构建,并实现工作流执行时动态决策的自动化。该研究还进一步开发了ProAgent,并通过实验证明了大模型智能体在自动化中的可行性和潜力。相信未来,大模型智能体技术将帮助人类实现更高层次的自动化,从繁重的劳动中解放出来
目前研究团队已在大模型智能体方向有诸多研究,包括:
以上是ProAgent:OpenAI引领下的智能代理解放人力,清华等高校发布的详细内容。更多信息请关注PHP中文网其他相关文章!