Technical Guide
03. 配置和模型:config.yaml、.env、provider 怎么配
看懂 Hermes 的配置入口:模型、密钥、工具、Gateway、Memory 和 terminal backend 分别放在哪里。
这篇解决什么问题
Hermes 的很多问题看起来像源码问题,实际是配置问题。
比如:模型调不通、工具没出现、Gateway 收不到消息、TTS 没声音、browser 不可用。这些大多先看配置,不要直接改代码。
关键路径
默认情况下,Hermes 的主要配置在:
~/.hermes/config.yaml
~/.hermes/.env
~/.hermes/auth.json
~/.hermes/skills/
~/.hermes/cron/jobs.json
~/.hermes/state.db
~/.hermes/logs/
如果用了 profile,则会在:
~/.hermes/profiles/<name>/
每个 profile 有自己的配置、skills、memory、cron 和会话状态。
config.yaml 放什么
config.yaml 放结构化配置,例如:
model.default
model.provider
model.base_url
agent.max_turns
terminal.backend
gateway 配置
memory 配置
compression 配置
tools 配置
你可以用命令查看和修改:
hermes config
hermes config edit
hermes config set model.provider openrouter
hermes config path
.env 放什么
.env 放密钥和环境变量。
比如:
OPENROUTER_API_KEY
ANTHROPIC_API_KEY
GOOGLE_API_KEY
DEEPSEEK_API_KEY
XAI_API_KEY
原则很简单:
- 配置项放
config.yaml; - 密钥放
.env或auth.json; - 不要把密钥写进技能、文档或代码仓库。
provider 和 model
Hermes 是 provider-agnostic 的。
也就是说,同一个 Agent loop 可以切换不同模型后端。你可以通过:
hermes model
交互式选择 provider 和 model。
也可以在单次命令里指定:
hermes chat -q "hello" --provider openrouter -m anthropic/claude-sonnet-4
auth.json 做什么
auth.json 用于保存 OAuth 或 credential pool 一类的认证信息。
例如 Nous Portal、OpenAI Codex、Qwen OAuth、Copilot 这类不只是简单 API key 的 provider,会通过 hermes auth 管理。
常用命令:
hermes auth
hermes auth list
hermes auth add <provider>
hermes auth remove <provider>
工具配置为什么重要
Hermes 不会在每次会话都暴露所有工具。
工具出现取决于:
toolsets.py 定义了哪些工具集
工具自身 check_fn 是否通过
当前平台或 profile 是否启用
会话是否限制 enabled_toolsets
所以“模型为什么不能调用某个工具”,不要只看模型。先看:
hermes tools list
hermes tools
配置影响源码哪里
后面读源码时,可以先记住这条关系:
config.yaml / .env / auth.json
→ agent 初始化
→ provider/model/client 构建
→ prompt 和 tools 构建
→ run_conversation 执行
配置不是旁路,它直接决定一次会话里模型、工具、记忆、压缩、Gateway 的行为。
下一篇看什么
下一篇看项目结构。
先知道目录怎么分,再进入 CLI 入口和 Agent 主循环。