🤖HermesBlog
Hermes 官方教程 · 第26篇2026/8/9· Easy Understand Hermes Agent

第26篇:批处理——一次处理一大堆任务

Hermes Agent 官方教程第26篇:一次处理一大堆任务

第26篇:批处理——一次处理一大堆任务

你有没有过这种经历:早上打开电脑,先要检查邮件、看日历、扫一眼待办清单,然后才开始干活。如果这些事能自动帮你做完,该多好?Hermes 的批处理功能就是干这个的——它让 Agent 在启动时自动执行一组预设任务,就像你的私人助理在上班前先把桌子收拾好。


第1步:写一个启动清单文件

批处理的核心是一个叫 BOOT.md 的文件,放在 ~/.hermes/ 目录下。里面写的是你想让 Agent 每次启动时自动做的事,格式就是普通的 Markdown 文本,Agent 会读懂并执行。

# 创建启动清单
echo "检查今天的日历安排,如果有会议,整理出会议要点" > ~/.hermes/BOOT.md

第2步:写一个钩子(Hook)来触发它

光有清单还不够,你还需要一个“开关”来告诉 Hermes 什么时候去读这个文件。这个开关就是一个钩子,放在 ~/.hermes/hooks/boot-md/ 目录下,包含两个文件:

HOOK.yaml —— 声明这个钩子监听什么事件:

hook_type: gateway_startup

handler.py —— 定义具体做什么:

def handler(**kwargs):
    # 读取 BOOT.md 文件
    # 如果文件存在,就启动一个 Agent 去执行里面的指令
    # 如果文件不存在,就安静地跳过

这里有两个关键点需要注意:

  • _resolve_gateway_model() —— 获取网关当前配置的模型,而不是用默认的
  • _resolve_runtime_agent_kwargs() —— 解析你配置的 API 密钥、端点地址等凭证

如果不做这两步,Agent 会用自己的默认配置去连接,结果就是 401 认证失败。

第3步:重启并测试

# 重启网关
hermes gateway restart

# 查看日志,确认钩子是否正常工作
hermes logs --follow --level INFO | grep boot-md

日志里会出现 Running BOOT.md (N chars),然后要么是 boot-md completed: ...(Agent 做了事),要么是 boot-md completed (nothing to report)(Agent 用 [SILENT] 表示无事可做)。

想禁用这个功能?删掉 ~/.hermes/BOOT.md 文件就行,钩子会安静地跳过。

扩展玩法

  • 按星期区分任务:在 BOOT.md 里写“如果是周一,顺便检查部署日志”,Agent 会根据日期自行判断
  • 多个清单:创建 STARTUP.mdMORNING.md 等多个文件,每个配一个钩子
  • 不需要 Agent 的场景:如果你只是想发个固定通知,直接用 httpx 发请求就行,更快更省

为什么这不算内置功能?

早期版本把批处理做成了内置钩子,结果每次启动都悄悄启动一个 Agent,用默认配置去连接,导致用户自定义的端点全部报错。现在改成文档化的模式,你自己写钩子、自己决定用不用,一切透明可控。


总结一下: 批处理 = 启动清单(BOOT.md)+ 钩子(Hook)。它让 Agent 在启动时自动执行一组任务,省去你重复操作的时间。核心要点是记得解析网关配置,否则会认证失败。

下一篇预告: 第27篇将介绍插件系统——如何把常用的钩子打包成可复用的插件,在 CLI 和网关中都生效。

📖 官方文档

本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/batch-processing