Hermes四步搭建可复用工作流

很多人把 Hermes Agent 装起来,接上飞书,问了几轮问题,然后就停在这里,
如果你觉得 Hermes Agent 用起来还没有想象中高效,问题通常不在模型,
而在于你只把它当成了聊天框,没有把记忆、可复用流程和定时执行接成一条线,
真正的差距,不在于你有没有把 Hermes Agent 装起来,而在于它能不能记住、复用并自动执行你已经验证过的工作方式,
能聊天,能调用工具,看起来已经比普通聊天机器人强很多,
但第二天重新打开以后,它又像一个刚认识你的陌生人,业务背景要重新讲,文件位置要重新说,之前确认过的流程还得再教一遍,
这不是 Hermes Agent 不够强,而是你只打开了它最表面的一层,
真正让 Agent 开始积累的,不是再换一个模型,而是把 Memory、Skills 和 Cron 接起来,
Memory 让它记住你的环境和偏好,Skills 让它把做过一次的流程变成可以重复调用的能力,Cron 则让它在你不打开聊天框的时候也能按时工作,
这篇文章把这套用法完整拆开,最后还会用一个真实的内容生产案例,把这三层怎么连起来跑一遍,
装好 Hermes,只是起点
普通 Agent 的使用方式是:给它一个任务,等它回答,关掉窗口,下一次从头开始,
Hermes 更适合被当成一个会积累的工作系统,前提是你不能只把它当成聊天框,
Memory 和 Skills 才是把 Hermes 从“用一次就结束的工具”变成“越用越顺手的 Agent”的两个入口。
但 Memory 和 Skills 不是一回事,混在一起用,后面一定会乱,
两个 Markdown 文件,负责记住不同的东西
Hermes 的内置记忆主要放在两个普通文本文件里:
MEMORY.md USER.md
MEMORY.md 更像 Agent 对工作环境的长期笔记,里面可以放:
- ✓你的项目和文件结构
- ✓常用工具和运行方式
- ✓过去任务里确认过的经验
- ✓已经验证过的注意事项
- ✓某些工作流为什么这样做
USER.md 记录的是“你是谁”,包括:
- ✓你的角色和工作方向
- ✓你喜欢什么样的输出
- ✓哪些表达方式需要避免
- ✓你的写作风格和判断偏好
你希望 Agent 如何和你协作
- ✓一个简单的区分方式是:
MEMORY.md = Agent 记住了什么 USER.md = Agent 需要怎样理解你
这两个文件会在每次新会话开始时被读取,所以它们应该像便利贴,不应该写成一本几万字的工作日志,
如果什么都往里面塞,每次会话都会把大量历史重新注入上下文,Token 会增加,真正重要的信息反而容易被淹没,
记忆越多,Agent 不一定越聪明
这是很多人第一次搭 Memory 时最容易犯的错误,觉得 Agent 记得越多越好,
实际上,膨胀的 MEMORY.md 和 USER.md 会带来三个问题:
第一,每次会话都要重复读取,消耗上下文和 Token,
第二,旧规则、临时决定和长期偏好混在一起,Agent 更难判断什么才重要,
第三,错误经验也会被反复带入,最后变成“它一直记得,但一直记错”,
所以记忆系统不是资料仓库,更像一层长期有效的工作上下文,
建议定期打开这两个文件看一遍,把已经过期的内容删掉,把重复的内容合并,把真正会影响后续工作的规则留下来,
如果你不确定应该记什么,可以让 Hermes 先采访你:
请通过一轮简短但有结构的问题,帮我建立 USER.md 和 MEMORY.md 的初始版本, 重点了解: 1,我的工作角色和主要项目 2,我希望你如何输出结果 3,我反感哪些表达和工作方式 4,哪些流程会被我反复使用 5,哪些事实值得跨会话保留 不要把临时任务和一次性信息写进长期记忆,完成后先给我预览,等我确认再写入文件
如果你不想让 Hermes 自动修改这些文件,也可以打开 approval mode,让它每次更新记忆或创建 Skill 前先询问,
这个开关很有用,尤其是在你刚开始建立长期记忆的时候,先观察它想记什么,再决定哪些内容值得留下,
Memory 负责记住信息,Skill 负责记住做法
- ✓这两个概念最好尽早分开,
Memory = 记住事实和偏好 Skill = 记住一套可复用的流程
- ✓比如:
“我的产品主要面向海外 SaaS 用户” → Memory “每周一如何整理竞品变化并输出机会判断” → Skill
Skill 本质上是一份可以重复调用的工作方法,里面可以写:
- ✓什么时候触发
- ✓需要读取哪些资料
- ✓操作应该按什么顺序执行
- ✓产出应该长什么样
- ✓如何检查结果
- ✓失败以后怎么恢复
如果你每周都要做一次客户反馈整理、销售线索筛选、竞品追踪或内容复盘,就不应该每次重新解释一遍,
先用 Hermes 手动做出一版,确认流程确实有效,再执行:
/learn
把这次已经跑通的过程沉淀成一个可复用 Skill,
- ✓也可以直接这样说:
请把刚才完成的流程整理成一个可复用 Skill, 要求包含:触发条件、输入资料、执行步骤、输出格式、验证方式和常见失败处理, 不要把这次任务里的临时数据写死在 Skill 里
以后遇到同类任务,Hermes 先调用这个流程,再根据当前输入调整细节,而不是每次从空白开始猜,
Skill 不会一次写完
一套 Skill 的第一版通常不会特别好,
因为你只有真正用过以后,才会发现:哪一步太慢,哪一个输入经常缺失,哪种输出不适合直接交付,哪一个判断条件写得太模糊,
所以不要把它当成一次性文档,而是当成会迭代的工作接口。
第一版先解决“能不能重复跑”,第二版再解决“跑得是否稳定”,第三版才开始补异常处理、边界条件和质量检查,
如果 Skill 里教给 Hermes 的流程本身很乱,Hermes 只会更稳定地重复这份混乱,
多个 Skill 可以组成一条工作链
当一个任务变大以后,不一定要让一个 Agent 从头做到尾,
可以把不同阶段拆成不同 Skill,再通过组合或 Sub-agent 分工:
资料收集 Skill → 研究分析 Skill → 内容生成 Skill → 事实核查 Skill → 交付检查 Skill
大任务也可以拆给多个 Sub-agent 并行处理,最后由一个主 Agent 汇总和复核,
但刚开始不建议把所有工作拆成十几个 Agent,先把一个完整流程跑通,再看哪一步真的值得拆出去。
Cron 让 Agent 按时上班
当一个 Skill 已经稳定以后,就可以通过 Cron 让它定时运行,
Skill = 它知道怎么做 Cron = 它知道什么时候做
- ✓比如:
- ✓每天早上整理行业变化
- ✓每周一生成销售线索摘要
- ✓每晚检查服务器和任务状态
- ✓每周三处理最新会议记录
每月回顾哪些 Skill 还在使用
如果 Hermes 运行在本地电脑上,电脑关机以后 Cron 自然不会执行,
想让它在后台长期运行,就需要把 Hermes 部署到一台持续在线的服务器或 VPS 上,
Hermes 可以部署在持续在线的 VPS 上,通过飞书继续访问。
VPS 只是实现 24 小时在线的一种方式,不是 Hermes 唯一的运行方式,桌面端同样可以作为本地入口,
一个完整案例:会议结束三十分钟后,内容卡片自动发到手机
这里是最值得看的地方,把 Memory、Skills、Cron 和自我检查放进了同一条工作流,
案例的输入是一场导师交流或客户会议,会议通过 Granola 录音并转成文字,
- ✓旧流程是:
人工打开转录 → 自己找选题 → 写几个 Hook → 检查是否符合录制规则 → 再整理成短视频卡片
- ✓新流程变成:
会议结束 → Granola 生成转录 → Cron 延迟三十分钟触发 → Hermes 读取最新转录 → Skill 按固定提取规则找选题 → 生成三张 talk card → 按规则自检 → 合格内容追加到笔记文件 → 通过 飞书 发到手机
每张内容卡片不是只输出一句标题,而是固定成一个结构:
Spoken Hook Proof Tension Close
这样做的好处是,输出不再是“给几个灵感”,而是已经带着下一步拍摄需要的结构。
真正重要的不是 Cron 自动启动了 Hermes,而是前面的 Memory 和 Skill 已经把这套工作方式教给了它,
Cron 只是负责让流程按时发生,
自动化之前,先检查它到底创建了什么
这类自动化最容易出现的问题,不是 Cron 不运行,而是它运行了错误的流程,
第一次创建 Cron 时加载了错误的 Skills,后来通过让 Hermes 总结自己创建了什么,才发现了问题,
- ✓所以第一次配置以后,不要只问:
任务创建成功了吗
- ✓还要问:
请总结你刚刚创建的 Cron: 1,任务名称 2,执行时间和时区 3,实际调用了哪些 Skill 4,输入文件来自哪里 5,输出会写到哪里 6,失败时会留下什么记录
先人工检查一次,确认无误以后再让它长期运行,
自动化最怕的不是偶尔失败,而是每天稳定地产出错误结果,
Self-verification:让 Agent 先检查,再交付
如果一个 Agent 只负责生成,不负责检查,Cron 只会把低质量内容按时送到你面前,
这里的 Self-verification 很重要,
比如做内容提取时,可以要求 Hermes 在交付前检查:
Hook 是否有具体的人、数字或事件
是否只是换了一种说法重复原文
- ✓是否符合既定格式
- ✓是否缺少证据或上下文
- ✓是否出现空泛的结论
一个可复制的检查 Prompt 可以这样写:
请在交付前按下面规则审查结果: 1,Hook 必须包含具体对象、事实或场景 2,不能只写抽象观点 3,Proof 必须能在原始转录中找到依据 4,Tension 要说明冲突或读者为什么关心 5,Close 必须能自然引导下一步 6,任何不满足条件的卡片都不要交付,并说明被丢弃的原因
这里的重点不是让 Agent 自己说一句“已检查”,而是给它一组可以判断的规则,
Curator 负责清理不再使用的 Skill
Skill 越积越多以后,也会出现另一个问题,
你安装了很多 Skill,但半年没用过,触发规则互相重叠,Agent 每次都要在一堆旧流程里找,
Hermes 的 Curator 可以帮助维护 Skill 库,把长期不使用的 Skill 归档,
但如果某个 Skill 只是偶尔使用,却非常重要,就应该把它 Pin 住,避免被自动清理,
这层机制的价值不是“让 Skill 数量越来越多”,而是让真正活跃的流程更容易被找到,
/journey:看见 Agent 是不是在变好
很多人说 Agent 会越用越好,但如果没有记录,你其实很难知道它到底有没有变好,
Hermes 的 /journey 可以把长期变化展示出来,包括:
- ✓创建过哪些 Skill
- ✓更新过哪些记忆文件
有哪些 Cron 正在运行
哪些工作流是在什么时间沉淀下来的
这不是一个简单的日志页面,而是用来检查 Agent 是否真的形成了积累,
如果几周以后,Memory 没有任何有效更新,Skill 没有沉淀,Cron 也没有稳定运行,那就说明你只是偶尔和它聊天,并没有真正建立长期工作流,
外部知识库应该放在哪里
内置 Memory 适合放短小、长期有效的上下文,不适合塞入完整业务知识库,
更大的资料应该进入文件系统或外部知识库,这里使用的是 Obsidian,
- ✓这个定位很合理:Obsidian 不需要被神化成“第二大脑”,它首先是一个容易被 Agent 读取的文件系统。
你可以把 SOP、客户资料、项目笔记、内容草稿、历史报告按目录组织起来,然后让 Hermes 按需读取,
- ✓比如:
请读取 Obsidian 中 会议 文件夹下最近一次内容记录, 找出当时保存的 Hook、Proof、Tension 和 Close, 不要读取其他文件夹,也不要把完整文件内容复制出来,只返回与这次任务相关的部分
这样,MEMORY.md 和 USER.md 保持轻量,完整资料放在外部文件系统,Agent 需要时再读取,
如果以后确实需要更强的跨应用记忆,再考虑 Honcho 或其他外部 Memory Provider,不要一开始就把所有东西都塞到一个系统里,
你可以今天就开始的最小版本
不需要先搭一个复杂的 AI 员工系统,先做下面四步:
第一步,检查 MEMORY.md 和 USER.md,删掉临时信息,只留下真正会影响长期工作的内容,
第二步,挑一个你每周至少重复一次的流程,先手动跑通,再用 /learn 做成 Skill,
第三步,给这个 Skill 加一条 Cron,但第一次运行以后必须让 Hermes 输出任务摘要,检查时间、输入、Skill 和输出位置,
第四步,给输出加一个独立的 Self-verification,让 Agent 在交付前先检查结果,而不是把第一版直接发给你,
可以直接把下面这段 Prompt 交给 Hermes:
请帮我把一个重复工作变成长期可运行的流程, 先采访我,确认这个任务的输入、步骤、输出、质量标准和失败处理, 然后先手动执行一遍,等我确认结果以后再用 /learn 创建 Skill, 接着设计一条 Cron,但先不要启动,先告诉我任务名称、时间、时区、调用的 Skill、输入来源和输出位置, 最后给出一份 Self-verification 清单,确保自动化不会稳定地产出错误结果
核心判断
很多人把 Hermes Agent 的能力理解成“它能不能完成一个任务”,但真正拉开差距的是:这个任务结束以后,系统有没有留下可以复用的东西,
一次回答不会让 Agent 变成长期助手,
一条 Memory 让它少问几遍,
一个 Skill 让它少教几遍,
一条 Cron 让它按时出现,
一套 Self-verification 让它不至于稳定地产出垃圾,
Memory、Skills 和 Cron 接起来以后,Hermes 才不再只是回答问题,而是开始积累一套可以反复调用的工作系统,
这几层接起来以后,Hermes 才开始从聊天窗口变成一个会积累的工作系统,
但也不要一开始就把所有知识、所有工具、所有自动化全部打开,先选一个重复任务,建立一条最小闭环,
确认它真的比手工更省时间,再逐步增加更多 Skill 和 Cron,
否则你最后得到的不是一个更强的 Agent,而是一堆自己也不知道什么时候会触发的自动化,
感谢你的阅读和支持,我们下篇文章见!


