第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.md、MORNING.md等多个文件,每个配一个钩子 - 不需要 Agent 的场景:如果你只是想发个固定通知,直接用
httpx发请求就行,更快更省
为什么这不算内置功能?
早期版本把批处理做成了内置钩子,结果每次启动都悄悄启动一个 Agent,用默认配置去连接,导致用户自定义的端点全部报错。现在改成文档化的模式,你自己写钩子、自己决定用不用,一切透明可控。
总结一下: 批处理 = 启动清单(BOOT.md)+ 钩子(Hook)。它让 Agent 在启动时自动执行一组任务,省去你重复操作的时间。核心要点是记得解析网关配置,否则会认证失败。
下一篇预告: 第27篇将介绍插件系统——如何把常用的钩子打包成可复用的插件,在 CLI 和网关中都生效。
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/batch-processing