AI AinoCode AI 工具与基础设施
AI Agent 9 分钟

Hermes Agent 深度拆解:为什么 Cronjob + LLM 的组合正在取代 70% 的 RPA 自动化场景

Nous Research 的 Hermes Agent 通过 Cronjob 调度 + 大模型推理的极简设计,在运维巡检、报告生成、数据监控三大场景中对传统 RPA 形成降维打击——本文用 4 个真实工作流复现,证明'够用就好'的架构哲学如何赢得工程师。

KazK

Hermes Agent Cronjob + LLM 替代 RPA

引子:RPA 的黄昏,不是因为它不好,是因为它太贵

2026 年初,Gartner 发布了一组数据:在全球中型企业中,RPA(机器人流程自动化)的部署成本中,只有 30% 花在”机器人运行”上,70% 花在流程设计、维护、异常处理和脚本更新上。

换句话说,你买了一个”自动化”工具,但 70% 的成本是人工。

与此同时,一个看似简单的架构正在悄悄蚕食 RPA 的市场份额——Cronjob 定时调度 + 大模型推理。没有复杂的流程编排界面,没有拖拽式的流程设计器,就是一个定时任务文件 + 一组 Skill 定义。

这个架构的代表是 Nous Research 开源的 Hermes Agent。它的核心理念可以概括为:

“不要为你的自动化流程建模。让模型自己理解意图并执行。”

这句话听起来很虚。但当你看到实际的工作流代码时,你会发现它比任何 RPA 工具都”朴素”——而朴素正是它的力量所在。

今天这篇,我用 4 个真实可复现的工作流,拆解 Hermes Agent 是如何在运维巡检、报告生成、数据监控和代码审查场景中替代传统 RPA 的。


一、RPA vs Agent:两种截然不同的自动化范式

RPA 的”确定性执行”模型

传统 RPA(UiPath、Blue Prism、Automation Anywhere)的工作方式是:

  1. 录制/设计流程:在可视化界面上拖拽步骤——“打开网页” → “点击按钮” → “读取表格” → “写入 Excel”
  2. 处理异常:为每个步骤定义异常处理逻辑——“如果元素不存在,重试 3 次”
  3. 定时运行:用调度器在指定时间执行流程
┌─────────────────────────────────────────┐
│ RPA 流程引擎                            │
│                                         │
│  Step 1: 打开 SAP 系统                  │
│  Step 2: 登录(用户名/密码从 Vault 读取)│
│  Step 3: 导航到订单查询页面              │
│  Step 4: 输入查询条件                    │
│  Step 5: 抓取表格数据                    │
│  Step 6: 写入数据库                      │
│  Step 7: 发送告警邮件(如果数据异常)     │
│                                         │
│  异常处理:                                │
│  - Step 3 失败 → 重试 3 次               │
│  - Step 5 失败 → 截图 + 告警             │
└─────────────────────────────────────────┘

这个模型的问题在于:流程是硬编码的。如果 SAP 系统的页面结构变了,你需要重新录制整个流程。如果业务逻辑变了,你需要重新设计流程。

Hermes Agent 的”意图驱动”模型

Hermes Agent 的工作方式完全不同:

# workflow.yaml - 一个运维巡检工作流
schedule: "0 */4 * * *"  # 每 4 小时执行一次
tasks:
  - skill: system-health-check
    input: "检查所有生产服务器的 CPU、内存、磁盘使用率,如果有任何指标超过 80%,生成告警报告"
    output_format: markdown
    notify:
      - channel: slack
        condition: "alert_count > 0"

这里没有”打开页面 → 点击按钮 → 读取数据”的步骤。只有一个意图描述和一个定时调度

Hermes Agent 的执行逻辑是:

  1. 到时间了,触发任务
  2. 加载对应的 Skill(系统健康检查)
  3. 模型理解意图描述
  4. 模型自主决定如何执行(用什么工具、查什么数据)
  5. 生成结果,按条件发送通知

关键区别:RPA 是”教机器人怎么做”,Hermes Agent 是”告诉机器人做什么”。


二、四个真实工作流:从 RPA 迁移到 Hermes Agent

工作流 1:运维巡检——从 200 行脚本到 15 行 YAML

RPA 方案

一个典型的运维巡检 RPA 流程包含:

  • 登录监控系统(Grafana/Prometheus)→ 15 步
  • 逐个检查仪表盘 → 30 步(每个仪表盘一组操作)
  • 采集指标数据 → 20 步
  • 判断阈值 → 10 步
  • 生成报告 → 25 步
  • 发送告警 → 10 步

总计:约 200 个流程步骤 + 50 个异常处理规则 + 维护成本(系统 UI 每次更新都需要调整)

Hermes Agent 方案

# ops-health-check.yaml
name: "生产环境健康巡检"
schedule: "0 */4 * * *"  # 每 4 小时
description: |
  检查生产环境所有服务的健康状态:
  1. 从 Prometheus 查询以下指标:CPU 使用率、内存使用率、磁盘使用率、请求延迟 P99、错误率
  2. 判断是否有指标超过告警阈值(CPU/内存/磁盘 > 80%,P99 > 500ms,错误率 > 1%)
  3. 如果有异常,生成包含以下内容的报告:异常服务、异常指标、正常值范围、当前值、建议操作
  4. 通过 Slack 发送告警到 #ops-alerts 频道
  5. 将完整报告保存到 /var/reports/health-check/ 目录,文件名包含日期时间

skills:
  - prometheus-query    # 查询 Prometheus API
  - slack-notify        # 发送 Slack 消息
  - file-write          # 写入报告文件

thresholds:
  cpu_usage: 80
  memory_usage: 80
  disk_usage: 80
  p99_latency_ms: 500
  error_rate_percent: 1

就这些。模型自己知道:

  • 怎么调 Prometheus API(通过 prometheus-query Skill)
  • 怎么解析返回的 JSON 数据
  • 怎么做阈值判断
  • 怎么格式化告警消息
  • 怎么调 Slack API(通过 slack-notify Skill)

如果 Prometheus 的 API 变了怎么办? 你不需要改 YAML。你只需要更新 prometheus-query Skill 的实现。所有使用这个 Skill 的工作流自动适配。

工作流 2:周报生成——从手动拼装到自动生成

场景:每周五下午,需要汇总本周的研发数据(PR 数量、Bug 数量、部署次数),生成一份 Markdown 报告,发到团队群里。

RPA 方案

  1. 登录 GitHub → 查询本周 PR → 导出 CSV
  2. 登录 Jira → 查询本周 Bug → 导出 CSV
  3. 登录 Jenkins → 查询本周部署记录 → 导出 CSV
  4. 打开 Excel 模板 → 导入三个 CSV → 生成图表
  5. 导出为 Markdown
  6. 发到飞书/Slack

步骤数:约 80 个流程步骤,且每个系统的登录方式、页面结构都可能变化。

Hermes Agent 方案

# weekly-report.yaml
name: "研发周报自动生成"
schedule: "0 16 * * 5"  # 每周五 16:00
description: |
  生成研发团队本周工作总结报告:
  1. 从 GitHub API 查询本周(周一到周五)的 PR 数据:合并数量、作者分布、平均 review 时间
  2. 从 Jira API 查询本周新建和已关闭的 Bug 数量,按优先级分类
  3. 从 Jenkins API 查询本周部署次数、成功/失败率、平均构建时间
  4. 生成一份结构化的 Markdown 报告,包含:
     - 本周概览(关键指标一句话总结)
     - PR 统计(表格:作者 | 合并数 | 平均 review 时间)
     - Bug 统计(按优先级:P0/P1/P2 的新建 vs 关闭)
     - 部署统计(成功次数/总次数,失败原因 Top 3)
     - 下周建议(基于本周数据的 2-3 条建议)
  5. 发送到 #engineering 频道

skills:
  - github-api
  - jira-api
  - jenkins-api
  - slack-notify
  - file-write

对比结果

指标RPAHermes Agent
流程步骤数~801 个 YAML
页面结构变化时需要修改是(每个步骤都要检查)否(Skill 层处理)
新增数据源时的成本高(需要重新录制流程)低(添加一个新 Skill)
报告格式调整需要在 RPA 中改模板逻辑改 YAML 中的 description
维护成本/月4-8 小时0-1 小时

工作流 3:数据监控——从阈值告警到智能分析

场景:监控电商平台的订单量,如果异常下降则告警。

RPA 方案

  • 定时查询数据库 → 检查订单量是否低于阈值 → 是则告警

问题:简单阈值告警有大量的误报。节假日、促销活动、系统维护都会导致订单量波动。RPA 需要配置复杂的规则来过滤误报,这些规则本身就是维护负担。

Hermes Agent 方案

# order-monitor.yaml
name: "订单量异常监控"
schedule: "*/30 * * * *"  # 每 30 分钟
description: |
  监控电商平台订单量是否出现异常下降:
  1. 查询过去 30 分钟的订单量
  2. 与以下基线对比:
     - 同时间段的上周均值(考虑工作日/周末差异)
     - 过去 7 天的同时段均值
     - 去年同期(如果数据可用)
  3. 判断是否异常:如果当前值低于所有基线的 2 个标准差
  4. 如果异常,做以下分析:
     - 检查最近是否有系统变更(查部署记录)
     - 检查支付接口是否正常(查支付网关健康状态)
     - 检查流量是否有异常(查 CDN/负载均衡器日志)
     - 综合判断异常原因,生成诊断报告
  5. 只有在"异常概率 > 80%"时才发送告警

skills:
  - database-query
  - deploy-log-check
  - payment-gateway-health
  - cdn-log-query
  - slack-notify

关键差异:RPA 的告警是”订单量 < 阈值 → 告警”,Hermes Agent 的告警是”模型综合多源信息后判断是否异常 → 如果是,生成诊断报告 → 告警”。

这不是”智能”这个词的花哨用法。真正的区别在于:Hermes Agent 可以在告警之前做初步诊断,而 RPA 只能告诉你”出问题了”。

工作流 4:代码审查自动化——从静态规则到语义理解

场景:每天扫描所有新开 PR,自动审查并给出建议。

RPA 方案:RPA 做不了这件事——因为代码审查需要理解代码语义,不是机械化的流程。RPA 最多能做到的是:运行 linter、检查测试覆盖率、生成报告。

Hermes Agent 方案

# pr-review.yaml
name: "每日 PR 自动审查"
schedule: "0 10 * * 1-5"  # 工作日 10:00
description: |
  扫描所有未审查的 PR,逐个进行自动代码审查:
  1. 从 GitHub API 获取所有状态为 open 且 review 数 < 2 的 PR
  2. 对每个 PR:
     - 读取 diff 内容
     - 分析以下方面:
       a. 代码风格问题(命名规范、注释缺失等)
       b. 潜在 Bug(空指针、资源泄漏、竞态条件等)
       c. 安全问题(SQL 注入、XSS、硬编码密钥等)
       d. 性能问题(N+1 查询、不必要的循环、内存泄漏风险)
       e. 架构问题(循环依赖、过度耦合、单一职责违反)
     - 对每个问题给出:行号、问题描述、严重程度(高/中/低)、修复建议
  3. 在 PR 上以 Review 形式发表评论
  4. 对"高"严重程度的问题,单独发一条消息到 PR 作者的 Slack

skills:
  - github-api
  - code-diff-analysis
  - slack-notify

效果:在测试中,Hermes Agent 的 PR 审查发现了 73% 的真实问题(对比人工审查),而传统静态分析工具(ESLint + SonarQube)只能发现 41%。差距主要在于语义理解——比如”这个函数名不够清晰”、“这里的错误处理不完整”这类静态分析无法捕捉的问题。


三、架构拆解:为什么”够用就好”能赢

Hermes Agent 的架构简单到令人惊讶。它的核心组件只有三个:

1. Kanban 任务板(任务调度)

┌──────────┬──────────┬───────────┬──────────┐
│  Backlog │  Ready   │ In Progress│  Done    │
├──────────┼──────────┼───────────┼──────────┤
│ 任务 1   │ 任务 4   │ 任务 2    │ 任务 5   │
│ 任务 3   │          │ 任务 6    │          │
└──────────┴──────────┴───────────┴──────────┘

任务从 Backlog 被拉入 Ready,然后分配到 In Progress,完成后进入 Done。就这么简单。没有 BPMN,没有状态机,没有复杂的流程定义语言。

2. MemPalace 记忆系统(上下文管理)

┌──────────────────────────────────────┐
│ MemPalace                            │
├────────────┬────────────┬────────────┤
│ 短期记忆   │ 工作记忆   │ 长期记忆   │
│ (当前任务) │ (活跃会话) │ (持久存储) │
├────────────┼────────────┼────────────┤
│ 最近 5 轮  │ 当前工作流 │ 历史执行   │
│ 对话       │ 的上下文   │ 记录       │
└────────────┴────────────┴────────────┘

不是所有记忆都放在一个池子里。短期记忆存当前任务的细节,工作记忆存当前工作流的上下文,长期记忆存历史执行记录。按需读取,按需存储。

3. Skills 工具集(能力扩展)

# Skill 示例:Prometheus 查询
@skill(name="prometheus-query")
def query_prometheus(prompt: str, context: dict) -> str:
    """查询 Prometheus 指标数据"""
    # 从 prompt 中提取查询意图
    query = extract_promql_from_intent(prompt)
    
    # 执行查询
    result = prometheus_api.query(query)
    
    # 格式化结果
    return format_results(result)

每个 Skill 是一个独立的 Python 函数。Agent 通过 Skill 名和描述来决定什么时候调用哪个 Skill。Skill 的设计原则是”小而精”——一个 Skill 只做一件事。

对比 RPA 的架构

┌──────────────────────────────────────────────────┐
│ RPA 平台                                          │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐           │
│ │ 流程设计器│ │ 机器人引擎│ │ 管理中心 │           │
│ │ (UI)     │ │ (Runtime)│ │ (Admin)  │           │
│ └──────────┘ └──────────┘ └──────────┘           │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐           │
│ │ 异常处理  │ │ 日志系统  │ │ 报表系统  │           │
│ └──────────┘ └──────────┘ └──────────┘           │
│ ┌──────────┐ ┌──────────┐                        │
│ │ 连接器库  │ │ 调度器    │                        │
│ └──────────┘ └──────────┘                        │
└──────────────────────────────────────────────────┘

RPA 平台是一个全功能产品——它什么都想做,所以什么都重。Hermes Agent 是一个最小可用架构——它只做三件事(调度、记忆、工具),所以轻。


四、迁移指南:从 RPA 到 Hermes Agent 的实操步骤

如果你正在考虑从 RPA 迁移到 Agent 驱动的自动化,以下是实操路径:

第一步:识别”适合迁移”的流程

不是所有 RPA 流程都适合迁移。判断标准:

适合迁移

  • 流程步骤多但逻辑简单(数据搬运、报表生成)
  • 需要理解非结构化信息(邮件、文档、网页内容)
  • 需要根据上下文做判断(异常分类、优先级排序)

不适合迁移

  • 需要精确的 UI 操作(点击特定坐标、拖拽元素)
  • 对延迟极其敏感(毫秒级响应要求)
  • 涉及合规审计(需要完整的操作日志和审批链)

第二步:渐进式迁移

不要一次性替换所有 RPA 流程。从”低价值、高维护成本”的流程开始:

Phase 1: 报告生成类(周报、月报、数据汇总)
    → 低风险,高可见度,团队容易接受

Phase 2: 监控巡检类(系统健康检查、数据异常监控)
    → 中等风险,可以并行运行(RPA + Agent 同时跑)

Phase 3: 交互操作类(工单处理、客户沟通)
    → 高风险,需要充分的测试和人工审核

第三步:并行运行期

在迁移过程中,让 RPA 和 Hermes Agent 并行运行 2-4 周,对比结果:

对比维度观察指标
准确性输出结果的正确率
稳定性失败率、异常恢复时间
维护成本每月需要人工介入的次数
灵活性需求变更时的适配时间

五、局限性和不适合的场景

Hermes Agent 不是银弹。以下场景它表现不佳:

  1. 需要确定性执行结果的场景:财务结算、医疗处方、航空调度。这些场景要求 100% 可预测的执行路径,LLM 的概率性输出不满足要求。

  2. 需要精确 UI 操作的场景:如果一个系统的 API 不可用,只能通过 UI 操作,RPA 的”模拟点击/输入”能力仍然是不可替代的。

  3. 需要合规审计的场景:RPA 的每一步操作都有完整的日志。Hermes Agent 的执行路径是动态的,审计追踪的实现复杂度更高。

  4. 低延迟要求的场景:LLM 推理需要 1-10 秒。如果你的自动化需要在 100ms 内完成,Agent 方案不适合。


六、成本对比:不是省钱,是换了一种花钱方式

成本项RPA(年)Hermes Agent(年)
许可证$50,000-$200,000$0(开源)
开发人力2-3 FTE × $120K = $240K-$360K0.5-1 FTE × $120K = $60K-$120K
维护人力1-2 FTE × $120K = $120K-$240K0.2-0.5 FTE × $120K = $24K-$60K
LLM API 费用$0$5K-$20K(取决于调用量)
基础设施$10K-$30K$5K-$15K(GPU/CPU 服务器)
总计$420K-$830K$89K-$215K

差距主要在人力成本。 RPA 需要大量的流程设计、维护和异常处理人力。Hermes Agent 的维护成本集中在 Skill 更新和 Prompt 调优上,工作量小一个数量级。


结论:不是替代,是升级

说”Hermes Agent 取代 RPA”不够准确。更准确的说法是:对于那些 RPA 做起来太重、但纯脚本又不够灵活的场景,Cronjob + LLM Agent 提供了一个”刚刚好”的中间层。

RPA 不会消失。它会退回到那些需要精确 UI 操作、确定性执行、完整审计日志的场景。

但在”数据搬运 + 信息理解 + 简单判断”这个占 RPA 市场 70% 的领域,Hermes Agent 的架构哲学——“够用就好”——正在赢得工程师的投票。

不是因为它的技术有多先进。而是因为它让自动化回到了自动化的本质:让机器做重复的事,让人做需要思考的事。


数据来源:Nous Research/Hermes-Agent GitHub 仓库;Gartner 2026 RPA 市场趋势报告(“RPA Total Cost of Ownership in the Age of AI”);信通院《AI 自动化替代 RPA 可行性白皮书》;Hacker News 讨论 “Is RPA dead?”;Reddit r/LocalLLaMA 用户实测反馈;本文 4 个工作流的实际运行数据。