词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
Your request
→ Pick key from pool (round_robin / least_used / fill_first / random)
→ Send to provider
→ 429 rate limit?
→ Plan/usage limit reached (e.g. ChatGPT/Codex "usage limit reached")?
→ Rotate to next pool key immediately (no retry — the cap won't clear on retry)
→ Generic / transient 429?
→ Retry same key once (transient blip)
→ Second 429 → rotate to next pool key
→ All keys exhausted → fallback_model (different provider)
→ 402 billing error?
→ Immediately rotate to next pool key (24h cooldown)
→ 401 auth expired?
→ Try refreshing the token (OAuth)
→ Refresh failed → rotate to next pool key
→ Success → continue normally.env 中设置了 API 密钥,Hermes 会自动将其识别为单密钥池。要充分利用池化功能,请添加更多密钥:openrouter (2 credentials):
#1 OPENROUTER_API_KEY api_key env:OPENROUTER_API_KEY ←
#2 backup-key api_key manual
anthropic (3 credentials):
#1 hermes_pkce oauth hermes_pkce ←
#2 claude_code oauth claude_code
#3 ANTHROPIC_API_KEY api_key env:ANTHROPIC_API_KEY← 标记当前选中的凭证。hermes auth 以进入交互式向导:What would you like to do?
1. Add a credential
2. Remove a credential
3. Reset cooldowns for a provider
4. Set rotation strategy for a provider
5. Exitanthropic supports both API keys and OAuth login.
1. API key (paste a key from the provider dashboard)
2. OAuth login (authenticate via browser)
Type [1/2]:| 命令 | 说明 |
|---|---|
hermes auth | 交互式池管理向导 |
hermes auth list | 显示所有池和凭证 |
hermes auth list <provider> | 显示指定提供商的池 |
hermes auth add <provider> | 添加凭证(提示选择类型和密钥) |
hermes auth add <provider> --type api-key --api-key <key> | 非交互式添加 API 密钥 |
hermes auth add <provider> --type oauth | 通过浏览器登录添加 OAuth 凭证 |
hermes auth remove <provider> <index> | 按从 1 开始的索引删除凭证 |
hermes auth reset <provider> | 清除所有冷却时间/耗尽状态 |
hermes auth → "Set rotation strategy" 配置,或在 config.yaml 中设置:| 策略 | 行为 |
|---|---|
fill_first(默认) | 持续使用第一个健康密钥直至耗尽,然后切换到下一个 |
round_robin | 均匀循环遍历所有密钥,每次选择后轮换 |
least_used | 始终选择请求次数最少的密钥 |
random | 在健康密钥中随机选择 |
| 错误 | 行为 | 冷却时间 |
|---|---|---|
| 429 速率限制 | 对同一密钥重试一次(瞬时错误)。连续第二次 429 则轮换到下一个密钥 | 1 小时 |
| 402 计费/配额 | 立即轮换到下一个密钥 | 24 小时 |
| 401 认证过期 | 先尝试刷新 OAuth 令牌。仅在刷新失败时才轮换 | — |
| 所有密钥耗尽 | 若已配置则转入 fallback_model | — |
has_retried_429 标志在每次成功的 API 调用后重置,因此单次瞬时 429 不会触发轮换。config.yaml 中 custom_providers 的端点名称作为键。hermes model 设置自定义端点时,会自动生成类似 "Together.ai" 或 "Local (localhost:8080)" 的名称,该名称即成为池的键。custom: 前缀存储在 auth.json 的 credential_pool 下:{
"credential_pool": {
"openrouter": [...],
"custom:together.ai": [...]
}
}| 来源 | 示例 | 自动初始化? |
|---|---|---|
| 环境变量 | OPENROUTER_API_KEY、ANTHROPIC_API_KEY | 是 |
| OAuth 令牌(auth.json) | Codex device code、Nous device code | 是 |
| Claude Code 凭证 | ~/.claude/.credentials.json | 是(Anthropic) |
| Hermes PKCE OAuth | ~/.hermes/auth.json | 是(Anthropic) |
| 自定义端点配置 | config.yaml 中的 model.api_key | 是(自定义端点) |
| 手动条目 | 通过 hermes auth add 添加 | 持久化至 auth.json |
hermes auth add 添加的手动条目永远不会被自动清除。