跳到主要内容

大模型提供商(provider)路由

当你把 OpenRouter 用作 LLM 大模型提供商(provider)时,Hermes Agent 支持 provider routing,也就是精细控制实际由哪些底层 AI 提供商处理你的请求,以及它们的优先级。

OpenRouter 会把请求路由到许多提供商(例如 Anthropic、Google、AWS Bedrock、Together AI)。provider routing 让你可以围绕成本、速度、质量,或特定大模型提供商(provider)约束进行优化。

配置

~/.hermes/config.yaml 中加入 provider_routing 配置段:

provider_routing:
sort: "price" # How to rank providers
only: [] # Whitelist: only use these providers
ignore: [] # Blacklist: never use these providers
order: [] # Explicit provider priority order
require_parameters: false # Only use providers that support all parameters
data_collection: null # Control data collection ("allow" or "deny")
信息

provider routing 仅在使用 OpenRouter 时生效。若你直接连接某个大模型提供商(provider)(例如直接连 Anthropic API),该配置不会起作用。

配置项

sort

控制 OpenRouter 如何对可用的大模型提供商(provider)排序。

说明
"price"优先选择最便宜的提供商
"throughput"优先选择 tokens/s 最快的提供商
"latency"优先选择首 token 延迟最低的提供商
provider_routing:
sort: "price"

only

大模型提供商(provider)白名单。设置后,只会使用这些提供商,其余全部排除。

provider_routing:
only:
- "Anthropic"
- "Google"

ignore

大模型提供商(provider)黑名单。这些提供商将不会被使用,即使它们是最便宜或最快的选项。

provider_routing:
ignore:
- "Together"
- "DeepInfra"

order

显式优先级顺序。列表中越靠前的提供商优先级越高;未列出的提供商作为回退选项。

provider_routing:
order:
- "Anthropic"
- "Google"
- "AWS Bedrock"

require_parameters

当设为 true 时,OpenRouter 只会路由到支持你请求中 全部参数 的大模型提供商(provider)(例如 temperaturetop_ptools 等),避免参数被静默丢弃。

provider_routing:
require_parameters: true

data_collection

控制大模型提供商(provider)是否可以将你的提示词用于训练。可选值为 "allow""deny"

provider_routing:
data_collection: "deny"

实际示例

以成本优先

把请求路由到当前最便宜的可用提供商,适合高频使用和开发阶段:

provider_routing:
sort: "price"

以速度优先

优先低延迟提供商,适合交互式使用:

provider_routing:
sort: "latency"

以吞吐优先

适合长文本生成,更关注每秒 token 数:

provider_routing:
sort: "throughput"

锁定到特定提供商

确保所有请求都由指定大模型提供商(provider)处理,以获得稳定性:

provider_routing:
only:
- "Anthropic"

避开特定提供商

排除不希望使用的提供商,例如出于数据隐私考虑:

provider_routing:
ignore:
- "Together"
- "Lepton"
data_collection: "deny"

按优先顺序并带回退

优先尝试你偏好的提供商,不可用时再回退到其他提供商:

provider_routing:
order:
- "Anthropic"
- "Google"
require_parameters: true

工作原理

provider routing 偏好会通过每次 API 调用中的 extra_body.provider 字段传给 OpenRouter。它同时适用于:

  • CLI 模式 — 从 ~/.hermes/config.yaml 读取,并在启动时加载
  • 网关模式 — 使用同一个配置文件,并在网关启动时加载

路由配置从 config.yaml 中读取后,会在创建 AIAgent 时映射为这些参数:

providers_allowed  ← from provider_routing.only
providers_ignored ← from provider_routing.ignore
providers_order ← from provider_routing.order
provider_sort ← from provider_routing.sort
provider_require_parameters ← from provider_routing.require_parameters
provider_data_collection ← from provider_routing.data_collection
提示

这些选项可以组合使用。比如你可以按价格排序,但同时排除某些提供商,并要求完整参数支持:

provider_routing:
sort: "price"
ignore: ["Together"]
require_parameters: true
data_collection: "deny"

默认行为

如果没有配置 provider_routing(默认情况),OpenRouter 会使用其默认路由逻辑,通常会自动在成本与可用性之间做平衡。

Provider Routing vs. Fallback Models

provider routing 控制的是 OpenRouter 内部的子提供商 如何处理你的请求。如果你需要在主模型失败时自动切换到完全不同的大模型提供商(provider),请参阅 Fallback Providers