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

Все настройки хранятся в каталоге ~/.hermes/ для удобства доступа.

Структура каталогов

~/.hermes/
├── config.yaml # Настройки (модель, терминал, TTS, сжатие и т.д.)
├── .env # API-ключи и секреты
├── auth.json # Учетные данные OAuth (Nous Portal и т.д.)
├── SOUL.md # Основная личность агента (слот №1 в системном промпте)
├── memories/ # Постоянная память (MEMORY.md, USER.md)
├── skills/ # Навыки, созданные агентом (управляются через skill_manage)
├── cron/ # Запланированные задачи
├── sessions/ # Сессии шлюза
└── logs/ # Логи (errors.log, gateway.log — секреты скрываются автоматически)

Управление конфигурацией

hermes config              # Просмотреть текущую конфигурацию
hermes config edit # Открыть config.yaml в вашем редакторе
hermes config set KEY VAL # Установить конкретное значение
hermes config check # Проверить наличие недостающих опций (после обновлений)
hermes config migrate # Интерактивно добавить недостающие опции

# Примеры:
hermes config set model anthropic/claude-opus-4
hermes config set terminal.backend docker
hermes config set OPENROUTER_API_KEY sk-or-... # Сохраняется в .env
подсказка

Команда hermes config set автоматически направляет значения в нужный файл — API-ключи сохраняются в .env, все остальное — в config.yaml.

Приоритет конфигурации

Настройки разрешаются в следующем порядке (начиная с самого высокого приоритета):

  1. Аргументы командной строки (CLI) — например, hermes chat --model anthropic/claude-sonnet-4 (переопределение для конкретного вызова)
  2. ~/.hermes/config.yaml — основной файл конфигурации для всех несекретных настроек
  3. ~/.hermes/.env — резервный вариант для переменных окружения; обязателен для секретов (API-ключи, токены, пароли)
  4. Встроенные значения по умолчанию — жестко заданные безопасные значения, если ничего другого не установлено
Общее правило

Секреты (API-ключи, токены ботов, пароли) помещаются в .env. Все остальное (модель, бэкенд терминала, настройки сжатия, лимиты памяти, наборы инструментов) — в config.yaml. Если задано и то, и другое, для несекретных настроек приоритет имеет config.yaml.

Провайдеры вывода

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

Провайдер Настройка
Nous Portal hermes model (OAuth, по подписке)
OpenAI Codex hermes model (OAuth ChatGPT, использует модели Codex)
GitHub Copilot hermes model (OAuth флоу, COPILOT_GITHUB_TOKEN, GH_TOKEN или gh auth token)
GitHub Copilot ACP hermes model (запускает локальный copilot --acp --stdio)
Anthropic hermes model (Claude Pro/Max через Claude Code auth, API-ключ Anthropic или ручной setup-token)
OpenRouter OPENROUTER_API_KEY в ~/.hermes/.env
AI Gateway AI_GATEWAY_API_KEY в ~/.hermes/.env (провайдер: ai-gateway)
z.ai / GLM GLM_API_KEY в ~/.hermes/.env (провайдер: zai)
Kimi / Moonshot KIMI_API_KEY в ~/.hermes/.env (провайдер: kimi-coding)
MiniMax MINIMAX_API_KEY в ~/.hermes/.env (провайдер: minimax)
MiniMax China MINIMAX_CN_API_KEY в ~/.hermes/.env (провайдер: minimax-cn)
Alibaba Cloud DASHSCOPE_API_KEY в ~/.hermes/.env (провайдер: alibaba, алиасы: dashscope, qwen)
Kilo Code KILOCODE_API_KEY в ~/.hermes/.env (провайдер: kilocode)
OpenCode Zen OPENCODE_ZEN_API_KEY в ~/.hermes/.env (провайдер: opencode-zen)
OpenCode Go OPENCODE_GO_API_KEY в ~/.hermes/.env (провайдер: opencode-go)
Свой эндпоинт hermes model (сохраняется в config.yaml) или OPENAI_BASE_URL + OPENAI_API_KEY в ~/.hermes/.env
Примечание по Codex

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

внимание

Даже при использовании Nous Portal, Codex или пользовательского эндпоинта некоторые инструменты (зрение, веб-саммаризация, MoA) используют отдельную «вспомогательную» модель — по умолчанию это Gemini Flash через OpenRouter. Наличие OPENROUTER_API_KEY активирует эти инструменты автоматически. Вы также можете настроить, какую модель и провайдера используют эти инструменты — см. раздел Вспомогательные модели ниже.

Anthropic (Native)

Используйте модели Claude напрямую через Anthropic API — без прокси OpenRouter. Поддерживается три метода аутентификации:

# С API-ключом (оплата за токены)
export ANTHROPIC_API_KEY=***
hermes chat --provider anthropic --model claude-sonnet-4-6

# Рекомендуется: аутентификация через `hermes model`
# Hermes будет использовать хранилище учетных данных Claude Code напрямую, если оно доступно
hermes model

# Ручное переопределение с помощью setup-token (резервный / устаревший вариант)
export ANTHROPIC_TOKEN=*** # setup-token или ручной OAuth-токен
hermes chat --provider anthropic

# Автоматическое обнаружение учетных данных Claude Code (если вы уже используете Claude Code)
hermes chat --provider anthropic # автоматически считывает файлы учетных данных Claude Code

Когда вы выбираете 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.

GitHub Copilot

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

copilot — прямой API Copilot (рекомендуется). Использует вашу подписку GitHub Copilot для доступа к GPT-5.x, Claude, Gemini и другим моделям через API Copilot.

hermes chat --provider copilot --model gpt-5.4

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

  1. Переменная окружения COPILOT_GITHUB_TOKEN
  2. Переменная окружения GH_TOKEN
  3. Переменная окружения GITHUB_TOKEN
  4. Резервный вариант через CLI: gh auth token

Если токен не найден, hermes model предложит OAuth-вход по коду устройства — тот же процесс, который используется в Copilot CLI и opencode.

Типы токенов

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

Тип Префикс Как получить
OAuth токен gho_ hermes model → GitHub Copilot → Вход через GitHub
Fine-grained PAT github_pat_ Настройки GitHub → Настройки разработчика → Токены с тонкими настройками (нужно разрешение Copilot Requests)
GitHub App токен ghu_ Через установку GitHub App

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

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

copilot-acp — бэкенд агента Copilot ACP. Запускает локальный Copilot CLI как подпроцесс:

hermes chat --provider copilot-acp --model copilot-acp
# Требуется наличие GitHub Copilot CLI в PATH и существующая сессия `copilot login`

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

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

Пользовательские и локальные LLM-провайдеры

Hermes Agent работает с любым OpenAI-совместимым API-эндпоинтом. Если сервер реализует /v1/chat/completions, вы можете подключить к нему Hermes. Это означает, что вы можете использовать локальные модели, серверы инференса на GPU, мульти-провайдерные роутеры или любые сторонние API.

Общая настройка

Есть два способа настроить пользовательский эндпоинт:

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

hermes model
# Выберите "Custom endpoint (self-hosted / vLLM / etc.)"
# Введите: API base URL, API key, Model name

2. Вручную (файл .env):

# Добавьте в ~/.hermes/.env
OPENAI_BASE_URL=http://localhost:8000/v1
OPENAI_API_KEY=***
LLM_MODEL=your-model-name

Интерактивная настройка сохраняет провайдера и базовый URL в config.yaml, поэтому последующие сессии будут использовать этот эндпоинт, даже если OPENAI_BASE_URL не экспортирован в вашей текущей оболочке.


Ollama — локальные модели, нулевая настройка

Ollama позволяет запускать модели с открытыми весами локально одной командой. Лучше всего подходит для быстрых локальных экспериментов, работы с конфиденциальными данными и использования офлайн.

# Установка и запуск модели
ollama pull llama3.1:70b
ollama serve # Запускается на порту 11434

# Настройка Hermes
OPENAI_BASE_URL=http://localhost:11434/v1
OPENAI_API_KEY=ollama # Любая непустая строка
LLM_MODEL=llama3.1:70b

vLLM — высокопроизводительный инференс на GPU

pip install vllm
vllm serve meta-llama/Llama-3.1-70B-Instruct --port 8000

# Настройка Hermes
OPENAI_BASE_URL=http://localhost:8000/v1
OPENAI_API_KEY=dummy
LLM_MODEL=meta-llama/Llama-3.1-70B-Instruct

LiteLLM Proxy — унифицированный шлюз

LiteLLM объединяет более 100 провайдеров LLM под одним API.

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

ClawRouter — локальный прокси-роутер, автоматически выбирающий модели по сложности запроса. Оплата производится криптовалютой USDC.

Примечание

ClawRouter требует кошелек с USDC в сетях Base или Solana. Выполните npx @blockrun/clawrouter doctor для проверки статуса кошелька.


Другие совместимые провайдеры

Любой сервис с OpenAI-совместимым API будет работать. Популярные варианты:

Провайдер Base URL Примечания
Together AI https://api.together.xyz/v1 Облачные открытые модели
Groq https://api.groq.com/openai/v1 Сверхбыстрый инференс
DeepSeek https://api.deepseek.com/v1 Модели DeepSeek
Fireworks AI https://api.fireworks.ai/inference/v1 Быстрый хостинг открытых моделей
Azure OpenAI https://YOUR.openai.azure.com/ Enterprise OpenAI
LocalAI http://localhost:8080/v1 Локальный, мульти-модельный

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

Hermes использует цепочку разрешений из нескольких источников для определения правильного окна контекста вашей модели и провайдера:

  1. Переопределение в конфигеmodel.context_length в config.yaml (высший приоритет)
  2. Постоянный кэш — ранее обнаруженные значения (сохраняются после перезапуска)
  3. Эндпоинт /models — запрашивает API вашего сервера
  4. OpenRouter API — живые метаданные моделей из OpenRouter
  5. models.dev — поддерживаемый сообществом реестр с данными о 3800+ моделях
  6. Значения по умолчанию — общие шаблоны семейств моделей (128K по умолчанию)

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

model:
default: "qwen2.5:7b"
context_length: 131072 # в токенах

Выбор подходящей конфигурации

Сценарий Рекомендуется
Просто чтобы работало OpenRouter (по умолчанию)
Локально, простая настройка Ollama
Промышленный запуск на GPU vLLM или SGLang
Mac / без GPU Ollama
Максимальная приватность Ollama / vLLM (полностью локально)

Дополнительные API-ключи

Функция Провайдер Переменная окружения
Веб-скрейпинг Firecrawl FIRECRAWL_API_KEY
Автоматизация браузера Browserbase BROWSERBASE_API_KEY
Генерация изображений FAL FAL_KEY
Премиум-голоса TTS ElevenLabs ELEVENLABS_API_KEY

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

При использовании OpenRouter вы можете контролировать, как запросы распределяются между провайдерами. Добавьте раздел provider_routing в config.yaml:

provider_routing:
sort: "throughput" # "price" (по умолчанию), "throughput" или "latency"
# only: ["anthropic"] # Использовать только этих провайдеров
# ignore: ["deepinfra"] # Пропускать этих провайдеров

Резервная модель (Fallback)

Настройте резервного провайдера и модель, на которые Hermes автоматически переключится при сбое основной модели (лимиты, ошибки сервера):

fallback_model:
provider: openrouter
model: anthropic/claude-3-5-sonnet

Умная маршрутизация моделей

Опциональная маршрутизация позволяет Hermes использовать основную модель для сложной работы, отправляя простые запросы более дешевой модели:

smart_model_routing:
enabled: true
max_simple_chars: 160
cheap_model:
provider: openrouter
model: google/gemini-2.0-flash

Вспомогательные модели

Hermes использует специализированные модели для конкретных задач, чтобы снизить затраты и повысить скорость. По умолчанию для всех вспомогательных задач используется Gemini 2.0 Flash через OpenRouter.

auxiliary_models:
vision: # Анализ скриншотов и изображений
provider: openrouter
model: google/gemini-2.0-flash
web_extraction: # Преобразование HTML в Markdown (если Firecrawl не используется)
provider: openrouter
model: google/gemini-2.0-flash
approval: # Оценка необходимости подтверждения действия пользователем
provider: openrouter
model: google/gemini-2.0-flash

Конфигурация терминального бэкенда

Определите, где Hermes должен выполнять команды. Значение по умолчанию — local.

terminal:
backend: "local" # "local", "docker", "ssh", "k8s", "modal", "e2b"
shell: "/bin/zsh" # Автоматически определяется, если не указано

Управление контекстом...

Hermes автоматически управляет памятью токенов, чтобы избежать переполнения окна контекста:

  • Сжатие контекста: Включается при заполнении окна более чем на 80%.
  • Предупреждение о давлении: Уведомляет пользователя, если история становится слишком длинной.
context:
compression_threshold: 0.8
pressure_warning: true

Бюджет итераций

Ограничьте максимальное количество шагов (размышление + действие), которые Hermes может выполнить для одной задачи:

max_iterations: 50

Память

Hermes использует локальную векторную базу данных для хранения долгосрочной памяти и знаний о проекте.

memory:
enabled: true
max_chunks: 10 # Максимальное количество фрагментов памяти, извлекаемых за раз

Git Worktree

Для предотвращения конфликтов с вашей текущей работой Hermes может создавать изолированные окружения с помощью git worktree:

git_worktree:
enabled: true

Усилия размышления (Reasoning Effort)

Для моделей с поддержкой рассуждений (например, серии OpenAI o1, o3) вы можете установить уровень усилий:

reasoning_effort: "medium" # "low", "medium", "high"

Настройки отображения

Настройте внешний вид CLI-интерфейса:

display:
compact: false # Скрывать детальные логи инструментов
colors: true # Включить цветной вывод
emoji: true # Использовать иконки в интерфейсе