当大模型学会"思考",当RPA机器人学会"执行",Agent与云上的深度融合,正在重新定义企业流程自动化的边界。
2026年的企业IT圈,有一个现象越来越明显:过去部署一套RPA软件需要三个月的项目周期,现在三周就能上线;过去需要专业工程师维护的自动化流程,现在业务人员用自然语言描述需求就能生成。这不是因为RPA开发变简单了,而是因为Agent × 云上的新范式,让业务流程自动化从"工具时代"迈入了"智能体时代"。
据行业观察,超过80%的企业已将智能体(Agent)纳入自动化战略。但一个残酷的现实是:很多企业的Agent项目停留在"聊天问答"阶段,真正能跨系统、长流程、稳定执行的不到两成。问题出在哪?Agent有大脑,但没有手脚;RPA有手脚,但缺了大脑。只有把两者打通,超自动化才能真正落地。
本文将从技术架构、实战代码、选型逻辑三个维度,拆解这场静默的革命。
一、架构演进:从单体RPA到Agent × 云上
如果你还在用2019年的眼光看RPA平台,那可能已经掉队了。
1.1 三次跃迁
第一次跃迁:脚本时代。早期的流程自动化软件本质上是个"超级录屏器",记录鼠标轨迹和键盘输入,回放时机械重复。优点是简单直观,缺点是界面一变就崩溃,维护成本极高。
第二次跃迁:可视化编排。低代码/无代码的兴起,让业务人员可以通过拖拽组件搭建自动化流程。RPA工具从"录屏器"变成了"流程设计器",自动化覆盖率大幅提升。但本质上,它仍然是"规则驱动"——预设条件、固定路径,遇到异常就停摆。
第三次跃迁:Agent驱动。2026年的关键词是AI+RPA。大模型作为"决策中枢",理解自然语言指令、拆解任务步骤、动态调整策略;RPA机器人作为"执行引擎",负责稳定、精准、7×24小时地操作各类系统。Agent负责思考,流程自动化工具负责稳定落地——这是当前最务实的分工模式。
有个做财务共享中心的朋友跟我吐槽:"我们试过纯Agent方案,让它自动审报销单。前三天跑得挺顺,第四天报销系统升级了个小版本,Agent直接懵圈,因为页面元素全变了。"这就是纯Agent方案的软肋:它擅长理解意图,但不擅长对抗系统的"物理世界"变化。
而RPA自动化的价值恰恰在这里。一套成熟的流程自动化平台,能在无人值守的情况下连续跑几个月不出岔子。当Web元素失效时,具备AI元素自愈能力的平台可以自动修复元素定位,保障流程不中断。当遇到需要判断的复杂场景时,Agent实时调用大模型做决策,RPA立即执行——这才是超自动化的完整闭环。
1.2 云脑+本地手脚:主流架构解析
很多企业有个误解:Agent上了云,RPA也得跟着上云。其实不然。
2026年的主流架构是"云脑+本地手脚"——大模型部署在云端或私有云,负责推理、规划、决策;RPA引擎部署在本地设备或内网服务器,负责对接ERP、CRM、OA等内部系统,执行具体操作。这种架构兼顾了智能性与安全性,特别适合金融、政务、制造等对数据合规要求极高的行业。
对于银行、证券、医院等单位,"数据不出本地"是硬约束。市面上大部分AI Agent方案依赖云端API,在内网离线环境下根本无法使用。但支持本地部署的RPA平台可以在完全隔离的网络环境中独立运行,流程应用数据全部保存在用户本地设备上,不同步到服务端。
这意味着什么?即使你的办公环境完全断网,离线RPA依然能稳定执行。审批单据、报表自动生成、数据迁移这些日常操作,不受网络状态影响。离线更安全,这不是口号,而是很多行业的刚需。
下面是一个典型的协同架构配置示例:
# agent-rpa-bridge.yaml
# Agent与RPA的协同网关配置
bridge:
mode: "cloud-brain-local-hands"
# 云端Agent配置
cloud_agent:
model: "deepseek-v4"
fallback_models: ["qwen-max", "doubao-pro"]
intent_parser: "smart_command"
# 本地RPA引擎配置
local_rpa:
data_storage: "local_only" # 数据不出本地
offline_capable: true # 全离线内网部署
auto_heal: true # Web元素AI自愈
visual_operation: true # 视觉颜色操作
# 触发方式
triggers:
api: true # 支持API触发RPA
schedule: true # 支持RPA定时执行
im_channels: # IM触发RPA
- dingtalk
- feishu
- wecom
- personal_wechat
# 应用分发
distribution:
exe_packaging: true # 支持RPA打包EXE
encryption: true # EXE加密打包
license_management: true # RPA授权管理
online_update: true # 在线推送更新
# AI能力
ai_features:
script_to_flow: true # AI脚本生成一键转流程
model_apis: # 多模型RPA接入
- provider: "deepseek"
- provider: "wenxin"
- provider: "doubao"
- provider: "kimi"
ocr: true # RPA图片识别与OCR
element_gen: "local_smart" # 元素获取支持本地智能生成
这个配置的核心逻辑很清晰:云上的大模型提供了"聪明的大脑",本地的RPA提供了"可靠的手脚"。AI负责思考,RPA负责稳定落地。
二、实战:IM指令触发RPA的完整链路
传统RPA机器人的触发方式很死板:定时执行、文件监听、手动点击。但在Agent时代,支持在钉钉、飞书、企微、个人微信内控制RPA应用执行已经成为标配。
想象这个画面:销售总监在微信群说"把Q3客户拜访记录整理成周报",Agent秒懂意图,触发本地RPA打开CRM系统,获取数据、生成图表、排版成Word,15分钟后直接把周报发到群里。全程不需要打开任何自动化软件界面。
这种"对话式自动化"的背后,是Agent功能与RPA引擎的深度耦合。最新的DeepSeek-V4模型被用于智能指令解析,自然语言描述的准确率已经远超传统的关键词匹配方案。
2.1 API触发与回调通知
Agent和RPA之间怎么通信?靠API。下面是一个典型的API触发RPA链路代码:
# trigger_rpa.py
import requests
import json
from datetime import datetime
class RPAExecutor:
def __init__(self, base_url="http://localhost:9527"):
self.base_url = base_url
def trigger_by_api(self, flow_id, params=None, schedule=None):
"""
支持API触发RPA流程执行
同时支持单独设置RPA定时执行
"""
payload = {
"flow_id": flow_id,
"params": params or {
},
"trigger_type": "api",
"callback_url": "http://your-agent-server/callback",
"timestamp": datetime.now().isoformat()
}
if schedule:
payload["schedule"] = schedule # 如: {"cron": "0 9 * * 1-5"}
payload["trigger_type"] = "scheduled_api"
resp = requests.post(
f"{self.base_url}/api/v1/execute",
json=payload,
timeout=30
)
return resp.json()
def handle_callback(self, result_data):
"""
RPA回调通知响应执行结果
将RPA执行结果回传到IM工具
"""
status = result_data.get("status")
flow_id = result_data.get("flow_id")
output = result_data.get("output")
# 推送回钉钉/飞书/企微/微信
im_message = {
"msgtype": "markdown",
"markdown": {
"title": f"流程执行{status}",
"text": f"**流程ID**: {flow_id}\n**状态**: {status}\n**结果**: {output}"
}
}
self.push_to_im(im_message)
def push_to_im(self, message):
# 实际对接钉钉/飞书/企微/个人微信的webhook
pass
# 使用示例
executor = RPAExecutor()
result = executor.trigger_by_api(
flow_id="weekly_report",
params={
"quarter": "Q3", "region": "华东"},
schedule={
"cron": "0 9 * * 1"} # 每周一上午9点
)
print(f"任务已触发,任务ID: {result['task_id']}")
这段代码展示了几个关键能力:支持API触发RPA、RPA回调通知响应执行结果、单独设置RPA定时执行。Agent通过API调用本地RPA,RPA在本地内网环境完成所有操作,数据全程不经过公网。执行完成后,结果自动推送到IM工具。
2.2 指纹浏览器自动化实战
做跨境电商的朋友都知道,多店铺运营需要频繁切换账号环境。紫鸟浏览器、比特浏览器、Hubstudio、AdsPower等指纹浏览器是标配工具,但人工操作依然繁琐。
具备RPA指纹浏览器对接能力的流程自动化工具,可以自动完成登录店铺 → 下载订单 → 同步库存 → 回复消息 → 切换下一个账号的全套操作。下面是一段指纹浏览器自动化的核心代码:
# fingerprint_browser_auto.py
from rpa_core import BrowserController
class FingerprintBrowserRPA:
def __init__(self):
self.controller = BrowserController()
def run_cross_border_task(self, shop_list):
"""
对接紫鸟浏览器、比特浏览器、Hubstudio、AdsPower等
实现跨境电商自动化操作
"""
for shop in shop_list:
# 启动指纹浏览器实例
browser = self.controller.launch_fingerprint(
browser_type=shop["browser"], # ziniao / bit / hubstudio / adspower
profile_id=shop["profile_id"],
headless=False
)
try:
# 登录店铺后台
browser.goto(shop["admin_url"])
browser.fill("#username", shop["account"])
browser.fill("#password", shop["password"])
browser.click("#login-btn")
# 下载订单
browser.click("[data-menu='orders']")
browser.click("#export-orders")
browser.wait_for_download("orders.xlsx")
# 同步库存
browser.click("[data-menu='inventory']")
stock_data = browser.extract_table("#stock-table")
finally:
browser.close()
return {
"status": "success", "shops_processed": len(shop_list)}
# 批量执行
shops = [
{
"browser": "ziniao", "profile_id": "shop_001", "admin_url": "https://admin.shop1.com", "account": "user1", "password": "pass1"},
{
"browser": "adspower", "profile_id": "shop_002", "admin_url": "https://admin.shop2.com", "account": "user2", "password": "pass2"},
]
rpa = FingerprintBrowserRPA()
rpa.run_cross_border_task(shops)
这里有个细节:AI生成的脚本在复杂项目里往往不够稳定,特别是网页元素变化后容易失效。而成熟的流程自动化软件通过本地智能生成元素路径,结合AI智能优化xpath语法,让获取元素更加简单稳定。当Web元素真的发生变化时,AI自动修复元素定位,实现RPA元素自愈,保障流程不中断。
三、元素智能:AI自愈与视觉操作
网页改版是自动化流程的噩梦。过去元素一变,工程师就得手动重写xpath,成本高、响应慢。现在,AI元素自愈已经成为头部RPA平台的标配能力。
3.1 自然语言生成元素路径
通过自然语言描述即可生成对应的xpath路径,无需学习晦涩难懂的语法:
# ai_element_generator.py
class AIElementGenerator:
def __init__(self, model="deepseek-v4"):
self.model = model
def generate_xpath(self, natural_description, page_html=None):
"""
元素获取支持本地智能生成
根据生成结果选择合适稳定的元素路径
"""
prompt = f"""
请根据以下自然语言描述,生成最稳定的xpath路径:
描述: {natural_description}
页面片段: {page_html or '未提供'}
要求:
1. 优先使用id、name、data-testid等稳定属性
2. 避免使用绝对路径
3. 考虑元素可能的动态变化
4. 返回2-3个候选路径,按稳定性排序
"""
# 调用本地大模型(无需联网)
candidates = self.local_llm_generate(prompt)
# 本地验证每个候选路径的有效性
validated = []
for xpath in candidates:
score = self.validate_stability(xpath, page_html)
validated.append({
"xpath": xpath, "stability_score": score})
# 按稳定性排序,返回最优路径
validated.sort(key=lambda x: x["stability_score"], reverse=True)
return validated[0]["xpath"]
def auto_heal(self, failed_xpath, page_html):
"""
当Web元素失效时,AI自动修复元素定位
实现RPA元素自愈,保障流程不中断
"""
# 分析失效原因
reason = self.analyze_failure(failed_xpath, page_html)
# 基于页面当前结构重新生成路径
new_xpath = self.generate_xpath(
f"修复以下失效路径: {failed_xpath}, 失效原因: {reason}",
page_html
)
return {
"old_xpath": failed_xpath,
"new_xpath": new_xpath,
"heal_reason": reason,
"confidence": 0.95
}
# 使用示例
gen = AIElementGenerator()
# 自然语言描述生成xpath
xpath = gen.generate_xpath("登录按钮,蓝色背景,文字是'立即登录'")
print(f"生成路径: {xpath}")
# 元素自愈
page_source = "<html><body><button id='login-btn-new'>立即登录</button></body></html>"
heal_result = gen.auto_heal(
failed_xpath="//button[@id='login-btn']",
page_html=page_source
)
print(f"自愈结果: {heal_result['new_xpath']}")
更进一步的,元素获取支持本地智能生成,可根据生成结果选择合适稳定的元素路径。AI生成的元素在复杂项目里往往不够稳定,特别是一些异常情况处理;而经过AI优化后的RPA元素生成非常稳定,可长期运行。
3.2 视觉颜色操作:搞定非标准界面
企业微信、微信、QQ、千牛这些桌面应用,传统RPA很难处理,因为它们不是标准Web页面,元素节点难以获取。
支持视觉颜色操作的自动化软件解决了这个问题。无需依赖元素节点,通过识别界面颜色、图标位置,也能实现点击、获取内容等操作。
# visual_color_operation.py
import cv2
import numpy as np
from PIL import ImageGrab
import time
class VisualRPA:
def __init__(self):
self.templates = {
}
def capture_screen(self):
"""截取当前屏幕"""
return np.array(ImageGrab.grab())
def find_by_color(self, target_color, region=None, tolerance=10):
"""
支持视觉颜色操作软件或页面
通过颜色定位元素,无需依赖元素节点
"""
screen = self.capture_screen()
if region:
x, y, w, h = region
screen = screen[y:y+h, x:x+w]
# 颜色匹配
lower = np.array([c - tolerance for c in target_color])
upper = np.array([c + tolerance for c in target_color])
mask = cv2.inRange(screen, lower, upper)
# 找到最大连通区域
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
if contours:
largest = max(contours, key=cv2.contourArea)
M = cv2.moments(largest)
cx = int(M["m10"] / M["m00"])
cy = int(M["m01"] / M["m00"])
return (cx, cy)
return None
def read_wecom_unread(self):
"""
自动读取企业微信的未读消息数量
轻松实现企业微信、微信、QQ、千牛各种消息的获取
"""
# 定位企业微信托盘图标(红色角标)
badge_color = (255, 0, 0) # 红色未读标记
pos = self.find_by_color(badge_color, region=(1600, 900, 320, 180))
if pos:
# 点击图标打开窗口
self.click(pos[0], pos[1])
# OCR读取未读数字
unread_count = self.ocr_read(pos[0]-10, pos[1]-10, 30, 20)
return int(unread_count) if unread_count.isdigit() else 1
return 0
def auto_reply_qianniu(self, keyword="发货"):
"""自动回复千牛的客户咨询"""
# 识别千牛消息列表中的高亮行
highlight_color = (230, 240, 255)
msg_pos = self.find_by_color(highlight_color)
if msg_pos:
self.click(msg_pos[0], msg_pos[1])
# 读取消息内容
msg_text = self.ocr_read_region()
if keyword in msg_text:
self.type_text("亲,您的订单已安排发货,请耐心等待~")
self.click_send()
# 7×24小时自动监控
visual = VisualRPA()
while True:
count = visual.read_wecom_unread()
if count > 0:
print(f"检测到{count}条未读消息")
visual.auto_reply_qianniu()
time.sleep(5)
这段代码展示了视觉颜色操作的核心思路:通过颜色识别和OCR自动化,绕过传统元素定位的限制。轻松实现企业微信、微信、QQ、千牛各种消息的获取——这些过去需要人工盯着的客服自动化操作,现在可以7×24小时自动完成。消息自动回复、千牛自动回复这类场景,对电商运营团队来说是实实在在的效率提升。
四、从脚本到产品:AI写代码,RPA跑代码
很多开发者现在习惯用AI写Python脚本处理数据,但脚本和可落地的自动化流程之间,还有一道鸿沟:脚本需要运行环境、需要异常处理、需要定时调度、需要分发给别人使用。
支持AI脚本生成一键转流程的平台,解决了这个痛点。你用DeepSeek或Kimi写的数据处理脚本,可以直接导入RPA工具,自动封装成带可视化界面的自动化应用。
4.1 脚本转流程的完整示例
假设你用AI生成了一个数据处理脚本:
# ai_generated_script.py (由DeepSeek/Kimi生成)
import pandas as pd
def process_sales_data(file_path):
"""处理销售数据,生成汇总报表"""
df = pd.read_excel(file_path)
# 数据清洗
df = df.dropna(subset=["订单号", "金额"])
df["金额"] = df["金额"].astype(float)
# 按区域汇总
summary = df.groupby("区域").agg({
"金额": "sum",
"订单号": "count"
}).rename(columns={
"订单号": "订单数"})
# 标记异常订单(金额>10万)
summary["异常标记"] = summary["金额"].apply(
lambda x: "异常" if x > 100000 else "正常"
)
# 输出
summary.to_excel("sales_summary.xlsx")
return summary.to_dict()
if __name__ == "__main__":
result = process_sales_data("input.xlsx")
print(result)
一键转为RPA流程后,自动封装成带可视化界面的自动化应用:
// flow_config.json
{
"flow_id": "sales_report_auto",
"name": "销售报表自动生成",
"source_script": "ai_generated_script.py",
// RPA自定义界面:设计属于自己的软件界面
"ui": {
"title": "销售报表工具",
"width": 480,
"height": 320,
"fields": [
{
"type": "file_picker",
"label": "选择数据文件",
"bind": "file_path",
"filter": "*.xlsx"
},
{
"type": "dropdown",
"label": "输出格式",
"bind": "output_format",
"options": ["Excel", "PDF", "CSV"]
},
{
"type": "button",
"label": "生成报表",
"action": "execute_flow"
}
]
},
// 执行配置
"execution": {
"python_env": "embedded", // 使用内置Python环境
"error_handling": "retry_3", // 异常重试3次
"log_level": "info"
},
// 分发配置
"distribution": {
"package_as_exe": true, // 支持RPA打包EXE
"encryption": true, // EXE加密打包
"license": {
"enabled": true, // RPA导出应用支持授权
"type": "machine_bind", // 绑定机器码
"expiry_days": 365
},
"api_trigger": true, // RPA导出应用支持单独设置API触发
"schedule": true, // 支持RPA定时执行
"online_update": true // RPA导出EXE应用支持在线推送更新
}
}
然后RPA打包EXE,发给同事使用——对方不需要安装任何客户端,双击就能运行。这个能力对个人开发者、个人工作室、中小企业尤其友好。你不需要搭建复杂的RPA部署环境,也不需要教非技术人员怎么跑Python。AI负责写代码,RPA负责把代码变成人人可用的工具。
4.2 授权管理与加密分享
自动化流程开发完成后,怎么交给别人用?最理想的方式是RPA导出应用EXE,支持RPA授权管理和RPA加密分享。
# license_manager.py
import hashlib
import json
from datetime import datetime, timedelta
class LicenseManager:
def __init__(self, private_key):
self.private_key = private_key
def generate_license(self, app_id, user_email,
max_runs=None, expiry_days=None):
"""
应用支持RPA加密分享、分享授权
可以设置谁有权运行、运行多少次、有效期多久
"""
license_data = {
"app_id": app_id,
"user": user_email,
"issued_at": datetime.now().isoformat(),
"max_runs": max_runs, # 如: 100次
"expiry": (datetime.now() + timedelta(days=expiry_days)).isoformat() if expiry_days else None,
"machine_hash": self.get_machine_hash()
}
# 加密签名
signature = self.sign(json.dumps(license_data, sort_keys=True))
license_data["signature"] = signature
return self.encrypt(json.dumps(license_data))
def verify_license(self, encrypted_license, current_app_id):
"""运行时验证授权"""
try:
data = json.loads(self.decrypt(encrypted_license))
# 校验签名
sig = data.pop("signature")
expected = self.sign(json.dumps(data, sort_keys=True))
if sig != expected:
return False, "授权签名无效"
# 校验应用ID
if data["app_id"] != current_app_id:
return False, "授权与应用不匹配"
# 校验有效期
if data["expiry"] and datetime.now() > datetime.fromisoformat(data["expiry"]):
return False, "授权已过期"
# 校验运行次数
if data["max_runs"] is not None:
used = self.get_run_count(data["user"])
if used >= data["max_runs"]:
return False, f"运行次数已达上限 ({data['max_runs']})"
return True, "授权有效"
except Exception as e:
return False, f"授权验证失败: {str(e)}"
# 使用示例
manager = LicenseManager(private_key="your_secret_key")
# 生成授权(给客户A:有效期30天,最多运行50次)
license = manager.generate_license(
app_id="sales_report_v1.2",
user_email="client_a@company.com",
max_runs=50,
expiry_days=30
)
print(f"授权码: {license}")
# 验证
ok, msg = manager.verify_license(license, "sales_report_v1.2")
print(f"验证结果: {msg}")
这一点是很多纯云方案做不到的——AI无法快速实现对分发的应用进行RPA授权管理,但成熟的RPA平台可以。对于需要对外交付自动化能力的软件开发商,这是刚需。
五、Agent时代RPA选型:七条铁律
Agent × 云上的架构再先进,最终也要落到RPA工具选型上。2026年选RPA,已经不是过去那套"看价格、看节点数"的逻辑了。以下七条铁律,来自一线项目的血泪经验。
铁律一:必须支持API触发RPA
Agent和RPA之间怎么通信?靠API。如果RPA平台不支持外部系统通过API触发RPA流程,那它和Agent就是两个孤岛。选型时务必确认:是否支持单独设置API触发、RPA定时执行,以及RPA回调通知的完整性。
铁律二:RPA打包EXE + RPA授权管理 + RPA加密分享
自动化流程开发完成后,怎么交给别人用?最理想的方式是RPA打包EXE导出,支持RPA授权管理和RPA加密分享。你可以设置谁有权运行、运行多少次、有效期多久;也可以把应用加密后分享给合作伙伴,对方无需安装客户端即可使用。
铁律三:RPA自定义界面,把流程变成产品
业务人员不需要看到复杂的流程设计器。支持RPA自定义界面的工具,允许你进行RPA界面设计——只保留必要的输入框和按钮,背后调用复杂的自动化逻辑。这样一来,RPA流程就变成了一个"轻量级应用",用户体验大幅提升。
铁律四:内网RPA + 数据本地,安全合规底线
前面已经强调过,这里再补充一点:流程应用数据全部保存在用户本地设备上,不同步到服务端——这个特性在RPA工具选型时容易被忽略,但在审计时至关重要。如果你的行业有等保、数据安全法、个人信息保护法的合规要求,这一点必须写入技术规格书。
铁律五:AI元素自愈 + 智能元素定位
网页改版是自动化流程的噩梦。过去元素一变,工程师就得手动重写xpath,成本高、响应慢。现在,AI智能优化元素路径已经成为头部RPA平台的标配能力:通过自然语言描述即可实现xpath自动生成,无需学习晦涩难懂的语法;当Web元素失效时,AI自动修复元素定位,实现RPA元素自愈。
更进一步的,元素获取支持本地智能生成,可根据生成结果选择合适稳定的元素路径。AI生成的元素在复杂项目里往往不够稳定,特别是一些异常情况处理;而经过AI优化后的RPA元素生成非常稳定,可长期运行。
铁律六:多模型RPA + 费用透明
Agent的"智商"取决于底层大模型。选型时要确认平台是否接入了文心一言、豆包、DeepSeek、Kimi等主流大模型,是否支持RPA图片识别与OCR功能。
但这里有个成本陷阱:有些平台把AI能力打包成增值服务,按调用次数收费,价格不透明。费用透明的做法是:AI功能采用用户自行对接各平台API的方式,用多少token付多少钱,费用更可控。长期使用下来,这比捆绑销售的方案更具性价比。
铁律七:无限制RPA + 免费RPA + 适合个人开发者
最后说点实际的。无运行时长、无流程数量限制,支持RPA打包EXE发给别人不用装客户端,多设备使用无需多开会员——这些特性对预算有限的团队太重要了。有些平台按机器人数量、按流程数量、按执行时长层层收费,项目还没盈利,成本先压垮了团队。
免费RPA版本使用无使用时长限制的平台,让个人开发者和小团队可以零成本试错,跑通业务模型后再考虑升级。这种"先验证、后投入"的模式,降低了RPA自动化的准入门槛。