词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
| 系统 | 注册方式 | 运行环境 | 使用场景 |
|---|---|---|---|
| Gateway hooks | ~/.hermes/hooks/ 下的 HOOK.yaml + handler.py | 仅 Gateway | 日志、告警、webhook |
| Plugin hooks | 插件中的 ctx.register_hook() | CLI + Gateway | 工具拦截、指标采集、护栏 |
| Shell hooks | ~/.hermes/config.yaml 中 hooks: 块指向的 shell 脚本 | CLI + Gateway | 用于阻断、自动格式化、上下文注入的即插即用脚本 |
~/.hermes/hooks/ 下的一个目录,包含两个文件:~/.hermes/hooks/
└── my-hook/
├── HOOK.yaml # 声明要监听的事件
└── handler.py # Python 处理函数events 列表决定哪些事件会触发你的处理器。可以订阅任意事件组合,包括 command:* 这样的通配符。handleevent_type(字符串)和 context(字典)async def 或普通 def——两者均可| 事件 | 触发时机 | Context 键 |
|---|---|---|
gateway:startup | Gateway 进程启动 | platforms(活跃平台名称列表) |
session:start | 新消息会话创建 | platform、user_id、session_id、session_key |
session:end | 会话结束(重置前) | platform、user_id、session_key |
session:reset | 用户执行 /new 或 /reset | platform、user_id、session_key |
agent:start | Agent 开始处理消息 | platform、user_id、session_id、message |
agent:step | 工具调用循环的每次迭代 | platform、user_id、session_id、iteration、tool_names |
agent:end | Agent 完成处理 | platform、user_id、session_id、message、response |
command:* | 任意斜杠命令执行 | platform、user_id、command、args |
command:* 的处理器会在任何 command: 事件(command:model、command:reset 等)触发时执行。通过单个订阅即可监控所有斜杠命令。~/.hermes/BOOT.md 放置一个 Markdown 检查清单,让 agent 在每次 gateway 启动时执行一次。适用于"每次启动时检查隔夜 cron 失败情况,若有失败则在 Discord 上通知我",或"汇总过去 24 小时的 deploy.log 并发布到 Slack #ops"等场景。~/.hermes/BOOT.md 放置一个包含自然语言启动指令的文件。gateway:startup 的 gateway hook,它会生成一个一次性 agent,使用 gateway 已解析的模型和凭据,执行 BOOT.md 中的指令。[SILENT] 约定,让 agent 在没有内容需要汇报时选择不发送消息。~/.hermes/BOOT.md。像给人类助手下达指令一样编写:~/.hermes/hooks/boot-md/
├── HOOK.yaml
└── handler.py~/.hermes/hooks/boot-md/HOOK.yaml~/.hermes/hooks/boot-md/handler.py_resolve_gateway_model() 读取 gateway 当前配置的模型。_resolve_runtime_agent_kwargs() 以与普通 gateway 轮次相同的方式解析 provider 凭据——包括 API 密钥、base URL、OAuth token 和凭据池。AIAgent() 会回退到内置默认值,并在任何非默认端点上返回 401。Running BOOT.md (N chars),随后是 boot-md completed: ...(agent 执行内容的摘要)或 boot-md completed (nothing to report)(agent 回复了 [SILENT])。~/.hermes/BOOT.md 即可禁用检查清单——hook 保持加载状态,但在文件不存在时会静默跳过。datetime.now().weekday() 进行判断("如果是周一,还需检查每周部署日志")。指令是自由格式文本,agent 能推理的内容都可以使用。STARTUP.md、MORNING.md 等),并为每个文件注册独立的 hook 目录。AIAgent,直接通过 httpx 在处理器中发送固定通知。更轻量、更快速,且无 provider 依赖。