**Hermes 是持久化代理基础设施**:把重复工作交给永远在线的 AI 员工,而非当聊天机器人用。

HOEEM(@HOOEEM)教程 · 已翻译 · 约 43 分钟
阅览室 · AI 最佳实践#Hermes#代理#Bot#自动化#操作#核心心法原文

我不会撒谎说你能在10分钟内搞定这件事。这篇文章很长,是一门完整的课程。学完它,你就能运行多智能体工作流了。这不会很快。不过,如果你已经熟悉Hermes,并且知道怎么操作,我会建议你直接跳到目录页,跳过前面的部分。

我确实考虑过把这篇文章拆成大约6篇独立的文章。但那就不算完整课程了,所以我们就这么干了……

目录:

第一阶段:让它跑起来
第二阶段:触达、工具与记忆
第三阶段:你的第一个自动化
第四阶段:在构建前设计工作流
第五阶段:组建机器人团队
第六阶段:子代理、房间与例行程序
第七阶段:让它可靠又省钱
第八阶段:调试与扩展

第一部分:让它跑起来

1. 什么是Hermes?(如果你还不知道的话)

Hermes运行持久化代理,这些代理能使用工具、在会话之间保持记忆、构建可复用的技能、按计划工作,并把结果互相传递——正是这一点,让“触发、研究、决策、行动、保存、等待”这样的循环能在没有你参与的情况下运行。

2. 决定Hermes将住在哪里

你有三个选择,兄弟!

选项1:一台你已有的电脑

一台旧笔记本、一台闲置台式机、柜子里的一台Mac mini。Hermes原生支持macOS、Windows和Linux,所以这条路是免费的,而且确实是最省钱的选择。

问题在于睡眠。如果机器睡眠、合上盖子或断掉Wi-Fi,你的计划任务就会停止触发。所以你需要禁用睡眠,并把网关安装为后台服务,这在第7节会讲到。

选项2:Hermes云

Nous Research替你托管代理。选个名字和模型,部署,它就能全天候运行,不需要你任何一台机器开机。

从这里开始:https://portal.nousresearch.com/r/hoem-crypto,如果你想省15美元的话(顺便说一句,你注册的话我能拿到10美元的API额度,你能省15美元)。

为此,你需要至少$10的积分余额或有效的订阅才能部署。

选项三:VPS(虚拟专用服务器)

数据中心里租用的一台电脑。始终在线,完全归你所有,Hostinger将Hermes Agent作为一键式Docker模板提供。控制力更强,但服务器维护责任也落在你身上。

如何选择

有闲置且能保持开机的机器吗?那就从它开始。零成本,之后随时可以迁移。

没有闲置机器,又想要最少的设置?选Hermes Cloud。

想要完全控制、自己的密钥,以及一切都在你拥有的基础设施上运行?选VPS。

这里没有任何东西会锁定你。你的记忆、技能和配置都是磁盘上的文件。

3. 给Hermes装上大脑

先从你最喜欢的模型开始,之后再尝试为不同任务添加其他模型。记住,保持简单直接。

Hermes是代理,它仍需要一个模型来思考。

最简单的途径是Nous Portal。在新安装的环境下,运行:

hermes setup --portal

一次OAuth流程即可让你登录Nous Portal,连接一个模型,并启用托管的工具网关,该网关一次涵盖网页搜索、浏览器、图像生成和文本转语音功能。

若要自行配置其他提供商,运行:

hermes model

Hermes会引导你浏览可用的提供商和模型。

不要花一个小时去挑选完美的模型。之后你可以用一条命令随时更换。现在,你只需要一个能用的。

4. 在动手做其他事之前,先测试Hermes

这比听起来更重要。

不要急着创建机器人和自动化任务。先确保基础代理能正常工作。

发送:

hello. tell me which model you're currently using.

然后:

explain which tools you currently have access to.

接着,发送一些能触发工具调用的内容:

search the web for the biggest ai news story today and summarise it.

好的,太棒了!你正在确认它是否正常运行,一旦搞定,我们就继续安装...

5. 安装 Hermes Desktop

从 Hermes 官网下载 Hermes Desktop 安装程序并运行。它会同时安装桌面应用和命令行工具。

嗯,我大概应该在这里给你一个链接:https://hermes-agent.nousresearch.com 好了,就这样

Desktop 为对话、机器人、配置文件、技能、记忆、定时任务、消息、工具和多代理工作流提供了合适的界面。

Bot Mode 已内置在 Desktop 中,并且默认开启。你会在左侧边栏的 Sessions 旁边看到一个 Bots 标签页。

如果你运行的是云端或 VPS 实例,请将 Desktop 连接到那个远程 Hermes,而不是启动一个无关的本地代理。否则,你最终会有两个互不知晓的代理。

6. 将 Desktop 连接到你的实例

好的,这又回到了你决定在哪里设置 Hermes 的问题上,所以如果它运行在你正坐着的这台机器上,Desktop 已经找到了它。这里无需操作,直接进入下一步,好吗?

如果它运行在云端或 VPS 上,打开 Desktop,前往 Settings > Connections,然后添加你的 Hermes URL。保存。该代理现在会与任何本地代理一起出现在你的列表中,并且 Desktop 会保持连接畅通。

Cron 由网关守护进程运行,它每 60 秒触发一次,所以请安装它:

hermes gateway install

这会在 macOS 上创建一个 launchd 代理,在 Linux 上创建一个用户服务。在 Linux 上,还要运行:sudo loginctl enable-linger [$USER] 以便在注销后仍然运行。对于应在启动时恢复的无头服务器,请改用 [sudo hermes gateway install --system]。

在你自己的机器上,如果你希望它持续运行,也请阻止它休眠。

最后,我觉得我用 GPT 在这里做得非常聪明,为你做了一个小结,让你在进入第 2 部分之前明确自己应该处于什么状态:

第 2 部分之前的第 1 部分总结:

第二部分:触达、工具与记忆

7. 将 Hermes 连接到 Telegram

现在给你的智能体一个能联系到你的渠道。

Telegram 显然是首选,因为无论桌面应用是否打开,Hermes 都能将定时任务的结果推送到你的手机。而且说实话,Telegram 真是个顶呱呱的通讯应用。我爱它,你也爱它,何乐而不为呢?

创建一个 Telegram 机器人

打开 Telegram,找到:@TelegramBot 发送:/newbot

按照提示操作。保管好你的信息,别把拿到的令牌到处分享,哈哈。

8. 将 Telegram 连接到 Hermes

运行:

hermes gateway setup

选择 Telegram 并按照配置流程操作。同一个向导也支持 Discord、Slack、WhatsApp、Signal、Email 以及其他一系列服务。

默认情况下,网关会拒绝所有不在白名单中或未通过私信配对的用户。别改这个设置,笑死。

有两种授权方式。在 .env 中按用户 ID 设置白名单:

TELEGRAM_ALLOWED_USERS=123456789,987654321

或者使用私信配对。给机器人发消息的未知用户会收到一个一次性代码,你来批准它:

hermes pairing approve telegram XKGH5N7P
hermes pairing list
hermes pairing revoke telegram 123456789

配对代码一小时后过期,并且有速率限制。

顺便提一下,有个设置叫 GATEWAY_ALLOW_ALL_USERS。千万别碰它。

9. 测试 Telegram

给你的 Hermes 机器人发消息:HELLO MOTHERFUCK*R!

它应该会回复,瞧,搞定了!如果失败,请检查机器人令牌、确认网关正在运行、确认你的用户已加入白名单并完成配对,或者重启网关。搞定。

10. 为 Hermes 提供它所需的工具

运行:

hermes tools

或者通过桌面端管理工具。工具决定了 Hermes 能实际做什么,而不只是嘴上说说。

根据工作流程的不同,你可能会启用:

网页搜索 网页提取 浏览器 文件 终端 代码执行 委派 MCP 集成

请注意,工具集是按平台配置的。CLI、Telegram、Discord 和 cron 各自拥有独立的工具集。这是有意为之,并且对后续成本控制很重要。

不要给每个代理都配备所有工具。只需根据其工作需求分配相应工具即可。

11. 让 Hermes 了解你

Hermes 拥有持久记忆,基于两个文件构建:

USER.md 存储关于你的信息:偏好、沟通风格、期望。

MEMORY.md 存储代理对其环境、约定及先前工作的学习成果。

这两个文件均位于 ~/.hermes/memories/ 目录下,并在会话开始时加载到系统提示中。

告诉它类似这样的内容:

我喜欢简洁直接的写作风格。
避免不必要的企业套话。
当项目符号有助于理解时,请使用它们。
记住这些偏好。

然后开启一个新会话,询问一些无关话题,看看这些偏好是否得以保留。这是对持久记忆的首次真正考验。

一个鲜为人知的限制。 这些文件刻意保持小巧。MEMORY.md 上限为 2,200 字符,USER.md 上限为 1,375 字符。这大约分别对应 8 到 15 条和 5 到 10 条记录。记忆不会自动压缩。当写入操作超出限制时,工具会报错,代理必须先整合已有内容,才能保存新信息。

因此,记忆仅用于必须始终处于上下文中的事实,而非文件柜。对于“我们三周前是否讨论过 X”这类问题,Hermes 会自行搜索过往会话,这在你使用前不会产生任何成本。

如果你希望审批保存内容,而非让代理自由写入,可在 config.yaml 中设置 memory.write_approval: true,并通过 /memory pending 进行审查。

(完成上述设置后,你可以通过这篇文章进一步调整记忆功能):

查看原推文

12. 理解 Hermes 的主要文件

你无需深入了解技术细节,只需明白每个文件的用途即可。

SOUL.md 是代理的身份所在。用于定义其个性、行为、沟通风格及默认设置。

USER.md 是您的身份所在。包含偏好、期望、工作风格。

MEMORY.md 是 Hermes 所学到的内容。包含有用的事实、约定、发现及反复出现的经验教训。

AGENTS.md 或项目上下文 是特定项目的工作方式。包含项目说明、文件结构、命令、约定及工作流程规则。

Hermes 将项目上下文与全局记忆和身份分开保存,而这种分离正是关键所在。项目规则不应渗透到代理的身份之中。

13. 为您的代理赋予一个简单的身份

您还不需要一个庞大的系统提示。从基础开始。

# Identity

You are my AI operator.

Your job is to help me complete work, automate repeated work and improve inefficient workflows.

# Communication

Be concise.

Use plain English.

Prioritise action over unnecessary explanation.

Do not invent information.

# Behaviour

When you can safely complete something yourself, complete it instead of only explaining how I could do it.

When you notice repeated work, consider whether it should become a Skill or automation.

逐步改进。不要在使用一周之前就试图设计出完美的 Hermes 个性。您会发现自己对某些令人生厌之处的判断往往是错的。

14. 理解技能

技能是可复用的流程。

记忆是 Hermes 所知道的。技能是 Hermes 知道如何去做某事的方式。

一项技能可能包含:

完成任务的步骤
使用哪些工具
检查哪些来源
忽略哪些内容
如何格式化结果
什么算作成功

技能按需加载,而非驻留在每个提示中,因此庞大的技能库在需要之前不会耗费任何成本。每个已安装的技能也会成为一个斜杠命令。

浏览现有内容:

hermes skills browse
hermes skills search kubernetes
hermes skills install openai/skills/k8s

它将你刚才所做的转化为一项可复用的技能。你也可以将其指向某个目录、文档URL或一堆笔记。

这正是技能存在的全部意义。你不应该每天都重复解释同一套工作流程。

进入第3部分之前,先看第2部分:

第3部分:你的第一个自动化

哦啦啦,让我们开始自动化吧,宝贝。

15. 构建你的第一个定时任务

现在让Hermes无需你手动启动每个任务就能工作,从一个小任务开始。告诉Hermes:

every morning at 8am, complete [TASK] and send me the result.

Hermes内置了cron功能,并能从自然语言中创建周期性任务。它能理解“30分钟后”、“每2小时”、“每周一上午9点”、“工作日早上9点”等表述,也支持标准cron表达式(如 0 9 * * 1-5)以及一次性的ISO时间戳。

16. 测试自动化

请先手动运行一次并检查:

它启动了吗?它使用了正确的工具吗?它理解了任务吗?它产生了正确的输出吗?它将结果送到了正确的位置吗?

17. 让定时提示词自包含

定时任务在完全全新的代理会话中运行。该任务不会记得你创建它时的对话内容。

糟糕的写法:“再检查一下那些网站。”

更好的写法:“检查[网站列表]中是否有[你关心的内容]。

将结果与[标准]进行比较。

将任何有用的内容保存到[位置]。

仅在[条件]时报告。”

18. 为周期性任务提供连续性

一个每六小时检查一次的任务,每次都会发现相同的内容,并每次都向你报告。

连续性解决了这个问题。开启它后,每次运行都会先查看上次运行的结果,从而报告新增内容,而不是重复自己。

创建任务时添加 --continuity

hermes cron create "every 6h" "Scan for new agent-tooling papers. Report only what wasn't in your previous run." --continuity

已经有任务在跑了吗?用 hermes cron edit <job_id> --continuity 开启它。在仪表盘和 Bot Mode 的例行对话框里也有对应的勾选框。

19. 让自动化安静运行

不是每次运行都需要通知你。

如果某个代理每小时检查一次,而什么都没变化,你肯定不想一天收到二十四次“没有变化”的消息。那样的话,你一周内就会把机器人静音,然后错过真正重要的那一条消息。

Hermes 支持一个静默标记。如果最终回复恰好是 [SILENT],投递就会被抑制。输出仍然会保存在本地,供审计使用。

告诉任务:

if nothing meaningful has changed, respond only with [SILENT].

失败的任务无论如何都会投递。只有成功的运行才能被静默,这正是你想要的行为。

20. 为更大的工作流提供持久状态

Continuity 会记住上一次的输出。更大的工作流需要比这更持久的东西。

为工作流创建一个文件夹:

my-workflow/

    processed-items.json
    completed-items.json
    rejected-items.json
    workflow-notes.md

具体文件是什么并不重要,重要的是这个思路。你的工作流需要一个地方来记录它已经发现了什么、处理了什么、拒绝了什么、完成了什么,以及之前发生了什么。

然后告诉 Hermes:

before processing anything, check the workflow state.
do not repeat completed work unless something materially changed.
after completing a stage, update the workflow state.

这就是一个周期性自动化与一个“失忆”的周期性自动化之间的区别。

第 3 部分在第 4 部分之前——这是你需要知道的,兄弟:

第四部分:在构建之前设计工作流程

21. 选择一个要自动化的工作流程

选择你已经重复做的事情。

最佳的首个工作流程应具备清晰的触发点、清晰的步骤序列和清晰的结果。

将其写下来:

触发点 ↓ 步骤1 ↓ 步骤2 ↓ 步骤3 ↓ 结果

暂时不要考虑机器人。先理解流程本身。

22. 定义触发点

问:是什么导致这个工作流程启动?

一个日程安排 一条新信息 一条消息 一个文件 一个新线索 一张新工单 一个变更的网页 一封新邮件 你手动请求的某些内容

这就是你的起点。

23. 定义结果

然后问:当这个流程完成时,应该存在什么?

一份报告 一份研究记录 一个决策 一份草稿 一个更新的数据库 一条消息 一个警报 一个已完成的任务

如果你无法用一句话描述最终输出,那么这个工作流程就没有被定义得足够清晰,无法自动化。在编写提示词之前先解决这个问题。

24. 将工作流程分解为阶段

写下重要的阶段:

查找 ↓ 研究 ↓ 评估 ↓ 准备 ↓ 记录

你的流程可能只有三个阶段。或者五个。或者十个。

不要因为你能创建代理就去创建。阶段应该对应责任上的真实差异,而不是你的热情。

25. 首先用一个 Hermes 代理来构建它

这是人们跳过的一步,而跳过这一步正是他们的多代理系统无法工作的原因。

在将任何阶段转化为机器人之前,先让一个 Hermes 代理手动完成整个工作流程。

给它目标、阶段、工具、规则、最终输出和状态位置。

运行一次。寻找:

缺失的步骤 错误的假设 不必要的工作 不正确的输出 重复的工作

先修复流程。

多代理架构不会拯救一个设计糟糕的工作流程。它只会把糟糕之处分散到四个代理身上,使其更难被发现。

在进入第五部分之前,你需要从第四部分了解的内容,明白!!

第五部分:组建机器人团队

26. 将重复性角色转化为机器人

工作流运行顺畅后,打开 Hermes Desktop 并选择 Bots。

机器人模式将 Hermes 配置文件转化为一组持久化的命名机器人。每个机器人都有自己独立的角色、模型、记忆、技能、凭据、聊天历史和例行程序。

这里没有需要学习的新概念。机器人就是一个配置文件,存储在 ~/.hermes/profiles/<name>/ 目录下。机器人模式只是其上的一个界面。终端中同样可以看到一切:hermes -p <bot> chat 会打开同一个代理,机器人的例行程序也会显示在 hermes cron list 中。

机器人模式随 Desktop 一起提供,默认开启。你可以在“设置 → 插件 → 机器人”中将其关闭,而不会影响任何数据。

现在审视你的工作流各阶段,问问自己:其中哪些环节值得配备一个长期专职的专家?

27. 创建你的第一个专家机器人

在列表中点击 新建代理。只需三个字段,机器人即告创建:名称、标题、描述。

高级面板才是真正配置的核心所在:

模型固定,让该机器人独立运行在自己的模型上,不受其他因素影响 自定义 SOUL.md,用于设定其人格和长期指令 按技能、按工具集、按 MCP 单独启用,让你精确勾选该角色所需的能力 从现有配置文件克隆,或从零开始

对应的 CLI 操作:

hermes profile create
hermes profile list

为每个机器人提供明确说明,准确指出它应该做什么、不应该做什么,并将工具限制在角色所需的范围内。

28. 让每个机器人只承担一项职责

这是本指南中最重要的一条规则。

不要创建一个承担二十项职责的通用业务机器人。你将无法改进它,因为你永远不知道是哪条指令导致了哪次失败。

创建专家型机器人。你的指令应该更像这样:

You are [ROLE].

Your only responsibility is [RESPONSIBILITY].

You receive:
[INPUT]

You must:
[STEPS]

Return:
[OUTPUT]

Do not:
[BOUNDARIES]

When finished:
[NEXT ACTION]

角色越聚焦,调试越容易,改进也越容易。

29. 对重要阶段重复此过程

将重复出现的专业阶段转化为 Bots。你的架构最终可能呈现为:

BOT 1 ↓ BOT 2 ↓ BOT 3 ↓ BOT 4

但不要强行套用。有时两个 Bots 就足够,有时六个才合理。

目标不是创建尽可能多的智能体,而是为持续存在的专业人员赋予清晰职责。

30. 让 Bots 互相发送消息

这一步让你从自己的工作流中抽身而出。

每个标准 Bot Chat 都携带一个 message_agent 工具。Bot 通过直接调用它来向队友发送消息。该工具会根据实时名单验证目标,自动添加发送者的归属信息,并将消息投递到队友的 Bot Chat 中。Bots 也可以通过 @name 互相拉取。

每个 Bot Chat 的系统提示中包含从各配置文件提取的队友名单及角色,因此 Bots 在选择接收者之前就知道谁负责什么。

所以,不再是:

Bot 1 完成 ↓ 你复制结果 ↓ 你粘贴到 Bot 2

而是:

Bot 1 完成 ↓ 发送消息给 Bot 2 ↓ Bot 2 工作 ↓ 发送消息给 Bot 3 ↓ Bot 3 工作

有两个约束会影响你的设计方式。

投递即发即忘。 发送者收到确认后结束自己的回合,回复稍后作为后台通知到达。接收 Bot 在下次运行时拾取消息。这不是同步函数调用,你也不应将其设计成那样。

message_agent 仅存在于 Bot 模式安装的标准 Bot Chat 会话中。 常规聊天、群组成员会话和 CLI 会话中永远不会出现它。

你的工作变成了监督系统,而不是在智能体之间传递信息。

31. 将交接写入指令中

不要指望 Bot 猜测下一步该做什么。直接告诉它。

When your work is complete:

send the result to @[NEXT-BOT].

Do not wait for me to manually copy the information.

然后告诉接收的Bot:

When you receive work from @[PREVIOUS-BOT]:

perform your assigned stage.

when finished:

send the result to @[NEXT-BOT].

现在工作流知道如何自行推进了。

32. 规范交接

你不希望一个Bot回复“看起来不错”,而另一个却返回三页内容。

定义一个结构:

{
  "id": "",
  "status": "",
  "summary": "",
  "evidence": [],
  "confidence": 0,
  "recommended_next_action": ""
}

你不必自己设计这个

问问Hermes。它写出的模式比大多数人更好,但前提是你给它看交接的真实两端,而不是描述它们:

Bot A is my [ROLE]. Bot B is my [ROLE].

Here is what Bot A actually produced on its last run:
[PASTE A REAL OUTPUT]

Here is what Bot B is supposed to do with it:
[PASTE BOT B'S INSTRUCTIONS]

Design the smallest JSON structure that carries everything Bot B needs and nothing it does not.

Return three things: the schema, one filled-in example, and the exact wording to paste into each Bot's instructions.

粘贴真实输出,而不是摘要。如果你抽象地描述交接,就会得到一个包含九个你永远不会填写的字段的通用模式。

然后删掉任何两个Bot实际上都不读取的字段。模型会因为看起来全面而添加字段。

有一个注意事项。运行时不会验证这个形状,所以Bot B仍然需要一条规则来处理消息格式错误时该怎么办。第42节将涵盖这一点。

在进入第6部分之前,你需要从第5部分了解以下内容:

第六部分:子代理、房间与例行程序

33. 理解 Bot 与子代理的区别

这是两种不同的东西,混淆它们会让你付出代价。

Bot 是永久雇员。 它们拥有固定的角色、自己的记忆、自己的技能、自己的例行程序。它们明天依然存在。

子代理是临时工。 为特定任务而创建,独立工作,返回结果,随即消失。

Hermes 的委派机制会生成子代理,这些子代理拥有完全隔离、全新的上下文以及各自的终端会话。只有子代理的最终摘要会进入父代理的上下文,这正是关键所在:一项庞大而杂乱的任务不会淹没父对话。

这样你就拥有了永久性的专家,再加上临时性的并行工作者。

34. 使用子代理进行并行工作

当一个 Bot 面临由多个独立部分构成的大型任务时,它可以一次性将这些部分委派出去。

Hermes 默认最多同时运行三个子代理。该限制可通过 delegation.max_concurrent_children 配置,下限为 1,没有硬性上限。超出限制的批量任务会返回错误,而不是被静默截断。

委派默认是扁平化的。父代理生成子代理,而这些子代理不能再向下委派。你可以提高 max_spawn_depth 来允许嵌套编排,但请先阅读成本警告:深度为 3、并发为 3 时,意味着 27 个并发的叶子代理。

35. 为子代理提供完整上下文

子代理一无所知。它们从完全空白的对话开始,对父代理的历史、之前的工具调用或委派前讨论过的任何内容都毫不知情。它们唯一的上下文就是父代理放入 goalcontext 字段中的内容。

糟糕的示例:“研究一下这个。”

更好的示例:

Goal:

[EXACT TASK]

Context:

[EVERYTHING REQUIRED TO UNDERSTAND THE TASK]

Focus on:

[IMPORTANT AREAS]

Return:

[EXPECTED OUTPUT]

子代理应能在完全不看到父对话的情况下完成其工作。若无法做到,则说明任务简报不完整。

一个值得注意的例外:当父级拥有已解析的工作区目录时,该工作区的项目上下文文件会嵌入到每个子代理的系统提示中。在仓库中工作的子代理会自动继承该仓库的约定。

36. 要求结构化的子代理输出

当下一阶段高度依赖某个结果时,应使该结果可预测。

不要这样写:“调查一下这个,然后告诉我你的想法。”

而应这样明确指定:

Return your findings as JSON matching exactly this structure:

{
  "findings": [],
  "risks": [],
  "unknowns": [],
  "confidence": 0
}

37. 创建共享的 Bot 房间

Bot 模式支持群组房间。右键点击某个 Bot,选择 管理群组 将其添加到房间中。

房间可容纳 2 至 6 个 Bot,具有持久的房间上下文和 @提及功能。每个成员保留自己的 Group: <name> 会话,因此房间上下文能像其他对话一样持久保存。房间会在你的 Desktop 连接到的每个网关间同步,因此它们会带着历史记录出现在另一台机器上。

使用房间来监督团队、同时征求多位专家的意见、协调复杂工作,或处理需要多个角色参与的异常情况。

一轮对话的运作方式:你的消息最多触发三轮串行成员发言。被提及的 Bot 会回应,当无人被提及时,所有成员都会回应。每个 Bot 简要回复或选择跳过,当一整轮无人发言时,房间便归于平静。每次发送最多 10 条消息、最多 3 轮对话的硬性上限可防止房间失控。Bot 会将需要真正判断的问题通过 @user 升级给你,这会标记房间需要你的介入。

并非每个 Bot 都会回复每条消息。是否发言是每个成员自己的选择。

房间用于协作和决策。对于线性的自动化工作流,Bot 之间的直接交接更易于理解和调试。

38. 为启动工作流的 Bot 添加一个例程

一旦手动 Bot 工作流运行顺畅,就将其起点自动化。

Bot 拥有例程(Routine)。例程是附加在负责它的 Bot 上的一个普通 Hermes 定时任务,命名空间为 [bot:<name>],它会像其他任务一样出现在 hermes cron list 中。运行记录会落入该 Bot 自己的聊天历史中,这正是你查找它们的地方。

打开应启动工作流的 Bot,创建一个例程,并定义:

名称 工作流是什么 计划 何时运行 任务 Bot 应做什么

例如:

Run [WORKFLOW].

Check the workflow state first.

Only process genuinely new work.

Send qualifying work to @[NEXT-BOT].

Update the workflow state afterwards.

If nothing requires action, return [SILENT].

好了,我们已经完成了第 6 部分,在进入第 7 部分之前,你需要了解以下内容:

第 7 部分:使其可靠且经济

39. 在计划前测试整个工作流

手动运行一次完整的工作流,并观察每个阶段。

触发 ↓ Bot 1 ↓ Bot 2 ↓ Bot 3 ↓ 最终结果

Bot 1: 输入正确吗?输出正确吗?交接正确吗?

Bot 2: 收到了所需的一切吗?只完成了自己的任务吗?交接正确吗?

Bot 3: 理解了前一个结果吗?产生了预期的最终输出吗?

工作流状态: 更新正确吗?避免了重复吗?状态准确吗?

修复任何失败之处,然后再次运行完整测试。只有当整个链条连续两次运行成功,才进行计划。

40. 添加工作流状态

当每个项目都带有状态时,较大的系统会变得更容易理解。

NEW

PROCESSING

RESEARCHED

APPROVED

REJECTED

DRAFTED

COMPLETED

NEEDS_REVIEW

你的阶段会有所不同。关键在于 Hermes 能够通过查看字段来回答“此项目在工作流中的哪个位置?”,而不是从旧消息中重建历史。

41. 添加置信度与验证

对于出错代价高昂的工作流,应包括:

{
  "confidence": 0.82,
  "verification_status": "verified"
}

然后针对它编写规则:

If confidence is below 0.75:

send for human review.

If important information cannot be verified:

do not invent it.

return NEEDS_REVIEW instead.

42. 设计故障状态

告诉每个 Bot 当出现问题时会发生什么。

If required information cannot be found:

do not guess.

set status to NEEDS_REVIEW.

explain what is missing.

或者:

If the input does not meet the minimum criteria:

set status to REJECTED.

record the reason.

do not pass it to the next Bot.

良好的工作流程不会假设一切都会成功。

43. 防止重复操作

自动化工作流会重启。定时任务会重复运行。工具会在中途失败。

构建如下规则:

Before creating a new record:

check whether it already exists.

Before performing an external action:

check whether that action has already been completed.

Never repeat an irreversible action solely because the workflow restarted.

一旦 Hermes 开始在其自身工作区之外执行操作,这一点就变得极为重要。重复的研究过程令人恼火。重复的付款则后果严重。

44. 从人工审批开始

不要让你的第一个工作流自行对世界采取行动。

让 Hermes 处理安全的那一半:

研究 分析 排序 资格审核 监控 起草 保存信息 准备操作

在它执行任何无法撤回的操作之前,让它先征求你的意见:

发送消息 公开发布内容 花钱 进行购买 删除重要信息 更改生产系统 任何其他不可逆操作

一旦工作流经过验证,就可以在枯燥重复的步骤上取消审批,而在其余步骤上保留审批。

45. 使用 MCP 连接外部软件

迟早你会希望 Hermes 在非 Hermes 自身的工具中工作。比如你的 CRM、你的笔记应用、你的问题跟踪器。

MCP是连接它们的标准。Hermes支持它,而你可以选择允许它访问服务器的哪些工具。

这就是从“找到某物并告诉我”到“找到某物并更新系统”的跨越。

只连接工作流所需的内容。你添加的每台服务器都会在每次调用时被描述给模型,因此一个未使用的连接会在每次运行时耗费你的资源。

46. 必要时使用浏览器自动化

有些服务没有API,也没有MCP集成。这时浏览器自动化就派上了用场。Hermes可以驱动真实浏览器,而不仅仅是读取搜索结果,并且它与工具网关一同提供,涵盖网络搜索、提取、视觉、图像生成和语音功能。

将其视为最后手段。网站可能一夜之间重新设计,你的自动化会悄然失效。而API通常不会这样。

47. 为不同任务选择不同模型

并非每项任务都需要昂贵的模型。

简单监控 → 便宜快速的模型

深度研究 → 更强的模型

复杂推理 → 更强的推理模型

重要写作 → 强大的写作模型

你可以在三个地方进行设置。

按任务。 在定时任务上固定一个模型,或设置cron.model,使计划任务默认使用一个模型,而不是跟随你在聊天中最后选择的模型。任务也可以固定其推理强度:分析时用高,监控时用最低。

按Bot。 每个Bot在其自己的模型上运行。一个便宜的Bot和一个昂贵的Bot可以并排存在。

针对子代理。delegation.model设置为便宜的模型,而你的主会话保持在强大的模型上。这是你可用的最大节省。弄清楚如何拆分任务很难。但当某个子任务带着明确目标和完整上下文到来时,完成其中一部分通常不难。而你的大部分使用量都花在这些子任务上。

48. 控制你的成本

工作流无论你是否在思考它都会运行,这正是它比聊天机器人成本更高的原因。

一个例程 ↓ 每天运行12次 ↓ 每次运行使用三个机器人 ↓ 一个机器人生成三个子代理

在你输入任何内容之前,这已经是大量的模型调用。

设计上更省钱:

尽早过滤,在深入工作前拒绝不良输入 研究前检查重复项 对简单任务使用廉价模型,尤其是子代理 仅在真正需要并行时生成子代理 使用 [SILENT] 让安静运行不产生阅读成本 降低任务运行频率,别追求满足感 用 enabled_toolsets 精简每个任务的工具,因为一个微小的“获取新闻”任务携带浏览器和委派功能,会在每次调用时为其买单

其中两项背后有合适的开关。

如果任务完全不需要思考,no_agent 模式会在你的计划上运行一个普通脚本并发送输出,不涉及模型。没有可报告的内容就不发送,成本为零。

如果任务只是偶尔需要思考,给它一个预检脚本,当没有变化时返回 {"wakeAgent": false}。Hermes 会完全跳过运行。一个五分钟的检查,仅在真正有变动时唤醒模型,与每天唤醒288次却什么也不说的账单截然不同。

良好的工作流设计就是成本控制。

第7部分小结,在第8部分之前:

第八部分:调试与扩展

49. 如何调试 Hermes

当出现问题,不要重建整个系统。按顺序逐步排查。

1. 测试标准 Hermes。 发送 hello。如果失败,问题出在提供商或模型上。

2. 测试所需工具。 要求 Hermes 手动使用特定工具。如果失败,修复工具。

3. 测试网关。 检查它是否实际在运行。hermes gateway status。

4. 测试 Telegram。 给机器人发消息。

5. 检查 cron 任务。

hermes cron list
hermes cron runs <job-id>
hermes cron doctor
hermes cron incidents

runs 提供尝试记录。doctor 能捕获静默未触发的任务。incidents 展示持久性失败记录,而 incidents ack <id> 可停止已知失败在每次运行时打扰你,同时不会从历史中隐藏它。

6. 测试第一个 Bot。 仅运行第一阶段。

7. 测试交接。 确认 Bot 1 能向 Bot 2 发送消息。记住投递是即发即弃的,目标会在下次运行时拾取,所以先给它一点时间再判定失败。

8. 用已知良好的输入测试 Bot 2。

按工作流一次推进一个阶段。

9. 检查工作流状态。 查找重复记录、错误状态、缺失数据、格式错误的结构化输出。

10. 检查子代理指令。 委派的子代理从全新上下文开始。当它们做错事时,常见原因是简报不完整,而非模型愚蠢。每次委派都会在 cache/delegation/live/ 下为每个任务写入实时追加式记录,因此你可以准确读取子代理做了什么以及何时做的。

像调试管道一样调试工作流。找到出问题的阶段,修复该阶段。

50. 构建任何 Hermes 工作流的公式

一旦掌握了以上所有内容,构建工作流就变得机械化了。

第一步 选择一件你反复做的事情
第二步 定义触发条件
第三步 定义完成结果
第四步 将流程分解为阶段
第五步 先用一个 Hermes 智能体构建整个流程
第六步 为重复性专业角色创建永久机器人
第七步 赋予每个机器人一项明确职责
第八步 定义机器人之间传递的信息
第九步 通过直接交接将它们连接起来
第十步 使用临时子代理处理并行工作
第十一步 存储已完成的事项
第十二步 添加状态、置信度与失败状态
第十三步 测试一次完整的手动运行
第十四步 创建例程
第十五步 在有用之处启用连续性
第十六步 必要时连接外部工具
第十七步 逐步自动化安全操作

这就是流程。它不会因工作流的复杂程度而改变。

51. 学习 Hermes 的最佳方式

不要试图在第一天就构建一个拥有十个智能体的公司。

要分层构建,并且在下层运行正常之前不要向上推进:

第一层:它能响应。 Hermes 运行中,模型已连接,工具正常工作。

第二层:它能联系到你。 Telegram 已连接并锁定。

第三层:它了解你。 偏好已保存,第一个技能已安装或学习。

第四层:它能自行唤醒。 一个定时任务,已手动测试,并具备连续性。

第五层:它对自己完成的工作有记忆。 一个具有持久状态的手动工作流。

第六层:它有了员工。 两个专业机器人,通过交接连接,然后在第一个机器人上创建例程。

按此顺序推进的原因并非纪律,而是诊断。当第六层出现问题时,你已经知道第一至五层是正常的,因此只需检查两个地方。

52. 你的最终系统是什么样子

我们今天确实大展身手。那么,你能构建出什么呢?

53. 你可以构建的东西

一旦你理解了结构,它几乎适用于你重复的任何事情。按类别整理,以便你更快找到自己的用例。

营收与销售管道 买家意向智能体、潜在客户生成智能体、销售线索挖掘智能体、个性化外联智能体、跟进智能体、合作伙伴寻找智能体、赞助商寻找智能体、联盟机会发现智能体、创作者发现智能体。

招聘 招聘智能体、候选人搜寻智能体、职位机会发现智能体。

客户与支持 客户支持智能体、支持分类智能体、产品反馈智能体、评论监控智能体、社交倾听智能体、客户投诉挖掘智能体、客户研究智能体。

市场与竞争研究 竞争对手监控智能体、竞争对手发布追踪智能体、市场趋势追踪智能体、行业新闻智能体、研究助手、产品创意发现智能体、创业机会发现智能体、Reddit痛点挖掘智能体、X(推特)痛点挖掘智能体。

资金与市场 投资研究智能体、投资组合监控智能体、加密货币研究智能体、代币监控智能体、预测市场研究智能体。

内容 内容研究智能体、趋势发现智能体、爆款帖子研究智能体、通讯稿研究智能体、通讯稿写作智能体、内容再利用智能体、社交媒体智能体、SEO研究智能体、关键词机会发现智能体、YouTube研究智能体、播客研究智能体。

你的日常 每日简报智能体、个性化晨间简报、邮件分类智能体、收件箱清理智能体、日历助手、会议准备智能体、会议跟进智能体、任务管理智能体。

工程 项目监控智能体、GitHub问题智能体、软件测试智能体、缺陷研究智能体、文档智能体。

网络监控 网站监控智能体、价格监控智能体、产品库存智能体、优惠发现智能体、旅行研究智能体、行程规划智能体、房产寻找智能体、房产监控智能体。

管理与知识 行政助理、簿记准备代理、文档整理代理、定期报告代理、数据收集代理、仪表板更新代理、个人知识代理、研究归档代理。

有用的问题不是“Hermes 能做什么?”

而是“我反复花时间做什么,而一个持久的 AI 工作者可以接手?”

从这里开始。

第 8 部分总结:

最后……

如果你把 Hermes 当作聊天机器人来用——你只会得到一个聊天机器人,而且你会错失太多太多的潜力。

你手里的是为工作者打造的基础设施,它们在你合上笔记本电脑后仍会继续运转。机器人是永久性的专家。子代理是临时帮手。技能教会它们流程,记忆让它们了解你,cron 告诉它们何时工作,连续性告诉它们上次发生了什么,工作流状态告诉它们哪些已完成,而审批则决定哪里仍需真人介入。

无论你上周手工做了三次什么,下周你还会再手工做一遍。再下周也一样。直到你构建出能接管它的东西,否则这种成本永远不会出现在账单上,永远不会触发警报,也永远不会停止。它只是悄无声息地永远运行下去,用你的夜晚来支付。

别读完这篇文章只想着“嗯,挺有用”——请务必一步步去实践,今天先做前十步,明天再做接下来的十步,以此类推。你能行的……

哦! 关闭前先收藏它。当你的定时任务第一次无声无息地毫无作为时,你会需要第 6 节;当机器人第一次给你一堆狗屎时,你会需要第 49 节——而这两件事每个人在第一周都会遇到。

已读完 · 本文由熊猫易读翻译重排