🤖HermesBlog
Hermes 官方教程 · 第28篇2026/8/9· Easy Understand Hermes Agent

第28篇:提供商配置——接入各种大模型

Hermes Agent 官方教程第28篇:接入各种大模型

提供商配置:接入各种大模型

第28篇:提供商配置——接入各种大模型

咱们这期聊聊 Hermes 的“大脑”配置。你可能已经发现了,Hermes 干活的时候其实不止用一个大模型,它有两类模型槽位:

  • 主模型(Main model)——负责“思考”。你发的每句话、工具调用的每个循环、流式输出的每个字,都走这个模型。
  • 辅助模型(Auxiliary models)——干杂活的。上下文压缩、图像分析、网页摘要、审批打分、MCP 工具路由、会话标题生成、技能搜索……一共 11 个任务槽位,每个都能单独指定模型。

默认情况下,所有辅助任务都是 auto,也就是跟着主模型走。想省钱?可以给某个杂活单独指定一个便宜的小模型。

顺带一提:如果你想让模型跑在自己的机器上而不是云提供商,可以看官方文档的 Local Models 一节。

最快接入方式:Nous Portal

如果你不想一个个配 API Key,官方推荐直接用 Nous Portal——一个订阅搞定 300+ 模型。全新安装后,跑一句:

hermes setup --portal

登录一下就完事了。想看看接入了啥,用 hermes portal info 查看。Portal 订阅用户还能享受其他按量付费提供商 10% 折扣

仪表盘里怎么配

打开仪表盘,点侧边栏的 Models,你会看到两个区域:

  1. Model Settings——上面的大面板,给各个槽位分配模型。
  2. Usage analytics——下面的卡片排行,显示每个模型跑了多少 token、花了多少钱。

主模型那一行点 Change 会弹出选择器,左边是已认证的提供商(没看到?去 Keys 页面加凭证),右边是精选模型列表——注意,这是 Hermes 推荐的 agentic 模型,不是 OpenRouter 那种 400+ 全量列表(里面还有 TTS、画图模型呢)。

选好点 Switch,配置就写进 ~/.hermes/config.yaml 了。注意:这只对新会话生效。已经打开的聊天窗口还是用旧模型。想热切换?在会话里用 /model 斜杠命令。

中途切换的坑

在会话中途切模型,有两个坑要提醒你:

  1. 可能触发上下文压缩——如果当前会话已经很长,切到窗口更小的模型时,下一条消息会先跑一次压缩再回答。
  2. Prompt 缓存失效——缓存是按模型算的,一切模型,下一条消息就得按全价重新读一遍整个对话。长会话里这一下可能比两个模型的差价还贵。所以尽量在会话早期切换

正因为这次重读很贵,当会话已经攒了很大的上下文(默认 100,000 token,按最近一次提供商计费的 prompt 大小算)时,Hermes 会在切换前弹一个明确确认——和贵模型、数据训练那类警告走同一套选择守卫提示,CLI、TUI 的 /model 命令和选择器、以及聊天里手打的 /model 都会弹。想调阈值或关掉,改 config.yaml

model:
  # 会话超过这么多上下文 token 时,切换前先问一下(下一条回复要重新读一遍)。
  # 0 表示关闭。
  switch_context_confirm_tokens: 100000

重新选你当前正在用的模型不会弹(缓存还是热的),没有测到上下文的会话(全新会话、非实时界面)也不弹。

关于数据训练的特别提醒

有些模型(比如 muse-spark-1.2-contributormuse-spark-1.3-contributor)因为厂商可能拿你的对话做训练,所以价格便宜。这类模型都带 -contributor 后缀。交互式选择时会弹确认框,但无人值守的任务(比如 Kanban worker、cron 定时任务)没法弹框,所以默认直接拒绝。

如果你能接受,可以持久化确认:

hermes config set security.allow_data_training_tiers_noninteractive true

想撤销就:

hermes config unset security.allow_data_training_tiers_noninteractive

辅助模型的回退行为

辅助任务默认是 auto,也就是跟着主模型走。如果主模型这条路走不通或者遇到容量类故障,auto 会先看该任务自己的 auxiliary.<task>.fallback_chain,再看顶层的 fallback_providers / fallback_model 链。它绝不会去猜你没配置过的提供商——如果选了主提供商、又没声明任何回退,这个杂活会直接跳过并给出警告,而不是记到你碰巧登录着的另一个账号上。(Hermes 内置的辅助发现链只在你完全没选主提供商时才会跑。)

如果某个任务没配 fallback_chainauto 就用顶层的 fallback_providers 链。如果这个也没有、主提供商又服务不了这次调用,任务会被跳过并给出警告——Hermes 不会落到其他已登录的提供商上。

一个小细节

全新安装时,配置文件里 model: "" 是个空字符串哨兵值,表示“还没配置”。第一次跑 hermes setuphermes model 时,它会自动升级成带 providerdefaultbase_urlapi_mode 的映射结构。如果你在 config.yaml 里看到空字符串,跑一下 hermes model 就会自动修好。

给提供商加点请求选项

providers: 字典里(或老的 custom_providers 列表里)配提供商时,有几个小旋钮可以调:

  • extra_headers——给发往这个提供商的每个 LLM 请求都带上额外的 HTTP 头。适合 Cloudflare Access 服务令牌、代理认证这类场景。注意:它同时适用于 OpenAI 兼容线路和 anthropic_messages 线路(主客户端、/model 切换、重建、辅助客户端都算),但 bedrock_converse 不用它。头里的值经常带凭证,Hermes 从不记录它们。
  • session_affinity_header——填一个头的名字,Hermes 会把会话 id 塞进这个头,随每个请求发给该提供商(主对话的 chat_completionsanthropic_messagescodex_responses,以及压缩、标题这类辅助调用)。默认不发——Hermes 不会主动给没要求的端点塞会话标识。如果你前面挂了个有状态的代理(比如 LiteLLM 的 x-litellm-session-id、自建的 Claude/OpenAI 网关),不设这个它会把每一轮都当成新对话,把整段历史反复往上游发。值是不透明的,同一会话内稳定,不同会话不同。
  • discover_models——设成 false(默认 true)就跳过查询端点的 /models 列表,只用你在条目里配的 models。适合模型列表慢、不稳或太吵的网关。

Nous Portal:Claude 走哪条线

Nous Portal 的 anthropic/* 模型有两条线路:OpenAI 兼容的 /v1/chat/completions,以及 Anthropic 原生的 Messages 线路 /v1/messages。用 nous.anthropic_wire 来选:

nous:
  anthropic_wire: chat     # 默认。"native" = 走 Anthropic Messages 线路;"auto" = 每个会话自行决定

目前默认是 chat。原生线路是更好的传输方式(签名思考块原样透传、原生 cache_control 作用域),但在 Portal 走 OpenRouter 的路径上,并发工具循环里连续调用时有 14–20% 的概率会重写上一轮的 prompt 缓存。

好了,配置模型就这么简单。下一期咱们聊聊辅助模型的 11 个槽位分别怎么调优。

📖 官方文档

本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/configuring-models