RPA即机器人流程自动化(Robotic Process Automation),在其实际业务开发流程中,存在着相同业务步骤重复开发的问题,这使得RPA实施的成本显著增加,同时还降低了开发效率。随着大语言模型(LLM)技术发展,通过智能体编排RPA原子业务流程来提升RPA原子流程的复用度已成为可能。本文详细探析了RPA业务流程原子化的技术趋势、技术原理,并通过扎实的技术预研和POC测试,验证了在亚信科技AIRPA产品中应用这一技术的现实可行性。期待为关注这一领域的研究人员提供一定参考。
基于大模型的业务流程原子化编排技术在 RPA 中的应用
摘要:随着大语言模型(以下简称LLM)技术的发展,RPA 的业务编排模式,逐渐从手动编排演进至智能编排,从基于符号编排演进至基于 LLM 编排。利用 LLM 可以有效实现 RPA 业务流程的原子化分割,将原子流程抽象为基础操作,并将基础操作融入提示词,进而将 RPA 流程规划编排为完整的业务流程,并最终通过动作逻辑顺序实现业务流程正确性的验证。
通过严格的技术预研和 POC 测试,基于大模型的业务流程原子化编排技术,通过使用 ProgPrompt+ 规则限定方式,使用大模型进行智能流程规划与生成 RPA 流程,可以有效辅助 RPA 业务流程开发,满足业务开发需求。
得益于 LLM 技术的快速发展,使用 LLM 生成情境机器人的任务规划已经成为现实可能。在任务规划过程中,需要为机器人定义和提供大量的领域知识。但当机器人面对不同的任务领域时,为其定义和提供差异化的领域知识,将成为制约机器人任务规划效率的瓶颈问题。
由南加州大学和英伟达联合开发的 ProgPrompt 方法,则提供了一种能够跨越情境环境、机器人能力和任务的生成提示结构。ProgPrompt 的核心思想是使用程序化的提示结构来指导语言模型生成适用于特定情境的机器人任务规划。这种方法通过定义一个结构化的提示,包含环境中的可用动作、目标以及示例程序,使得语言模型能够在没有额外领域信息的情况下,根据自然语言指令生成行动序列。具体来说,ProgPrompt 将机器人规划表示为 Python 程序,通过 LLM 完成代码,从而生成具体的任务规划。
另外一方面,在实际的具体应用过程中,对于由 ProgPrompt 算法结合 LLM 技术生成的任务规划,则需要进一步验证其生成的正确性和稳定性。
ProgPrompt 结合 LLM 生成任务规划
技术原理
基于 ProgPrompt 算法结合 LLM 技术生成任务规划,是整个任务流程的核心技术环节。其技术原理如图 1 所示。
图1:基于 ProgPrompt 算法结合 LLM 技术生成任务规划的
技术原理
(一) 结构化代码创建
首先按照 LLM 提示的范例,创建一个结构化为 Python 代码的提示,在此过程中,ProgPrompt 方法提供了包括 import 语句、目标列表和示例任务(PROMPT for planning)。用 Python 中可用的功能来构建提示,以自然语言指令为条件,引出 LLM 完成代码,并生成情境机器人任务规划。
(二) 基于 ProgPrompt 的具体目标任务规划
参照代码结构和示例任务,结合具体业务场景,调整完成一个结合具体任务目标的任务规划。在这一环节中,提示注释、以目标为参数的导入函数调用的操作以及带有恢复步骤的 assertions 将会被突出显示。其中,代码注释有助于将高级任务分解为逻辑子任务。这种划分可以帮助 LLM 用自然语言表达其关于任务和子任务的知识并帮助规划。注释还会告知 LLM 当前目标,从而减少输出不连贯、发散或重复的可能性。研究表明,类似的中间摘要对于提高 LLM 在一系列推理任务上的表现非常有效。
(三) 执行过程检查
图中所示的 PROMPT for state feedback 表示示例检查。进一步展示程序的执行情况。主要用以展示一个程序语句成功或失败的场景,以及生成的规划如何在执行下一步之前纠正错误。而右下角则完整地展示了整个程序的执行过程。
为了进一步评估和切实推进 ProgPrompt 算法结合 LLM 生成任务规划技术在亚信科技 RPA 产品中的应用,RPA 产品组织了以支撑 RPA 任务规划应用为目标的技术预研,并选择了一个典型的 RPA 场景,然后建立完善的技术评估流程,最后通过 POC 的方式从中筛选出目前效果最佳的技术路线。
(一) 场景选择
本技术预研的核心是用 ProgPrompt 算法结合 LLM 生成任务规划技术来部分替代现有的 RPA 开发模式,提升现有开发效率,增强 RPA 原子业务能力的复用性。因此,本次预研选择了一个“运营商为客户开通xx固移融合业务”的典型的 RPA 业务流程。
该业务的具体业务流程,如下图 2 所示。
如果进一步对该业务流程进行梳理,可以将这些业务流程梳理成为如下若干的原子能力:
能力1:CBSS 首页通用认证能力
能力2:固网开户套餐选择
能力3:xx固移融合业务套餐开户
能力n:……
而这些原子能力是否能高效、准确生成,并在后续的 RPA 开发过程中保持高复用性,将成为 RPA 开发效率的重要影响因子。基于 ProgPrompt 算法结合 LLM 的任务规划生成技术,为我们提供了实现这一目标的技术可能性,但还需要通过 POC 来进一步验证其技术可行性和可靠性。
(二)技术验证流程
1. 业务流程原子化拆分及原子能力函数化
基于业务专家对业务流程的理解,将开通“xx移固融合业务”的 RPA 业务流程分割为原子流程,并进一步将原子流程抽象为颗粒度更细的原子能力,并且对原子能力进行基础画像,包括但不限于功能描述,上下文约束描述,前后逻辑关系描述等维度。同时,将这些拆分的原子能力,以函数序列的方式进行存储。
下面是办理该业务中一些基础的原子能力及函数列表:
表1:基于 RPA 开通“xx固移融合业务”的原子能力函数序列表
2. 大模型训练语料生成
通过大模型生成技术,生成融合业务、移网、固网共 100 条开户语料,以作为训练和验证语料,来分别验证不同的任务分解模式生成最终函数序列的准确性。
3. 通过 LLM 将任务分解成函数序列
利用大语言模型(LLM)对开通“xx固移融合业务”进行流程任务分解,并将分解的原子任务以函数序列方式进行存储。
在本次 POC 过程中,我们采用了 4 种模式进行函数序列的生成。这 4 种模式分别为:
(1)coder 模型 + 规则约束生成 python 代码
(2)通用模型 + 规则约束生成 python 代码
(3)通用模型 + 规则约束生成函数序列
(4)通用大模型生成函数序列
针对相同数据,将分别通过这 4 种模式进行任务分解成函数序列能力的 POC 测试。
4. 任务分解准确性验证
通过与业务专家拆解出来的函数序列进行比对,验证通过上述 4 种模式分解出来的函数序列的准确性。
(三)POC环境准备
(四) POC 技术结论
1. POC 技术结果
使用 qwen2.5 大模型,采用 ProgPrompt 和规则限定进行智能流程规划与生成验证,经过严格的 POC 测试,本次 POC 的技术结果如下表所示:
结合表 2 结果再进一步分析,可以得出结论:
(1)采用编码大模型,生成 python 代码方式在推理方面有一定优势,但本次测试由于模型参数量较小、语义理解相对较差、导致正确率相对较低。
(2)采用通用模型,生成 python 代码,在推理调用函数过多时,会导致程序出错,从而正确率较低,调用少量函数正确率较高。
(3)采用通用模型,生成序列,通过语义理解生成,有较好的正确率和稳定性。
(4)在没有规则限定的情况下,通用模型没有业务知识,几乎不能正确拆解和规划任务。
2. POC 技术结论
通过使用 ProgPrompt+ 规则限定方式,使用大模型进行智能流程规划与生成 RPA 流程,辅助 RPA 业务流程开发,能够满足业务要求。
结语:ProgPrompt 结合 LLM
在 RPA 产品中的进一步应用思考
基于上述 POC 验证得出,ProgPrompt 结合LLM技术可以有效协助 RPA 产品实现任务规划的高效生成。在未来的产品开发过程中,可以逐步将 ProgPrompt 结合 LLM 技术应用于 RPA AI Native 的开发实践中,通过对话式RPA流程拼装,并进行执行动态执行,满足个性化、自动化需求,降低 RPA 业务场景实施成本。