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

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

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

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

Добавьте раздел provider_routing в ваш ~/.hermes/config.yaml:

provider_routing:
  sort: "price"           # Как ранжировать провайдеров
  only: []                # Белый список: использовать только этих провайдеров
  ignore: []              # Чёрный список: никогда не использовать этих провайдеров
  order: []               # Явный порядок приоритета провайдеров
  require_parameters: false  # Использовать только провайдеров, поддерживающих все параметры
  data_collection: null   # Управление сбором данных ("allow" или "deny")
```:::информация
Маршрутизация провайдеров применяется только при использовании OpenRouter. Она не применяется при прямых подключениях к провайдерам (например, прямое подключение к API Anthropic).</div>
## Опции

### `сортировка`

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

| Значение | Описание |
|----------|----------|
| `"цена"` | Сначала самый дешёвый провайдер |
| `"пропускная способность"` | Впервые самые быстрые по токенам в секунду |
| `"задержка"` | Сначала с наименьшей задержкой до первого токена |
```yaml
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» и т.д.). Это собственное молчаливое игнорирование параметров.

provider_routing:
  require_parameters: true

сбор_данных

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

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

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

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

Конфигурация маршрутизации читается из 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:::совет Вы можете комбинировать несколько вариантов. Например, сортировать по цене, но при определенных условиях провайдеров и требовать поддержки параметров: yaml provider_routing: sort: "price" ignore: ["Together"] require_parameters: true data_collection: "deny"

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

Если раздел provider_routing не настроен (по умолчанию), OpenRouter использует собственную логику маршрутизации по умолчанию, которая обычно автоматически балансирует стоимость и доступность.

💡 Tip

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