上一篇发了8个必改配置,反响不错。结尾提到4个进阶功能,很多人追着问。这次翻完源码,一个个给你讲透——配置拿来就能用,不是画饼。
先说结论
上次那8个是"装完就改"的基础配置。这次4个是真正拉开差距的进阶玩法:
| 配置 | 一句话 | 难度 | 最低版本 |
|---|---|---|---|
| Shell Hooks | AI每次执行命令前,先跑你的检查脚本 | ⭐⭐ | v2026.4.23 |
| Quick Commands | 输入 /status 直接跑系统命令,不经过AI,不花Token | ⭐ | v2026.3.12 |
| 模型别名 | 输入 /model opus 一键切模型,不用改配置文件 | ⭐ | v2026.3.23 |
| 凭据池轮换 | 多个API Key自动轮换,被限流也不怕 | ⭐⭐⭐ | v2026.4.3 |
⚠️ 版本要求:这4个功能都是近几个月新增的,老版本不支持。查看你的版本:
hermes --version。如果低于上表中的最低版本,先hermes update升级。当前最新版是 v0.13.0 (v2026.5.7)。
一个一个说。
1. Shell Hooks:用Shell脚本拦截AI的操作
类比:你在公司,AI是你的助理。默认情况下它想干嘛干嘛——删文件、跑命令、改配置,你管不了。Shell Hooks就是给助理装了个"门禁":每次它要执行操作,先过你的检查脚本。不合格的直接拦下来。
实际用途:
- AI要执行
rm -rf?拦住 - AI刚写了Python文件?自动跑black格式化
- 每次AI开始思考前,自动注入当前git状态
配置方法
在 ~/.hermes/config.yaml 中:
| |
实战示例:拦截危险命令
创建目录和脚本:
| |
脚本1:拦截危险命令(保存为 ~/.hermes/agent-hooks/block-dangerous.sh)
| |
脚本2:自动格式化(保存为 ~/.hermes/agent-hooks/auto-format.sh)
| |
脚本3:注入git状态(保存为 ~/.hermes/agent-hooks/inject-git-status.sh)
| |
别忘了加执行权限:
| |
工作原理
脚本通过JSON管道跟Hermes通信:Hermes把工具调用的详细信息(工具名、参数、会话ID等)通过stdin传给你的脚本,你的脚本通过stdout返回JSON结果。
stdin 示例(脚本收到的数据):
| |
stdout 返回(脚本要输出的数据):
| |
返回空 {} 就是不拦截,放行。
支持的所有钩子事件
| 事件 | 触发时机 | 能做什么 |
|---|---|---|
pre_tool_call | AI执行工具前 | 拦截危险操作 |
post_tool_call | AI执行工具后 | 自动格式化、记录日志 |
pre_llm_call | AI开始思考前 | 注入额外上下文(如git状态) |
post_llm_call | AI思考完成后 | 日志记录 |
subagent_stop | 子代理完成时 | 记录多代理协调日志 |
on_session_start | 会话开始 | 初始化操作 |
on_session_end | 会话结束 | 清理操作 |
on_session_reset | 会话重置 | 状态清理 |
transform_terminal_output | 终端输出时 | 过滤/压缩输出内容 |
transform_tool_result | 工具返回结果时 | 过滤敏感信息 |
首次运行提示
第一次用Shell Hooks时,Hermes会弹窗问你是否信任这个脚本。同意后会记住(存在 ~/.hermes/shell-hooks-allowlist.json),以后不再问。
如果你是在Gateway(微信/Telegram等)或Cron定时任务中使用,没交互界面,需要在配置中加:
| |
或者启动时加 --accept-hooks 参数。
检查和维护
| |
2. Quick Commands:零Token快捷命令
类比:你跟AI说"帮我查下GPU状态",AI要理解你的意思、调用工具、返回结果——走完整流程,花Token。Quick Commands就是给你设了个快捷键:输入 /gpu 直接执行命令,不经过AI,Token消耗为零。
实际用途:
/gpu→ 直接看GPU状态/ip→ 直接查IP/dn→ 看今天的笔记/status→ 一键查系统状态
配置方法
在 ~/.hermes/config.yaml 中:
| |
两种模式
| type | 行为 | 示例 |
|---|---|---|
exec | 直接执行shell命令,输出结果 | /gpu → 跑nvidia-smi |
alias | 重写到另一个斜杠命令 | /sc → 等同于 /model sonnet --provider openrouter |
alias模式示例:
| |
注意事项
- exec模式不支持参数模板(比如
{args}),就是固定命令 - alias模式会自动传递用户输入的额外参数
- 命令超时30秒自动终止
- 执行优先级:内置命令 > Quick Commands > Skill命令
- Gateway(微信/Telegram等)也能用,直接输入
/gpu即可
3. 模型别名:一句话切模型
类比:你有一堆门钥匙(不同AI模型),每次开锁都要翻半天找。模型别名就是给每把钥匙贴了标签——喊"opus"就知道用哪把。
实际用途:
/model opus→ 切到Claude Opus处理复杂代码/model sonnet→ 切到Claude Sonnet做日常对话/model ds→ 切到DeepSeek省钱/model glm→ 切到国产GLM模型
配置方法
方式一:完整格式(在 ~/.hermes/config.yaml 中)
| |
方式二:简写格式(provider/model格式)
| |
使用方法
在聊天中直接输入:
| |
内置别名(不用配就能用)
Hermes自带了一批模型目录别名,输入关键词就能匹配到该厂商最新版本:
| 别名 | 对应模型家族 |
|---|---|
| sonnet | Claude Sonnet系列 |
| opus | Claude Opus系列 |
| haiku | Claude Haiku系列 |
| gpt5 | GPT-5系列 |
| o3 / o4 | OpenAI推理模型 |
| gemini | Google Gemini系列 |
| deepseek | DeepSeek系列 |
| glm | 智谱GLM系列 |
| qwen | 通义千问系列 |
| kimi | Kimi(月之暗面) |
这些是模糊匹配——输入"sonnet"会自动找到Anthropic最新的Sonnet版本。你自己的别名(model_aliases)优先级更高,会覆盖内置的。
切换逻辑
当你输入 /model opus 时:
- 先查你的
model_aliases配置(精确匹配) - 再查
model.aliases配置(简写格式) - 最后查内置目录别名(模糊匹配,自动找最新版本)
4. 凭据池轮换:多个API Key自动切换
类比:你一个人去自助餐厅,只有一个盘子,每次拿菜都要排队。凭据池就是给你发了多个盘子——一个被限流了(排队的厨师说"你等会儿"),自动换下一个。不耽误吃饭。
实际用途:
- OpenRouter单个Key被限流?自动换下一个
- Claude API额度用完?切到备用Key继续
- 多个provider混用?自动选最优
添加凭据
| |
轮换策略配置
在 ~/.hermes/config.yaml 中:
| |
| 策略 | 行为 | 适用场景 |
|---|---|---|
fill_first | 用第一个直到用完,再换下一个 | 有主备Key的场景 |
round_robin | 轮着用,每次选下一个 | 均匀分摊用量 |
random | 随机选一个 | 不在乎分布,只要不被限流 |
least_used | 选调用次数最少的 | 想最大化利用每个Key |
限流自动恢复
不用你管,Hermes会自动处理:
| 错误类型 | 冷却时间 | 恢复方式 |
|---|---|---|
| 401(认证失败) | 5分钟 | 自动跳过,用其他Key |
| 429(限流) | 1小时 | 自动跳过,用其他Key |
| 402(余额不足) | 1小时 | 自动跳过 |
冷却期过了之后,Key会自动恢复到可用状态。
支持的Provider
OAuth类型(浏览器授权):anthropic、nous、openai-codex、qwen-oauth、google-gemini-cli
API Key类型(直接填Key):openrouter、deepseek、zai、kimi、stepfun、moonshot、minimax、xai、gemini、copilot、bedrock、nvidia等
Custom类型:custom:名称,从你的custom_providers配置自动生成
完整配置示例
一个真实的多Key配置长这样:
| |
然后:
| |
配完之后,hermes auth list 看一眼:
| |
被限流的Key会标 (exhausted),倒计时结束自动恢复。你什么都不用做。
4个配置怎么搭着用
我自己的搭配:
| 场景 | 配置组合 |
|---|---|
| 日常开发 | Quick Commands查状态 + 模型别名随时切模型 |
| 重要操作 | Shell Hooks拦截危险命令 + 自动格式化 |
| 长时间跑任务 | 凭据池轮换防限流 + Hooks记录操作日志 |
| 团队协作 | pre_tool_call Hook统一检查 + 凭据池共享Key池 |
改完之后最明显的变化
Shell Hooks:之前AI偶尔会跑一些我不确定的命令,现在危险操作自动拦截,格式化自动执行,省心了。
Quick Commands:以前查个GPU状态要跟AI说一句话,花几百Token。现在 /gpu 两个字搞定,零成本。
模型别名:以前切模型要改配置文件重启。现在 /model opus 一行搞定,复杂任务用贵的,日常用便宜的,省钱又灵活。
凭据池:这个最香。之前单个Key被限流就得干等,现在配了3个OpenRouter Key轮着用,基本没遇到429了。
写在最后
4个配置,按需选用。不需要一次全上——先从Quick Commands和模型别名开始,这两个最简单、最直觉。等熟悉了再加Shell Hooks和凭据池。
配置文件位置:~/.hermes/config.yaml,照着上面改就行。
关注 varkm,一起学习,一起成长。
上一篇8个基础配置还没改的,先去改那个。基础不牢,进阶白搭。