title: Fallback Providers description: Configure automatic failover to backup LLM providers when your primary model is unavailable. sidebar_label: Fallback Providers sidebar_position: 8 lang: ru


Резервные поставщики

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

  1. Пулы учетных данных — чередование нескольких ключей API для одного провайдера (пробовано первым)
  2. Откат основной модели — автоматически переключается на другой поставщик:модель при сбое основной модели.
  3. Резервный вариант вспомогательной задачи — независимое решение поставщиком дополнительных задач, таких как зрение, сжатие и извлечение веб-страниц.

Пулы учетных данных обрабатывают ротацию одного и того же поставщика (например, несколько ключей OpenRouter). На этой странице описан резервный вариант между поставщиками. Оба являются необязательными и работают независимо.

Резервный вариант основной модели

Когда ваш основной провайдер LLM обнаруживает ошибки (ограничения скорости, перегрузку сервера, сбои аутентификации, разрывы соединения) — Hermes может автоматически переключиться на резервного поставщика: пару моделей в середине сеанса, не теряя при этом разговор.

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

Самый простой путь — интерактивный менеджер:

hermes fallback

hermes fallback повторно использует средство выбора поставщика из hermes model — тот же список поставщиков, те же запросы учетных данных, та же проверка. Нажмите a, чтобы добавить резервный вариант, /, чтобы изменить порядок, d, чтобы удалить, q, чтобы сохранить и выйти. Изменения сохраняются под model.fallback_providers в config.yaml.

Если вы предпочитаете редактировать YAML напрямую, добавьте раздел fallback_model в ~/.hermes/config.yaml:

fallback_model:
  provider: openrouter
  model: anthropic/claude-sonnet-4

Оба provider и model обязательны. Если какой-либо из них отсутствует, резервный вариант отключен.

:::примечание fallback_model против fallback_providers fallback_model (единственное число) — это устаревший одинарный резервный ключ — Hermes до сих пор использует его для обратной совместимости. fallback_providers (множественное число, список) поддерживает несколько резервных вариантов, опробованных по порядку; hermes fallback записывает на этот ключ. Когда оба установлены, Hermes объединяет их, при этом fallback_providers получает приоритет.

Поддерживаемые поставщики

Провайдер Значение Требования
AI-шлюз ai-gateway AI_GATEWAY_API_KEY
OpenRouter openrouter OPENROUTER_API_KEY
Ноус Портал nous hermes auth (OAuth)
Кодекс OpenAI openai-codex hermes model (ChatGPT OAuth)
Второй пилот GitHub copilot COPILOT_GITHUB_TOKEN, GH_TOKEN или GITHUB_TOKEN
GitHub Copilot ACP copilot-acp Внешний процесс (интеграция редактора)
Антропный anthropic ANTHROPIC_API_KEY или учетные данные Клода Кода
z.ai / ГЛМ zai GLM_API_KEY
Кими / Муншот kimi-coding KIMI_API_KEY
МиниМакс minimax MINIMAX_API_KEY
МиниМакс (Китай) minimax-cn MINIMAX_CN_API_KEY
ДипСик deepseek DEEPSEEK_API_KEY
NVIDIA НИМ nvidia NVIDIA_API_KEY (необязательно: NVIDIA_BASE_URL)
Оллама Облако ollama-cloud OLLAMA_API_KEY
Google Близнецы (OAuth) google-gemini-cli hermes model (Google OAuth; необязательно: HERMES_GEMINI_PROJECT_ID)
Google AI Studio gemini GOOGLE_API_KEY (псевдоним: GEMINI_API_KEY)
xAI (Грок) xai (псевдоним grok) XAI_API_KEY (необязательно: XAI_BASE_URL)
Основа AWS bedrock Стандартная аутентификация boto3 (AWS_REGION + AWS_PROFILE или AWS_ACCESS_KEY_ID)
Портал Квен (OAuth) qwen-oauth hermes model (Qwen Portal OAuth; необязательно: HERMES_QWEN_BASE_URL)
МиниМакс (OAuth) minimax-oauth hermes model (портал MiniMax OAuth)
OpenCode Дзен opencode-zen OPENCODE_ZEN_API_KEY
OpenCode Go opencode-go OPENCODE_GO_API_KEY
Код килограмма kilocode KILOCODE_API_KEY
Сяоми МиМо xiaomi XIAOMI_API_KEY
Арси AI arcee ARCEEAI_API_KEY
Облако GMI gmi GMI_API_KEY
Алибаба / DashScope alibaba DASHSCOPE_API_KEY
План кодирования Alibaba alibaba-coding-plan ALIBABA_CODING_PLAN_API_KEY (возврат к DASHSCOPE_API_KEY)
Кими/Муншот (Китай) kimi-coding-cn KIMI_CN_API_KEY
СтепФун stepfun STEPFUN_API_KEY
Tencent TokenHub tencent-tokenhub TOKENHUB_API_KEY
Лаборатория искусственного интеллекта Azure azure-foundry AZURE_FOUNDRY_API_KEY + AZURE_FOUNDRY_BASE_URL
LM Studio (локальный) lmstudio LM_API_KEY (или нет для локальной версии) + LM_BASE_URL
Обнимающее лицо huggingface HF_TOKEN
Пользовательская конечная точка custom base_url + key_env (см. ниже)

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

Для пользовательской конечной точки, совместимой с OpenAI, добавьте base_url и (необязательно) key_env:

fallback_model:
  provider: custom
  model: my-local-model
  base_url: http://localhost:8000/v1
  key_env: MY_LOCAL_KEY              # env var name containing the API key

Когда срабатывает откат

Резервный вариант активируется автоматически в случае сбоя основной модели:

При срабатывании Гермес:

  1. Разрешает учетные данные для резервного поставщика.
  2. Создает новый клиент API.
  3. Меняет модель, поставщика и клиента на месте.
  4. Сбрасывает счетчик повторов и продолжает разговор.

Переключение происходит плавно — история разговоров, вызовы инструментов и контекст сохраняются. Агент продолжает работу с того места, на котором остановился, просто используя другую модель.

:::информация за ход, а не за сеанс Резервное копирование осуществляется по ходу: каждое новое сообщение пользователя начинается с восстановления основной модели. Если основной терпит неудачу в середине хода, резервный вариант активируется только на этот ход. В следующем сообщении Гермес снова пробует использовать основной. В течение одного хода резервный вариант активируется не более одного раза — если резервный вариант также терпит неудачу, вступает в силу обычная обработка ошибок (повторные попытки, затем сообщение об ошибке). Это предотвращает каскадные циклы аварийного переключения в течение хода, в то же время давая основной модели новый шанс каждый ход.

Примеры

OpenRouter как запасной вариант для Anthropic:

model:
  provider: anthropic
  default: claude-sonnet-4-6

fallback_model:
  provider: openrouter
  model: anthropic/claude-sonnet-4

Nous Portal как запасной вариант для OpenRouter:

model:
  provider: openrouter
  default: anthropic/claude-opus-4

fallback_model:
  provider: nous
  model: nous-hermes-3

Локальная модель как резерв для облака:

fallback_model:
  provider: custom
  model: llama-3.1-70b
  base_url: http://localhost:8000/v1
  key_env: LOCAL_API_KEY

OAuth Кодекса как запасной вариант:

fallback_model:
  provider: openai-codex
  model: gpt-5.3-codex

Где работает резервный вариант

Контекст Поддерживается резервный вариант
Сеансы CLI
Шлюз обмена сообщениями (Telegram, Discord и т. д.)
Делегирование субагента ✘ (субагенты не наследуют резервную конфигурацию)
Вакансии Cron ✘ (работает с фиксированным провайдером)
Вспомогательные задачи (видение, сжатие) ✘ (используйте собственную цепочку поставщиков — см. ниже)

:::совет Для fallback_model нет переменных окружения — он настраивается исключительно через config.yaml. Это сделано намеренно: резервная конфигурация — это осознанный выбор, а не то, что устаревший экспорт оболочки должен переопределять.


Резервный вариант вспомогательной задачи

Гермес использует отдельные облегченные модели для побочных задач. Каждая задача имеет собственную цепочку разрешения поставщика, которая действует как встроенная резервная система.

Задачи с разрешением независимого поставщика

Задача Что он делает Конфигурационный ключ
Видение Анализ изображений, скриншоты браузера auxiliary.vision
Веб-извлечение Резюме веб-страницы auxiliary.web_extract
Сжатие Сводка по сжатию контекста auxiliary.compression
Поиск сеанса Подведение итогов прошедшей сессии auxiliary.session_search
Центр навыков Поиск и открытие навыков auxiliary.skills_hub
МКП Вспомогательные операции MCP auxiliary.mcp
Одобрение Умная классификация одобрения команды auxiliary.approval
Генерация заголовков Краткое изложение названий сессий auxiliary.title_generation

Цепочка автоматического обнаружения

Если поставщик задачи установлен на "auto" (по умолчанию), Hermes пробует поставщиков по порядку, пока один из них не сработает:

Для текстовых задач (сжатие, веб-извлечение и т. д.):

OpenRouter → Nous Portal → Custom endpoint → Codex OAuth →
API-key providers (z.ai, Kimi, MiniMax, Xiaomi MiMo, Hugging Face, Anthropic) → give up

Для задач машинного зрения:

Main provider (if vision-capable) → OpenRouter → Nous Portal →
Codex OAuth → Anthropic → Custom endpoint → give up

Если разрешенный провайдер дает сбой во время вызова, Hermes также имеет внутреннюю повторную попытку: если провайдером не является OpenRouter и не установлено явное значение base_url, он пытается использовать OpenRouter в качестве резервного варианта последнего средства.

Настройка вспомогательных поставщиков

Каждую задачу можно настроить независимо в config.yaml:

auxiliary:
  vision:
    provider: "auto"              # auto | openrouter | nous | codex | main | anthropic
    model: ""                     # e.g. "openai/gpt-4o"
    base_url: ""                  # direct endpoint (takes precedence over provider)
    api_key: ""                   # API key for base_url

  web_extract:
    provider: "auto"
    model: ""

  compression:
    provider: "auto"
    model: ""

  session_search:
    provider: "auto"
    model: ""
    timeout: 30
    max_concurrency: 3
    extra_body: {}

  skills_hub:
    provider: "auto"
    model: ""

  mcp:
    provider: "auto"
    model: ""

Все вышеперечисленные задачи выполняются по одному и тому же шаблону provider/model/base_url. Сжатие контекста настраивается в auxiliary.compression:

auxiliary:
  compression:
    provider: main                                    # Same provider options as other auxiliary tasks
    model: google/gemini-3-flash-preview
    base_url: null                                    # Custom OpenAI-compatible endpoint

А резервная модель использует:

fallback_model:
  provider: openrouter
  model: anthropic/claude-sonnet-4
  # base_url: http://localhost:8000/v1               # Optional custom endpoint

Для auxiliary.session_search Hermes также поддерживает:

Пример:

auxiliary:
  session_search:
    provider: main
    model: glm-4.5-air
    max_concurrency: 2
    extra_body:
      enable_thinking: false

Если ваш провайдер не поддерживает собственное поле управления рассуждениями, совместимое с OpenAI, extra_body не поможет в этой части; в этом случае max_concurrency по-прежнему полезен для уменьшения количества 429 пакетов запросов.

Все три — вспомогательный, сжатый, резервный — работают одинаково: установите provider, чтобы выбрать, кто будет обрабатывать запрос, model, чтобы выбрать модель, и base_url, чтобы указать на пользовательскую конечную точку (переопределяет поставщика).

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

Эти параметры применимы только к конфигурациям auxiliary:, compression: и fallback_model:"main" не допустимое значение для model.provider верхнего уровня. Для пользовательских конечных точек используйте provider: custom в разделе model: (см. Поставщики AI).

Провайдер Описание Требования
"auto" Пробуйте поставщиков по порядку, пока один из них не заработает (по умолчанию) Настроен хотя бы один провайдер
"openrouter" Принудительно открыть OpenRouter OPENROUTER_API_KEY
"nous" Портал Форс Ноус hermes auth
"codex" Принудительный кодекс OAuth hermes model → Кодекс
"main" Используйте любого поставщика, который использует основной агент (только вспомогательные задачи) Активный основной провайдер настроен
"anthropic" Сила антропного родного ANTHROPIC_API_KEY или учетные данные Клода Кода

Прямое переопределение конечной точки

Для любой вспомогательной задачи установка base_url полностью обходит разрешение провайдера и отправляет запросы непосредственно в эту конечную точку:

auxiliary:
  vision:
    base_url: "http://localhost:1234/v1"
    api_key: "local-key"
    model: "qwen2.5-vl"

base_url имеет приоритет над provider. Hermes использует настроенный api_key для аутентификации, возвращаясь к OPENAI_API_KEY, если он не установлен. Он не повторно использует OPENROUTER_API_KEY для пользовательских конечных точек.


Резервное сжатие контекста

Сжатие контекста использует блок конфигурации auxiliary.compression для управления тем, какая модель и поставщик обрабатывают суммирование:

auxiliary:
  compression:
    provider: "auto"                              # auto | openrouter | nous | main
    model: "google/gemini-3-flash-preview"

ℹ️ Info

Устаревшая миграция Старые конфигурации с `compression.summary_model` / `compression.summary_provider` / `compression.summary_base_url` автоматически переносятся в `auxiliary.compression.*` при первой загрузке (версия конфигурации 17).

Если ни один поставщик не доступен для сжатия, Hermes пропускает промежуточные разговоры, не создавая сводку, вместо того, чтобы завершить сеанс.


Переопределение поставщика делегирования

Субагенты, порожденные delegate_task, не используют основную резервную модель. Однако их можно перенаправить к другой паре поставщик:модель для оптимизации затрат:

delegation:
  provider: "openrouter"                      # override provider for all subagents
  model: "google/gemini-3-flash-preview"      # override model
  # base_url: "http://localhost:1234/v1"      # or use a direct endpoint
  # api_key: "local-key"

Полную информацию о конфигурации см. в разделе Делегирование субагента.


Поставщики заданий Cron

Задания Cron выполняются с любым поставщиком, настроенным во время выполнения. Они не поддерживают резервную модель. Чтобы использовать другого поставщика для заданий cron, настройте переопределения provider и model в самом задании cron:

cronjob(
    action="create",
    schedule="every 2h",
    prompt="Check server status",
    provider="openrouter",
    model="google/gemini-3-flash-preview"
)

Полную информацию о конфигурации см. в разделе Запланированные задачи (Cron).


Резюме

Особенность Резервный механизм Расположение конфигурации
Модель главного агента fallback_model в config.yaml — пошаговое переключение при ошибках (первичное восстановление каждый ход) fallback_model: (верхний уровень)
Видение Цепочка автоопределения + внутренняя повторная попытка OpenRouter auxiliary.vision
Веб-извлечение Цепочка автоопределения + внутренняя повторная попытка OpenRouter auxiliary.web_extract
Сжатие контекста Цепочка автоматического обнаружения, в случае недоступности сводки становится недействительной auxiliary.compression
Поиск сеанса Цепь автоматического обнаружения auxiliary.session_search
Центр навыков Цепь автоматического обнаружения auxiliary.skills_hub
Помощники MCP Цепь автоматического обнаружения auxiliary.mcp
Классификация одобрения Цепь автоматического обнаружения auxiliary.approval
Генерация титулов Цепь автоматического обнаружения auxiliary.title_generation
Делегация Только переопределение поставщика (без автоматического перехода на резервный вариант) delegation.provider / delegation.model
Вакансии Cron Переопределение только поставщика для каждого задания (без автоматического возврата) По каждому заданию provider / model