
自动化工具进化:Hermes Agent如何自动提炼工作流技能提升效率
在日常工作中,很多人都会遇到这样的情况:每天都要重复做一些固定的操作,比如登录后台、导出报表、发送邮件。虽然流程很明确,但就是懒得写脚本,或者写了脚本又怕页面改版导致失效。传统的自动化工具要么需要编程基础,要么拖拽配置也很繁琐。现在,一种新的思路正在兴起——让智能体在旁边观察你的操作,自动把那些高频动作提炼成可以复用的“工作流技能”。这样一来,自动化的起点就不再是从零写代码,而是“你先做一遍,我来学”。本文就来深入拆解这种机制的原理、实现方式和实际价值。
自动提炼的核心原理与触发机制
行为轨迹录制与语义聚类
Hermes Agent 的自动提炼能力建立在两个关键技术之上:行为轨迹录制和语义聚类。当用户开启“观察模式”后,智能体会在本地悄悄地记录你的每一个操作。它捕捉的信息非常细致,包括鼠标点击的坐标、输入框中键入的文字、命令行里敲入的参数,甚至页面DOM元素的变更事件。这些原始数据就像一段录像,但比录像更结构化。
不过,原始轨迹里有很多噪音。比如你不小心点错了弹窗、或者中途接了个电话导致操作中断。系统会先对这些数据进行清洗,剔除那些随机弹窗和明显的误触操作。然后,按照时间窗口把这些干净的数据切分成一个个动作片段。每个片段都会被提取出关键要素:你操作的对象是什么(比如某个按钮或输入框)、操作的类型(点击、输入、选择)、输入的具体值,以及操作之后的页面状态变化。这一步全部在本地完成,不需要联网,所以你的操作数据不会泄露出去。
清洗之后,系统会调用内置的语言模型对每个片段做语义标注。举个例子,如果你连续三次做了“打开后台管理页面、筛选昨日的订单、点击导出CSV”这一套动作,模型就会给它打上一个标签:“订单日报导出”。当同一个标签在三天之内出现超过五次,智能体就会弹出一个提示,询问你是否要把这套操作生成一个工作流技能。这种触发机制很聪明,它避免了偶然的一次操作被误认为是习惯,同时也给了你最终的确认权。如果你觉得这个流程值得固化,点一下确认,系统就会把动作序列抽象成参数化的节点。
控制流推断与技能结构
值得一提的是,这种提炼并不是简单的录屏回放。Hermes Agent 还会做控制流推断。什么意思呢?比如在你每次导出之前,都会先检查一下列表是不是空的,如果空就退出。智能体会注意到这个规律,于是在生成的技能里自动加上一个条件分支:“如果列表为空,则结束流程”,而不是机械地按照顺序执行。这种轻量级的流程挖掘让生成的技能具备了一定的容错能力,不会因为某次数据为空就报错。
下面是一个简化的技能定义结构示例,你可以看到条件节点和参数声明是怎么被记录的:
{
"skill_name": "daily_order_export",
"trigger_count": 6,
"params": {
"date": "昨日",
"format": "csv"
},
"steps": [
{"action": "open", "target": "admin/orders"},
{"action": "filter", "field": "created_at", "value": "{{date}}"},
{"action": "check_empty", "if_true": "exit"},
{"action": "export", "type": "{{format}}"}
]
}在这个结构里,params定义了可变的部分,比如日期和导出格式,而steps则描述了固定的操作步骤。其中check_empty就是一个条件节点,当满足条件时直接退出,否则继续执行。这样生成的技能既保留了灵活性,又具备基本的判断能力。
生成的工作流技能文件结构与调用方式
技能文件结构
被提炼出来的技能会以 YAML 或 JSON 格式保存在用户目录下的技能库中,比如在 Windows 系统里可能是C:\Users\用户名\Hermes\skills。每个技能文件的开头都包含元数据:技能名称、适用的应用程序、平均执行耗时、最近一次调用的时间等等。主体部分则是一个节点列表,每个节点都带有动作类型、选择器或命令、超时时间和重试策略。
这种结构刻意保持了人类可读性,方便你后期手动微调。比如说,你觉得导出格式从 CSV 改成 XLSX 更好,那直接打开文件把"format": "csv"改成"format": "xlsx"就行了,完全不用重新走一遍操作流程。这对于那些懂一点技术但不想写完整脚本的人来说,非常友好。
被动调用与主动调用
技能的调用方式分为两种:被动和主动。被动调用指的是,当你再次进行类似操作时,智能体会在侧边栏弹出一条推荐:“是否启用 daily_order_export 技能?”你点一下确认,它就会自动重放整个流程,并且自动填入参数(比如日期默认为昨天)。主动调用则更自然,你直接对智能体说一句话,比如“跑一下昨天的订单导出”,它会自动匹配技能名称和参数描述,然后进入执行模式。
在执行过程中,如果遇到页面改版导致原来的选择器失效了,智能体并不会直接报错退出,而是尝试用视觉匹配的方式去定位元素。比如原来通过CSS选择器定位的按钮找不到了,它会根据截图中的颜色、形状、相对位置去猜测哪个才是目标按钮。这种双通道定位(DOM + 视觉)让技能比传统脚本更健壮,即使界面有轻微变化也能继续工作。
与手动脚本的对比
为了让你更直观地感受区别,我们可以对比一下手动脚本和技能调用的代码量。下面是用 Python + Selenium 实现同样逻辑的代码片段:
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://shop.ippipp.com/admin/orders')
time.sleep(2)
# 筛选昨日
driver.find_element_by_name('date').send_keys('yesterday')
driver.find_element_by_id('search').click()
time.sleep(3)
if not driver.find_elements_by_class_name('order-row'):
driver.quit()
exit()
driver.find_element_by_id('export').click()你看,这还只是最基础的版本,还没有考虑异常处理、等待超时、浏览器驱动配置等问题。而用技能的话,你只需要说一句话或者点一下按钮,根本不需要关心这些底层细节。技能方案省去了环境配置和大量的异常捕获样板,让自动化真正回归到“解决问题”本身。
与传统RPA和脚本方案的效率对比
三类方案对比
传统RPA工具(比如早期的桌面自动化软件)通常依赖用户用可视化编辑器拖拽组件,学习成本主要集中在“怎么让机器理解界面”上。你得告诉机器人哪里是输入框、哪里是按钮,还要配置各种触发条件。而Hermes Agent的思路正好相反:先让机器理解用户的操作,然后再生成编辑结果。用户只需要在最后的确认环节做减法——删掉不必要的步骤或者调整参数即可。
对于月度报表、客服话术切换、竞品价格巡检这类周期性任务,智能体的提炼耗时通常只有手动建流程的五分之一。而且后续修改技能也比修改RPA工程要轻量得多,改个参数就行,不用重新拖拽整个流程图。
和纯手写脚本相比,技能方案最大的优势在于零依赖和自维护。脚本需要应对选择器变更、接口字段调整,一旦页面改版,旧脚本很可能就报废了。而智能体在执行技能时融合了视觉与DOM双通道定位,就算某个页面的按钮换了样式,它依然有可能通过视觉特征找到正确的位置。当然,技能也不是万能的。涉及到复杂的鉴权跳转(比如多次重定向登录)或者强人机校验(比如滑块验证码)的流程,自动提炼很容易在中途卡住。这时候还是建议手写带容错逻辑的脚本来处理。
下面这张对照表总结了三种方案在三个关键维度上的表现:
方案 | 搭建成本 | 维护成本 | 抗界面变更 |
|---|---|---|---|
手写脚本 | 高 | 高 | 弱 |
传统RPA | 中 | 中 | 中 |
Hermes技能 | 低 | 低 | 较强 |
落地建议
在实际落地的时候,建议把这种自动提炼能力作为团队的效率基线。先让每个人开启观察模式跑一周,让智能体收集每个人的高频操作。一周之后,导出一批技能,然后由组长或者技术负责人评审,看看哪些可以固化为部门的标准操作流程。这种自下而上的自动化推广方式,比自上而下强制推行脚本更容易被接受,也更符合真实业务的节奏。
当技能库积累到一定规模之后,还可以通过skill merge命令将相似的技能合并成一个带分支的复合技能。比如“订单日报导出”和“周报汇总导出”有很多重叠步骤,合并之后就可以根据参数自动选择不同的分支,进一步压缩每天的点击次数。这样一来,你每天花在重复操作上的时间就会越来越少,可以把精力放在更有创造性的工作上。
Hermes_Agent工作流技能效率自动化修改时间:2026-08-22 13:05:35