Маршрутизация провайдеров
При использовании 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-вызове. Это применимо как к:
- Режим CLI — на вред в
~/.hermes/config.yaml, загружается при запуске. - Режим шлюза — тот же файл конфигурации, загружается при запуске шлюза.
Конфигурация маршрутизации читается из 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"