AI Agent Harness Engineering 与 RPA 的融合:传统自动化的智能升级

作者:15年资深软件架构师 | 企业自动化领域连续创业者
本文适合人群:RPA技术负责人、AI Agent开发工程师、企业数字化转型架构师、DevOps运维工程师
阅读收益:彻底理解AI Agent与RPA融合的技术原理、落地方法、最佳实践,掌握从0到1搭建融合自动化系统的完整路径


一、核心概念与问题背景

1.1 问题的由来:传统RPA的增长天花板

我在2019年的时候帮国内一家零售连锁企业做RPA落地,当时他们上线了12个RPA流程,覆盖订单同步、库存盘点、财务对账等场景,第一年就节省了32个全职人力,ROI达到了230%。但到了2022年,他们的CIO找到我吐槽:现在RPA的维护成本已经超过了节省的人力成本,只要电商平台的页面改一个CSS类名、或者ERP系统升级一个小版本,所有关联的RPA脚本全部罢工,运维团队每月要花120多个小时修复脚本,遇到大促的时候甚至会导致订单积压2天以上,直接损失几十万。

这不是个例,Gartner 2023年的调研数据显示:全球72%的RPA项目在上线3年后无法达到预期收益,41%的项目甚至出现了负ROI,传统RPA的痛点已经非常明确:

  • 仅支持固定规则的结构化流程,只要流程变动超过10%就需要重新开发脚本
  • 无法处理非结构化数据,扫描件、手写单据、自然语言描述的需求都需要人工预处理
  • 无自主决策能力,任何异常都需要人工介入,异常处理成本占总维护成本的65%以上
  • 跨系统协同能力差,涉及3个以上系统的复杂流程开发周期长达1-2个月
  • 复用率极低,不同业务线的流程几乎无法复用,重复开发成本高

1.2 核心概念定义

1.2.1 RPA(机器人流程自动化)

RPA是一种通过模拟人类与计算机的交互操作,自动执行规则固定、重复性高的业务流程的技术,核心是「照章办事」,严格按照预定义的脚本执行操作,没有任何自主决策能力。

1.2.2 AI Agent Harness Engineering(AI代理编排工程)

AI Agent Harness是一套用于管理AI代理全生命周期的技术框架,核心能力包括代理的角色定义、工具编排、记忆管理、推理调度、安全护栏、评估反馈闭环,它让AI代理可以根据任务目标自主规划执行路径、调用工具、处理异常,核心是「随机应变」。

1.2.3 二者融合的核心概念

AI Agent Harness + RPA的融合方案,是将AI Agent的自主决策能力作为「大脑」,RPA的流程执行能力作为「手脚」,用Agent来动态编排RPA流程、处理非结构化数据、自动修复异常,既保留了RPA执行稳定、操作精准的优势,又具备了AI Agent的灵活性和适应性,是传统自动化的革命性升级。

1.3 边界与外延

融合方案不是万能的,它的适用边界非常清晰:
适合场景:中高复杂度、涉及多系统交互、有一定规则但存在变数的企业级业务流程,比如财务报销、信贷审批、供应链单据处理、客服售后工单处理
不适合场景:极高安全等级的操作(比如单笔超过100万的资金转账)、需要人类情感判断的场景(比如客户投诉安抚)、完全没有规则的创意类工作


二、概念结构与核心关系

2.1 核心要素组成

2.1.1 RPA核心要素
要素功能说明
执行引擎模拟人类操作的核心组件,支持键盘鼠标模拟、API调用、界面元素识别
连接器对接各类业务系统的适配器,支持ERP、CRM、电商平台、OA等主流系统
调度器按照预设规则触发RPA流程执行,支持定时触发、事件触发、API触发
监控审计模块记录RPA的所有操作日志,满足合规审计要求
2.1.2 AI Agent Harness核心要素
要素功能说明
意图解析模块识别用户自然语言描述的任务意图,提取核心参数
流程编排模块动态生成或适配RPA流程模板,根据任务参数调整执行步骤
记忆管理模块存储历史流程、异常处理方案、业务规则等上下文信息
推理引擎对接大语言模型,完成异常根因分析、修复方案生成、决策判断
安全护栏模块对Agent的决策和RPA的操作进行风险校验,禁止越权操作
反馈优化模块收集执行结果,迭代优化流程模板和推理模型

2.2 三类方案核心属性对比

对比维度传统RPA纯AI AgentAI Agent Harness + RPA融合方案
流程适配性仅支持固定结构化流程,变动10%就需要重写脚本支持任意非结构化流程,但执行稳定性差支持结构化+非结构化流程,流程变动<30%可自动适配
数据处理能力仅支持结构化数据,非结构化数据需要提前格式化支持非结构化数据,但提取准确率不稳定支持结构化+非结构化数据,结合OCR/NLP准确率可达98%+
决策能力无决策能力,完全按预定义脚本执行有自主决策能力,但容易出现幻觉有可控决策能力,结合安全护栏,幻觉率<1%
开发成本中等,单个流程开发周期1-2周低,单个流程开发周期1-3天低,单个流程开发周期2-5天,复用率达80%+
维护成本极高,年维护成本是开发成本的2-3倍中等,年维护成本是开发成本的0.5-1倍低,年维护成本是开发成本的0.2-0.5倍
异常处理能力无,任何异常都需要人工介入有一定异常处理能力,但容易误操作有完善的异常处理能力,90%以上异常可自动修复
适用场景固定规则、高频率、低复杂度的结构化流程低风险、高灵活性的创意类、咨询类场景中高复杂度、涉及多系统交互、有一定规则但存在变数的企业级业务流程

2.3 实体关系架构图

执行

编排

调用

使用

操作

触发

读写

RPA_WORKFLOW

string

workflow_id

PK

string

name

json

predefined_steps

int

version

float

success_rate

AGENT_HARNESS

string

agent_id

PK

string

role

json

tool_permissions

json

memory_config

float

risk_threshold

LLM

string

model_id

PK

string

name

float

accuracy

int

context_window

float

cost_per_1k_tokens

TOOL_SET

string

tool_id

PK

string

name

string

type

RPA操作/AI能力/系统API

json

parameters

int

risk_level

BUSINESS_SYSTEM

string

system_id

PK

string

name

string

api_endpoint

json

auth_config

int

security_level

TASK

string

task_id

PK

string

user_input

string

status

json

result

datetime

create_time

int

risk_level

KNOWLEDGE_BASE

string

kb_id

PK

string

type

流程模板/异常方案/业务规则

json

content

float

hit_rate

2.4 交互流程时序图

知识库业务系统RPA执行引擎大语言模型AI Agent Harness用户/业务系统知识库业务系统RPA执行引擎大语言模型AI Agent Harness用户/业务系统alt[匹配到现有模板][未匹配到模板]alt[校验不通过]alt[校验通过且重试次数<3][校验不通过/重试次数超限]alt[执行成功][执行异常]提交业务任务(自然语言/结构化参数)解析任务意图,提取核心参数返回意图识别结果+参数列表匹配历史流程模板和业务规则基于当前参数动态调整流程步骤生成全新RPA执行流程返回新流程定义+风险评估存储新流程模板,标注版本安全护栏校验(权限、风险等级、合规规则)返回权限不足/风险过高提示,附带风险说明下发执行脚本+风险控制规则执行操作(数据输入、点击、查询、上传等)返回执行结果/异常信息返回成功结果+操作日志通知任务完成,附带执行详情存储执行日志,更新流程成功率和参数适配规则返回异常信息+上下文快照上传异常信息和上下文,请求根因分析和修复方案返回根因分析+修复后的流程匹配历史异常修复方案,校验修复方案合理性二次安全校验(修复后的流程风险等级)下发修复后的脚本重新执行重新执行操作转人工处理通知,附带异常上下文和建议修复方案存储异常信息,标记需要人工更新流程

三、核心算法原理与数学模型

3.1 核心算法流程

接收任务请求

意图识别与参数提取

流程模板是否存在?

动态适配模板参数

生成新RPA流程

安全护栏校验

校验是否通过?

返回权限不足/风险过高提示

下发RPA执行脚本

RPA引擎执行操作

执行是否成功?

记录执行日志,优化知识库

返回执行结果

异常信息采集与上报

根因分析与修复方案生成

修复方案是否存在?

二次安全校验

校验是否通过?

转人工处理

记录异常日志,更新知识库

3.2 数学模型

3.2.1 意图识别相似度计算

我们采用嵌入向量的余弦相似度来匹配任务意图和历史流程模板,公式如下:
similarity(vt,vp)=vt⋅vp∣∣vt∣∣⋅∣∣vp∣∣similarity(v_t, v_p) = \frac{v_t \cdot v_p}{||v_t|| \cdot ||v_p||}similarity(vt,vp)=∣∣vt∣∣∣∣vp∣∣vtvp
其中:

  • vtv_tvt 是当前任务的嵌入向量(由大语言模型生成)
  • vpv_pvp 是知识库中流程模板的嵌入向量
  • 相似度大于阈值(通常设为0.85)则认为匹配成功,可以直接适配该流程模板
3.2.2 流程调度马尔可夫决策过程

我们用马尔可夫决策过程(MDP)来建模流程的最优调度,目标是最大化流程执行的累积奖励,公式如下:
V∗(s)=max⁡a∈A(R(s,a)+γ∑s′∈SP(s′∣s,a)V∗(s′))V^*(s) = \max_{a \in A} \left( R(s,a) + \gamma \sum_{s' \in S} P(s'|s,a) V^*(s') \right)V(s)=aAmax(R(s,a)+γsSP(ss,a)V(s))
其中:

  • SSS 是状态空间,包含当前流程执行进度、已完成操作、异常信息等
  • AAA 是动作空间,包含可选的RPA操作、Agent推理操作、人工转单操作等
  • P(s′∣s,a)P(s'|s,a)P(ss,a) 是状态转移概率,即执行动作aaa后从状态sss转移到s′s's的概率
  • R(s,a)R(s,a)R(s,a) 是奖励函数,执行成功给正奖励,执行失败/消耗资源多给负奖励
  • γ\gammaγ 是折扣因子(0<γ<1),代表未来奖励的权重,通常设为0.9
  • V∗(s)V^*(s)V(s) 是状态sss下的最优价值函数,代表从该状态出发能获得的最大累积奖励
3.2.3 安全护栏风险评估模型

我们采用加权评分法来评估操作的风险等级,公式如下:
Risk=w1∗S+w2∗O+w3∗IRisk = w_1 * S + w_2 * O + w_3 * IRisk=w1S+w2O+w3I
其中:

  • SSS 是业务系统的安全等级(1-5分,分数越高越敏感)
  • OOO 是操作的风险等级(1-5分,删除/修改操作分数高,查询操作分数低)
  • III 是操作影响的数据量(1-5分,影响数据越多分数越高)
  • w1,w2,w3w_1, w_2, w_3w1,w2,w3 是权重,通常分别设为0.4、0.4、0.2
  • Risk>3分的操作需要人工二次确认,Risk>4分的操作直接禁止执行

四、项目实战:企业报销自动化融合系统落地

4.1 项目介绍

我们为国内某中型互联网公司(1200人规模)搭建了AI Agent + RPA的报销自动化系统,该公司之前的传统RPA报销系统仅支持标准电子发票,扫描件、手写发票都需要人工处理,每月有200+异常单需要财务人员手工处理,异常率高达18%。上线融合系统后,异常率降到1.2%,财务处理效率提升了75%,年节省人力成本约120万。

4.2 开发环境搭建

依赖安装
# 安装Python依赖
pip install langchain langchain-openai pyautogui pytesseract pdf2image opencv-python fastapi uvicorn pydantic python-multipart

# 安装OCR引擎(Windows)
# 下载地址:https://github.com/UB-Mannheim/tesseract/wiki
# 安装后将tesseract.exe路径加入环境变量

# 安装Poppler(用于PDF转图片,Windows)
# 下载地址:https://github.com/oschwartz10612/poppler-windows/releases
# 解压后将bin路径加入环境变量
环境变量配置
OPENAI_API_KEY=你的OpenAI API密钥(也可以替换为通义千问、文心一言等国产大模型密钥)
REIMBURSE_SYSTEM_URL=https://reimburse.company.com
SAFE_RISK_THRESHOLD=3.0
MAX_RETRY_TIMES=3

4.3 系统架构设计

接入层

Web管理端

API接口

企业微信/钉钉机器人

编排层

意图解析模块

流程编排模块

推理引擎模块

安全护栏模块

执行层

RPA执行引擎

OCR识别模块

系统连接器

数据层

流程知识库

异常规则库

操作日志库

用户权限库

基础设施层

大模型服务

云服务器

存储服务

监控告警服务

4.4 核心功能实现

4.4.1 RPA工具定义
import os
import pyautogui
import pytesseract
import cv2
import numpy as np
from pdf2image import convert_from_path
from langchain.tools import tool
from pydantic import BaseModel, Field
import json
import time

# 全局配置
pyautogui.FAILSAFE = True  # 鼠标移到屏幕角落自动停止,防止误操作
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

class InvoiceInfo(BaseModel):
    invoice_no: str = Field(description="发票号码")
    invoice_date: str = Field(description="开票日期,格式为YYYY-MM-DD")
    amount: float = Field(description="发票金额,单位为元")
    seller: str = Field(description="销售方名称")
    buyer: str = Field(description="购买方名称")

@tool
def ocr_invoice(pdf_path: str) -> InvoiceInfo:
    """
    识别PDF发票中的核心字段,支持电子发票、扫描件发票、手写发票
    参数:
        pdf_path: 发票PDF文件的本地路径
    返回:
        包含发票核心字段的结构体
    """
    # 将PDF转为图片
    images = convert_from_path(pdf_path)
    full_text = ""
    
    for img in images:
        # 图片预处理,提升识别准确率
        img_cv = cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR)
        gray = cv2.cvtColor(img_cv, cv2.COLOR_BGR2GRAY)
        _, thresh = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)
        # OCR识别
        text = pytesseract.image_to_string(thresh, lang='chi_sim+eng')
        full_text += text
    
    # 调用大模型提取结构化字段
    from langchain_openai import ChatOpenAI
    llm = ChatOpenAI(model="gpt-3.5-turbo-1106", temperature=0)
    prompt = f"""请从以下发票文本中提取核心字段,严格按照JSON格式返回,不要返回其他内容:
    字段要求:invoice_no(发票号)、invoice_date(开票日期,格式YYYY-MM-DD)、amount(金额,数字)、seller(销售方名称)、buyer(购买方名称)
    发票文本:{full_text}
    """
    response = llm.invoke(prompt)
    return InvoiceInfo(**json.loads(response.content))

@tool
def open_reimbursement_system() -> bool:
    """打开企业报销系统,返回是否打开成功"""
    try:
        # 打开Chrome浏览器
        pyautogui.hotkey('win', 'r')
        time.sleep(0.5)
        pyautogui.typewrite(f'chrome {os.getenv("REIMBURSE_SYSTEM_URL")}', interval=0.1)
        pyautogui.press('enter')
        time.sleep(5)
        # 校验是否打开成功(识别页面标题)
        title = pyautogui.getActiveWindowTitle()
        return "报销系统" in title
    except Exception as e:
        print(f"打开报销系统失败: {str(e)}")
        return False

@tool
def fill_reimbursement_form(invoice_info: InvoiceInfo) -> bool:
    """
    填写报销表单,参数为发票核心信息结构体
    """
    try:
        # 定位发票号输入框(实际项目中可通过图像识别或UI自动化框架定位元素)
        pyautogui.click(x=520, y=320)
        pyautogui.hotkey('ctrl', 'a')
        pyautogui.typewrite(invoice_info.invoice_no, interval=0.1)
        
        # 定位开票日期输入框
        pyautogui.click(x=520, y=370)
        pyautogui.hotkey('ctrl', 'a')
        pyautogui.typewrite(invoice_info.invoice_date, interval=0.1)
        
        # 定位金额输入框
        pyautogui.click(x=520, y=420)
        pyautogui.hotkey('ctrl', 'a')
        pyautogui.typewrite(str(invoice_info.amount), interval=0.1)
        
        # 定位销售方输入框
        pyautogui.click(x=520, y=470)
        pyautogui.hotkey('ctrl', 'a')
        pyautogui.typewrite(invoice_info.seller, interval=0.1)
        
        # 点击提交按钮
        pyautogui.click(x=520, y=570)
        time.sleep(2)
        return True
    except Exception as e:
        print(f"填写表单失败: {str(e)}")
        return False

@tool
def check_submit_result() -> str:
    """检查提交结果,返回成功或失败的具体原因"""
    # 截取提交结果区域的图片
    screenshot = pyautogui.screenshot(region=(400, 620, 400, 100))
    img_cv = cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR)
    text = pytesseract.image_to_string(img_cv, lang='chi_sim')
    
    if "提交成功" in text:
        return "success: 报销提交成功"
    elif "发票号重复" in text:
        return "fail: 发票号已存在,请勿重复提交"
    elif "金额超过限额" in text:
        return "fail: 单张发票金额超过5000元,需要上传附件说明"
    else:
        return f"fail: 未知错误,提示信息:{text}"
4.4.2 Agent编排实现
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate

# 初始化大模型
llm = ChatOpenAI(model="gpt-3.5-turbo-1106", temperature=0)

# 定义工具列表
tools = [ocr_invoice, open_reimbursement_system, fill_reimbursement_form, check_submit_result]

# 定义Agent提示词
prompt = ChatPromptTemplate.from_messages([
    ("system", """你是企业报销自动化的智能代理,负责协调RPA工具完成报销流程,必须遵守以下规则:
    1. 所有操作必须严格按照流程执行,禁止越权操作其他系统
    2. 遇到异常时优先尝试修复,比如发票号重复时先确认是否是用户重复提交,金额超限时提示用户上传附件
    3. 最多重试3次,重试失败后转人工处理,并附带详细的异常上下文
    4. 所有操作必须留痕,所有决策都要有明确的依据
    """),
    ("user", "{input}"),
    ("agent_scratchpad", "{agent_scratchpad}")
])

# 创建Agent
agent = create_openai_tools_agent(llm, tools, prompt)
agent_executor = AgentExecutor(
    agent=agent,
    tools=tools,
    verbose=True,
    max_iterations=10,
    early_stopping_method="generate"
)

# 测试执行
if __name__ == "__main__":
    task = "请帮我处理路径为C:/invoices/inv_20240520_1234.pdf的发票报销,这是我出差的酒店发票,金额是3280元"
    result = agent_executor.invoke({"input": task})
    print(f"任务执行结果:{result['output']}")

4.5 落地效果

指标传统RPA方案融合方案提升幅度
单流程开发周期7天2天71%
异常处理率0%92%100%
异常率18%1.2%93%
年维护成本45万12万73%
流程复用率20%85%325%

五、实际应用场景

5.1 金融行业:信贷审批自动化

银行的信贷审批流程需要对接征信系统、工商系统、税务系统、流水系统等多个系统,传统RPA只能处理固定格式的申请材料,非结构化的资产证明、经营流水都需要人工审核。融合方案可以用Agent自动识别各类非结构化材料,动态调整审批流程,自动处理材料缺失、信息不符等异常,审批效率提升80%,人工干预率降低70%。

5.2 电商行业:售后工单自动化

电商售后工单涉及订单查询、退款操作、物流跟踪、客户通知等多个环节,传统RPA只能处理固定类型的工单,只要客户的需求有一点变化就无法处理。融合方案可以用Agent识别客户自然语言描述的售后需求,自动调用RPA完成后续操作,异常情况自动和客户沟通,工单处理效率提升90%,客服人力节省60%。

5.3 制造业:供应链单据自动化

制造业的供应链流程需要处理采购单、入库单、出库单、发票等大量单据,这些单据格式不统一,既有电子单据也有纸质扫描件,传统RPA的适配成本极高。融合方案可以用Agent自动识别不同格式的单据,动态适配不同供应商的流程,异常情况自动和供应商沟通,单据处理效率提升75%,错误率降低90%。


六、最佳实践Tips

  1. 分阶段落地:先从低风险、高频率的场景切入,比如报销、考勤、订单同步,跑通流程之后再推广到中高风险场景,不要一开始就做全业务覆盖。
  2. 安全护栏优先:必须建立三层安全校验:第一层是Agent执行前的权限校验,第二层是RPA操作前的风险扫描,第三层是高风险操作的人工二次确认,所有操作必须留痕,满足合规审计要求。
  3. 知识库持续迭代:建立持续的反馈闭环,每一次异常处理的方案都要存入知识库,不断提升Agent的适配能力,上线前3个月建议安排专人每周优化知识库,之后可以逐步降低频率。
  4. 可观测性建设:全链路监控Agent的决策过程、RPA的执行过程,建立异常告警机制,出现问题可以快速定位根因,避免出现不可控的风险。
  5. ROI核算:每个流程上线前都要核算ROI,优先落地ROI高的场景,不要为了技术而技术,确保业务价值优先。

七、行业发展与未来趋势

时间阶段发展阶段核心技术特征代表产品落地效果
2015-2019传统RPA爆发期基于录屏、固定脚本的自动化,仅支持结构化流程UiPath、BluePrism、Automation Anywhere替代30%左右的重复人工操作,流程适配率<50%
2020-2023IPA(智能流程自动化)阶段集成OCR、NLP等AI能力,支持简单非结构化数据处理UiPath AI Center、阿里云RPA智能版、百度智能云RPA替代50%左右的重复人工操作,流程适配率提升到70%
2024-2027Agent Harness + RPA融合阶段基于AI Agent的自主决策、动态编排、自动修复,支持复杂可变流程LangChain + 自研RPA、UiPath Autopilot、微软Copilot Studio + Power Automate替代70%以上的重复人工操作,流程适配率提升到90%+
2028-2030自主自动化阶段端到端的自主自动化系统,自动发现业务流程、自动优化、自动适配变化通用自动化Agent平台替代90%以上的可自动化人工操作,流程适配率接近100%

未来挑战

  1. 可解释性挑战:Agent的决策过程黑盒,出现问题之后很难定位根因,尤其是金融、医疗等合规要求高的场景,可解释性是必须解决的核心问题。
  2. 安全合规挑战:Agent如果被Prompt注入攻击,可能会执行恶意操作,比如删除业务系统数据、转账等,需要建立完善的安全防护体系。
  3. 成本挑战:大模型的推理成本目前还比较高,尤其是大规模落地的时候,推理成本可能会超过人工成本,需要优化模型效率,降低推理成本。

八、工具和资源推荐

工具推荐

  • Agent Harness框架:LangChain、LlamaIndex、Microsoft Semantic Kernel、Dify、AutoGPT
  • RPA工具:UiPath、BluePrism、Automation Anywhere、阿里云RPA、影刀RPA、华为云RPA
  • 融合解决方案:UiPath Autopilot、微软Copilot Studio + Power Automate、AWS Step Functions + Bedrock Agents

学习资源

  • 书籍:《Agent Engineering实战指南》、《RPA实施全流程》、《大语言模型应用开发实战》
  • 官方文档:LangChain官方文档、UiPath开发者文档、Dify官方文档
  • 论文:《Towards Autonomous Robotic Process Automation with Large Language Models》、《Agent Harness: A Framework for Building Secure and Reliable AI Agents》
  • 社区:RPA中国社区、LangChain中文社区、GitHub Awesome-Agent列表

九、本章小结

AI Agent Harness与RPA的融合是传统自动化的必然升级方向,它解决了传统RPA灵活性差、维护成本高、异常处理能力弱的核心痛点,能够为企业带来更高的自动化效率和更低的运营成本。但落地过程中必须遵循业务价值优先、安全第一、分阶段迭代的原则,不要盲目追求技术先进性,只有真正解决业务问题的方案才是好方案。

未来3-5年,融合方案会成为企业自动化的标准配置,越来越多的企业会用AI Agent来升级现有的RPA系统,实现从「规则驱动的自动化」到「智能驱动的自主自动化」的跨越。如果你正在做企业自动化相关的工作,现在切入这个赛道正是最好的时机。

如果你有任何关于融合方案落地的问题,欢迎在评论区留言交流,我会逐一回复。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐