<!-- Source: https://hermesbible.com/docs/reference/model-catalog -->
Model Catalog
Hermes 從與文件站點一起託管的 JSON manifest 中,為 OpenRouter 和 Nous Portal 取得策展的模型清單。這讓維護者可以在不發布新的 hermes-agent 版本的情況下更新選擇器清單。
當 manifest 無法到達(離線、網路被封鎖、託管失敗)時,Hermes 會靜默回退到隨 CLI 附帶的 repo 內快照。manifest 永遠不會破壞選擇器 — 最壞的情況是你看到安裝版本附帶的清單。
即時 manifest URL
https://hermes-agent.nousresearch.com/docs/api/model-catalog.json
透過現有的 deploy-site.yml GitHub Pages 管線在每次合併到 main 時發布。真相來源位於 repo 的 website/static/api/model-catalog.json。
Schema
{
"version": 1,
"updated_at": "2026-04-25T22:00:00Z",
"metadata": {},
"providers": {
"openrouter": {
"metadata": {},
"models": [
{"id": "moonshotai/kimi-k2.6", "description": "recommended", "metadata": {}},
{"id": "openai/gpt-5.4", "description": ""}
]
},
"nous": {
"metadata": {},
"models": [
{"id": "anthropic/claude-opus-4.7"},
{"id": "moonshotai/kimi-k2.6"}
]
}
}
}
欄位說明:
version— 整數 schema 版本。未來的 schema 會遞增此值;Hermes 拒絕它不理解的版本並回退到硬編碼快照。metadata— 在 manifest、供應商和模型層級的自由格式 dict。任意鍵。Hermes 忽略未知欄位,因此你可以為條目加上註解("tier": "paid"、"tags": [...]等)而無需協調 schema 變更。description— 僅限 OpenRouter。驅動選擇器徽章文字("recommended"、"free"或空值)。Nous Portal 不使用此欄位 — 免費層級的閘控由 Portal 的定價端點即時判定。- 定價和上下文長度不在 manifest 中。這些在擷取時從即時供應商 API(
/v1/models端點、models.dev)取得。
Fetch behavior
| 時機 | 發生什麼 |
|---|---|
/model 或 hermes model | 若磁碟快取過期則擷取,否則使用快取 |
| 磁碟快取新鮮(< TTL) | 不會產生網路請求 |
| 網路失敗且有快取 | 靜默回退到快取,輸出一行日誌 |
| 網路失敗且無快取 | 靜默回退到 repo 內快照 |
| Manifest 驗證 schema 失敗 | 視為無法到達 |
快取位置:~/.hermes/cache/model_catalog.json。
Config
model_catalog:
enabled: true
url: https://hermes-agent.nousresearch.com/docs/api/model-catalog.json
ttl_hours: 1
providers: {}
設定 enabled: false 可完全停用遠端擷取,始終使用 repo 內快照。
Per-provider override URLs
第三方可以使用相同的 schema 自行託管自己的策展清單。將供應商指向自訂 URL:
model_catalog:
providers:
openrouter:
url: https://example.com/my-openrouter-curation.json
覆寫的 manifest 只需填入它關心的供應商區塊。其他供應商繼續從主 URL 解析。
Updating the manifest
維護者:
# 從 repo 內硬編碼清單重新產生(在編輯 hermes_cli/models.py 中的
# OPENROUTER_MODELS 或 _PROVIDER_MODELS["nous"] 後保持 manifest 同步)。
python scripts/build_model_catalog.py
然後將對 website/static/api/model-catalog.json 的變更提交 PR 到 main。文件站點在合併後自動部署,新 manifest 幾分鐘內上線。
你也可以直接編輯 JSON 進行細粒度的中繼資料變更(不屬於 repo 內快照的內容)— 產生腳本是便利工具,不是唯一的真相來源。