Перейти к содержанию

Routing

На этой странице При использовании OpenRouter в качестве провайдера LLM, Hermes Agent поддерживает маршрутизацию провайдеров (provider routing) — детальный контроль над тем, какие базовые AI-провайдеры обрабатывают ваши запросы и как они приоритизируются. OpenRouter направляет запросы ко многим провайдерам (например, Anthropic, Google, AWS Bedrock, Together AI). Маршрутизация провайдеров позволяет оптимизировать стоимость, скорость, качество или обеспечить выполнение требований конкретного провайдера.

Конфигурация

Добавьте секцию provider_routing в ваш ~/.hermes/config.yaml: [code] provider_routing:
sort: "price" # Как ранжировать провайдеров
only: [] # Белый список: использовать только этих провайдеров
ignore: [] # Чёрный список: никогда не использовать этих провайдеров
order: [] # Явный порядок приоритета провайдеров
require_parameters: false # Использовать только провайдеров, поддерживающих все параметры
data_collection: null # Управление сбором данных ("allow" или "deny")

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

Опции

sort

Управляет тем, как OpenRouter ранжирует доступных провайдеров для вашего запроса. Значение| Описание
---|---
"price"| Сначала самый дешёвый провайдер
"throughput"| Сначала самый быстрый по токенам в секунду
"latency"| Сначала с наименьшей задержкой до первого токена [code] provider_routing:
sort: "price"

[/code]

only

Белый список имён провайдеров. Если задан, будут использоваться только эти провайдеры. Все остальные исключаются. [code] provider_routing:
only:
- "Anthropic"
- "Google"

[/code]

ignore

Чёрный список имён провайдеров. Эти провайдеры никогда не будут использоваться, даже если они предлагают самый дешёвый или быстрый вариант. [code] provider_routing:
ignore:
- "Together"
- "DeepInfra"

[/code]

order

Явный порядок приоритета. Провайдеры, указанные первыми, имеют преимущество. Неперечисленные провайдеры используются как запасные. [code] provider_routing:
order:
- "Anthropic"
- "Google"
- "AWS Bedrock"

[/code]

require_parameters

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

[/code]

data_collection

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

[/code]

Практические примеры

Оптимизация по стоимости

Направляйте запросы самому дешёвому доступному провайдеру. Хорошо для большого объёма использования и разработки: [code] provider_routing:
sort: "price"

[/code]

Оптимизация по скорости

Приоритизация провайдеров с низкой задержкой для интерактивного использования: [code] provider_routing:
sort: "latency"

[/code]

Оптимизация по пропускной способности

Лучше всего подходит для длительной генерации, где важны токены в секунду: [code] provider_routing:
sort: "throughput"

[/code]

Фиксация на конкретных провайдерах

Гарантирует, что все запросы проходят через определённого провайдера для обеспечения согласованности: [code] provider_routing:
only:
- "Anthropic"

[/code]

Исключение определённых провайдеров

Исключите провайдеров, которых вы не хотите использовать (например, для конфиденциальности данных): [code] provider_routing:
ignore:
- "Together"
- "Lepton"
data_collection: "deny"

[/code]

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

Сначала пробуйте предпочтительных провайдеров, используйте запасных, если они недоступны: [code] provider_routing:
order:
- "Anthropic"
- "Google"
require_parameters: true

[/code]

Как это работает

Настройки маршрутизации провайдеров передаются в API OpenRouter через поле extra_body.provider при каждом вызове API. Это относится как к: * Режиму CLI — настраивается в ~/.hermes/config.yaml, загружается при запуске * Режиму Gateway — тот же файл конфигурации, загружается при запуске gateway

Конфигурация маршрутизации читается из config.yaml и передаётся в качестве параметров при создании AIAgent: [code] 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

[/code] tip Вы можете комбинировать несколько опций. Например, сортировать по цене, но исключить определённых провайдеров и требовать поддержку параметров: [code] provider_routing:
sort: "price"
ignore: ["Together"]
require_parameters: true
data_collection: "deny"

[/code]

Поведение по умолчанию

Если секция provider_routing не настроена (по умолчанию), OpenRouter использует свою собственную логику маршрутизации по умолчанию, которая обычно автоматически балансирует стоимость и доступность. Маршрутизация провайдеров vs. Запасные провайдеры Маршрутизация провайдеров управляет тем, какие суб-провайдеры внутри OpenRouter обрабатывают ваши запросы. Для автоматического переключения на совершенно другого провайдера, когда ваша основная модель недоступна, см. Запасные провайдеры (Fallback Providers). * Конфигурация * Опции * sort * only * ignore * order * require_parameters * data_collection * Практические примеры * Оптимизация по стоимости * Оптимизация по скорости * Оптимизация по пропускной способности * Фиксация на конкретных провайдерах * Исключение определённых провайдеров * Предпочтительный порядок с запасными вариантами * Как это работает * Поведение по умолчанию