Поставщики ИИ

На этой странице описана настройка поставщиков логических выводов для агента Hermes — от облачных API, таких как OpenRouter и Anthropic, до самостоятельных конечных точек, таких как Ollama и vLLM, а также расширенных конфигураций маршрутизации и резервных конфигураций. Вам нужен хотя бы один провайдер, настроенный для использования Hermes.

Поставщики выводов

Вам нужен хотя бы один способ подключения к LLM. Используйте «модель Hermesа» для интерактивного переключения поставщиков и моделей или настройте напрямую:

Провайдер Настройка
Портал Ноус модель Hermesа (OAuth, на основе подписки)
Кодекс OpenAI модель Hermesа (ChatGPT OAuth, использует модели Кодекса)
Второй пилот GitHub модель Hermesа (поток кода устройства OAuth, COPILOT_GITHUB_TOKEN, GH_TOKEN или gh auth token)
GitHub Copilot ACP модель Hermesа (порождает локальный второй пилот --acp --stdio)
Антропный модель Hermesа (Клод Макс + дополнительные кредиты на использование через OAuth; также поддерживает ключ Anthropic API или токен ручной настройки — см. примечание ниже)
OpenRouter OPENROUTER_API_KEY в ~/.hermes/.env
НовитаАИ NOVITA_API_KEY в ~/.hermes/.env (поставщик: novita, более 90 моделей, оплата по факту использования)
Шлюз искусственного интеллекта AI_GATEWAY_API_KEY в ~/.hermes/.env (поставщик: ai-gateway)
z.ai / GLM GLM_API_KEY в ~/.hermes/.env (поставщик: zai)
Кими / Муншот KIMI_API_KEY в ~/.hermes/.env (поставщик: kimi-coding)
Кими / Муншот (Китай) KIMI_CN_API_KEY в ~/.hermes/.env (поставщик: kimi-coding-cn; псевдонимы: kimi-cn, moonshot-cn)
Арси ИИ ARCEEAI_API_KEY в ~/.hermes/.env (поставщик: arcee; псевдонимы: arcee-ai, arceeai)
Облако GMI GMI_API_KEY в ~/.hermes/.env (поставщик: gmi; псевдонимы: gmi-cloud, gmicloud)
МиниМакс MINIMAX_API_KEY в ~/.hermes/.env (поставщик: minimax)
МиниМакс Китай MINIMAX_CN_API_KEY в ~/.hermes/.env (поставщик: minimax-cn)
Облако Алибаба DASHSCOPE_API_KEY в ~/.hermes/.env (поставщик: alibaba)
План кодирования Alibaba DASHSCOPE_API_KEY (поставщик: alibaba-coding-plan, псевдоним: alibaba_coding) — отдельный SKU для выставления счетов, другая конечная точка
Код килограмма KILOCODE_API_KEY в ~/.hermes/.env (поставщик: kilocode)
Xiaomi MiMo XIAOMI_API_KEY в ~/.hermes/.env (поставщик: xiaomi, псевдонимы: mimo, xiaomi-mimo)
Tencent TokenHub TOKENHUB_API_KEY в ~/.hermes/.env (поставщик: tencent-tokenhub, псевдонимы: tencent, tokenhub, tencentmaas)
OpenCode Дзен OPENCODE_ZEN_API_KEY в ~/.hermes/.env (поставщик: opencode-zen)
OpenCode Go OPENCODE_GO_API_KEY в ~/.hermes/.env (поставщик: opencode-go)
Глубокий поиск DEEPSEEK_API_KEY в ~/.hermes/.env (поставщик: deepseek)
Обнимающее лицо HF_TOKEN в ~/.hermes/.env (поставщик: huggingface, псевдонимы: hf)
Google/Близнецы GOOGLE_API_KEY (или GEMINI_API_KEY) в ~/.hermes/.env (поставщик: gemini)
Google Gemini (OAuth) модель Hermesа → "Google Gemini (OAuth)" (поставщик: google-gemini-cli, поддерживается уровень бесплатного пользования, вход в браузер через PKCE)
ЛМ Студия модель Hermesа → "LM Studio" (поставщик: lmstudio, необязательно LM_API_KEY)
Пользовательская конечная точка модель Hermesа → выберите «Пользовательская конечная точка» (сохранено в config.yaml)

Официальный путь к ключу API см. в специальном руководстве по Google Gemini.

Псевдоним ключа модели В разделе конфигурации model: вы можете использовать default: или model: в качестве имени ключа для вашего идентификатора модели. Обе модели: {default: my-model } и model: { model: my-model } работают одинаково.

Google Gemini через OAuth (google-gemini-cli)

Поставщик google-gemini-cli использует серверную часть Google Cloud Code Assist — тот же API, который использует собственный инструмент Google Gemini-cli. Это поддерживает как бесплатный уровень (большая ежедневная квота для личных учетных записей) и платный уровень (Стандартный/Корпоративный через проект GCP).

Быстрый старт:

hermes model
# → pick "Google Gemini (OAuth)"
# → see policy warning, confirm
# → browser opens to accounts.google.com, sign in
# → done — Hermes auto-provisions your free tier on first request

По умолчанию Hermes поставляет публичный настольный OAuth-клиент Google gemini-cli — те же учетные данные, которые Google включает в свой gemini-cli с открытым исходным кодом. Рабочий стол Клиенты OAuth не являются конфиденциальными (PKCE обеспечивает безопасность). Вы не необходимо установить Gemini-cli или зарегистрировать собственный клиент GCP OAuth.

Как работает аутентификация: - Поток кода авторизации PKCE для accounts.google.com - Обратный вызов браузера по адресу http://127.0.0.1:8085/oauth2callback (с резервным временным портом, если он занят) - Токены хранятся в ~/.hermes/auth/google_oauth.json (chmod 0600, атомарная запись, межпроцессная блокировка fcntl) - Автоматическое обновление за 60 секунд до истечения срока действия. - Безголовые среды (SSH, HERMES_HEADLESS=1) → резервный режим вставки. - Дедупликация обновления в реальном времени — два одновременных запроса не будут обновляться дважды. - invalid_grant (отменено обновление) → файл учетных данных удален, пользователю предлагается повторно войти в систему

Как работает вывод: – Трафик идет на https://cloudcode-pa.googleapis.com/v1internal:generateContent. (или :streamGenerateContent?alt=sse для потоковой передачи), НЕ платная конечная точка v1beta/openai - Тело запроса упаковано {project, model, user_prompt_id, request} - messages[], tools[], tool_choice в форме OpenAI переведены на родной язык Gemini. contents[], tools[].functionDeclarations, toolConfig shape - Ответы переведены обратно в форму OpenAI, поэтому остальная часть Hermes работает без изменений.

Уровни и идентификаторы проектов:

Ваша ситуация Что делать
Личный аккаунт Google, хотите бесплатный уровень Ничего — авторизуйтесь, начните общение
Рабочая область / Стандартная / Корпоративная учетная запись Установите HERMES_GEMINI_PROJECT_ID или GOOGLE_CLOUD_PROJECT для идентификатора вашего проекта GCP
Организация, защищенная VPC-SC Hermes обнаруживает SECURITY_POLICY_VIOLATED и автоматически устанавливает стандартный уровень

На уровне бесплатного пользования проект, управляемый Google, автоматически подготавливается при первом использовании. Настройка GCP не требуется.

Мониторинг квот:

/gquota

Показывает оставшуюся квоту Code Assist для каждой модели с индикаторами выполнения:

Gemini Code Assist quota  (project: 123-abc)

  gemini-2.5-pro                      ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░   85%
  gemini-2.5-flash [input]            ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░   92%
```<div class="admonition admonition-warning"><p class="admonition-title">⚠️ Warning</p> Политический риск
Google считает использование OAuth-клиента Gemini CLI со сторонним программным обеспечением
нарушение политики. Некоторые пользователи сообщили об ограничениях учетной записи. Для минимального риска
Если у вас есть опыт, используйте вместо этого свой собственный ключ API через поставщика Gemini. Hermes показывает
предварительное предупреждение и требует явного подтверждения перед началом OAuth.</div>
**Пользовательский клиент OAuth (необязательно):**

Если вы предпочитаете зарегистрировать собственный клиент Google OAuth, например, чтобы сохранить квоту
и согласие распространяется на ваш собственный проект GCP  установите:
```bash
HERMES_GEMINI_CLIENT_ID=your-client.apps.googleusercontent.com
HERMES_GEMINI_CLIENT_SECRET=...   # optional for Desktop clients

Зарегистрируйте клиент OAuth Настольное приложение на сайте console.cloud.google.com/apis/credentials с включенным API генеративного языка.

ℹ️ Info

Примечание Кодекса Поставщик OpenAI Codex выполняет аутентификацию через код устройства (откройте URL-адрес, введите код). Hermes сохраняет полученные учетные данные в своем собственном хранилище аутентификации под ~/.hermes/auth.json и может импортировать существующие учетные данные Codex CLI из ~/.codex/auth.json, если они есть. Установка Codex CLI не требуется.:::

⚠️ Warning

Даже при использовании Nous Portal, Codex или пользовательской конечной точки некоторые инструменты (зрение, веб-суммирование, MoA) используют отдельную «вспомогательную» модель. По умолчанию (auxiliary.*.provider: "auto") Hermes направляет эти задачи в вашу основную модель чата — ту же модель, которую вы выбрали в hermes model. Вы можете переопределить каждую задачу индивидуально, чтобы перенаправить ее на более дешевую/быструю модель (например, Gemini Flash на OpenRouter) — см. Вспомогательные модели.:::

💡 Tip

Шлюз инструментов Nous Платные подписчики Nous Portal также получают доступ к Tool Gateway — веб-поиску, генерации изображений, TTS и автоматизации браузера, которые осуществляются через вашу подписку. Никаких дополнительных ключей API не требуется. Он предлагается автоматически во время установки «модели Hermesа» или включается позже с помощью «инструментов Hermesа».

Две команды для управления моделью

В Hermes есть две команды модели, которые служат разным целям:

Команда Куда бежать Что он делает
модель Hermesа Ваш терминал (вне сеанса) Мастер полной настройки — добавьте провайдеров, запустите OAuth, введите ключи API, настройте конечные точки
/модель Внутри чата Hermes Быстрое переключение между уже настроенными поставщиками и моделями

Если вы пытаетесь переключиться на провайдера, который еще не настроили (например, у вас настроен только OpenRouter и вы хотите использовать Anthropic), вам понадобится hermes model, а не /model. Сначала выйдите из сеанса (Ctrl+C или /quit), запустите модель Hermes, завершите настройку провайдера, затем начните новый сеанс.

Антропный (Родной)

Используйте модели Claude напрямую через Anthropic API — прокси-сервер OpenRouter не требуется. Поддерживает три метода аутентификации::::Осторожно. Требуются кредиты Клода Макса на «дополнительное использование». Когда вы проходите аутентификацию через hermes model → Anthropic OAuth (или через hermes auth add anthropic --type oauth), Hermes маршрутизируется как Claude Code к вашей учетной записи Anthropic. Это работает только в том случае, если вы пользуетесь планом Claude Max и приобрели дополнительные кредиты на использование. Базовый лимит плана Max (использование, включенное в Claude Code по умолчанию) не расходуется Hermes — используются только дополнительные/избыточные кредиты, которые вы добавили сверху. Подписчики Claude Pro не могут использовать этот путь.

Если у вас нет максимального количества + дополнительных кредитов, используйте вместо этого ANTHROPIC_API_KEY — запросы оплачиваются с оплатой за токен в зависимости от организации этого ключа (стандартная цена API, независимая от какой-либо подписки Claude).

# With an API key (pay-per-token)
export ANTHROPIC_API_KEY=***
hermes chat --provider anthropic --model claude-sonnet-4-6

# Preferred: authenticate through `hermes model`
# Hermes will use Claude Code's credential store directly when available
hermes model

# Manual override with a setup-token (fallback / legacy)
export ANTHROPIC_TOKEN=***  # setup-token or manual OAuth token
hermes chat --provider anthropic

# Auto-detect Claude Code credentials (if you already use Claude Code)
hermes chat --provider anthropic  # reads Claude Code credential files automatically

Когда вы выбираете Anthropic OAuth через hermes model, Hermes предпочитает собственное хранилище учетных данных Claude Code, а не копирование токена в ~/.hermes/.env. Это позволяет обновлять учетные данные Claude.

Или установите его навсегда:

model:
  provider: "anthropic"
  default: "claude-sonnet-4-6"
```:::подсказка Псевдонимы
`--provider claude` и `--provider claude-code` также работают как сокращение для `--provider anthropic`.</div>
### Второй пилот GitHub

Hermes поддерживает GitHub Copilot как первоклассного провайдера с двумя режимами:

**`copilot` — API Direct Copilot** (рекомендуется). Использует вашу подписку GitHub Copilot для доступа к моделям GPT-5.x, Claude, Gemini и другим через API Copilot.
```bash
hermes chat --provider copilot --model gpt-5.4

Параметры аутентификации (проверяются в следующем порядке):

  1. Переменная среды COPILOT_GITHUB_TOKEN.
  2. Переменная среды GH_TOKEN.
  3. Переменная среды GITHUB_TOKEN.
  4. Резервный вариант CLI gh auth token

Если токен не найден, «модель Hermes» предлагает Вход по коду устройства OAuth — тот же процесс, который используется Copilot CLI и открытым кодом.

⚠️ Warning

Типы токенов API Copilot не поддерживает классические токены личного доступа (ghp_*). Поддерживаемые типы токенов:

Тип Префикс Как получить
Токен OAuth го_ модель Hermesа → GitHub Copilot → Войти через GitHub
Мелкозернистый PAT github_pat_ Настройки GitHub → Настройки разработчика → Детализированные токены (требуется разрешение Запросы второго пилота)
Токен приложения GitHub гу_ Через установку приложения GitHub

Если ваш gh auth token возвращает токен ghp_*, вместо этого используйте hermes model для аутентификации через OAuth.:::

ℹ️ Info

Поведение аутентификации Copilot в Hermes Hermes отправляет поддерживаемый токен GitHub (gho_,github_pat_илиghu_*) непосредственно наapi.githubcopilot.comи включает заголовки, специфичные для Copilot (Editor-Version,Copilot-Integration-Id,Openai-Intent,x-initiator`).

По HTTP 401 Hermes теперь выполняет однократное восстановление учетных данных перед откатом:

  1. Повторно разрешить токен через обычную цепочку приоритетов (COPILOT_GITHUB_TOKENGH_TOKENGITHUB_TOKENgh auth token)
  2. Пересоберите общий клиент OpenAI с обновленными заголовками.
  3. Повторите запрос один раз.

Некоторые старые прокси-серверы сообщества используют потоки обмена api.github.com/copilot_internal/v2/token. Эта конечная точка может быть недоступна для некоторых типов учетных записей (возвращает 404). Поэтому Hermes сохраняет прямую аутентификацию по токену в качестве основного пути и полагается на обновление учетных данных во время выполнения + повторную попытку для обеспечения надежности.

Маршрутизация API: модели GPT-5+ (кроме gpt-5-mini) автоматически используют API ответов. Все остальные модели (GPT-4o, Claude, Gemini и т. д.) используют завершение чата. Модели автоматически определяются из актуального каталога Copilot.

copilot-acp — серверная часть агента Copilot ACP. Создает локальный CLI Copilot как подпроцесс:

hermes chat --provider copilot-acp --model copilot-acp
# Requires the GitHub Copilot CLI in PATH and an existing `copilot login` session

Постоянная конфигурация:

model:
  provider: "copilot"
  default: "gpt-5.4"
Переменная среды Описание
COPILOT_GITHUB_TOKEN Токен GitHub для API Copilot (первый приоритет)
HERMES_COPILOT_ACP_COMMAND Переопределить двоичный путь CLI Copilot (по умолчанию: copilot)
HERMES_COPILOT_ACP_ARGS Переопределить аргументы ACP (по умолчанию: --acp --stdio)

Первоклассные поставщики ключей API

Эти поставщики имеют встроенную поддержку с выделенными идентификаторами поставщиков. Установите ключ API и используйте --provider, чтобы выбрать:

# z.ai / ZhipuAI GLM
hermes chat --provider zai --model glm-5
# Requires: GLM_API_KEY in ~/.hermes/.env

# Kimi / Moonshot AI (international: api.moonshot.ai)
hermes chat --provider kimi-coding --model kimi-for-coding
# Requires: KIMI_API_KEY in ~/.hermes/.env

# Kimi / Moonshot AI (China: api.moonshot.cn)
hermes chat --provider kimi-coding-cn --model kimi-k2.5
# Requires: KIMI_CN_API_KEY in ~/.hermes/.env

# MiniMax (global endpoint)
hermes chat --provider minimax --model MiniMax-M2.7
# Requires: MINIMAX_API_KEY in ~/.hermes/.env

# MiniMax (China endpoint)
hermes chat --provider minimax-cn --model MiniMax-M2.7
# Requires: MINIMAX_CN_API_KEY in ~/.hermes/.env

# Alibaba Cloud / DashScope (Qwen models)
hermes chat --provider alibaba --model qwen3.5-plus
# Requires: DASHSCOPE_API_KEY in ~/.hermes/.env

# Xiaomi MiMo
hermes chat --provider xiaomi --model mimo-v2-pro
# Requires: XIAOMI_API_KEY in ~/.hermes/.env

# Tencent TokenHub (Hy3 Preview)
hermes chat --provider tencent-tokenhub --model hy3-preview
# Requires: TOKENHUB_API_KEY in ~/.hermes/.env

# Arcee AI (Trinity models)
hermes chat --provider arcee --model trinity-large-thinking
# Requires: ARCEEAI_API_KEY in ~/.hermes/.env

# GMI Cloud
# Use the exact model ID returned by GMI's /v1/models endpoint.
hermes chat --provider gmi --model zai-org/GLM-5.1-FP8
# Requires: GMI_API_KEY in ~/.hermes/.env

Или навсегда установите провайдера в config.yaml:

model:
  provider: "gmi"
  default: "zai-org/GLM-5.1-FP8"

Базовые URL-адреса можно переопределить с помощью переменных среды GLM_BASE_URL, KIMI_BASE_URL, MINIMAX_BASE_URL, MINIMAX_CN_BASE_URL, DASHSCOPE_BASE_URL, XIAOMI_BASE_URL, GMI_BASE_URL или TOKENHUB_BASE_URL.:::Примечание: Автоматическое обнаружение конечной точки Z.AI При использовании поставщика Z.AI/GLM Hermes автоматически проверяет несколько конечных точек (глобальные, китайские, варианты кодирования), чтобы найти ту, которая принимает ваш ключ API. Вам не нужно устанавливать GLM_BASE_URL вручную — рабочая конечная точка обнаруживается и кэшируется автоматически.

xAI (Grok) — API ответов + кэширование подсказок

xAI подключен через API ответов (транспорт codex_responses) для поддержки автоматического рассуждения в моделях Grok 4 — параметрreasoning_effort не требуется, сервер рассуждает по умолчанию. Установите XAI_API_KEY в ~/.hermes/.env и выберите xAI в hermes model или добавьте grok как ярлык в /model grok-4-1-fast-reasoning.

При использовании xAI в качестве провайдера (любой базовый URL-адрес, содержащий x.ai), Hermes автоматически включает кэширование запросов, отправляя заголовок x-grok-conv-id с каждым запросом API. Это направляет запросы на один и тот же сервер в рамках сеанса разговора, позволяя инфраструктуре xAI повторно использовать кэшированные системные подсказки и историю разговоров.

Никакой настройки не требуется — кэширование активируется автоматически, когда обнаруживается конечная точка xAI и доступен идентификатор сеанса. Это уменьшает задержку и стоимость многооборотных разговоров.

xAI также предоставляет выделенную конечную точку TTS (/v1/tts). Выберите xAI TTS в hermes Tools → Голос и TTS или просмотрите страницу Голос и TTS для настройки.

Ollama Cloud — управляемые модели Ollama, OAuth + ключ API

Ollama Cloud содержит тот же открытый каталог, что и локальный Ollama, но без требований к графическому процессору. Выберите его в hermes model как Ollama Cloud, вставьте свой ключ API с ollama.com/settings/keys, и Hermes автоматически обнаружит доступные модели.

hermes model
# → pick "Ollama Cloud"
# → paste your OLLAMA_API_KEY
# → select from discovered models (gpt-oss:120b, glm-4.6:cloud, qwen3-coder:480b-cloud, etc.)

Или напрямую config.yaml:

model:
  provider: "ollama-cloud"
  default: "gpt-oss:120b"

Каталог моделей динамически извлекается с сайта ollama.com/v1/models и кэшируется на один час. Обозначение model:tag (например, qwen3-coder:480b-cloud) сохраняется благодаря нормализации — не используйте тире.

💡 Tip

Оллама Клауд против местной Олламы Оба используют один и тот же OpenAI-совместимый API. Облако — первоклассный провайдер (--provider ollama-cloud, OLLAMA_API_KEY); локальный Ollama доступен через поток пользовательской конечной точки (базовый URL-адрес http://localhost:11434/v1, без ключа). Используйте облако для больших моделей, которые невозможно запустить локально; используйте local для конфиденциальности или работы в автономном режиме.

Основа AWS

Anthropic Claude, Amazon Nova, DeepSeek v3.2, Meta Llama 4 и другие модели через AWS Bedrock. Использует цепочку учетных данных AWS SDK («boto3») — без ключа API, только стандартная аутентификация AWS.

# Simplest — named profile in ~/.aws/credentials
hermes chat --provider bedrock --model us.anthropic.claude-sonnet-4-6

# Or with explicit env vars
AWS_PROFILE=myprofile AWS_REGION=us-east-1 hermes chat --provider bedrock --model us.anthropic.claude-sonnet-4-6

Или навсегда в config.yaml:

model:
  provider: "bedrock"
  default: "us.anthropic.claude-sonnet-4-6"
bedrock:
  region: "us-east-1"          # or set AWS_REGION
  # profile: "myprofile"       # or set AWS_PROFILE
  # discovery: true            # auto-discover region from IAM
  # guardrail:                 # optional Bedrock Guardrails
  #   guardrail_identifier: "your-guardrail-id"
  #   guardrail_version: "DRAFT"

Для аутентификации используется стандартная цепочка boto3: явный AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY, AWS_PROFILE из ~/.aws/credentials, роль IAM на EC2/ECS/Lambda, IMDS или SSO. Переменная env var не требуется, если вы уже прошли аутентификацию с помощью AWS CLI.

Bedrock использует Converse API под капотом — запросы преобразуются в независимую от модели форму Bedrock, поэтому одна и та же конфигурация работает для моделей Claude, Nova, DeepSeek и Llama. Установите BEDROCK_BASE_URL только в том случае, если вы вызываете региональную конечную точку, отличную от стандартной.

См. Руководство по AWS Bedrock, где описано, как настроить IAM, выбрать регион и сделать межрегиональный анализ.

Портал Квен (OAuth)

Портал Qwen от Alibaba с входом в систему OAuth на основе браузера. Выберите Qwen OAuth (Портал) в модели Hermes, войдите в систему через браузер, и Hermes сохранит токен обновления.

hermes model
# → pick "Qwen OAuth (Portal)"
# → browser opens; sign in with your Alibaba account
# → confirm — credentials are saved to ~/.hermes/auth.json

hermes chat   # uses portal.qwen.ai/v1 endpoint

Или настройте config.yaml:

model:
  provider: "qwen-oauth"
  default: "qwen3-coder-plus"

Установите HERMES_QWEN_BASE_URL только в том случае, если конечная точка портала перемещается (по умолчанию: https://portal.qwen.ai/v1).:::подсказка Qwen OAuth против DashScope (Alibaba) qwen-oauth использует портал Qwen, ориентированный на потребителя, с входом в систему OAuth, что идеально подходит для отдельных пользователей. Поставщик alibaba использует корпоративный API DashScope с DASHSCOPE_API_KEY — идеально подходит для программных/производственных рабочих нагрузок. Оба маршрутизируются к моделям семейства Qwen, но живут в разных конечных точках.

План кодирования Alibaba

Если вы подписаны на План кодирования Alibaba (ценовой SKU, отдельный от стандартного доступа к DashScope API), Hermes предоставляет его как своего собственного первоклассного поставщика: «alibaba-coding-plan». Конечная точка: https://coding-intl.dashscope.aliyuncs.com/v1. Он совместим с OpenAI, как и обычный поставщик «alibaba», но с другим базовым URL-адресом и платежной системой.

model:
  provider: alibaba_coding     # alias for alibaba-coding-plan
  model: qwen3-coder-plus

Или из CLI:

hermes chat --provider alibaba_coding --model qwen3-coder-plus

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

МиниМакс (OAuth)

MiniMax-M2.7 через вход в браузер по OAuth — ключ API не требуется. Выберите MiniMax (OAuth) в модели Hermes, войдите в систему через браузер, и Hermes сохранит токены доступа и обновления. Использует конечную точку, совместимую с Anthropic Messages (/anthropic).

hermes model
# → pick "MiniMax (OAuth)"
# → browser opens; sign in with your MiniMax account (global or CN region)
# → confirm — credentials are saved to ~/.hermes/auth.json

hermes chat   # uses api.minimax.io/anthropic endpoint

Или настройте config.yaml:

model:
  provider: "minimax-oauth"
  default: "MiniMax-M2.7"

Поддерживаемые модели: MiniMax-M2.7 (основная) и MiniMax-M2.7-highspeed (подключается как вспомогательная модель по умолчанию). Путь OAuth игнорирует MINIMAX_API_KEY или MINIMAX_BASE_URL.

💡 Tip

MiniMax OAuth против ключа API minimax-oauth использует портал MiniMax, ориентированный на потребителя, с входом в систему OAuth — настройка выставления счетов не требуется. Поставщики minimax и minimax-cn используют MINIMAX_API_KEY/MINIMAX_CN_API_KEY — для программного доступа. Подробное описание см. в Руководстве MiniMax OAuth.

NVIDIA НИМ

Nemotron и другие модели с открытым исходным кодом через build.nvidia.com (бесплатный ключ API) или локальную конечную точку NIM.

# Cloud (build.nvidia.com)
hermes chat --provider nvidia --model nvidia/nemotron-3-super-120b-a12b
# Requires: NVIDIA_API_KEY in ~/.hermes/.env

# Local NIM endpoint — override base URL
NVIDIA_BASE_URL=http://localhost:8000/v1 hermes chat --provider nvidia --model nvidia/nemotron-3-super-120b-a12b

Или установите его навсегда в config.yaml:

model:
  provider: "nvidia"
  default: "nvidia/nemotron-3-super-120b-a12b"
```<div class="admonition admonition-tip"><p class="admonition-title">💡 Tip</p> Местный NIM
Для локальных развертываний (DGX Spark, локальный графический процессор) установите `NVIDIA_BASE_URL=http://localhost:8000/v1`. NIM предоставляет тот же OpenAI-совместимый API завершения чата, что и build.nvidia.com, поэтому переключение между облачным и локальным режимами — это однострочное изменение env-var.</div>
### Облако GMI

Открытые и логические модели через [GMI Cloud](https://www.gmicloud.ai/) — API-интерфейс, совместимый с OpenAI, аутентификация по ключу API.
```bash
# GMI Cloud
hermes chat --provider gmi --model deepseek-ai/DeepSeek-R1
# Requires: GMI_API_KEY in ~/.hermes/.env

Или установите его навсегда в config.yaml:

model:
  provider: "gmi"
  default: "deepseek-ai/DeepSeek-R1"

Базовый URL-адрес можно переопределить с помощью GMI_BASE_URL (по умолчанию: https://api.gmi-serving.com/v1).

StepFun

Модели серии Step через StepFun — OpenAI-совместимый API, аутентификация по ключу API.

# StepFun
hermes chat --provider stepfun --model step-3-mini
# Requires: STEPFUN_API_KEY in ~/.hermes/.env

Или установите его навсегда в config.yaml:

model:
  provider: "stepfun"
  default: "step-3-mini"

Базовый URL-адрес можно переопределить с помощью STEPFUN_BASE_URL (по умолчанию: https://api.stepfun.com/v1).

Поставщики вывода обнимающих лиц

Поставщики Hugging Face Inference направляют к более чем 20 открытым моделям через единую конечную точку, совместимую с OpenAI (router.huggingface.co/v1). Запросы автоматически перенаправляются на самый быстрый доступный бэкэнд (Groq, Together, SambaNova и т. д.) с автоматическим переключением при сбое.

# Use any available model
hermes chat --provider huggingface --model Qwen/Qwen3-235B-A22B-Thinking-2507
# Requires: HF_TOKEN in ~/.hermes/.env

# Short alias
hermes chat --provider hf --model deepseek-ai/DeepSeek-V3.2

Или установите его навсегда в config.yaml:

model:
  provider: "huggingface"
  default: "Qwen/Qwen3-235B-A22B-Thinking-2507"

Получите свой токен по адресу huggingface.co/settings/tokens — обязательно включите разрешение «Совершать вызовы поставщикам вывода». Включен уровень бесплатного пользования (кредит в размере 0,10 доллара США в месяц, без надбавки к тарифам поставщика).

Вы можете добавить суффиксы маршрутизации к именам моделей: :fastest (по умолчанию), :cheapest или :provider_name, чтобы принудительно использовать определенный бэкенд.

Базовый URL-адрес можно переопределить с помощью HF_BASE_URL.

НовитаАИ

NovitaAI — агрегатор более 90 моделей с оплатой за использование. Получите доступ к моделям DeepSeek, Kimi, MiniMax, GLM, Qwen и других источников через единый API, совместимый с OpenAI.

# Use any available model
hermes chat --provider novita --model moonshotai/kimi-k2.5
# Requires: NOVITA_API_KEY in ~/.hermes/.env

# Short alias
hermes chat --provider novita-ai --model deepseek/deepseek-v3-0324

Или установите его навсегда в config.yaml:

model:
  provider: "novita"
  default: "moonshotai/kimi-k2.5"
  base_url: "https://api.novita.ai/openai/v1"

Получите ключ API по адресу novita.ai/settings/key-management. Базовый URL-адрес можно переопределить с помощью NOVITA_BASE_URL.

Индивидуальные и самостоятельные поставщики LLM

Агент Hermes работает с любой конечной точкой API, совместимой с OpenAI. Если на сервере реализован /v1/chat/completions, вы можете указать на него Hermes. Это означает, что вы можете использовать локальные модели, серверы вывода графического процессора, маршрутизаторы с несколькими поставщиками или любой сторонний API.

Общие настройки

Три способа настройки пользовательской конечной точки:

Интерактивная настройка (рекомендуется):

hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter: API base URL, API key, Model name

Ручная настройка (config.yaml):

# In ~/.hermes/config.yaml
model:
  default: your-model-name
  provider: custom
  base_url: http://localhost:8000/v1
  api_key: your-key-or-leave-empty-for-local
```<div class="admonition admonition-warning"><p class="admonition-title">⚠️ Warning</p> Legacy env vars
`OPENAI_BASE_URL` и `LLM_MODEL` в `.env` **удалены**. Ни один из них не читается какой-либо частью Hermes — `config.yaml` является единственным источником достоверной информации о конфигурации модели и конечной точки. Если у вас есть устаревшие записи в вашем `.env`, они автоматически удаляются при следующей `установке Hermes` или миграции конфигурации. Используйте модель Hermes или отредактируйте config.yaml напрямую.</div>
Оба подхода сохраняются в файле `config.yaml`, который является источником истинной информации о модели, поставщике и базовом URL-адресе.

### Переключение моделей с помощью `/model`::: предупреждение модели Hermesа против /model
**`hermes model`** (запускается с вашего терминала вне любого сеанса чата) — это **мастер полной настройки провайдера**. Используйте его для добавления новых поставщиков, запуска потоков OAuth, ввода ключей API и настройки пользовательских конечных точек.

**`/model`** (введенный в активном сеансе чата Hermes) может только **переключаться между поставщиками и моделями, которые вы уже настроили**. Он не может добавлять новых поставщиков, запускать OAuth или запрашивать ключи API. Если вы настроили только один провайдер (например, OpenRouter), `/model` будет отображать модели только для этого провайдера.

**Чтобы добавить нового поставщика:** Выйдите из сеанса (Ctrl+C или /quit), запустите модель Hermes, настройте нового поставщика, затем начните новый сеанс.</div>
Если у вас настроена хотя бы одна пользовательская конечная точка, вы можете переключать модели в середине сеанса:

/model custom:qwen-2.5 # Switch to a model on your custom endpoint /model custom # Auto-detect the model from the endpoint /model openrouter:claude-sonnet-4 # Switch back to a cloud provider

Если у вас настроены **именованные пользовательские поставщики** (см. ниже), используйте тройной синтаксис:

/model custom:local:qwen-2.5 # Use the "local" custom provider with model qwen-2.5 /model custom:work:llama3 # Use the "work" custom provider with llama3

При смене поставщика Hermes сохраняет базовый URL-адрес и поставщика для настройки, чтобы изменения сохранялись при перезапуске. При переключении с пользовательской конечной точки на встроенного поставщика устаревший базовый URL-адрес автоматически очищается.<div class="admonition admonition-tip"><p class="admonition-title">💡 Tip</p>
`/model custom` (пустой, без имени модели) запрашивает API `/models` вашей конечной точки и автоматически выбирает модель, если загружена ровно одна. Полезно для локальных серверов, на которых работает одна модель.</div>
Все нижеследующее следует тому же шаблону  просто измените URL-адрес, ключ и название модели.

---

### Оллама  локальные модели, нулевая конфигурация

[Ollama](https://ollama.com/) запускает модели открытого веса локально с помощью одной команды. Подходит для: быстрых локальных экспериментов, работы с конфиденциальностью, использования в автономном режиме. Поддерживает вызов инструментов через OpenAI-совместимый API.
```bash
# Install and run a model
ollama pull qwen2.5-coder:32b
ollama serve   # Starts on port 11434

Затем настройте Hermes:

hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter URL: http://localhost:11434/v1
# Skip API key (Ollama doesn't need one)
# Enter model name (e.g. qwen2.5-coder:32b)

Или настройте config.yaml напрямую:

model:
  default: qwen2.5-coder:32b
  provider: custom
  base_url: http://localhost:11434/v1
  context_length: 32768   # See warning below
```<div class="admonition admonition-warning"><p class="admonition-title">⚠️ Warning</p>. По умолчанию Оллама использует очень малую длину контекста.
По умолчанию Оллама **не** использует полное контекстное окно вашей модели. В зависимости от вашей видеопамяти по умолчанию используется следующее:

| Доступная видеопамять | Контекст по умолчанию |
||--------------------------------|
| Менее 24 ГБ | **4096 токенов** |
| 24–48 ГБ | 32 768 жетонов |
| 48+ ГБ | 256 000 жетонов |

Для использования агента с инструментами **вам необходим контекст не менее 16–32 тыс.**. В 4k только системная подсказка + схемы инструментов могут заполнить окно, не оставляя места для разговора.

**Как его увеличить** (выберите один):
```bash
# Option 1: Set server-wide via environment variable (recommended)
OLLAMA_CONTEXT_LENGTH=32768 ollama serve

# Option 2: For systemd-managed Ollama
sudo systemctl edit ollama.service
# Add: Environment="OLLAMA_CONTEXT_LENGTH=32768"
# Then: sudo systemctl daemon-reload && sudo systemctl restart ollama

# Option 3: Bake it into a custom model (persistent per-model)
echo -e "FROM qwen2.5-coder:32b\nPARAMETER num_ctx 32768" > Modelfile
ollama create qwen2.5-coder-32k -f Modelfile

Вы не можете установить длину контекста через OpenAI-совместимый API (/v1/chat/completions). Его необходимо настроить на стороне сервера или через файл модели. Это источник путаницы №1 при интеграции Ollama с такими инструментами, как Hermes. Убедитесь, что контекст настроен правильно:

ollama ps
# Look at the CONTEXT column — it should show your configured value
```<div class="admonition admonition-tip"><p class="admonition-title">💡 Tip</p>
Список доступных моделей с помощью `ollama list`. Извлеките любую модель из [библиотеки Ollama](https://ollama.com/library) с помощью `ollama pull <model>`. Ollama автоматически выполняет разгрузку графического процессора  для большинства настроек настройка не требуется.</div>
---

### vLLM — вывод высокопроизводительного графического процессора

[vLLM](https://docs.vllm.ai/)  это стандарт для обслуживания рабочих LLM. Лучше всего подходит для: максимальной пропускной способности оборудования графического процессора, обслуживания больших моделей, непрерывной пакетной обработки.
```bash
pip install vllm
vllm serve meta-llama/Llama-3.1-70B-Instruct \
  --port 8000 \
  --max-model-len 65536 \
  --tensor-parallel-size 2 \
  --enable-auto-tool-choice \
  --tool-call-parser hermes

Затем настройте Hermes:

hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter URL: http://localhost:8000/v1
# Skip API key (or enter one if you configured vLLM with --api-key)
# Enter model name: meta-llama/Llama-3.1-70B-Instruct

Длина контекста: vLLM по умолчанию считывает max_position_embeddings модели. Если это превышает объем памяти вашего графического процессора, он выдаст ошибку и попросит вас установить --max-model-len ниже. Вы также можете использовать --max-model-len auto, чтобы автоматически найти подходящий максимум. Установите --gpu-memory-utilization 0,95 (по умолчанию 0,9), чтобы втиснуть больше контекста во VRAM.

Вызов инструмента требует явных флагов:

Флаг Цель
--enable-auto-tool-choice Требуется для tool_choice: "auto" (по умолчанию в Hermes)
--tool-call-parser <имя> Парсер формата вызова инструментов модели

Поддерживаемые парсеры: Hermes (Qwen 2.5, Hermes 2/3), llama3_json (Llama 3.x), Mistral, Deepseek_v3, Deepseek_v31, xlam, Pythonic. Без этих флагов вызовы инструментов не будут работать — модель будет выводить вызовы инструментов в виде текста.

💡 Tip

vLLM поддерживает удобочитаемые размеры: --max-model-len 64k (строчные k = 1000, прописные K = 1024).


SGLang — быстрое обслуживание с помощью RadixAttention

SGLang — альтернатива vLLM с RadixAttention для повторного использования кэша KV. Лучше всего подходит для: многоходовых диалогов (кэширование префиксов), ограниченного декодирования, структурированного вывода.

pip install "sglang[all]"
python -m sglang.launch_server \
  --model meta-llama/Llama-3.1-70B-Instruct \
  --port 30000 \
  --context-length 65536 \
  --tp 2 \
  --tool-call-parser qwen

Затем настройте Hermes:

hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter URL: http://localhost:30000/v1
# Enter model name: meta-llama/Llama-3.1-70B-Instruct

Длина контекста. SGLang по умолчанию считывает данные из конфигурации модели. Используйте --context-length для переопределения. Если вам нужно превысить заявленный максимум модели, установите SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1.

Вызов инструмента: Используйте --tool-call-parser с соответствующим парсером для вашего семейства моделей: qwen (Qwen 2.5), llama3, llama4, deepseekv3, mistral, glm. Без этого флага вызовы инструментов возвращаются в виде обычного текста.::: Внимание: SGLang по умолчанию использует максимальное количество выходных токенов 128. Если ответы кажутся усеченными, добавьте к вашим запросам max_tokens или установите --default-max-tokens на сервере. По умолчанию SGLang составляет только 128 токенов на ответ, если они не указаны в запросе.


llama.cpp / llama-server — определение процессора и металла

llama.cpp запускает квантованные модели на процессорах, Apple Silicon (Metal) и потребительских графических процессорах. Лучше всего подходит для: запуска моделей без графического процессора центра обработки данных, пользователей Mac, периферийного развертывания.

# Build and start llama-server
cmake -B build && cmake --build build --config Release./build/bin/llama-server \
  --jinja -fa \
  -c 32768 \
  -ngl 99 \
  -m models/qwen2.5-coder-32b-instruct-Q4_K_M.gguf \
  --port 8080 --host 0.0.0.0

Длина контекста (-c): В последних сборках по умолчанию установлено значение 0, которое считывает контекст обучения модели из метаданных GGUF. Для моделей с обучающим контекстом 128 тыс.+ это может привести к попытке OOM выделить полный кэш KV. Явно задайте для -c то, что вам нужно (32–64 к – хороший диапазон для использования агента). При использовании параллельных слотов (-np) общий контекст делится между слотами — с -c 32768 -np 4 каждый слот получает только 8 КБ.

Затем настройте Hermes, чтобы он указывал на него:

hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter URL: http://localhost:8080/v1
# Skip API key (local servers don't need one)
# Enter model name — or leave blank to auto-detect if only one model is loaded

При этом конечная точка сохраняется в config.yaml, поэтому она сохраняется между сеансами.

⚠️ Warning

, для вызова инструмента требуется --jinja Без --jinja llama-server полностью игнорирует параметр tools. Модель попытается вызвать инструменты, написав JSON в тексте ответа, но Hermes не распознает это как вызов инструмента — вы увидите необработанный JSON, например {"name": "web_search",...}, напечатанный как сообщение вместо фактического поиска.

Встроенная поддержка вызова инструментов (наилучшая производительность): Llama 3.x, Qwen 2.5 (включая Coder), Hermes 2/3, Mistral, DeepSeek, Functionary. Все остальные модели используют общий обработчик, который работает, но может оказаться менее эффективным. Полный список см. в документации по вызову функций llama.cpp.

Вы можете убедиться, что поддержка инструмента активна, проверив http://localhost:8080/props — поле chat_template должно присутствовать.:::

💡 Tip

Загрузите модели GGUF из Hugging Face. Квантование Q4_K_M обеспечивает наилучший баланс качества и использования памяти.


LM Studio — настольное приложение с локальными моделями

LM Studio — настольное приложение для запуска локальных моделей с графическим интерфейсом. Подходит для: пользователей, предпочитающих визуальный интерфейс, быстрое тестирование моделей, разработчиков на macOS/Windows/Linux.

Запустите сервер из приложения LM Studio (вкладка «Разработчик» → «Запустить сервер») или используйте CLI:

lms server start                        # Starts on port 1234
lms load qwen2.5-coder --context-length 32768

Затем настройте Hermes:

hermes model
# Select "LM Studio"
# Press Enter to use http://localhost:1234/v1
# Pick one of the discovered models
# If LM Studio server auth is enabled, enter LM_API_KEY when prompted

Hermes автоматически загрузит модель LM Studio с длиной контекста 64 КБ.

Чтобы изменить длину контекста в LM Studio:

  1. Нажмите значок шестеренки рядом со средством выбора модели.
  2. Установите для параметра «Длина контекста» значение не менее 64000, чтобы обеспечить плавность работы.
  3. Перезагрузите модель, чтобы изменения вступили в силу.
  4. Если ваша машина не может вместить 64000, рассмотрите возможность использования модели меньшего размера с большей длиной контекста.

Альтернативно используйте CLI: lms load model-name --context-length 64000

Вы можете использовать CLI, чтобы оценить, подойдет ли модель: lms load model-name --context-length 64000 --estimate-only

Чтобы установить постоянные значения по умолчанию для каждой модели: вкладка «Мои модели» → значок шестеренки на модели → установить размер контекста.

Вызов инструмента: Поддерживается начиная с LM Studio 0.3.6. Модели со встроенным обучением использованию инструментов (Qwen 2.5, Llama 3.x, Mistral, Hermes) обнаруживаются автоматически и отображаются со значком инструмента. Другие модели используют общий запасной вариант, который может быть менее надежным.


Сеть WSL2 (пользователи Windows)

Поскольку агенту Hermes требуется среда Unix, пользователи Windows запускают его внутри WSL2. Если сервер вашей модели (Ollama, LM Studio и т. д.) работает на хосте Windows, вам необходимо устранить разрыв в сети — WSL2 использует виртуальный сетевой адаптер с собственной подсетью, поэтому localhost внутри WSL2 относится к виртуальной машине Linux, а не хосту Windows.

💡 Tip

Оба в WSL2? Без проблем. Если сервер вашей модели также работает внутри WSL2 (обычно для vLLM, SGLang и llama-server), localhost работает так, как ожидалось — они используют одно и то же сетевое пространство имен. Пропустите этот раздел.

Вариант 1: Режим зеркальной сети (рекомендуется)

Зеркальный режим, доступный в Windows 11 22H2+, позволяет локальному хосту работать в двух направлениях между Windows и WSL2 — самое простое решение.

  1. Создайте или отредактируйте %USERPROFILE%\.wslconfig (например, C:\Users\YourName\.wslconfig): ini [wsl2] networkingMode=mirrored
  2. Перезапустите WSL из PowerShell: powershell wsl --shutdown
  3. Снова откройте терминал WSL2. localhost теперь достигает служб Windows: bash curl http://localhost:11434/v1/models # Ollama on Windows — works:::обратите внимание на брандмауэр Hyper-V В некоторых сборках Windows 11 брандмауэр Hyper-V по умолчанию блокирует зеркальные соединения. Если localhost по-прежнему не работает после включения зеркального режима, запустите это в Admin PowerShell:
Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow
```</div>
#### Вариант 2. Используйте IP-адрес хоста Windows (Windows 10/более ранние сборки)

Если вы не можете использовать зеркальный режим, найдите IP-адрес хоста Windows внутри WSL2 и используйте его вместо localhost:
```bash
# Get the Windows host IP (the default gateway of WSL2's virtual network)
ip route show | grep -i default | awk '{ print $3 }'
# Example output: 172.29.192.1

Используйте этот IP в вашей конфигурации Hermes:

model:
  default: qwen2.5-coder:32b
  provider: custom
  base_url: http://172.29.192.1:11434/v1   # Windows host IP, not localhost
```<div class="admonition admonition-tip"><p class="admonition-title">💡 Tip</p> Динамический помощник
IP-адрес хоста может измениться при перезапуске WSL2. Вы можете получить его динамически в своей оболочке:
```bash
export WSL_HOST=$(ip route show | grep -i default | awk '{ print $3 }')
echo "Windows host at: $WSL_HOST"
curl http://$WSL_HOST:11434/v1/models   # Test Ollama

Или используйте имя mDNS вашего компьютера (в WSL2 требуется libnss-mdns):

sudo apt install libnss-mdns
curl http://$(hostname).local:11434/v1/models
```</div>
#### Адрес привязки сервера (требуется для режима NAT)

Если вы используете **Вариант 2** (режим NAT с IP-адресом узла), сервер модели в Windows должен принимать соединения извне «127.0.0.1». По умолчанию большинство серверов прослушивают только локальный хост  соединения WSL2 в режиме NAT поступают из другой виртуальной подсети и будут отклонены. В зеркальном режиме локальный хост сопоставляется напрямую, поэтому привязка по умолчанию 127.0.0.1 работает нормально.

| Сервер | Привязка по умолчанию | Как исправить |
|--------|-------------|------------|
| **Оллама** | `127.0.0.1` | Установите переменную среды `OLLAMA_HOST=0.0.0.0` перед запуском Ollama (Настройки системы  Переменные среды в Windows или отредактируйте службу Ollama) |
| **ЛМ Студия** | `127.0.0.1` | Включите **"Сервис по сети"** на вкладке "Разработчик"  Настройки сервера |
| **лама-сервер** | `127.0.0.1` | Добавьте `--host 0.0.0.0` в команду запуска |
| **vLLM** | `0.0.0.0` | По умолчанию уже привязывается ко всем интерфейсам |
| **СГЛанг** | `127.0.0.1` | Добавьте `--host 0.0.0.0` в команду запуска |

**Ollama для Windows (подробно):** Ollama работает как служба Windows. Чтобы установить `OLLAMA_HOST`:
1. Откройте **Свойства системы**  **Переменные среды**.
2. Добавьте новую **Системную переменную**: `OLLAMA_HOST` = `0.0.0.0`
3. Перезапустите службу Ollama (или перезагрузитесь)

#### Брандмауэр Windows

Брандмауэр Windows рассматривает WSL2 как отдельную сеть (как в режиме NAT, так и в зеркальном режиме). Если соединения по-прежнему не работают после описанных выше шагов, добавьте правило брандмауэра для порта вашей модели сервера:
```powershell
# Run in Admin PowerShell — replace PORT with your server's port
New-NetFirewallRule -DisplayName "Allow WSL2 to Model Server" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 11434

Общие порты: Ollama 11434, vLLM 8000, SGLang 30000, llama-server 8080, LM Studio 1234.

Быстрая проверка

Изнутри WSL2 проверьте, можете ли вы получить доступ к серверу вашей модели:

# Replace URL with your server's address and port
curl http://localhost:11434/v1/models          # Mirrored mode
curl http://172.29.192.1:11434/v1/models       # NAT mode (use your actual host IP)

Если вы получите ответ в формате JSON со списком ваших моделей, все в порядке. Используйте тот же URL-адрес, что и base_url в вашей конфигурации Hermes.


Устранение неполадок локальных моделей

Эти проблемы затрагивают все локальные серверы вывода при использовании с Hermes.

«Соединение отклонено» от WSL2 к серверу модели, размещенному на Windows.

Если вы используете Hermes внутри WSL2 и сервер вашей модели на хосте Windows, http://localhost:<port> не будет работать в сетевом режиме NAT WSL2 по умолчанию. Исправление см. в разделе Сеть WSL2 выше.

Вызовы инструментов отображаются в виде текста, а не выполняются

Модель выводит что-то вроде {"name": "web_search", "arguments": {...}} в виде сообщения вместо фактического вызова инструмента.

Причина: На вашем сервере не включен вызов инструментов, или модель не поддерживает его посредством реализации вызова инструментов на сервере.

Сервер Исправить
llama.cpp Добавьте --jinja в команду запуска
vLLM Добавить --enable-auto-tool-choice --tool-call-parser hermes
СГЛанг Добавьте --tool-call-parser qwen (или соответствующий парсер)
Оллама Вызов инструмента включен по умолчанию — убедитесь, что ваша модель его поддерживает (проверьте с помощью ollama show model-name)
ЛМ Студия Обновитесь до версии 0.3.6+ и используйте модель со встроенной поддержкой инструментов

Кажется, модель забывает контекст или дает бессвязные ответы

Причина: Контекстное окно слишком маленькое. Когда разговор превышает ограничение контекста, большинство серверов молча удаляют старые сообщения. Только схемы системных подсказок и инструментов Hermes могут использовать токены 4–8 тыс.

Диагноз:

# Check what Hermes thinks the context is
# Look at startup line: "Context limit: X tokens"

# Check your server's actual context
# Ollama: ollama ps (CONTEXT column)
# llama.cpp: curl http://localhost:8080/props | jq '.default_generation_settings.n_ctx'
# vLLM: check --max-model-len in startup args

Исправление: Установите для контекста значение не менее 32 768 токенов для использования агентом. См. раздел каждого сервера выше, чтобы узнать конкретный флаг.

«Ограничение контекста: 2048 токенов» при запуске

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

Исправление: Задайте это явно в config.yaml:

model:
  default: your-model
  provider: custom
  base_url: http://localhost:11434/v1
  context_length: 32768

Ответы обрезаются на полуслове

Возможные причины: 1. Низкое ограничение вывода (max_tokens) на сервере — по умолчанию SGLang составляет 128 токенов на ответ. Установите --default-max-tokens на сервере или настройте Hermes с model.max_tokens в config.yaml. Примечание. max_tokens контролирует только длину ответа — это не связано с тем, насколько длинной может быть история вашего разговора (то есть context_length). 2. Исчерпание контекста — модель заполнила контекстное окно. Увеличьте model.context_length или включите сжатие контекста в Hermes.


LiteLLM Proxy — шлюз для нескольких провайдеров

LiteLLM — это OpenAI-совместимый прокси-сервер, который объединяет более 100 поставщиков LLM под единым API. Лучше всего подходит для: переключения между провайдерами без изменения конфигурации, балансировки нагрузки, резервных цепочек, контроля бюджета.

# Install and start
pip install "litellm[proxy]"
litellm --model anthropic/claude-sonnet-4 --port 4000

# Or with a config file for multiple models:
litellm --config litellm_config.yaml --port 4000

Затем настройте Hermes с помощью hermes model → Пользовательская конечная точка → http://localhost:4000/v1.

Пример litellm_config.yaml с резервным вариантом:

model_list:
  - model_name: "best"
    litellm_params:
      model: anthropic/claude-sonnet-4
      api_key: sk-ant-...
  - model_name: "best"
    litellm_params:
      model: openai/gpt-4o
      api_key: sk-...
router_settings:
  routing_strategy: "latency-based-routing"

ClawRouter — маршрутизация с оптимизацией затрат

ClawRouter от BlockRunAI — это прокси-сервер локальной маршрутизации, который автоматически выбирает модели в зависимости от сложности запроса. Он классифицирует запросы по 14 измерениям и направляет к самой дешевой модели, способной справиться с задачей. Оплата осуществляется через криптовалюту USDC (без ключей API).

# Install and start
npx @blockrun/clawrouter    # Starts on port 8402

Затем настройте Hermes с hermes model → Пользовательская конечная точка → http://localhost:8402/v1 → имя модели blockrun/auto.

Профили маршрутизации: | Профиль | Стратегия | Экономия | |---------|----------|---------| | blockrun/авто | Сбалансированное качество/стоимость | 74-100% | | блокран/эко | Самый дешевый | 95-100% | | blockrun/премиум | Модели лучшего качества | 0% | | блокран/бесплатно | Только бесплатные модели | 100% | | blockrun/агент | Оптимизирован для использования с инструментами | варьируется |

📝 Note

Для оплаты ClawRouter требуется кошелек на Base или Solana, финансируемый в долларах США. Все запросы направляются через внутренний API BlockRun. Запустите npx @blockrun/clawrouter Doctor, чтобы проверить состояние кошелька.


Другие совместимые поставщики

Любой сервис с API-интерфейсом, совместимым с OpenAI, работает. Некоторые популярные варианты:

Провайдер Базовый URL Заметки
Вместе AI https://api.together.xyz/v1 Открытые модели, размещенные в облаке
Грок https://api.groq.com/openai/v1 Сверхбыстрый вывод
DeepSeek https://api.deepseek.com/v1 Модели DeepSeek
Фейерверк AI https://api.fireworks.ai/inference/v1 Быстрый хостинг открытой модели
Облако GMI https://api.gmi-serving.com/v1 Управляемый вывод, совместимый с OpenAI
Церебра https://api.cerebras.ai/v1 Вывод на уровне пластины
Мистраль ИИ https://api.mistral.ai/v1 Модели Мистраль
OpenAI https://api.openai.com/v1 Прямой доступ к OpenAI
Azure OpenAI https://ВАШ.openai.azure.com/ Предприятие OpenAI
LocalAI http://localhost:8080/v1 Автономный, многомодельный
Январь http://localhost:1337/v1 Настольное приложение с локальными моделями

Настройте любой из них с помощью hermes model → Пользовательская конечная точка или в config.yaml:

model:
  default: meta-llama/Llama-3.1-70B-Instruct-Turbo
  provider: custom
  base_url: https://api.together.xyz/v1
  api_key: your-together-key

Определение длины контекста

📝 Note

Две настройки, легко перепутать

context_length — это общее контекстное окно — совокупный бюджет для входных и выходных токенов (например, 200 000 для Claude Opus 4.6). Hermes использует это, чтобы решить, когда сжимать историю и проверять запросы API.

model.max_tokens — это ограничение вывода — максимальное количество токенов, которые модель может сгенерировать в одном ответе. Это не имеет никакого отношения к тому, насколько длинной может быть история вашего разговора. Стандартное имя max_tokens является частым источником путаницы; Родной API Anthropic с тех пор для ясности переименовал его в «max_output_tokens».

Установите context_length, когда автоматическое определение неправильно определяет размер окна. Устанавливайте model.max_tokens только в том случае, если вам нужно ограничить длину отдельных ответов. Hermes использует цепочку разрешения из нескольких источников, чтобы определить правильное контекстное окно для вашей модели и поставщика:

  1. Переопределение конфигурацииmodel.context_length в config.yaml (наивысший приоритет)
  2. Пользовательский поставщик для каждой моделиcustom_providers[].models.<id>.context_length
  3. Постоянный кеш — ранее обнаруженные значения (выдерживает перезагрузку)
  4. Конечная точка /models — запрашивает API вашего сервера (локальные/настраиваемые конечные точки).
  5. Anthropic /v1/models — запрашивает у API Anthropic max_input_tokens (только для пользователей API-ключа)
  6. OpenRouter API — метаданные живой модели из OpenRouter.
  7. Nous Portal — суффикс сопоставляет идентификаторы моделей Nous с метаданными OpenRouter.
  8. models.dev — реестр, поддерживаемый сообществом, с длиной контекста, зависящей от поставщика, для более чем 3800 моделей от более чем 100 поставщиков.
  9. Резервные настройки по умолчанию – общие шаблоны семейства моделей (по умолчанию 128 КБ).

Для большинства настроек это работает «из коробки». Система учитывает провайдера — одна и та же модель может иметь разные ограничения контекста в зависимости от того, кто ее обслуживает (например, «claude-opus-4.6» — это 1M на Anthropic Direct, но 128K на GitHub Copilot).

Чтобы явно установить длину контекста, добавьте context_length в конфигурацию вашей модели:

model:
  default: "qwen3.5:9b"
  base_url: "http://localhost:8080/v1"
  context_length: 131072  # tokens

Для пользовательских конечных точек вы также можете установить длину контекста для каждой модели:

custom_providers:
  - name: "My Local LLM"
    base_url: "http://localhost:11434/v1"
    models:
      qwen3.5:27b:
        context_length: 32768
      deepseek-r1:70b:
        context_length: 65536

hermes model запросит длину контекста при настройке пользовательской конечной точки. Оставьте это поле пустым для автоматического определения.

💡 Tip

Когда устанавливать это вручную - Вы используете Ollama с пользовательским значением num_ctx, которое меньше максимального значения модели. - Вы хотите ограничить контекст ниже максимального значения модели (например, 8 КБ на модели 128 КБ для экономии видеопамяти). - Вы используете прокси, который не предоставляет /v1/models


Именованные пользовательские поставщики

Если вы работаете с несколькими пользовательскими конечными точками (например, локальным сервером разработки и удаленным сервером графического процессора), вы можете определить их как именованные пользовательские поставщики в config.yaml:

custom_providers:
  - name: local
    base_url: http://localhost:8080/v1
    # api_key omitted — Hermes uses "no-key-required" for keyless local servers
  - name: work
    base_url: https://gpu-server.internal.corp/v1
    key_env: CORP_API_KEY
    api_mode: chat_completions   # optional, auto-detected from URL
  - name: anthropic-proxy
    base_url: https://proxy.example.com/anthropic
    key_env: ANTHROPIC_PROXY_KEY
    api_mode: anthropic_messages  # for Anthropic-compatible proxies

Переключайтесь между ними в середине сеанса с помощью тройного синтаксиса:

/model custom:local:qwen-2.5       # Use the "local" endpoint with qwen-2.5
/model custom:work:llama3-70b      # Use the "work" endpoint with llama3-70b
/model custom:anthropic-proxy:claude-sonnet-4  # Use the proxy

Вы также можете выбрать именованных пользовательских поставщиков из интерактивного меню «модель Hermesа».


Поваренная книга: AI, Groq, Perplexity вместе

Все поставщики облачных услуг, перечисленные в списке Другие совместимые поставщики, говорят на диалекте REST OpenAI, поэтому они подключаются одинаково в разделе custom_providers:. Далее следуют три рабочих рецепта. Каждый из них попадает в ~/.hermes/config.yaml, а соответствующий ключ API — в ~/.hermes/.env.

Вместе ИИ

Размещает модели открытого веса (Llama, MiniMax, Gemma, DeepSeek, Qwen) по ценам, значительно ниже сторонних API. Хороший вариант по умолчанию для многомодельных автопарков.

# ~/.hermes/config.yaml
custom_providers:
  - name: together
    base_url: https://api.together.xyz/v1
    key_env: TOGETHER_API_KEY
    # api_mode: chat_completions  # default — no need to set

model:
  default: MiniMaxAI/MiniMax-M2.7   # or any model from together.ai/models
  provider: custom:together
# ~/.hermes/.env
TOGETHER_API_KEY=your-together-key

Смена моделей в середине сессии:

/model custom:together:meta-llama/Llama-3.3-70B-Instruct-Turbo
/model custom:together:google/gemma-4-31b-it
/model custom:together:deepseek-ai/DeepSeek-V3

Конечная точка /v1/models Together работает, поэтому модель Hermes может автоматически обнаруживать доступные модели.

Грок

Сверхбыстрый вывод (~500 ток/с на Llama-3.3-70B). Небольшой каталог, но мощный для интерактивного использования, чувствительного к задержке.

# ~/.hermes/config.yaml
custom_providers:
  - name: groq
    base_url: https://api.groq.com/openai/v1
    key_env: GROQ_API_KEY

model:
  default: llama-3.3-70b-versatile
  provider: custom:groq
# ~/.hermes/.env
GROQ_API_KEY=your-groq-key

Недоумение

Полезно, если вам нужна модель, которая автоматически выполняет онлайн-поиск и цитирование. Строгое определение доступных моделей — проверьте текущий список на perplexity.ai/settings/api.

# ~/.hermes/config.yaml
custom_providers:
  - name: perplexity
    base_url: https://api.perplexity.ai
    key_env: PERPLEXITY_API_KEY

model:
  default: sonar
  provider: custom:perplexity
# ~/.hermes/.env
PERPLEXITY_API_KEY=your-perplexity-key

Несколько провайдеров в одной конфигурации

Три рецепта составляют — используйте их все вместе и переключайтесь по очереди с помощью /model custom:<name>:<model>:

custom_providers:
  - name: together
    base_url: https://api.together.xyz/v1
    key_env: TOGETHER_API_KEY
  - name: groq
    base_url: https://api.groq.com/openai/v1
    key_env: GROQ_API_KEY
  - name: perplexity
    base_url: https://api.perplexity.ai
    key_env: PERPLEXITY_API_KEY

model:
  default: MiniMaxAI/MiniMax-M2.7
  provider: custom:together      # boot to Together; switch freely after
```<div class="admonition admonition-tip"><p class="admonition-title">💡 Tip</p> Устранение неполадок
- `hermes Doctor` не должен печатать никаких предупреждений `Неизвестный поставщик` для любого из этих имен после исправлений валидатора CLI в # 15083.
- Если конечная точка `/v1/models` провайдера недоступна (обычно используется Perplexity), `hermes model` сохранит модель с предупреждением, а не с жестким отклонением — см. #15136.
— Чтобы полностью пропустить `custom_providers:` и использовать пустой `provider: custom` с переменной env `CUSTOM_BASE_URL`, см. #15103.</div>
---

### Выбор правильной настройки

| Вариант использования | Рекомендуется |
|----------|-------------|
| **Просто хочу, чтобы это сработало** | OpenRouter (по умолчанию) или Nous Portal |
| **Локальные модели, простая настройка** | Оллама |
| **Обслуживание графического процессора** | vLLM или SGLang |
| **Mac / без графического процессора** | Оллама или llama.cpp |
| **Маршрутизация между несколькими провайдерами** | Прокси-сервер LiteLLM или OpenRouter |
| **Оптимизация затрат** | ClawRouter или OpenRouter с сортировкой: «цена» |
| **Максимальная конфиденциальность** | Ollama, vLLM или llama.cpp (полностью локальный) |
| **Корпоративный/Azure** | Azure OpenAI с настраиваемой конечной точкой |
| **Китайские модели искусственного интеллекта** | z.ai (GLM), Kimi/Moonshot («kimi-coding» или «kimi-coding-cn»), MiniMax, Xiaomi MiMo или Tencent TokenHub (первоклассные провайдеры) |<div class="admonition admonition-tip"><p class="admonition-title">💡 Tip</p>
Вы можете переключаться между провайдерами в любое время с помощью «модели Hermesа» — перезагрузка не требуется. Ваша история разговоров, память и навыки сохраняются независимо от того, каким провайдером вы пользуетесь.</div>
## Дополнительные ключи API

| Особенность | Провайдер | Переменная окружения |
|---------|----------|--------------|
| Парсинг веб-страниц | [Firecrawl](https://firecrawl.dev/) | `FIRECRAWL_API_KEY`, `FIRECRAWL_API_URL` |
| Автоматизация браузера | [База браузера](https://browserbase.com/) | `BROWSERBASE_API_KEY`, `BROWSERBASE_PROJECT_ID` |
| Генерация изображений | [ФАЛ](https://fal.ai/) | `FAL_KEY` |
| Премиум-голоса TTS | [ElevenLabs](https://elevenlabs.io/) | `ELEVENLABS_API_KEY` |
| OpenAI TTS + транскрипция голоса | [OpenAI](https://platform.openai.com/api-keys) | `VOICE_TOOLS_OPENAI_KEY` |
| Mistral TTS + транскрипция голоса | [Мистраль](https://console.mistral.ai/) | `MISTRAL_API_KEY` |
| Обучение РЛ | [Tinker](https://tinker-console.thinkingmachines.ai/) + [WandB](https://wandb.ai/) | `TINKER_API_KEY`, `WANDB_API_KEY` |
| Межсессионное моделирование пользователей | [Хончо](https://honcho.dev/) | `HONCHO_API_KEY` |
| Семантическая долговременная память | [Суперпамять](https://supermemory.ai) | `SUPERMEMORY_API_KEY` |

### Самостоятельный Firecrawl

По умолчанию Hermes использует [облачный API Firecrawl](https://firecrawl.dev/) для веб-поиска и парсинга. Если вы предпочитаете запускать Firecrawl локально, вместо этого вы можете указать Hermes на автономный экземпляр. Полные инструкции по настройке см. в файле [SELF_HOST.md] (https://github.com/firecrawl/firecrawl/blob/main/SELF_HOST.md) Firecrawl.

**Что вы получаете:** Не требуется ключ API, нет ограничений по скорости, нет затрат на каждую страницу, полная независимость данных.

**Что вы теряете:** Облачная версия использует фирменную «Пожарную машину» Firecrawl для расширенного обхода защиты от ботов (Cloudflare, CAPTCHA, ротация IP-адресов). При самостоятельном размещении используется базовая выборка + Playwright, поэтому некоторые защищенные сайты могут выйти из строя. Поиск использует DuckDuckGo вместо Google.

**Настройка:**

1. Клонируйте и запустите стек Firecrawl Docker (5 контейнеров: API, Playwright, Redis, RabbitMQ, PostgreSQL — требуется ~4–8 ГБ ОЗУ):
   ```bash
   git clone https://github.com/firecrawl/firecrawl
   cd firecrawl
   # In.env, set: USE_DB_AUTHENTICATION=false, HOST=0.0.0.0, PORT=3002
   docker compose up -d
   ```
2. Наведите Hermes на свой экземпляр (ключ API не требуется):
   ```bash
   hermes config set FIRECRAWL_API_URL http://localhost:3002
   ```
Вы также можете установить как FIRECRAWL_API_KEY, так и FIRECRAWL_API_URL, если на вашем локальном экземпляре включена аутентификация.

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

Используя OpenRouter, вы можете контролировать маршрутизацию запросов между поставщиками. Добавьте раздел provider_routing в ~/.hermes/config.yaml:
```yaml
provider_routing:
  sort: "throughput"          # "price" (default), "throughput", or "latency"
  # only: ["anthropic"]      # Only use these providers
  # ignore: ["deepinfra"]    # Skip these providers
  # order: ["anthropic", "google"]  # Try providers in this order
  # require_parameters: true  # Only use providers that support all request params
  # data_collection: "deny"   # Exclude providers that may store/train on data

Ярлыки: Добавьте :nitro к любому названию модели для сортировки по пропускной способности (например, anthropic/claude-sonnet-4:nitro) или :floor для сортировки по цене.

OpenRouter Маршрутизатор с кодом Парето

OpenRouter поставляет экспериментальный маршрутизатор с моделью кодирования по адресу openrouter/pareto-code, который автоматически направляет запросы к самой дешевой модели, соответствующей планке качества кодирования (рейтинг по рейтингу Искусственный анализ). Выберите эту модель и настройте ручку min_coding_score в ~/.hermes/config.yaml:

model:
  provider: openrouter
  model: openrouter/pareto-code

openrouter:
  min_coding_score: 0.65   # 0.0–1.0; higher = stronger (more expensive) coders. Default 0.65.

Примечания:

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

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

fallback_providers:
  - provider: openrouter
    model: anthropic/claude-sonnet-4
  - provider: anthropic
    model: claude-sonnet-4
    # base_url: http://localhost:8000/v1    # optional, for custom endpoints
    # api_mode: chat_completions           # optional override

Устаревший однопарный запрос fallback_model: по-прежнему принимается для обратной совместимости:

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

При активации резервный вариант меняет модель и поставщика в середине сеанса, не теряя разговора. Цепочка проверяется запись за записью; активация осуществляется один раз за сеанс.

Поддерживаемые провайдеры: openrouter, nous, openai-codex, copilot, copilot-acp, anthropic, Gemini, google-gemini-cli, qwen-oauth,huggingface, zai, kimi-coding, kimi-coding-cn, minimax, minimax-cn, minimax-oauth, deepseek, nvidia, xai, ollama-cloud, bedrock, ai-gateway, azure-foundry, opencode-zen, opencode-go, kilocode, xiaomi, arcee, gmi, stepfun, lmstudio, alibaba, «alibaba-coding-plan», «tencent-tokenhub», «custom».

💡 Tip

Резервный вариант настраивается исключительно через config.yaml или интерактивно через hermes Fallback. Полную информацию о том, когда он срабатывает, как развивается цепочка и как она взаимодействует со вспомогательными задачами и делегированием, см. в разделе Резервные поставщики.


См. также