跳到主要内容

提供商路由

当使用 OpenRouter 作为您的 LLM 提供商时,Hermes 智能体支持提供商路由 — 精细控制哪些底层 AI 提供商处理您的请求以及它们的优先级。

OpenRouter 将请求路由到许多提供商(例如 Anthropic、Google、AWS Bedrock、Together AI)。提供商路由让您可以优化成本、速度、质量,或强制执行特定的提供商要求。

提示

通过 Nous Portal 路由的流量仍然遵循按模型的路由和优先级配置 — 并且 Portal 订阅用户可以享受 token 计费提供商 10% 的折扣。

配置

在您的 ~/.hermes/config.yaml 文件中添加一个 provider_routing 部分:

provider_routing:
sort: "price" # 如何对提供商进行排序
only: [] # 白名单:仅使用这些提供商
ignore: [] # 黑名单:永不使用这些提供商
order: [] # 明确的提供商优先级顺序
require_parameters: false # 仅使用支持所有参数的提供商
data_collection: null # 控制数据收集("allow" 或 "deny")
信息

提供商路由仅在使用 OpenRouter 时生效。对于直接连接提供商(例如直接连接到 Anthropic API)的情况,它不起作用。

选项

sort

控制 OpenRouter 为您的请求对可用提供商进行排名的方式。

描述
"price"最便宜的提供商优先
"throughput"最快的每秒 token 处理速度优先
"latency"最低的首个 token 延迟优先
provider_routing:
sort: "price"

only

提供商名称的白名单。设置后,会使用这些提供商。所有其他提供商均被排除。

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

ignore

提供商名称的黑名单。这些提供商将永不被使用,即使它们提供最便宜或最快的选项。

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

order

明确的优先级顺序。列表中的提供商按顺序优先使用。未列出的提供商将作为备用选项。

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

require_parameters

当设置为 true 时,OpenRouter 将仅路由到支持您请求中所有参数(如 temperaturetop_ptools 等)的提供商。这可以避免参数被静默忽略。

provider_routing:
require_parameters: true

data_collection

控制提供商是否可以使用您的提示进行训练。选项为 "allow""deny"

provider_routing:
data_collection: "deny"

实用示例

优化成本

路由到最便宜的可用提供商。适合高使用量和开发场景:

provider_routing:
sort: "price"

优化速度

优先考虑低延迟的提供商,用于交互式使用:

provider_routing:
sort: "latency"

优化吞吐量

最适合生成长文本,此时每秒 token 处理速度很重要:

provider_routing:
sort: "throughput"

锁定特定提供商

确保所有请求都通过特定提供商以保持一致性:

provider_routing:
only:
- "Anthropic"

避免特定提供商

排除您不想使用的提供商(例如出于数据隐私考虑):

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

首选顺序带备用选项

首先尝试您首选的提供商,如果不可用则回退到其他提供商:

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

工作原理

提供商路由偏好通过 extra_body.provider 字段在每次 API 调用时传递给 OpenRouter API。这适用于:

  • CLI 模式 — 在 ~/.hermes/config.yaml 中配置,启动时加载
  • Gateway 模式 — 相同的配置文件,网关启动时加载

路由配置从 config.yaml 读取,并在创建 AIAgent 时作为参数传递:

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

您可以组合多个选项。例如,按价格排序但排除某些提供商并要求支持特定参数:

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

默认行为

当未配置 provider_routing 部分时(默认情况),OpenRouter 使用其自身的默认路由逻辑,该逻辑通常会自动平衡成本和可用性。

提供商路由 vs. 备用模型

提供商路由控制 OpenRouter 内部的哪些子提供商处理您的请求。要实现当主模型失败时自动切换到完全不同的另一个提供商,请参阅 备用提供商