Перейти к содержимому

Маршрутизация провайдеров

При использовании OpenRouter в качестве вашего провайдера LLM, Hermes Agent поддерживает маршрутизацию провайдеров — точное управление тем, какие базовые AI-провайдеры обрабатывают ваши запросы и как они приоритизируются.

OpenRouter направляет запросы ко многим провайдерам (например, Anthropic, Google, AWS Bedrock, Together AI). Маршрутизация провайдеров позволяет оптимизировать стоимость, скорость, качество или применять определённые требования к провайдерам.

Добавьте секцию provider_routing в ваш ~/.hermes/config.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")

Маршрутизация провайдеров применяется только при использовании OpenRouter. Она не влияет на прямые подключения к провайдерам (например, при прямом подключении к API Anthropic).

Управляет тем, как OpenRouter ранжирует доступных провайдеров для вашего запроса.

ЗначениеОписание
"price"Сначала самый дешёвый провайдер
"throughput"Сначала самая высокая скорость в токенах в секунду
"latency"Сначала наименьшее время до первого токена
provider_routing:
sort: "price"

Белый список имён провайдеров. Если задан, будут использоваться только эти провайдеры. Все остальные исключаются.

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

Чёрный список имён провайдеров. Эти провайдеры никогда не будут использоваться, даже если они предлагают самый дешёвый или самый быстрый вариант.

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

Явный порядок приоритета. Провайдеры, указанные первыми, предпочтительнее. Неуказанные провайдеры используются как резервные.

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

require_parametersКогда true, OpenRouter будет направлять запросы только к провайдерам, которые поддерживают все параметры в вашем запросе (например, temperature, top_p, tools и т. д.). Это позволяет избежать незаметного игнорирования параметров.

Заголовок раздела «require_parametersКогда true, OpenRouter будет направлять запросы только к провайдерам, которые поддерживают все параметры в вашем запросе (например, temperature, top_p, tools и т. д.). Это позволяет избежать незаметного игнорирования параметров.»
provider_routing:
require_parameters: true

Управляет тем, могут ли провайдеры использовать ваши prompts для обучения. Варианты: "allow" или "deny".

provider_routing:
data_collection: "deny"

Направляет запросы к самому дешёвому доступному провайдеру. Подходит для высоконагруженного использования и разработки:

provider_routing:
sort: "price"

Отдаёт приоритет провайдерам с низкой задержкой для интерактивного использования:

provider_routing:
sort: "latency"

Лучший вариант для генерации длинных текстов, где важна скорость в токенах в секунду:

provider_routing:
sort: "throughput"

Гарантирует, что все запросы проходят через конкретного провайдера для согласованности:

provider_routing:
only:
- "Anthropic"

Исключает провайдеров, которых вы не хотите использовать (например, по соображениям конфиденциальности данных):

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

Предпочтительный порядок с резервными вариантами

Заголовок раздела «Предпочтительный порядок с резервными вариантами»

Сначала пробует предпочитаемых вами провайдеров, а при их недоступности переключается на других:

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

Настройки маршрутизации провайдера передаются в OpenRouter API через поле extra_body.provider при каждом вызове API. Это применяется в обоих случаях:

  • режим CLI — настраивается в ~/.hermes/config.yaml, загружается при запуске
  • Режим gateway — тот же файл конфигурации, загружается при запуске gateway

Конфигурация маршрутизации считывается из 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 не настроен (по умолчанию), OpenRouter использует собственную логику маршрутизации по умолчанию, которая обычно автоматически балансирует стоимость и доступность.

:::tip Маршрутизация провайдеров vs. резервные модели Маршрутизация провайдеров управляет тем, какие суб-провайдеры внутри OpenRouter обрабатывают ваши запросы. Чтобы настроить автоматическое переключение на совершенно другого провайдера, когда ваша основная модель недоступна, см. Резервные провайдеры. :::