一、先把结论摆桌上:它们不在同一个坐标系里
很多人会把 Agent 和"加了 AI 的 RPA / 爬虫脚本"混为一谈,但更准确的说法是——三者处在自动化的不同能级上,不是替代关系,是光谱关系:
- Python 脚本 / 传统爬虫(Scrapy、Selenium) :规则写死,线性执行,
if A then B,页面一改、XPath 一失效就崩。 - RPA(UiPath、影刀、弘玑) :把"模拟人操作鼠标键盘"封装成可视化流程,仍是基于规则的确定性执行,擅长结构化、高重复、跨系统 UI 操作,但 UI 一变就得重录。
- AI-powered Automation(RPA + OCR/NLP) :RPA 厂商的第二代,能处理发票识别、邮件情感分类这类"半结构化"任务,但流程仍由人定义,AI 只是某个节点的判断力补丁。
- Agentic Automation(LLM + 规划 + 工具调用 + 反思) :给目标就行,它自己拆任务、调工具、看执行结果、反思重试,路径是动态生成的,不是预设的。
UiPath 官方自己划的三阶段表说的也是这事:RPA 是"机器人执行规则",AI-powered 是"机器人带点认知",Agentic 是"代理人自主感知-推理-规划-执行"。
💡 一句话定位:脚本和 RPA 回答"怎么做"(how),Agent 回答"做成什么样子"(what) 。前者是步骤驱动,后者是目标驱动。
二、六条核心维度的硬对比
| 维度 | Python 脚本 / RPA | Agent(LLM-based) |
|---|---|---|
| 驱动逻辑 | 预设规则 + 线性流程 | LLM 推理 + 动态规划 |
| 遇异常 | 崩 / 走固定异常处理分支 | 反思 → 换工具或调参数重试 |
| 数据口味 | 结构化(表格、固定字段) | 非结构化(邮件、合同、PDF、网页自然语言) |
| 页面/UI 变动 | XPath/CSS 一失效就挂 | 语义理解重定位,抗页面改版 |
| 可解释性 | 步骤全可见,审计友好 | 推理链可追溯但偶发"幻觉",需 guardrail |
| 维护成本 | 前期低,后期 UI 一变全改 | 前期高(LLM + 工具链),长期抗变动强 |
还有两条容易被忽略的:
可解释性这块是 RPA 的反杀点——RPA 每一步 click、type、copy 都在日志里,合规审计舒服;Agent 的推理链哪怕有 trace,也可能出现"我也没想明白为啥它选了这个工具"的情况,所以企业级 Agent 必须配 guardrail + human-in-the-loop。
成本曲线是倒的——RPA 前三个月爽,第三年开始"CoE 花在 bot 维护上的钱比新建自动化的还多";Agent 前期搭 LLM + 工具 + memory + 反思循环贵,但抗变动,长尾流程省人。
三、爬虫场景:从"告诉我怎么做"到"告诉我要什么"
你主题里点了 Python 爬虫,这块是感知差异最直观的战场。
传统 Scrapy 范式:
# 你得自己想清楚:用哪个 XPath、怎么翻页、怎么处理 JS、怎么换代理
response.css('.product-price::text').extract()
页面一改版,.product-price换成 .price-new,爬虫挂。动态渲染还得外挂 Playwright/Selenium,反爬要自己写中间件换 UA、换 IP。
Agentic 爬虫范式(以 Crawl4AI / Firecrawl 为代表) :
# 你只说要什么,不用管 DOM 怎么变
agent.scrape("https://shop.xxx", schema={
"name": "str",
"price": "float",
"features": "list[str]"
})
- 驱动:从 XPath/CSS 选择器 → 大模型语义提取
- 抗页面变化:基于语义而非 DOM 路径,改版不挂
- 反爬:AI 分析响应特征,自动调频率、换指纹、生成类人轨迹
- 动态页:原生判断要不要等 JS 渲染,不用你手动
wait_for_selector
Firecrawl 那篇里有个数据挺说明问题:它把"搜索 → 抓正文 → 清洗 → 结构化输出"全链路包成一个 API,139K+ star,本质是爬虫的执行层还在,但"怎么抓"的决策权从人挪给了 LLM。Scrapling 也是同路数,63K star,主打自适应元素重定位和 Cloudflare 绕过。
⚠️ 但别神话:Agentic 爬虫目前在生产里稳定性仍不如 Scrapy 写死的规则流,尤其大规模并发时,"LLM 判断要不要渲染"这一步比
await page.goto()贵太多。300 个房产站爬虫的真实方案是混合——托管浏览器基建 + 自己的 agent controller + 严格 budget/timeout。
四、RPA 场景:从"替代双手"到"替代双手+脑"
RPA 的命门大家其实都知道——UI 一变就崩、非结构化数据进不来、异常判断做不了。举个真实例子:
供应商发票出现 3 处数据异常,2 处金额超 50 万,请分析原因并给处理建议,判断要不要通知采购。
这种事传统 RPA 完全哑火,它只会把发票字段对进 ERP。
Agent + RPA 目前三条主流融合路径:
- Agent 做决策节点,插在 RPA 流程里:RPA 抓合同文本 → Agent 读合同识风险 → 人/RPA 处理。渐进式改造,不用推翻存量。
- Agent 编排 RPA:人说"帮我完成 Q3 供应商对账,异常标红",Agent 自己拆——调 RPA 从 ERP 导付款、从合同系统导履约、Agent 比对、RPA 开工单、Agent 写摘要。
- 原生 Agent 平台:Agent 工具箱里直接带"调用 API / 操作文件系统 / 操作浏览器",RPA 只是其中一个可调用的 skill。
制造业供应链那个案例挺有说服力:RPA 抓订单录系统,Agent 根据库存+物流+客户动态分优先级、遇延迟自动触发补发。优合集团的邮件+单证场景,Agent+RPA 上线后单封邮件处理从 4 分钟压到 1 分钟以内。
五、Plan-Act-Reflect:Agent 比脚本多出来的那块"脑"
光说"Agent 更聪明"太虚,得拆开看它多出来的零件是哪几个。主流 Agent 框架(LangChain、LangGraph、AutoGen)共用一套内核:
🔹 Plan(规划)
Planner 先把任务拆成步骤列表——"1. 搜资料 2. 分析数据 3. 写报告",再交给 Executor 走。比 ReAct(Reasoning 和 Acting 交替、所有逻辑挤在一个 prompt 里)更适合长任务,因为全局计划一次生成,中间不必每步都让 LLM 重新想。
🔹 Act(工具调用)
LLM 不自己执行代码,它只输出"意图"——{tool: "search", query: "..."},宿主程序真去调搜索/DB/API。所以工具的 description 比实现更重要,LLM 是靠描述来决定"这步该用哪个扳手"的。
🔹 Reflect(反思)
执行完一步或一整轮,让 LLM 自己打分:score / passed / issues / suggestions。反思一般设上限 3 次——一鼓作气二而衰三而竭,第四次基本是形式主义,还没过就降级人工。更贵的做法是上 Critic Agent(另起一个 LLM 当评委),比自我反思狠,但多一次调用。
这三件套加一起,就是 Agent 和"写了 if-else 的 Python 脚本"的本质差:脚本的每一步是你定的,Agent 的每一步是它根据上一步的 Observation 推出来的。
六、选型决策树(别什么都往 Agent 上堆)
这是最容易踩的坑——Agent 不是 RPA 2.0,也不是脚本替代品,它是给"波动大、异常多、长尾流程"准备的。
选 Python 脚本 / Scrapy 当:
- 页面结构稳定、规则清晰
- 高并发、成本敏感、要可预测 latency
- 不需要判断,只要搬数据
选 RPA 当:
- 跨系统 UI 操作、没有 API
- 流程稳定、高量重复(月末结账、发票录入)
- 合规要求步骤全可追溯
选 Agent(或 Agent+RPA)当:
- 非结构化数据(邮件、合同、PDF、客服对话)
- 异常多、规则每周变、长尾流程
- 需要"理解+判断+决策",不只是搬运
- 能接受前期搭建成本和偶尔的幻觉风险
混合是最现实的答案:稳定那段 RPA/脚本跑,判断那段 Agent 接,memory + guardrail + human-in-the-loop 兜住底线。企业里"Agent 取代 RPA"是伪命题,更像是"代理人 + 不同技能机器人才组成的马赛克流程"。
七、一点个人判断
到 2026 年这个节点,争论"Agent 和 RPA 谁赢"已经没意义了,分界在确定性问题 vs 探索性问题:
- 确定性(规则明、结构稳、量⼤)→ 脚本 / RPA 仍是 ROI 最优,别为了时髦换 Agent。
- 探索性(要理解、要判断、路径不固定)→ 脚本写不动,RPA 硬写会变成维护地狱,Agent 才是正解。
- 爬虫这个垂直里,Scrapy 不会死,但"写 XPath"这件事会死掉一半——新手爬虫以后直接自然语言 + schema 起步,老 Scrapy 项目会在"抗反爬 + 高并发"那一截继续活。