模型目录

Hermes 从文档站点旁托管的 JSON 清单(manifest)中获取 OpenRouterNous Portal 的精选模型列表。这使得维护者无需发布新版本的 hermes-agent 即可更新选择列表。

当清单无法访问时(离线、网络受限、托管故障),Hermes 会静默回退到 CLI 附带的仓库内快照。清单永远不会破坏选择器——最坏的情况下,你会看到安装版本所捆绑的列表。

在线清单 URL

https://hermes-agent.nousresearch.com/docs/api/model-catalog.json

每次合并到 main 分支时,通过现有的 deploy-site.yml GitHub Pages 流水线发布。数据源位于仓库的 website/static/api/model-catalog.json

模式

{
  "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 — 整数型模式版本。未来版本会递增此值;Hermes 会拒绝不理解的版本并回退到硬编码快照。
  • metadata — 自由格式字典,适用于清单、提供商和模型级别。任意键均可。Hermes 忽略未知字段,因此你可以注解条目(如 "tier": "paid""tags": [...] 等)而无需协调模式变更。
  • description — 仅 OpenRouter 使用。驱动选择器徽章文本("recommended" 推荐、"free" 免费或为空)。Nous Portal 不使用此字段——免费层的限流由 Portal 的定价端点实时确定。
  • 定价和上下文长度不在清单中。这些信息来自实时的提供商 API(/v1/models 端点、models.dev),在获取时动态获取。

获取行为

触发条件行为
/modelhermes model若磁盘缓存过期则获取,否则使用缓存
磁盘缓存未过期(< TTL)无网络请求
网络故障但有缓存静默回退到缓存,记录一行日志
网络故障且无缓存静默回退到仓库内快照
清单未通过模式验证视为不可访问

缓存位置:~/.hermes/cache/model_catalog.json

配置

model_catalog:
  enabled: true
  url: https://hermes-agent.nousresearch.com/docs/api/model-catalog.json
  ttl_hours: 24
  providers: {}

enabled: false 设置为禁用远程获取,始终使用仓库内快照。

按提供商覆盖 URL

第三方可以使用相同的模式自行托管自己的精选列表。将提供商指向自定义 URL:

model_catalog:
  providers:
    openrouter:
      url: https://example.com/my-openrouter-curation.json

覆盖清单只需填充其关心的提供商区块。其他提供商将继续通过主 URL 解析。

更新清单

维护者:

# 从仓库内硬编码列表重新生成(在编辑 hermes_cli/models.py 中的
# OPENROUTER_MODELS 或 _PROVIDER_MODELS["nous"] 后保持清单同步)。
python scripts/build_model_catalog.py

然后将 website/static/api/model-catalog.json 的变更通过 PR 提交到 main 分支。文档站点会在合并后自动部署,新清单在几分钟内生效。

你也可以直接手动编辑 JSON 以进行细粒度的元数据更改——生成器脚本是便利工具,而非唯一数据源。