Агент Гермес имеет три уровня отказоустойчивости, которые применяются на вашей сессии в рабочем состоянии при решении проблем у провайдеров:
Пулы учётных данных — ротация между последовательностями API-ключами для одного и того же провайдера (проверяется в первую очередь)
Резервная базовая модель — автоматически переключается на другого провайдера:модель, когда ваша базовая модель выходит из строя.
Резервная вспомогательная задача — независимо от разрешения провайдера для решения задач, таких как видение, сжатие и извлечение из веба.
Пулы учётных данных обрабатывают ротацию в рамках одного провайдера (например, несколько ключей OpenRouter). На этой странице говорится о переключении между провайдерами. Оба механизма опциональны и работают независимо.
Резервная базовая модель
Когда ваш основной LLM-провайдер сталкивается с ошибками — ограничениями скорости, перегрузкой сервера, аутентификацией, обрывами соединений — Hermes может автоматически переключаться на резервную пару провайдер:модель в середине сессии без потери вашего разговора.
Конфигурация
Самый простой путь — интерактивный менеджер:
hermesfallback
«Резервный вариант Гермеса» повторно использует выбор провайдера из «модели Гермеса» — тот же список провайдеров, с тем же запросом учётных данных и той же проверкой. Используйте подкоманды «добавить», «список» (псевдоним «ls»), «удалить» (псевдоним «rm») и «очистить» для управления цепочкой. Изменения представлены в списке верхних уровней fallback_providers: в config.yaml.
Если вы предпочитаете сохранять YAML напрямую, используйте раздел fallback_model в ~/.hermes/config.yaml:
Оба поля провайдер и модельобязательны. Если что-либо из них отсутствует, резервный механизм отключается.::: обратите внимание на fallback_model и fallback_providersfallback_model (единственное число) — это постоянный ключ одного резерва — Гермес ещё поддерживает его для обратной совместимости. fallback_providers (множественное число, список) поддерживает несколько резервов, пробуждаемых по порядку; Hermes Fallback записывается в этот ключ. При установке обоих Hermes решает их, причём fallback_providers имеет приоритет.
Поддерживаемые провайдеры
Провайдер
Значение
Требования
AI-шлюз
ай-шлюз
AI_GATEWAY_API_KEY
OpenRouter
openrouter
OPENROUTER_API_KEY
Ноус Портал
нус
hermes auth (OAuth)
Кодекс OpenAI
openai-кодекс
модель Гермеса (ChatGPT OAuth)
Второй пилот GitHub
второй пилот
COPILOT_GITHUB_TOKEN, GH_TOKEN или GITHUB_TOKEN
GitHub Copilot ACP
второй пилот-acp
Внешний процесс (интеграция с редактором)
Антропный
антропный
ANTHROPIC_API_KEY или учётные данные Claude Code
z.ai / ГЛМ
зай
GLM_API_KEY
Кими / Муншот
кими-кодирование
KIMI_API_KEY
МиниМакс
минимакс
MINIMAX_API_KEY
МиниМакс (Китай)
минимакс-сп
MINIMAX_CN_API_KEY
ДипСик
глубокий поиск
DEEPSEEK_API_KEY
NVIDIA НИМ
нвидиа
NVIDIA_API_KEY (опционально: NVIDIA_BASE_URL)
Облако GMI
гми
GMI_API_KEY (опционально: GMI_BASE_URL)
СтепФун
степное развлечение
STEPFUN_API_KEY (опционально: STEPFUN_BASE_URL)
Оллама Облако
оллама-облако
OLLAMA_API_KEY
Google Близнецы (OAuth)
google-gemini-cli
модель Гермеса (Google OAuth; опционально: HERMES_GEMINI_PROJECT_ID)
Google AI Studio
близнецы
GOOGLE_API_KEY (псевдоним: GEMINI_API_KEY)
xAI (Грок)
xai (псевдоним grok)
XAI_API_KEY (опционально: XAI_BASE_URL)
Основа AWS
основа
Стандартная аутентификация boto3 (AWS_REGION + AWS_PROFILE или AWS_ACCESS_KEY_ID)
Портал Квен (OAuth)
qwen-oauth
модель Гермеса (Qwen Portal OAuth; опционально: HERMES_QWEN_BASE_URL)
МиниМакс (OAuth)
минимакс-oauth
модель Гермеса (портал MiniMax OAuth)
OpenCode Дзен
opencode-zen
OPENCODE_ZEN_API_KEY
OpenCode Go
opencode-go
OPENCODE_GO_API_KEY
Код килограмма
килокод
KILOCODE_API_KEY
Сяоми МиМо
сяоми
XIAOMI_API_KEY
Арси AI
арси
ARCEEAI_API_KEY
Облако GMI
гми
GMI_API_KEY
Алибаба / DashScope
алибаба
DASHSCOPE_API_KEY
План кодирования Alibaba
алибаба-план-кодирования
ALIBABA_CODING_PLAN_API_KEY (возвращается к DASHSCOPE_API_KEY)
Кими / Moonshot (Китай)
кими-кодирование-cn
KIMI_CN_API_KEY
СтепФун
степное развлечение
STEPFUN_API_KEY
Tencent TokenHub
tencent-tokenhub
TOKENHUB_API_KEY
Лаборатория искусственного интеллекта Azure
лазурь-литейная
AZURE_FOUNDRY_API_KEY + AZURE_FOUNDRY_BASE_URL
LM Студия (локальный)
lmstudio
LM_API_KEY (или ничего для локального) + LM_BASE_URL
Обнимающее лицо
обнимающее
HF_TOKEN
Пользовательская конечная точка
обычай
base_url + key_env (см. ниже)
Резервная пользовательская конечная точка
Для пользовательской конечной точки, совместимой с OpenAI, тегами base_url и опционально key_env:
fallback_model:provider:custommodel:my-local-modelbase_url:http://localhost:8000/v1key_env:MY_LOCAL_KEY# имя переменной окружения, содержащей API-ключ
Когда выполняется резерв
Резервный механизм активируется автоматически, когда базовая модель выходит из строя:
Ограничения скорости (HTTP 429) — после исчерпания маршрута повторения
Некорректные ответы — когда API многократно возвращает некорректированные или пустые ответы.
При внедрении Гермес:
Разрешает учётные данные для резервного провайдера.
Строить новый API-клиент
Заменяет модель, провайдера и клиента на месте.
Сбрасывает счётчик повторных измерений и продолжает разговор.
Переключение происходит бесшовно — история разговора, инструменты вызова и контекст управления. Агент продолжил с того места, где остановился, просто используя другую модель.
ℹ️ Info
Пошагово, а не по сессии
Резервный механизм применяется на этом этапе: каждое новое сообщение пользователя начинается с восстановления основной модели. Если базовая модель выходит из строя на среднем этапе, резерв активируется только для этого этапа. На следующее утро Hermes снова пробует основную модель. В пределах одного шага резерв активируется не более одного раза — если резерв также выходит из строя, вступает в силу обычная обработка ошибок (повторные попытки, а затем сообщение об ошибках). Это наши каскадные циклы переключения в этом шаге, которые предоставляют основные модели для каждого шага.
Шлюз обмена сообщениями (Telegram, Discord и т.д.)
✔
Делегирование подагентам
✘ (подагенты не имеют резервной конфигурации)
Cron-задачи
✘ (работают со стационарным провайдером)
Вспомогательные задачи (зрение, сжатие)
✘ (используют свою собственную цепочку провайдеров — см. ниже)
Для fallback_model нет ограничения окружения — это делается исключительно через config.yaml. Это сделано намеренно: включение резерва — это осознанный выбор, а не то, что следует переопределять условия соблюдения экспортных мер.
---
Резерв вспомогательных задач
Гермес использует легкие модели для решения задач. Каждая задача имеет свою собственную цепочку разрешения провайдера, которая действует как встроенная резервная система.
Задачи с независимым развитым провайдером
Задача
Что делает
Ключ конфигурации
Видение
Анализ изображений, скриншоты браузера
вспомогательное.видение
Веб-извлечение
Суммирование веб-страниц
auxiliary.web_extract
Сжатие
Сводки сжатия контекста
вспомогательное.сжатие
Поиск сеанса
Подведение итогов прошедших сессий
auxiliary.session_search
Центр навыков
Поиск и обнаружение навыков
auxiliary.skills_hub
МКП
Вспомогательные операции MCP
вспомогательный.mcp
Одобрение
Умная классификация одобрения команды
вспомогательное.утверждение
Генерация заголовков
Сводки заголовков сессий
auxiliary.title_генерация
Спецификатор сортировки
hermes kanban укажите / кнопка ✨ в панели — превращает однострочную задачу триажа в индивидуальную спецификацию
auxiliary.triage_specifier
Цепочка автообнаружения
Когда задача провайдера установлена в режиме "авто" (по умолчанию), Hermes пробует провайдеров по порядку, пока один не сработает:
Для текстовых задач (сжатие, извлечение из веба и т.д.):
OpenRouter → Nous Portal → Пользовательская конечная точка → Codex OAuth →
API-ключевые провайдеры (z.ai, Kimi, MiniMax, Xiaomi MiMo, Hugging Face, Anthropic) → сдаться
Для видения задачи:
Основной провайдер (если поддерживает vision) → OpenRouter → Nous Portal →
Codex OAuth → Anthropic → Пользовательская конечная точка → сдаться
Если разрешённый провайдер выходит из строя во время вызова, Hermes также имеет внутреннюю повторную точку: если провайдер не OpenRouter и не установлен явный base_url, он пробует OpenRouter как резерв в любой очереди.
Настройка вспомогательных провайдеров
Каждая задача может быть настроена независимо в config.yaml:
auxiliary:vision:provider:"auto"# auto | openrouter | nous | codex | main | anthropicmodel:""# например, "openai/gpt-4o"base_url:""# прямая конечная точка (имеет приоритет над provider)api_key:""# API-ключ для base_urlweb_extract:provider:"auto"model:""compression:provider:"auto"model:""session_search:provider:"auto"model:""timeout:30max_concurrency:3extra_body:{}skills_hub:provider:"auto"model:""mcp:provider:"auto"model:""
Каждая задача выше следует такому же шаблону provider/model/base_url. Сжатие контекста вреда в разделе auxiliary.compression:
auxiliary:compression:provider:main# Те же опции провайдера, что и для других вспомогательных задачmodel:google/gemini-3-flash-previewbase_url:null# Пользовательская конечная точка, совместимая с OpenAI
Резервная модель использует:
fallback_model:provider:openroutermodel:anthropic/claude-sonnet-4# base_url: http://localhost:8000/v1 # Опциональная пользовательская конечная точка
Для auxiliary.session_search Hermes также поддерживает:
max_concurrency для ограничений количества одновременно проводимых сводных сессий.
extra_body для передачи специфических для провайдера запросов запросов, совместимых с OpenAI, в вызовах суммирования
Если ваш провайдер не поддерживает нативное поле управления рассуждением, совместимое с OpenAI, extra_body не поможет в этой части; в данном случае max_concurrency всё ещё использовалось для главного всплесков запроса 429.
Все три — вспомогательные, сжатие, резерв — работают одинаково: установите «провайдер», чтобы выбрать, кто обрабатывает запрос, «модель», чтобы выбрать модель, и «base_url», чтобы указать пользовательскую конечную точку (переопределяет провайдера).
Опции провайдера для вспомогательных задач
Эти варианты применяются только к настройкам auxiliary:, compression: и fallback_model: — "main"не является допустимым значением для вашего model.provider верхнего уровня. Для конечных точек используйте provider: custom в вашем разделе model: (см. AI-провайдеры).
Провайдер
Описание
Требования
"авто"
Пробовать провайдеров по порядку, пока один не сработает (по умолчанию)
Хотя бы один провайдер настроения
"openrouter"
Принудительно OpenRouter
OPENROUTER_API_KEY
"нус"
Принудительно наш портал
гермес авт
"кодекс"
Принудительно Кодекс OAuth
модель Гермеса → Кодекс
"главный"
Используйте того же провайдера, что и основной агент (только для вспомогательных задач)
Активный основной провайдер настроения
"антропный"
Принудительный антропный
ANTHROPIC_API_KEY или учётные данные Claude Code
Прямое переопределение конечной точки
Для любой вспомогательной задачи установка base_url обходит разрешение провайдера и отправляет запрос напрямую на эту конечную точку:
base_url имеет приоритет над provider. Гермес использует настроенный api_key для аутентификации, возвращаясь к OPENAI_API_KEY, если он не установлен. Он не повторно использует OPENROUTER_API_KEY для конечных конечных точек.
Резервное сжатие контекста
Сжатие контекста использует блок-конфигурацию auxiliary.compression для управления темой, какая модель и провайдер обрабатывают суммирование:
auxiliary:compression:provider:"auto"# auto | openrouter | nous | mainmodel:"google/gemini-3-flash-preview"```<div class="admonition admonition-info"><p class="admonition-title">ℹ️ Info</p> Миграция конфиденциальных настроекСтарые конфигурации с `compression.summary_model` / `compression.summary_provider` / `compression.summary_base_url` автоматически переносятся в `auxiliary.compression.*` при первом компоненте (версия конфигурации 17).</div>Если для снижения недоступен ни один из провайдеров, Гермес отбрасывает промежуточные шаги разговора без создания сводки, и не завершает сессию с ошибкой.---## Переопределение провайдера делегированияПодагенты, порождённые `delegate_task`, **не** используют резервную базовую модель. Однако они могут быть направлены на другого провайдера: модель для оптимизации затрат:```yamldelegation:provider:"openrouter"# переопределить провайдера для всех подагентовmodel:"google/gemini-3-flash-preview"# переопределить модель# base_url: "http://localhost:1234/v1" # или использовать прямую конечную точку# api_key: "local-key"
Cron-задачи выполняются с тем провайдером, который настроен на данный момент. Они не используют резервную модель. Чтобы использовать другого провайдера для задачи cron, настройте переопределение provider и model для самой cron-задачи:
cronjob(action="create",schedule="every 2h",prompt="Проверить статус сервера",provider="openrouter",model="google/gemini-3-flash-preview")