Variables
On this page
Все переменные находятся в ~/.hermes/.env. Вы также можете задать их с помощью hermes config set VAR value.
LLM-провайдеры¶
| Переменная | Описание |
|---|---|
OPENROUTER_API_KEY |
API-ключ OpenRouter (рекомендуется для гибкости) |
OPENROUTER_BASE_URL |
Переопределение базового URL, совместимого с OpenRouter |
HERMES_OPENROUTER_CACHE |
Включить кеширование ответов OpenRouter (1/true/yes/on). Переопределяет openrouter.response_cache в config.yaml. См. Response Caching. |
HERMES_OPENROUTER_CACHE_TTL |
Время жизни кеша в секундах (1-86400). Переопределяет openrouter.response_cache_ttl в config.yaml. |
NOUS_BASE_URL |
Переопределение базового URL Nous Portal (требуется редко; только для разработки/тестирования) |
NOUS_INFERENCE_BASE_URL |
Прямое переопределение эндпоинта инференса Nous |
AI_GATEWAY_API_KEY |
API-ключ Vercel AI Gateway (ai-gateway.vercel.sh) |
AI_GATEWAY_BASE_URL |
Переопределение базового URL AI Gateway (по умолчанию: https://ai-gateway.vercel.sh/v1) |
OPENAI_API_KEY |
API-ключ для пользовательских эндпоинтов, совместимых с OpenAI (используется с OPENAI_BASE_URL) |
OPENAI_BASE_URL |
Базовый URL для пользовательского эндпоинта (VLLM, SGLang и т.д.) |
COPILOT_GITHUB_TOKEN |
GitHub-токен для Copilot API — наивысший приоритет (OAuth gho_* или fine-grained PAT github_pat_*; классические PAT ghp_* не поддерживаются) |
GH_TOKEN |
GitHub-токен — второй приоритет для Copilot (также используется CLI gh) |
GITHUB_TOKEN |
GitHub-токен — третий приоритет для Copilot |
HERMES_COPILOT_ACP_COMMAND |
Переопределение пути к бинарнику Copilot ACP CLI (по умолчанию: copilot) |
COPILOT_CLI_PATH |
Псевдоним для HERMES_COPILOT_ACP_COMMAND |
HERMES_COPILOT_ACP_ARGS |
Переопределение аргументов Copilot ACP (по умолчанию: --acp --stdio) |
COPILOT_ACP_BASE_URL |
Переопределение базового URL Copilot ACP |
GLM_API_KEY |
API-ключ z.ai / ZhipuAI GLM (z.ai) |
ZAI_API_KEY |
Псевдоним для GLM_API_KEY |
Z_AI_API_KEY |
Псевдоним для GLM_API_KEY |
GLM_BASE_URL |
Переопределение базового URL z.ai (по умолчанию: https://api.z.ai/api/paas/v4) |
KIMI_API_KEY |
API-ключ Kimi / Moonshot AI (moonshot.ai) |
KIMI_BASE_URL |
Переопределение базового URL Kimi (по умолчанию: https://api.moonshot.ai/v1) |
KIMI_CN_API_KEY |
API-ключ Kimi / Moonshot China (moonshot.cn) |
ARCEEAI_API_KEY |
API-ключ Arcee AI (chat.arcee.ai) |
ARCEE_BASE_URL |
Переопределение базового URL Arcee (по умолчанию: https://api.arcee.ai/api/v1) |
GMI_API_KEY |
API-ключ GMI Cloud (gmicloud.ai) |
GMI_BASE_URL |
Переопределение базового URL GMI Cloud (по умолчанию: https://api.gmi-serving.com/v1) |
MINIMAX_API_KEY |
API-ключ MiniMax — глобальный эндпоинт (minimax.io). Не используетсяminimax-oauth (OAuth-путь использует вход через браузер). |
MINIMAX_BASE_URL |
Переопределение базового URL MiniMax (по умолчанию: https://api.minimax.io/anthropic — Hermes использует эндпоинт MiniMax, совместимый с Anthropic Messages). Не используетсяminimax-oauth. |
MINIMAX_CN_API_KEY |
API-ключ MiniMax — китайский эндпоинт (minimaxi.com). Не используетсяminimax-oauth (OAuth-путь использует вход через браузер). |
MINIMAX_CN_BASE_URL |
Переопределение базового URL MiniMax China (по умолчанию: https://api.minimaxi.com/anthropic). Не используетсяminimax-oauth. |
KILOCODE_API_KEY |
API-ключ Kilo Code (kilo.ai) |
KILOCODE_BASE_URL |
Переопределение базового URL Kilo Code (по умолчанию: https://api.kilo.ai/api/gateway) |
XIAOMI_API_KEY |
API-ключ Xiaomi MiMo (platform.xiaomimimo.com) |
XIAOMI_BASE_URL |
Переопределение базового URL Xiaomi MiMo (по умолчанию: https://api.xiaomimimo.com/v1) |
TOKENHUB_API_KEY |
API-ключ Tencent TokenHub (tokenhub.tencentmaas.com) |
TOKENHUB_BASE_URL |
Переопределение базового URL Tencent TokenHub (по умолчанию: https://tokenhub.tencentmaas.com/v1) |
AZURE_FOUNDRY_API_KEY |
API-ключ Azure AI Foundry / Azure OpenAI (ai.azure.com) |
AZURE_FOUNDRY_BASE_URL |
URL эндпоинта Azure AI Foundry (например, https://<resource>.openai.azure.com/openai/v1 для OpenAI-стиля или https://<resource>.services.ai.azure.com/anthropic для Anthropic-стиля) |
AZURE_ANTHROPIC_KEY |
API-ключ Azure Anthropic для provider: anthropic \+ base_url, указывающего на развёртывание Claude в Azure Foundry (альтернатива ANTHROPIC_API_KEY, когда настроены и Anthropic, и Azure Anthropic) |
HF_TOKEN |
Токен Hugging Face для Inference Providers (huggingface.co/settings/tokens) |
HF_BASE_URL |
Переопределение базового URL Hugging Face (по умолчанию: https://router.huggingface.co/v1) |
GOOGLE_API_KEY |
API-ключ Google AI Studio (aistudio.google.com/app/apikey) |
GEMINI_API_KEY |
Псевдоним для GOOGLE_API_KEY |
GEMINI_BASE_URL |
Переопределение базового URL Google AI Studio |
HERMES_GEMINI_CLIENT_ID |
OAuth client ID для входа google-gemini-cli PKCE (опционально; по умолчанию используется публичный gemini-cli клиент Google) |
HERMES_GEMINI_CLIENT_SECRET |
OAuth client secret для google-gemini-cli (опционально) |
HERMES_GEMINI_PROJECT_ID |
ID проекта GCP для платных тарифов Gemini (бесплатный тариф предоставляется автоматически) |
ANTHROPIC_API_KEY |
API-ключ Anthropic Console (console.anthropic.com) |
ANTHROPIC_TOKEN |
Ручное или устаревшее переопределение OAuth/установочного токена Anthropic |
DASHSCOPE_API_KEY |
API-ключ Alibaba Cloud DashScope для моделей Qwen (modelstudio.console.alibabacloud.com) |
DASHSCOPE_BASE_URL |
Пользовательский базовый URL DashScope (по умолчанию: https://dashscope-intl.aliyuncs.com/compatible-mode/v1; используйте https://dashscope.aliyuncs.com/compatible-mode/v1 для материкового Китая) |
DEEPSEEK_API_KEY |
API-ключ DeepSeek для прямого доступа к DeepSeek (platform.deepseek.com) |
DEEPSEEK_BASE_URL |
Пользовательский базовый URL API DeepSeek |
NVIDIA_API_KEY |
API-ключ NVIDIA NIM — модели Nemotron и открытые модели (build.nvidia.com) |
NVIDIA_BASE_URL |
Переопределение базового URL NVIDIA (по умолчанию: https://integrate.api.nvidia.com/v1; установите http://localhost:8000/v1 для локального эндпоинта NIM) |
GMI_API_KEY |
API-ключ GMI Cloud — открытые и reasoning-модели (inference.gmi.ai) |
GMI_BASE_URL |
Переопределение базового URL GMI Cloud (по умолчанию: https://api.gmi.ai/v1) |
STEPFUN_API_KEY |
API-ключ StepFun — модели серии Step (platform.stepfun.com) |
STEPFUN_BASE_URL |
Переопределение базового URL StepFun (по умолчанию: https://api.stepfun.com/v1) |
OLLAMA_API_KEY |
API-ключ Ollama Cloud — управляемый каталог Ollama без локального GPU (ollama.com/settings/keys) |
OLLAMA_BASE_URL |
Переопределение базового URL Ollama Cloud (по умолчанию: https://ollama.com/v1) |
XAI_API_KEY |
API-ключ xAI (Grok) для чата и TTS (console.x.ai) |
XAI_BASE_URL |
Переопределение базового URL xAI (по умолчанию: https://api.x.ai/v1) |
MISTRAL_API_KEY |
API-ключ Mistral для Voxtral TTS и Voxtral STT (console.mistral.ai) |
AWS_REGION |
Регион AWS для инференса Bedrock (например, us-east-1, eu-central-1). Читается boto3. |
AWS_PROFILE |
Именованный профиль AWS для аутентификации Bedrock (читает ~/.aws/credentials). Оставьте пустым для использования стандартной цепочки учётных данных boto3. |
BEDROCK_BASE_URL |
Переопределение базового URL Bedrock runtime (по умолчанию: https://bedrock-runtime.us-east-1.amazonaws.com; обычно оставляйте пустым и используйте AWS_REGION) |
HERMES_QWEN_BASE_URL |
Переопределение базового URL Qwen Portal (по умолчанию: https://portal.qwen.ai/v1) |
OPENCODE_ZEN_API_KEY |
API-ключ OpenCode Zen — оплата по мере использования для подобранных моделей (opencode.ai) |
OPENCODE_ZEN_BASE_URL |
Переопределение базового URL OpenCode Zen |
OPENCODE_GO_API_KEY |
API-ключ OpenCode Go — подписка $10/мес за открытые модели (opencode.ai) |
OPENCODE_GO_BASE_URL |
Переопределение базового URL OpenCode Go |
CLAUDE_CODE_OAUTH_TOKEN |
Явное переопределение токена Claude Code, если вы экспортируете его вручную |
HERMES_MODEL |
Переопределение модели на уровне процесса (используется планировщиком cron; для обычного использования предпочтительнее config.yaml) |
VOICE_TOOLS_OPENAI_KEY |
Предпочтительный ключ OpenAI для провайдеров распознавания речи и синтеза речи OpenAI |
HERMES_LOCAL_STT_COMMAND |
Опциональный шаблон локальной команды распознавания речи. Поддерживает плейсхолдеры {input_path}, {output_dir}, {language} и {model} |
HERMES_LOCAL_STT_LANGUAGE |
Язык по умолчанию, передаваемый в HERMES_LOCAL_STT_COMMAND или в локальный CLI whisper (по умолчанию: en) |
HERMES_HOME |
Переопределение директории конфигурации Hermes (по умолчанию: ~/.hermes). Также определяет область видимости PID-файла шлюза и имени systemd-сервиса, позволяя нескольким установкам работать одновременно |
HERMES_KANBAN_HOME |
Переопределение общей корневой директории Hermes, которая служит основой для канбан-доски (БД + рабочие области + логи воркеров). По умолчанию используется get_default_hermes_root() (родительская директория активного профиля). Полезно для тестов и нестандартных развёртываний |
HERMES_KANBAN_BOARD |
Фиксация активной канбан-доски для данного процесса. Имеет приоритет над ~/.hermes/kanban/current; диспетчер внедряет это в окружение подпроцессов воркеров, чтобы воркеры физически не могли видеть задачи с других досок. По умолчанию: default. Валидация slug: строчные буквы, цифры, дефисы и подчёркивания, 1–64 символа |
HERMES_KANBAN_DB |
Прямая фиксация пути к файлу базы данных канбан (наивысший приоритет; переопределяет HERMES_KANBAN_BOARD и HERMES_KANBAN_HOME). Диспетчер внедряет это в окружение подпроцессов воркеров, чтобы воркеры профиля использовали доску диспетчера |
HERMES_KANBAN_WORKSPACES_ROOT |
Прямая фиксация корня рабочих областей канбан (наивысший приоритет для рабочих областей; переопределяет HERMES_KANBAN_HOME). Диспетчер внедряет это в окружение подпроцессов воркеров |
| ## Аутентификация провайдеров (OAuth) | |
Для нативной аутентификации Anthropic Hermes предпочитает собственные файлы учётных данных Claude Code, когда они существуют, поскольку эти учётные данные могут обновляться автоматически. OAuth через Anthropic требует плана Claude Max с приобретёнными дополнительными кредитами — Hermes маршрутизируется как Claude Code, который использует только дополнительные кредиты плана Max, а не базовый лимит Max, и не работает с Claude Pro. Без Max + дополнительных кредитов используйте API-ключ. Переменные окружения, такие как ANTHROPIC_TOKEN, остаются полезными для ручного переопределения, но больше не являются предпочтительным способом для входа в Claude Max. |
|
| Переменная | Описание |
| --- | --- |
HERMES_INFERENCE_PROVIDER |
Переопределение выбора провайдера: auto, custom, openrouter, nous, openai-codex, copilot, copilot-acp, anthropic, huggingface, gemini, zai, kimi-coding, kimi-coding-cn, minimax, minimax-cn, minimax-oauth (вход через браузер OAuth — API-ключ не требуется; см. MiniMax OAuth guide), kilocode, xiaomi, arcee, gmi, stepfun, alibaba, alibaba-coding-plan (псевдоним alibaba_coding), deepseek, nvidia, ollama-cloud, xai (псевдоним grok), google-gemini-cli, qwen-oauth, bedrock, opencode-zen, opencode-go, ai-gateway, tencent-tokenhub (по умолчанию: auto) |
HERMES_PORTAL_BASE_URL |
Переопределение URL Nous Portal (для разработки/тестирования) |
NOUS_INFERENCE_BASE_URL |
Переопределение URL API инференса Nous |
HERMES_NOUS_MIN_KEY_TTL_SECONDS |
Минимальное время жизни ключа агента до перевыпуска (по умолчанию: 1800 = 30 мин) |
HERMES_NOUS_TIMEOUT_SECONDS |
Тайм-аут HTTP для потоков учётных данных / токенов Nous |
HERMES_DUMP_REQUESTS |
Сохранять полезную нагрузку API-запросов в лог-файлы (true/false) |
HERMES_PREFILL_MESSAGES_FILE |
Путь к JSON-файлу с эфемерными prefill-сообщениями, внедряемыми при вызове API |
HERMES_TIMEZONE |
Переопределение часового пояса IANA (например, America/New_York) |
| ## Tool API | |
| Переменная | Описание |
| --- | --- |
PARALLEL_API_KEY |
ИИ-нативный веб-поиск (parallel.ai) |
FIRECRAWL_API_KEY |
Веб-скрапинг и облачный браузер (firecrawl.dev) |
FIRECRAWL_API_URL |
Пользовательский эндпоинт Firecrawl API для самостоятельных инстансов (опционально) |
TAVILY_API_KEY |
API-ключ Tavily для ИИ-нативного веб-поиска, извлечения и краулинга (app.tavily.com) |
SEARXNG_URL |
URL инстанса SearXNG для бесплатного самостоятельного веб-поиска — API-ключ не требуется (searxng.github.io) |
TAVILY_BASE_URL |
Переопределение эндпоинта API Tavily. Полезно для корпоративных прокси и самостоятельных серверов поиска, совместимых с Tavily. Аналогично GROQ_BASE_URL. |
EXA_API_KEY |
API-ключ Exa для ИИ-нативного веб-поиска и контента (exa.ai) |
BROWSERBASE_API_KEY |
Автоматизация браузера (browserbase.com) |
BROWSERBASE_PROJECT_ID |
ID проекта Browserbase |
BROWSER_USE_API_KEY |
API-ключ облачного браузера Browser Use (browser-use.com) |
FIRECRAWL_BROWSER_TTL |
Время жизни сессии браузера Firecrawl в секундах (по умолчанию: 300) |
BROWSER_CDP_URL |
URL Chrome DevTools Protocol для локального браузера (устанавливается через /browser connect, например ws://localhost:9222) |
CAMOFOX_URL |
URL локального браузера Camofox для антидетекта (по умолчанию: http://localhost:9377) |
BROWSER_INACTIVITY_TIMEOUT |
Тайм-аут неактивности сессии браузера в секундах |
FAL_KEY |
Генерация изображений (fal.ai) |
GROQ_API_KEY |
API-ключ Groq Whisper STT (groq.com) |
ELEVENLABS_API_KEY |
Премиум-голоса TTS от ElevenLabs (elevenlabs.io) |
STT_GROQ_MODEL |
Переопределение модели Groq STT (по умолчанию: whisper-large-v3-turbo) |
GROQ_BASE_URL |
Переопределение эндпоинта STT Groq, совместимого с OpenAI |
STT_OPENAI_MODEL |
Переопределение модели OpenAI STT (по умолчанию: whisper-1) |
STT_OPENAI_BASE_URL |
Переопределение эндпоинта STT, совместимого с OpenAI |
GITHUB_TOKEN |
GitHub-токен для Skills Hub (более высокие лимиты API, публикация навыков) |
HONCHO_API_KEY |
Кросс-сессионное моделирование пользователей (honcho.dev) |
HONCHO_BASE_URL |
Базовый URL для самостоятельных инстансов Honcho (по умолчанию: Honcho cloud). Для локальных инстансов API-ключ не требуется |
HINDSIGHT_TIMEOUT |
Тайм-аут в секундах для вызовов API памяти Hindsight (по умолчанию: 60). Увеличьте, если ваш инстанс Hindsight медленно отвечает во время /sync или on_session_switch и вы видите тайм-ауты в errors.log. |
SUPERMEMORY_API_KEY |
Семантическая долговременная память с извлечением профиля и приёмом сессий (supermemory.ai) |
TINKER_API_KEY |
RL-тренировки (tinker-console.thinkingmachines.ai) |
WANDB_API_KEY |
Метрики RL-тренировок (wandb.ai) |
DAYTONA_API_KEY |
Облачные песочницы Daytona (daytona.io) |
VERCEL_TOKEN |
Токен доступа к Vercel Sandbox (vercel.com) |
VERCEL_PROJECT_ID |
ID проекта Vercel (требуется с VERCEL_TOKEN) |
VERCEL_TEAM_ID |
ID команды Vercel (требуется с VERCEL_TOKEN) |
VERCEL_OIDC_TOKEN |
Кратковременный OIDC-токен Vercel (альтернатива для разработки) |
| ### Langfuse Observability | |
Переменные окружения для встроенного плагина observability/langfuse. Установите их через hermes tools → Langfuse Observability или вручную в ~/.hermes/.env. Плагин также должен быть включён (hermes plugins enable observability/langfuse), прежде чем они начнут действовать. |
|
| Переменная | Описание |
| --- | --- |
HERMES_LANGFUSE_PUBLIC_KEY |
Публичный ключ проекта Langfuse (pk-lf-...). Обязателен. |
HERMES_LANGFUSE_SECRET_KEY |
Секретный ключ проекта Langfuse (sk-lf-...). Обязателен. |
HERMES_LANGFUSE_BASE_URL |
URL сервера Langfuse (по умолчанию: https://cloud.langfuse.com). Задаётся для самостоятельного размещения. |
HERMES_LANGFUSE_ENV |
Тег окружения на трассах (production, staging, …) |
HERMES_LANGFUSE_RELEASE |
Тег релиза/версии на трассах |
HERMES_LANGFUSE_SAMPLE_RATE |
Коэффициент выборки SDK 0.0–1.0 (по умолчанию: 1.0) |
HERMES_LANGFUSE_MAX_CHARS |
Усечение полей для сериализованных полезных нагрузок (по умолчанию: 12000) |
HERMES_LANGFUSE_DEBUG |
true включает подробное логирование плагина в agent.log |
LANGFUSE_PUBLIC_KEY / LANGFUSE_SECRET_KEY / LANGFUSE_BASE_URL |
Стандартные имена SDK Langfuse. Принимаются как запасные, когда HERMES_LANGFUSE_* аналоги не заданы. |
| ### Nous Tool Gateway | |
Эти переменные настраивают Tool Gateway для платных подписчиков Nous или самостоятельных развёртываний шлюза. Большинству пользователей не нужно их задавать — шлюз настраивается автоматически через hermes model или hermes tools. |
|
| Переменная | Описание |
| --- | --- |
TOOL_GATEWAY_DOMAIN |
Базовый домен для маршрутизации Tool Gateway (по умолчанию: nousresearch.com) |
TOOL_GATEWAY_SCHEME |
Схема HTTP или HTTPS для URL шлюза (по умолчанию: https) |
TOOL_GATEWAY_USER_TOKEN |
Токен аутентификации для Tool Gateway (обычно заполняется автоматически из аутентификации Nous) |
FIRECRAWL_GATEWAY_URL |
Переопределение URL эндпоинта шлюза Firecrawl |
| ## Терминальный бэкенд | |
| Переменная | Описание |
| --- | --- |
TERMINAL_ENV |
Бэкенд: local, docker, ssh, singularity, modal, daytona, vercel_sandbox |
HERMES_DOCKER_BINARY |
Переопределение бинарника контейнера, который вызывает Hermes (например, podman, /usr/local/bin/docker). Если не задано, Hermes автоматически находит docker или podman в PATH. Требуется, когда установлены оба и вы хотите использовать нестандартный, или когда бинарник находится вне PATH. |
TERMINAL_DOCKER_IMAGE |
Docker-образ (по умолчанию: nikolaik/python-nodejs:python3.11-nodejs20) |
TERMINAL_DOCKER_FORWARD_ENV |
JSON-массив имён переменных окружения для явной передачи в Docker-сессии терминала. Примечание: объявленные навыком required_environment_variables передаются автоматически — это нужно только для переменных, не объявленных ни одним навыком. |
TERMINAL_DOCKER_VOLUMES |
Дополнительные монтирования томов Docker (пары host:container через запятую) |
TERMINAL_DOCKER_MOUNT_CWD_TO_WORKSPACE |
Расширенный opt-in: монтировать текущую рабочую директорию запуска в Docker /workspace (true/false, по умолчанию: false) |
TERMINAL_SINGULARITY_IMAGE |
Singularity-образ или путь .sif |
TERMINAL_MODAL_IMAGE |
Образ контейнера Modal |
TERMINAL_DAYTONA_IMAGE |
Образ песочницы Daytona |
TERMINAL_VERCEL_RUNTIME |
Среда выполнения Vercel Sandbox (node24, node22, python3.13) |
TERMINAL_TIMEOUT |
Тайм-аут команды в секундах |
TERMINAL_LIFETIME_SECONDS |
Максимальное время жизни сессий терминала в секундах |
TERMINAL_CWD |
Рабочая директория для сессий терминала (только шлюз/cron; CLI использует директорию запуска) |
SUDO_PASSWORD |
Включение sudo без интерактивного запроса |
Для облачных бэкендов-песочниц сохраняемость ориентирована на файловую систему. TERMINAL_LIFETIME_SECONDS определяет, когда Hermes очищает бездействующую сессию терминала, и при последующем возобновлении песочница может быть создана заново, а не поддерживать те же активные процессы. |
|
| ## SSH-бэкенд | |
| Переменная | Описание |
| --- | --- |
TERMINAL_SSH_HOST |
Имя хоста удалённого сервера |
TERMINAL_SSH_USER |
Имя пользователя SSH |
TERMINAL_SSH_PORT |
Порт SSH (по умолчанию: 22) |
TERMINAL_SSH_KEY |
Путь к приватному ключу |
TERMINAL_SSH_PERSISTENT |
Переопределение постоянной оболочки для SSH (по умолчанию: следует за TERMINAL_PERSISTENT_SHELL) |
| ## Ресурсы контейнеров (Docker, Singularity, Modal, Daytona) | |
| Переменная | Описание |
| --- | --- |
TERMINAL_CONTAINER_CPU |
Ядра CPU (по умолчанию: 1) |
TERMINAL_CONTAINER_MEMORY |
Память в МБ (по умолчанию: 5120) |
TERMINAL_CONTAINER_DISK |
Диск в МБ (по умолчанию: 51200) |
TERMINAL_CONTAINER_PERSISTENT |
Сохранять файловую систему контейнера между сессиями (по умолчанию: true) |
TERMINAL_SANDBOX_DIR |
Хостовая директория для рабочих областей и оверлеев (по умолчанию: ~/.hermes/sandboxes/) |
| ## Постоянная оболочка | |
| Переменная | Описание |
| --- | --- |
TERMINAL_PERSISTENT_SHELL |
Включить постоянную оболочку для нелокальных бэкендов (по умолчанию: true). Также настраивается через terminal.persistent_shell в config.yaml |
TERMINAL_LOCAL_PERSISTENT |
Включить постоянную оболочку для локального бэкенда (по умолчанию: false) |
TERMINAL_SSH_PERSISTENT |
Переопределение постоянной оболочки для SSH-бэкенда (по умолчанию: следует за TERMINAL_PERSISTENT_SHELL) |
| ## Мессенджеры | |
| Переменная | Описание |
| --- | --- |
TELEGRAM_BOT_TOKEN |
Токен Telegram-бота (от @BotFather) |
TELEGRAM_ALLOWED_USERS |
ID пользователей (через запятую), которым разрешено использовать бота (применяется к личным сообщениям, группам и форумам) |
TELEGRAM_GROUP_ALLOWED_USERS |
ID отправителей (через запятую), авторизованных только в группах/форумах (НЕ предоставляет доступ к ЛС). Значения в формате Chat-ID (начинающиеся с -) всё ещё воспринимаются как ID чатов для обратной совместимости с конфигами до #17686, с предупреждением об устаревании. |
TELEGRAM_GROUP_ALLOWED_CHATS |
ID групповых чатов/форумов (через запятую); любой участник авторизован |
TELEGRAM_HOME_CHANNEL |
Канал/чат Telegram по умолчанию для доставки cron |
TELEGRAM_HOME_CHANNEL_NAME |
Отображаемое имя для домашнего канала Telegram |
TELEGRAM_WEBHOOK_URL |
Публичный HTTPS URL для режима вебхука (включает вебхук вместо polling) |
TELEGRAM_WEBHOOK_PORT |
Локальный порт прослушивания для сервера вебхука (по умолчанию: 8443) |
TELEGRAM_WEBHOOK_SECRET |
Секретный токен, который Telegram отправляет обратно в каждом обновлении для проверки. Обязателен, когда заданTELEGRAM_WEBHOOK_URL — шлюз откажется запускаться без него (GHSA-3vpc-7q5r-276h). Сгенерируйте с помощью openssl rand -hex 32. |
TELEGRAM_REACTIONS |
Включить emoji-реакции на сообщения во время обработки (по умолчанию: false) |
TELEGRAM_REPLY_TO_MODE |
Поведение ответа-ссылки: off, first (по умолчанию) или all. Соответствует шаблону Discord. |
TELEGRAM_IGNORED_THREADS |
ID тем/тредов форума Telegram (через запятую), в которых бот никогда не отвечает |
TELEGRAM_PROXY |
URL прокси для подключений Telegram — переопределяет HTTPS_PROXY. Поддерживает http://, https://, socks5:// |
DISCORD_BOT_TOKEN |
Токен Discord-бота |
DISCORD_ALLOWED_USERS |
ID пользователей Discord (через запятую), которым разрешено использовать бота |
DISCORD_ALLOWED_ROLES |
ID ролей Discord (через запятую), которым разрешено использовать бота (логическое ИЛИ с DISCORD_ALLOWED_USERS). Автоматически включает Members intent. Полезно при текучке модераторов — разрешения ролей применяются автоматически. |
DISCORD_ALLOWED_CHANNELS |
ID каналов Discord (через запятую). Если задано, бот отвечает только в этих каналах (плюс ЛС, если разрешено). Переопределяет config.yaml discord.allowed_channels. |
DISCORD_PROXY |
URL прокси для подключений Discord — переопределяет HTTPS_PROXY. Поддерживает http://, https://, socks5:// |
DISCORD_HOME_CHANNEL |
Канал Discord по умолчанию для доставки cron |
DISCORD_HOME_CHANNEL_NAME |
Отображаемое имя для домашнего канала Discord |
DISCORD_COMMAND_SYNC_POLICY |
Политика синхронизации слеш-команд Discord при запуске: safe (diff и согласование), bulk (устаревший tree.sync()) или off |
DISCORD_REQUIRE_MENTION |
Требовать @упоминание перед ответом в серверных каналах |
DISCORD_FREE_RESPONSE_CHANNELS |
ID каналов (через запятую), где упоминание не требуется |
DISCORD_AUTO_THREAD |
Автоматически создавать тред для длинных ответов, где поддерживается |
DISCORD_REACTIONS |
Включить emoji-реакции на сообщения во время обработки (по умолчанию: true) |
DISCORD_IGNORED_CHANNELS |
ID каналов (через запятую), где бот никогда не отвечает |
DISCORD_NO_THREAD_CHANNELS |
ID каналов (через запятую), где бот отвечает без автоматического создания тредов |
DISCORD_REPLY_TO_MODE |
Поведение ответа-ссылки: off, first (по умолчанию) или all |
DISCORD_ALLOW_MENTION_EVERYONE |
Разрешить боту упоминать @everyone/@here (по умолчанию: false). См. Mention Control. |
DISCORD_ALLOW_MENTION_ROLES |
Разрешить боту упоминать @role (по умолчанию: false). |
DISCORD_ALLOW_MENTION_USERS |
Разрешить боту упоминать отдельных @user (по умолчанию: true). |
DISCORD_ALLOW_MENTION_REPLIED_USER |
Упоминать автора при ответе на его сообщение (по умолчанию: true). |
SLACK_BOT_TOKEN |
Токен Slack-бота (xoxb-...) |
SLACK_APP_TOKEN |
Токен приложения Slack (xapp-..., требуется для Socket Mode) |
SLACK_ALLOWED_USERS |
ID пользователей Slack (через запятую) |
SLACK_HOME_CHANNEL |
Канал Slack по умолчанию для доставки cron |
SLACK_HOME_CHANNEL_NAME |
Отображаемое имя для домашнего канала Slack |
WHATSAPP_ENABLED |
Включить мост WhatsApp (true/false) |
WHATSAPP_MODE |
bot (отдельный номер) или self-chat (написать себе) |
WHATSAPP_ALLOWED_USERS |
Номера телефонов (через запятую, с кодом страны, без +), или * для разрешения всем отправителям |
WHATSAPP_ALLOW_ALL_USERS |
Разрешить всем отправителям WhatsApp без белого списка (true/false) |
WHATSAPP_DEBUG |
Логировать сырые события сообщений в мосте для отладки (true/false) |
SIGNAL_HTTP_URL |
HTTP-эндпоинт демона signal-cli (например, http://127.0.0.1:8080) |
SIGNAL_ACCOUNT |
Номер телефона бота в формате E.164 |
SIGNAL_ALLOWED_USERS |
Номера телефонов E.164 или UUID (через запятую) |
SIGNAL_GROUP_ALLOWED_USERS |
ID групп (через запятую) или * для всех групп |
SIGNAL_HOME_CHANNEL_NAME |
Отображаемое имя для домашнего канала Signal |
SIGNAL_IGNORE_STORIES |
Игнорировать истории/статусы Signal |
SIGNAL_ALLOW_ALL_USERS |
Разрешить всем пользователям Signal без белого списка |
TWILIO_ACCOUNT_SID |
SID аккаунта Twilio (общий с навыком телефонии) |
TWILIO_AUTH_TOKEN |
Auth Token Twilio (общий с навыком телефонии; также используется для проверки подписи вебхука) |
TWILIO_PHONE_NUMBER |
Номер телефона Twilio в формате E.164 (общий с навыком телефонии) |
SMS_WEBHOOK_URL |
Публичный URL для проверки подписи Twilio — должен совпадать с URL вебхука в консоли Twilio (обязательно) |
SMS_WEBHOOK_PORT |
Порт прослушивания вебхука для входящих SMS (по умолчанию: 8080) |
SMS_WEBHOOK_HOST |
Адрес привязки вебхука (по умолчанию: 0.0.0.0) |
SMS_INSECURE_NO_SIGNATURE |
Установите true для отключения проверки подписи Twilio (только для локальной разработки — не для продакшена) |
SMS_ALLOWED_USERS |
Номера телефонов E.164 (через запятую), которым разрешено общаться |
SMS_ALLOW_ALL_USERS |
Разрешить всем отправителям SMS без белого списка |
SMS_HOME_CHANNEL |
Номер телефона для доставки задач cron/уведомлений |
SMS_HOME_CHANNEL_NAME |
Отображаемое имя для домашнего канала SMS |
EMAIL_ADDRESS |
Адрес электронной почты для адаптера шлюза Email |
EMAIL_PASSWORD |
Пароль или пароль приложения для учётной записи email |
EMAIL_IMAP_HOST |
IMAP-хост для адаптера email |
EMAIL_IMAP_PORT |
Порт IMAP |
EMAIL_SMTP_HOST |
SMTP-хост для адаптера email |
EMAIL_SMTP_PORT |
Порт SMTP |
EMAIL_ALLOWED_USERS |
Адреса email (через запятую), которым разрешено писать боту |
EMAIL_HOME_ADDRESS |
Получатель по умолчанию для проактивной доставки email |
EMAIL_HOME_ADDRESS_NAME |
Отображаемое имя для домашнего адреса email |
EMAIL_POLL_INTERVAL |
Интервал опроса email в секундах |
EMAIL_ALLOW_ALL_USERS |
Разрешить всех входящих отправителей email |
DINGTALK_CLIENT_ID |
AppKey бота DingTalk из портала разработчика (open.dingtalk.com) |
DINGTALK_CLIENT_SECRET |
AppSecret бота DingTalk из портала разработчика |
DINGTALK_ALLOWED_USERS |
ID пользователей DingTalk (через запятую), которым разрешено писать боту |
FEISHU_APP_ID |
App ID бота Feishu/Lark из open.feishu.cn |
FEISHU_APP_SECRET |
App Secret бота Feishu/Lark |
FEISHU_DOMAIN |
feishu (Китай) или lark (международный). По умолчанию: feishu |
FEISHU_CONNECTION_MODE |
websocket (рекомендуется) или webhook. По умолчанию: websocket |
FEISHU_ENCRYPT_KEY |
Опциональный ключ шифрования для режима вебхука |
FEISHU_VERIFICATION_TOKEN |
Опциональный токен проверки для режима вебхука |
FEISHU_ALLOWED_USERS |
ID пользователей Feishu (через запятую), которым разрешено писать боту |
FEISHU_ALLOW_BOTS |
none (по умолчанию) / mentions / all — принимать входящие сообщения от других ботов. См. bot-to-bot messaging |
FEISHU_REQUIRE_MENTION |
true (по умолчанию) / false — требуется ли @упоминание бота в групповых сообщениях. Переопределяется для каждого чата через group_rules.<chat_id>.require_mention. |
FEISHU_HOME_CHANNEL |
ID чата Feishu для доставки cron и уведомлений |
WECOM_BOT_ID |
ID AI-бота WeCom из консоли администратора |
WECOM_SECRET |
Секрет AI-бота WeCom |
WECOM_WEBSOCKET_URL |
Пользовательский URL WebSocket (по умолчанию: wss://openws.work.weixin.qq.com) |
WECOM_ALLOWED_USERS |
ID пользователей WeCom (через запятую), которым разрешено писать боту |
WECOM_HOME_CHANNEL |
ID чата WeCom для доставки cron и уведомлений |
WECOM_CALLBACK_CORP_ID |
Corp ID предприятия WeCom для callback-приложения |
WECOM_CALLBACK_CORP_SECRET |
Corp secret для callback-приложения |
WECOM_CALLBACK_AGENT_ID |
Agent ID callback-приложения |
WECOM_CALLBACK_TOKEN |
Токен проверки callback |
WECOM_CALLBACK_ENCODING_AES_KEY |
AES-ключ для шифрования callback |
WECOM_CALLBACK_HOST |
Адрес привязки сервера callback (по умолчанию: 0.0.0.0) |
WECOM_CALLBACK_PORT |
Порт сервера callback (по умолчанию: 8645) |
WECOM_CALLBACK_ALLOWED_USERS |
ID пользователей (через запятую) для белого списка |
WECOM_CALLBACK_ALLOW_ALL_USERS |
Установите true, чтобы разрешить всех пользователей без белого списка |
WEIXIN_ACCOUNT_ID |
ID учётной записи Weixin, полученный через QR-вход через API iLink Bot |
WEIXIN_TOKEN |
Токен аутентификации Weixin, полученный через QR-вход через API iLink Bot |
WEIXIN_BASE_URL |
Переопределение базового URL API iLink Bot Weixin (по умолчанию: https://ilinkai.weixin.qq.com) |
WEIXIN_CDN_BASE_URL |
Переопределение базового URL CDN Weixin для медиа (по умолчанию: https://novac2c.cdn.weixin.qq.com/c2c) |
WEIXIN_DM_POLICY |
Политика личных сообщений: open, allowlist, pairing, disabled (по умолчанию: open) |
WEIXIN_GROUP_POLICY |
Политика групповых сообщений: open, allowlist, disabled (по умолчанию: disabled) |
WEIXIN_ALLOWED_USERS |
ID пользователей Weixin (через запятую), которым разрешено писать боту в ЛС |
WEIXIN_GROUP_ALLOWED_USERS |
ID групповых чатов Weixin (через запятую, не ID участников), которым разрешено взаимодействовать с ботом. Название переменной устаревшее — ожидаются ID групп. Работает только когда iLink действительно доставляет групповые события; QR-логин iLink-боты (...@im.bot) обычно не получают обычные групповые сообщения WeChat. |
WEIXIN_HOME_CHANNEL |
ID чата Weixin для доставки cron и уведомлений |
WEIXIN_HOME_CHANNEL_NAME |
Отображаемое имя для домашнего канала Weixin |
WEIXIN_ALLOW_ALL_USERS |
Разрешить всех пользователей Weixin без белого списка (true/false) |
BLUEBUBBLES_SERVER_URL |
URL сервера BlueBubbles (например, http://192.168.1.10:1234) |
BLUEBUBBLES_PASSWORD |
Пароль сервера BlueBubbles |
BLUEBUBBLES_WEBHOOK_HOST |
Адрес привязки прослушивателя вебхука (по умолчанию: 127.0.0.1) |
BLUEBUBBLES_WEBHOOK_PORT |
Порт прослушивателя вебхука (по умолчанию: 8645) |
BLUEBUBBLES_HOME_CHANNEL |
Телефон/email для доставки cron/уведомлений |
BLUEBUBBLES_ALLOWED_USERS |
Авторизованные пользователи (через запятую) |
BLUEBUBBLES_ALLOW_ALL_USERS |
Разрешить всех пользователей (true/false) |
QQ_APP_ID |
App ID QQ-бота из q.qq.com |
QQ_CLIENT_SECRET |
App Secret QQ-бота из q.qq.com |
QQ_STT_API_KEY |
API-ключ для внешнего запасного STT-провайдера (опционально, используется когда встроенный ASR QQ не возвращает текст) |
QQ_STT_BASE_URL |
Базовый URL для внешнего STT-провайдера (опционально) |
QQ_STT_MODEL |
Имя модели для внешнего STT-провайдера (опционально) |
QQ_ALLOWED_USERS |
openID пользователей QQ (через запятую), которым разрешено писать боту |
QQ_GROUP_ALLOWED_USERS |
ID групп QQ (через запятую) для доступа к @-сообщениям в группах |
QQ_ALLOW_ALL_USERS |
Разрешить всех пользователей (true/false, переопределяет QQ_ALLOWED_USERS) |
QQBOT_HOME_CHANNEL |
openID пользователя/группы QQ для доставки cron и уведомлений |
QQBOT_HOME_CHANNEL_NAME |
Отображаемое имя для домашнего канала QQ |
QQ_PORTAL_HOST |
Переопределение хоста портала QQ (установите sandbox.q.qq.com для маршрутизации через песочницу; по умолчанию: q.qq.com). |
MATTERMOST_URL |
URL сервера Mattermost (например, https://mm.example.com) |
MATTERMOST_TOKEN |
Токен бота или персональный токен доступа для Mattermost |
MATTERMOST_ALLOWED_USERS |
ID пользователей Mattermost (через запятую), которым разрешено писать боту |
MATTERMOST_HOME_CHANNEL |
ID канала для проактивной доставки сообщений (cron, уведомления) |
MATTERMOST_REQUIRE_MENTION |
Требовать @упоминание в каналах (по умолчанию: true). Установите false для ответа на все сообщения. |
MATTERMOST_FREE_RESPONSE_CHANNELS |
ID каналов (через запятую), где бот отвечает без @упоминания |
MATTERMOST_REPLY_MODE |
Стиль ответа: thread (ответы в тредах) или off (плоские сообщения, по умолчанию) |
MATRIX_HOMESERVER |
URL homeserver Matrix (например, https://matrix.org) |
MATRIX_ACCESS_TOKEN |
Токен доступа Matrix для аутентификации бота |
MATRIX_USER_ID |
ID пользователя Matrix (например, @hermes:matrix.org) — требуется для входа по паролю, опционально с токеном доступа |
MATRIX_PASSWORD |
Пароль Matrix (альтернатива токену доступа) |
MATRIX_ALLOWED_USERS |
ID пользователей Matrix (через запятую), которым разрешено писать боту (например, @alice:matrix.org) |
MATRIX_HOME_ROOM |
ID комнаты для проактивной доставки сообщений (например, !abc123:matrix.org) |
MATRIX_ENCRYPTION |
Включить сквозное шифрование (true/false, по умолчанию: false) |
MATRIX_DEVICE_ID |
Стабильный ID устройства Matrix для сохранения E2EE между перезапусками (например, HERMES_BOT). Без этого ключи E2EE меняются при каждом запуске, и расшифровка исторических комнат нарушается. |
MATRIX_REACTIONS |
Включить emoji-реакции жизненного цикла обработки на входящие сообщения (по умолчанию: true). Установите false для отключения. |
MATRIX_REQUIRE_MENTION |
Требовать @упоминание в комнатах (по умолчанию: true). Установите false для ответа на все сообщения. |
MATRIX_FREE_RESPONSE_ROOMS |
ID комнат (через запятую), где бот отвечает без @упоминания |
MATRIX_AUTO_THREAD |
Автоматически создавать треды для сообщений в комнатах (по умолчанию: true) |
MATRIX_DM_MENTION_THREADS |
Создавать тред, когда бота @упоминают в ЛС (по умолчанию: false) |
MATRIX_RECOVERY_KEY |
Ключ восстановления для проверки кросс-подписи после ротации ключей устройства. Рекомендуется для E2EE-конфигураций с включённой кросс-подписью. |
HASS_TOKEN |
Long-Lived Access Token Home Assistant (включает платформу HA + инструменты) |
HASS_URL |
URL Home Assistant (по умолчанию: http://homeassistant.local:8123) |
WEBHOOK_ENABLED |
Включить адаптер платформы вебхука (true/false) |
WEBHOOK_PORT |
Порт HTTP-сервера для приёма вебхуков (по умолчанию: 8644) |
WEBHOOK_SECRET |
Глобальный HMAC-секрет для проверки подписи вебхуков (используется как запасной, когда маршруты не задают свой собственный) |
API_SERVER_ENABLED |
Включить API-сервер, совместимый с OpenAI (true/false). Работает параллельно с другими платформами. |
API_SERVER_KEY |
Bearer-токен для аутентификации API-сервера. Обязателен для привязки не к loopback. |
API_SERVER_CORS_ORIGINS |
Источники браузера (через запятую), которым разрешено вызывать API-сервер напрямую (например, http://localhost:3000,http://127.0.0.1:3000). По умолчанию: отключено. |
API_SERVER_PORT |
Порт API-сервера (по умолчанию: 8642) |
API_SERVER_HOST |
Хост/адрес привязки API-сервера (по умолчанию: 127.0.0.1). Используйте 0.0.0.0 для сетевого доступа — требуется API_SERVER_KEY и узкий белый список API_SERVER_CORS_ORIGINS. |
API_SERVER_MODEL_NAME |
Имя модели, объявляемое на /v1/models. По умолчанию равно имени профиля (или hermes-agent для профиля по умолчанию). Полезно для многопользовательских конфигураций, где интерфейсы вроде Open WebUI требуют разные имена моделей для каждого подключения. |
GATEWAY_PROXY_URL |
URL удалённого API-сервера Hermes для пересылки сообщений (режим прокси). Когда задан, шлюз обрабатывает только ввод/вывод платформы — вся работа агента делегируется удалённому серверу. Также настраивается через gateway.proxy_url в config.yaml. |
GATEWAY_PROXY_KEY |
Bearer-токен для аутентификации на удалённом API-сервере в режиме прокси. Должен совпадать с API_SERVER_KEY на удалённом хосте. |
MESSAGING_CWD |
Рабочая директория для терминальных команд в режиме мессенджеров (по умолчанию: ~) |
GATEWAY_ALLOWED_USERS |
ID пользователей (через запятую), которым разрешено использование на всех платформах |
GATEWAY_ALLOW_ALL_USERS |
Разрешить всех пользователей без белых списков (true/false, по умолчанию: false) |
| ### Продвинутая настройка мессенджеров | |
| Продвинутые per-платформенные рычаги для регулировки пакетного отправителя исходящих сообщений. Большинству пользователей никогда не нужно их трогать; значения по умолчанию настроены так, чтобы соблюдать лимиты каждой платформы без ощущения задержек. | |
| Переменная | Описание |
| --- | --- |
HERMES_TELEGRAM_TEXT_BATCH_DELAY_SECONDS |
Окно ожидания перед отправкой накопленного фрагмента текста Telegram (по умолчанию: 0.6). |
HERMES_TELEGRAM_TEXT_BATCH_SPLIT_DELAY_SECONDS |
Задержка между разделёнными фрагментами, когда одно сообщение Telegram превышает лимит длины (по умолчанию: 2.0). |
HERMES_TELEGRAM_MEDIA_BATCH_DELAY_SECONDS |
Окно ожидания перед отправкой накопленных медиа Telegram (по умолчанию: 0.6). |
HERMES_TELEGRAM_FOLLOWUP_GRACE_SECONDS |
Задержка перед отправкой дополнительного сообщения после завершения работы агента, чтобы избежать гонки с последним фрагментом стрима. |
HERMES_TELEGRAM_HTTP_CONNECT_TIMEOUT / _READ_TIMEOUT / _WRITE_TIMEOUT / _POOL_TIMEOUT |
Переопределение тайм-аутов HTTP базовой библиотеки python-telegram-bot (секунды). |
HERMES_TELEGRAM_HTTP_POOL_SIZE |
Максимальное количество одновременных HTTP-соединений с API Telegram. |
HERMES_TELEGRAM_DISABLE_FALLBACK_IPS |
Отключить жёстко заданные запасные IP Cloudflare, используемые при сбое DNS (true/false). |
HERMES_DISCORD_TEXT_BATCH_DELAY_SECONDS |
Окно ожидания перед отправкой накопленного фрагмента текста Discord (по умолчанию: 0.6). |
HERMES_DISCORD_TEXT_BATCH_SPLIT_DELAY_SECONDS |
Задержка между разделёнными фрагментами, когда сообщение Discord превышает лимит длины (по умолчанию: 2.0). |
HERMES_MATRIX_TEXT_BATCH_DELAY_SECONDS / _SPLIT_DELAY_SECONDS |
Аналоги Telegram для Matrix. |
HERMES_FEISHU_TEXT_BATCH_DELAY_SECONDS / _SPLIT_DELAY_SECONDS / _MAX_CHARS / _MAX_MESSAGES |
Настройка пакетного отправителя Feishu — задержка, задержка разделения, макс. символов на сообщение, макс. сообщений в пакете. |
HERMES_FEISHU_MEDIA_BATCH_DELAY_SECONDS |
Задержка отправки медиа Feishu. |
HERMES_FEISHU_DEDUP_CACHE_SIZE |
Размер кеша дедупликации вебхуков Feishu (по умолчанию: 1024). |
HERMES_WECOM_TEXT_BATCH_DELAY_SECONDS / _SPLIT_DELAY_SECONDS |
Настройка пакетного отправителя WeCom. |
HERMES_VISION_DOWNLOAD_TIMEOUT |
Тайм-аут в секундах для загрузки изображения перед передачей vision-моделям (по умолчанию: 30). |
HERMES_RESTART_DRAIN_TIMEOUT |
Шлюз: время ожидания в секундах завершения активных запусков при /restart до принудительного перезапуска (по умолчанию: 900). |
HERMES_GATEWAY_PLATFORM_CONNECT_TIMEOUT |
Тайм-аут подключения для каждой платформы при запуске шлюза (секунды). |
HERMES_GATEWAY_BUSY_INPUT_MODE |
Режим поведения шлюза по умолчанию при занятости: queue, steer или interrupt. Можно переопределить для каждого чата через /busy. |
HERMES_GATEWAY_BUSY_ACK_ENABLED |
Отправляет ли шлюз подтверждающее сообщение (⚡/⏳/⏩), когда пользователь отправляет ввод, пока агент занят (по умолчанию: true). Установите false, чтобы отключить эти сообщения — ввод всё равно ставится в очередь/направляется/прерывает как обычно, только ответ в чате отключается. Перенесено из display.busy_ack_enabled в config.yaml. |
HERMES_CRON_TIMEOUT |
Тайм-аут бездействия для запусков агента по cron в секундах (по умолчанию: 600). Агент может работать бесконечно, пока активно вызывает инструменты или получает токены стрима — это срабатывает только при бездействии. Установите 0 для отключения. |
HERMES_CRON_SCRIPT_TIMEOUT |
Тайм-аут для скриптов предварительного запуска, прикреплённых к задачам cron, в секундах (по умолчанию: 120). Переопределите для скриптов, которым нужно больше времени (например, рандомизированные задержки для анти-бот тайминга). Также настраивается через cron.script_timeout_seconds в config.yaml. |
HERMES_CRON_MAX_PARALLEL |
Максимальное количество параллельных задач cron за один тик (по умолчанию: 4). |
| ## Поведение агента | |
| Переменная | Описание |
| --- | --- |
HERMES_MAX_ITERATIONS |
Максимальное количество итераций вызова инструментов за один разговор (по умолчанию: 90) |
HERMES_INFERENCE_MODEL |
Переопределение имени модели на уровне процесса (имеет приоритет над config.yaml для сессии). Также задаётся через флаг -m/--model. |
HERMES_YOLO_MODE |
Установите 1 для пропуска запросов подтверждения опасных команд. Эквивалент --yolo. |
HERMES_ACCEPT_HOOKS |
Автоматически принимать любые неизвестные хуки оболочки, объявленные в config.yaml, без TTY-запроса. Эквивалент --accept-hooks или hooks_auto_accept: true. |
HERMES_IGNORE_USER_CONFIG |
Пропустить ~/.hermes/config.yaml и использовать встроенные значения по умолчанию (учётные данные в .env всё равно загружаются). Эквивалент --ignore-user-config. |
HERMES_IGNORE_RULES |
Пропустить авто-внедрение AGENTS.md, SOUL.md, .cursorrules, памяти и предзагруженных навыков. Эквивалент --ignore-rules. |
HERMES_MD_NAMES |
Список имён файлов правил (через запятую) для авто-внедрения (по умолчанию: AGENTS.md,CLAUDE.md,.cursorrules,SOUL.md). |
HERMES_TOOL_PROGRESS |
Устаревшая переменная совместимости для отображения прогресса инструментов. Предпочтительнее использовать display.tool_progress в config.yaml. |
HERMES_TOOL_PROGRESS_MODE |
Устаревшая переменная совместимости для режима прогресса инструментов. Предпочтительнее использовать display.tool_progress в config.yaml. |
HERMES_HUMAN_DELAY_MODE |
Темп ответа: off/natural/custom |
HERMES_HUMAN_DELAY_MIN_MS |
Минимум диапазона пользовательской задержки (мс) |
HERMES_HUMAN_DELAY_MAX_MS |
Максимум диапазона пользовательской задержки (мс) |
HERMES_QUIET |
Подавить несущественный вывод (true/false) |
HERMES_API_TIMEOUT |
Тайм-аут вызова LLM API в секундах (по умолчанию: 1800) |
HERMES_API_CALL_STALE_TIMEOUT |
Тайм-аут устаревшего нестримингового вызова в секундах (по умолчанию: 300). Автоматически отключается для локальных провайдеров, если оставлено пустым. Также настраивается через providers.<id>.stale_timeout_seconds или providers.<id>.models.<model>.stale_timeout_seconds в config.yaml. |
HERMES_STREAM_READ_TIMEOUT |
Тайм-аут чтения стримингового сокета в секундах (по умолчанию: 120). Автоматически увеличивается до HERMES_API_TIMEOUT для локальных провайдеров. Увеличьте, если локальные LLM выходят по тайм-ауту во время длительной генерации кода. |
HERMES_STREAM_STALE_TIMEOUT |
Тайм-аут обнаружения устаревшего стрима в секундах (по умолчанию: 180). Автоматически отключается для локальных провайдеров. Вызывает завершение соединения, если в течение этого окна не поступает чанков. |
HERMES_STREAM_RETRIES |
Количество попыток переподключения в середине стрима при временных сетевых ошибках (по умолчанию: 3). |
HERMES_AGENT_TIMEOUT |
Тайм-аут бездействия шлюза для запущенного агента в секундах (по умолчанию: 900). Сбрасывается при каждом вызове инструмента и полученном токене стрима. Установите 0 для отключения. |
HERMES_AGENT_TIMEOUT_WARNING |
Шлюз: отправить предупреждение после этого количества секунд бездействия (по умолчанию: 75% от HERMES_AGENT_TIMEOUT). |
HERMES_AGENT_NOTIFY_INTERVAL |
Шлюз: интервал в секундах между уведомлениями о прогрессе при длительных запусках агента. |
HERMES_CHECKPOINT_TIMEOUT |
Тайм-аут для создания файловой точки сохранения в секундах (по умолчанию: 30). |
HERMES_EXEC_ASK |
Включить запросы подтверждения выполнения в режиме шлюза (true/false) |
HERMES_ENABLE_PROJECT_PLUGINS |
Включить авто-обнаружение локальных плагинов репозитория из ./.hermes/plugins/ (true/false, по умолчанию: false) |
HERMES_BACKGROUND_NOTIFICATIONS |
Режим уведомлений о фоновых процессах в шлюзе: all (по умолчанию), result, error, off |
HERMES_EPHEMERAL_SYSTEM_PROMPT |
Эфемерный системный промпт, внедряемый при вызове API (никогда не сохраняется в сессиях) |
HERMES_PREFILL_MESSAGES_FILE |
Путь к JSON-файлу с эфемерными prefill-сообщениями, внедряемыми при вызове API. |
HERMES_ALLOW_PRIVATE_URLS |
true/false — разрешить инструментам загружать URL localhost/частной сети. По умолчанию отключено в режиме шлюза. |
HERMES_REDACT_SECRETS |
true/false — управление редактированием секретов в логах и передаваемых выводах (по умолчанию: true). |
HERMES_WRITE_SAFE_ROOT |
Опциональный префикс директории, ограничивающий запись write_file/patch; пути вне его требуют подтверждения. |
HERMES_DISABLE_FILE_STATE_GUARD |
Установите 1 для отключения проверки «файл изменился с момента вашего чтения» для patch/write_file. |
HERMES_CORE_TOOLS |
Переопределение канонического списка основных инструментов (через запятую; продвинутое, редко требуется). |
HERMES_BUNDLED_SKILLS |
Переопределение списка встроенных навыков, загружаемых при запуске (через запятую). |
HERMES_OPTIONAL_SKILLS |
Список имён опциональных навыков (через запятую) для авто-установки при первом запуске. |
HERMES_DEBUG_INTERRUPT |
Установите 1 для подробного логирования прерываний/отмен в agent.log. |
HERMES_DUMP_REQUESTS |
Сохранять полезную нагрузку API-запросов в лог-файлы (true/false) |
HERMES_DUMP_REQUEST_STDOUT |
Сохранять полезную нагрузку API-запросов в stdout вместо лог-файлов. |
HERMES_OAUTH_TRACE |
Установите 1 для логирования обмена и обновления OAuth-токенов. Включает редактированную информацию о времени. |
HERMES_OAUTH_FILE |
Переопределение пути для хранения OAuth-учётных данных (по умолчанию: ~/.hermes/auth.json). |
HERMES_AGENT_HELP_GUIDANCE |
Добавить дополнительный направляющий текст в системный промпт для пользовательских развёртываний. |
HERMES_AGENT_LOGO |
Переопределение ASCII-баннера с логотипом при запуске CLI. |
DELEGATION_MAX_CONCURRENT_CHILDREN |
Максимальное количество параллельных подагентов на один пакет delegate_task (по умолчанию: 3, минимум 1, без верхнего предела). Также настраивается через delegation.max_concurrent_children в config.yaml — значение из конфига имеет приоритет. |
| ## Интерфейс | |
| Переменная | Описание |
| --- | --- |
HERMES_TUI |
Запустить TUI вместо классического CLI, если установлено в 1. Эквивалент флага --tui. |
HERMES_TUI_DIR |
Путь к предварительно собранной директории ui-tui/ (должна содержать dist/entry.js и заполненную node_modules). Используется дистрибутивами и Nix для пропуска npm install при первом запуске. |
HERMES_TUI_RESUME |
Возобновить конкретную TUI-сессию по ID при запуске. Если задано, hermes --tui пропускает создание новой сессии и восстанавливает указанную — полезно для повторного подключения после отключения или сбоя терминала. |
HERMES_TUI_THEME |
Принудительная цветовая тема TUI: light, dark или сырой 6-символьный шестнадцатеричный цвет фона (например, ffffff или 1a1a2e). Если не задано, Hermes определяет автоматически через COLORFGBG и запросы фона терминала; эта переменная переопределяет определение на терминалах (Ghostty, Warp, iTerm2 и т.д.), которые не устанавливают COLORFGBG. |
HERMES_INFERENCE_MODEL |
Принудительная модель для hermes -z / hermes chat без изменения config.yaml. Сочетается с HERMES_INFERENCE_PROVIDER. Полезно для вызывающих скриптов (свипер, CI, пакетные запуски), которым нужно переопределять модель по умолчанию для каждого запуска. |
| ## Настройки сессий | |
| Переменная | Описание |
| --- | --- |
SESSION_IDLE_MINUTES |
Сброс сессий после N минут бездействия (по умолчанию: 1440) |
SESSION_RESET_HOUR |
Час ежедневного сброса в 24-часовом формате (по умолчанию: 4 = 4:00 утра) |
| ## Сжатие контекста (только config.yaml) | |
Сжатие контекста настраивается исключительно через config.yaml — для него нет переменных окружения. Пороговые значения находятся в блоке compression:, а модель суммаризации/провайдер — в auxiliary.compression:. |
|
| [code] | |
| compression: | |
| enabled: true | |
| threshold: 0.50 | |
| target_ratio: 0.20 # доля порога, сохраняемая как недавний хвост | |
| protect_last_n: 20 # минимальное количество последних сообщений для сохранения без сжатия |
[/code]
Миграция устаревших конфигов
Старые конфиги с compression.summary_model, compression.summary_provider и compression.summary_base_url автоматически переносятся в auxiliary.compression.* при первой загрузке.
Переопределение вспомогательных задач¶
| Переменная | Описание |
|---|---|
AUXILIARY_VISION_PROVIDER |
Переопределение провайдера для задач vision |
AUXILIARY_VISION_MODEL |
Переопределение модели для задач vision |
AUXILIARY_VISION_BASE_URL |
Прямой эндпоинт, совместимый с OpenAI, для задач vision |
AUXILIARY_VISION_API_KEY |
API-ключ в паре с AUXILIARY_VISION_BASE_URL |
AUXILIARY_WEB_EXTRACT_PROVIDER |
Переопределение провайдера для извлечения/суммаризации веб-страниц |
AUXILIARY_WEB_EXTRACT_MODEL |
Переопределение модели для извлечения/суммаризации веб-страниц |
AUXILIARY_WEB_EXTRACT_BASE_URL |
Прямой эндпоинт, совместимый с OpenAI, для извлечения/суммаризации веб-страниц |
AUXILIARY_WEB_EXTRACT_API_KEY |
API-ключ в паре с AUXILIARY_WEB_EXTRACT_BASE_URL |
Для прямых эндпоинтов, специфичных для задачи, Hermes использует настроенный API-ключ задачи или OPENAI_API_KEY. Он не использует повторно OPENROUTER_API_KEY для этих пользовательских эндпоинтов. |
|
| ## Запасные провайдеры (только config.yaml) | |
Цепочка запасных провайдеров для основной модели настраивается исключительно через config.yaml — для неё нет переменных окружения. Добавьте список fallback_providers верхнего уровня с ключами provider и model, чтобы включить автоматическое переключение при ошибках вашей основной модели. |
|
| [code] | |
| fallback_providers: | |
| - provider: openrouter | |
| model: anthropic/claude-sonnet-4 |
[/code]
Старая форма fallback_model для одного провайдера всё ещё читается для обратной совместимости, но для новых конфигураций следует использовать fallback_providers.
См. Fallback Providers для получения полной информации.
Маршрутизация провайдеров (только config.yaml)¶
Эти настройки размещаются в ~/.hermes/config.yaml в разделе provider_routing:
Ключ| Описание
---|---
sort| Сортировать провайдеров: "price" (по умолчанию), "throughput" или "latency"
only| Список разрешённых идентификаторов провайдеров (например, [\"anthropic\", \"google\"])
ignore| Список идентификаторов провайдеров для пропуска
order| Список идентификаторов провайдеров для последовательного перебора
require_parameters| Использовать только провайдеров, поддерживающих все параметры запроса (true/false)
data_collection| "allow" (по умолчанию) или "deny" для исключения провайдеров, хранящих данные
tip
Используйте hermes config set для установки переменных окружения — он автоматически сохраняет их в нужный файл (.env для секретов, config.yaml для всего остального).
* LLM-провайдеры
* Аутентификация провайдеров (OAuth)
* Tool API
* Langfuse Observability
* Nous Tool Gateway
* Терминальный бэкенд
* SSH-бэкенд
* Ресурсы контейнеров (Docker, Singularity, Modal, Daytona)
* Постоянная оболочка
* Мессенджеры
* Продвинутая настройка мессенджеров
* Поведение агента
* Интерфейс
* Настройки сессий
* Сжатие контекста (только config.yaml)
* Переопределение вспомогательных задач
* Запасные провайдеры (только config.yaml)
* Маршрутизация провайдеров (только config.yaml)