Конфигурация
Все настройки хранятся в каталоге ~/.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.
Приоритет конфигурации
Настройки разрешаются в следующем порядке (начиная с самого высокого приоритета):
- Аргументы командной строки (CLI) — например,
hermes chat --model anthropic/claude-sonnet-4(переопределение для конкретного вызова) ~/.hermes/config.yaml— основной файл конфигурации для всех несекретных настроек~/.hermes/.env— резервный вариант для переменных окружения; обязателен для секретов (API-ключи, токены, пароли)- Встроенные значения по умолчанию — жестко заданные безопасные значения, если ничего другого не установлено
Секреты (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 |
Провайдер 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
Варианты аутентификации (проверяются в указанном порядке):
- Переменная окружения
COPILOT_GITHUB_TOKEN - Переменная окружения
GH_TOKEN - Переменная окружения
GITHUB_TOKEN - Резервный вариант через 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 использует цепочку разрешений из нескольких источников для определения правильного окна контекста вашей модели и провайдера:
- Переопределение в конфиге —
model.context_lengthвconfig.yaml(высший приоритет) - Постоянный кэш — ранее обнаруженные значения (сохраняются после перезапуска)
- Эндпоинт
/models— запрашивает API вашего сервера - OpenRouter API — живые метаданные моделей из OpenRouter
- models.dev — поддерживаемый сообществом реестр с данными о 3800+ моделях
- Значения по умолчанию — общие шаблоны семейств моделей (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 # Использовать иконки в интерфейсе