ByteNoteByteNote

字节笔记本

2026年6月21日

hermes教程-Provider 路由

API中转
¥120

Provider 路由

当使用 OpenRouter 作为你的 LLM 提供商时,Hermes Agent 支持 provider 路由——对哪些底层 AI 提供商处理你的请求以及它们的优先级进行细粒度控制。

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

提示

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

配置

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

yaml
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 路由仅在使用 OpenRouter 时适用。对于直接提供商连接(例如直接连接到 Anthropic API)没有效果。

选项

sort

控制 OpenRouter 如何为你的请求对可用提供商进行排序。

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

only

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

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

ignore

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

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

order

显式优先级顺序。列在前面的提供商优先。未列出的提供商作为后备。

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

require_parameters

当为 true 时,OpenRouter 仅路由到支持你请求中所有参数(如 temperaturetop_ptools 等)的提供商。这可以避免静默丢弃参数。

yaml
provider_routing:
  require_parameters: true

data_collection

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

yaml
provider_routing:
  data_collection: "deny"

实际示例

优化成本

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

yaml
provider_routing:
  sort: "price"

优化速度

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

yaml
provider_routing:
  sort: "latency"

优化吞吐量

最适合长文本生成,每秒 token 数很重要:

yaml
provider_routing:
  sort: "throughput"

锁定到特定提供商

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

yaml
provider_routing:
  only:
    - "Anthropic"

避免特定提供商

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

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

首选顺序与后备

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

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

工作原理

Provider 路由偏好通过每个 API 调用中的 extra_body.provider 字段传递给 OpenRouter API。这适用于以下两种模式:

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

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

text
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

提示

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

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

默认行为

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

提示 — Provider 路由与后备模型

Provider 路由控制 OpenRouter 内部的哪些子提供商处理你的请求。当你的主要模型失败时,自动故障转移到完全不同的提供商,请参阅后备提供商


分享: