AI Agent Harness Engineering 与 RPA 的融合:传统自动化的智能升级
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 Agent | AI 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 实体关系架构图
2.4 交互流程时序图
三、核心算法原理与数学模型
3.1 核心算法流程
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∣∣vt⋅vp
其中:
- vtv_tvt 是当前任务的嵌入向量(由大语言模型生成)
- vpv_pvp 是知识库中流程模板的嵌入向量
- 相似度大于阈值(通常设为0.85)则认为匹配成功,可以直接适配该流程模板
3.2.2 流程调度马尔可夫决策过程
我们用马尔可夫决策过程(MDP)来建模流程的最优调度,目标是最大化流程执行的累积奖励,公式如下:
V∗(s)=maxa∈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)=a∈Amax(R(s,a)+γs′∈S∑P(s′∣s,a)V∗(s′))
其中:
- SSS 是状态空间,包含当前流程执行进度、已完成操作、异常信息等
- AAA 是动作空间,包含可选的RPA操作、Agent推理操作、人工转单操作等
- P(s′∣s,a)P(s'|s,a)P(s′∣s,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=w1∗S+w2∗O+w3∗I
其中:
- 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 系统架构设计
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
- 分阶段落地:先从低风险、高频率的场景切入,比如报销、考勤、订单同步,跑通流程之后再推广到中高风险场景,不要一开始就做全业务覆盖。
- 安全护栏优先:必须建立三层安全校验:第一层是Agent执行前的权限校验,第二层是RPA操作前的风险扫描,第三层是高风险操作的人工二次确认,所有操作必须留痕,满足合规审计要求。
- 知识库持续迭代:建立持续的反馈闭环,每一次异常处理的方案都要存入知识库,不断提升Agent的适配能力,上线前3个月建议安排专人每周优化知识库,之后可以逐步降低频率。
- 可观测性建设:全链路监控Agent的决策过程、RPA的执行过程,建立异常告警机制,出现问题可以快速定位根因,避免出现不可控的风险。
- ROI核算:每个流程上线前都要核算ROI,优先落地ROI高的场景,不要为了技术而技术,确保业务价值优先。
七、行业发展与未来趋势
| 时间阶段 | 发展阶段 | 核心技术特征 | 代表产品 | 落地效果 |
|---|---|---|---|---|
| 2015-2019 | 传统RPA爆发期 | 基于录屏、固定脚本的自动化,仅支持结构化流程 | UiPath、BluePrism、Automation Anywhere | 替代30%左右的重复人工操作,流程适配率<50% |
| 2020-2023 | IPA(智能流程自动化)阶段 | 集成OCR、NLP等AI能力,支持简单非结构化数据处理 | UiPath AI Center、阿里云RPA智能版、百度智能云RPA | 替代50%左右的重复人工操作,流程适配率提升到70% |
| 2024-2027 | Agent Harness + RPA融合阶段 | 基于AI Agent的自主决策、动态编排、自动修复,支持复杂可变流程 | LangChain + 自研RPA、UiPath Autopilot、微软Copilot Studio + Power Automate | 替代70%以上的重复人工操作,流程适配率提升到90%+ |
| 2028-2030 | 自主自动化阶段 | 端到端的自主自动化系统,自动发现业务流程、自动优化、自动适配变化 | 通用自动化Agent平台 | 替代90%以上的可自动化人工操作,流程适配率接近100% |
未来挑战
- 可解释性挑战:Agent的决策过程黑盒,出现问题之后很难定位根因,尤其是金融、医疗等合规要求高的场景,可解释性是必须解决的核心问题。
- 安全合规挑战:Agent如果被Prompt注入攻击,可能会执行恶意操作,比如删除业务系统数据、转账等,需要建立完善的安全防护体系。
- 成本挑战:大模型的推理成本目前还比较高,尤其是大规模落地的时候,推理成本可能会超过人工成本,需要优化模型效率,降低推理成本。
八、工具和资源推荐
工具推荐
- 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系统,实现从「规则驱动的自动化」到「智能驱动的自主自动化」的跨越。如果你正在做企业自动化相关的工作,现在切入这个赛道正是最好的时机。
如果你有任何关于融合方案落地的问题,欢迎在评论区留言交流,我会逐一回复。
更多推荐



所有评论(0)