Маршрутизация провайдеров
При использовании 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: truedata_collection
Заголовок раздела «data_collection»Управляет тем, могут ли провайдеры использовать ваши 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.onlyproviders_ignored ← from provider_routing.ignoreproviders_order ← from provider_routing.orderprovider_sort ← from provider_routing.sortprovider_require_parameters ← from provider_routing.require_parametersprovider_data_collection ← from provider_routing.data_collectionПоведение по умолчанию
Заголовок раздела «Поведение по умолчанию»Когда раздел provider_routing не настроен (по умолчанию), OpenRouter использует собственную логику маршрутизации по умолчанию, которая обычно автоматически балансирует стоимость и доступность.
:::tip Маршрутизация провайдеров vs. резервные модели Маршрутизация провайдеров управляет тем, какие суб-провайдеры внутри OpenRouter обрабатывают ваши запросы. Чтобы настроить автоматическое переключение на совершенно другого провайдера, когда ваша основная модель недоступна, см. Резервные провайдеры. :::