Справочник переменных окружения
Все переменные указываются в ~/.hermes/.env. Также их можно задать с помощью hermes config set VAR значение.
LLM-провайдеры
| Переменная | Описание |
|---|---|
OPENROUTER_API_KEY |
API-ключ OpenRouter (рекомендуется для гибкости) |
OPENROUTER_BASE_URL |
Переопределить базовый URL, совместимый с OpenRouter |
HERMES_OPENROUTER_CACHE |
Включить кэширование ответов OpenRouter (1/true/yes/on). Переопределяет openrouter.response_cache в config.yaml. См. Кэширование ответов. |
HERMES_OPENROUTER_CACHE_TTL |
TTL кэша в секундах (1–86400). Переопределяет openrouter.response_cache_ttl в config.yaml. |
NOUS_BASE_URL |
Переопределить базовый URL Nous Portal (редко требуется; только для разработки/тестирования) |
NOUS_INFERENCE_BASE_URL |
Переопределить endpoint инференса 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-ключ для пользовательских endpoint-ов, совместимых с OpenAI (используется с OPENAI_BASE_URL) |
OPENAI_BASE_URL |
Базовый URL для пользовательского endpoint-а (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 — глобальный endpoint (minimax.io). Не используется minimax-oauth (OAuth-путь использует вход через браузер). |
MINIMAX_BASE_URL |
Переопределить базовый URL MiniMax (по умолчанию: https://api.minimax.io/anthropic — Hermes использует endpoint MiniMax, совместимый с Anthropic Messages). Не используется minimax-oauth. |
MINIMAX_CN_API_KEY |
API-ключ MiniMax — endpoint для Китая (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 endpoint-а Azure AI Foundry (напр. https://<ресурс>.openai.azure.com/openai/v1 для OpenAI-стиля, или https://<ресурс>.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 для PKCE-входа google-gemini-cli (опционально; по умолчанию используется публичный клиент gemini-cli от Google) |
HERMES_GEMINI_CLIENT_SECRET |
OAuth client secret для google-gemini-cli (опционально) |
HERMES_GEMINI_PROJECT_ID |
GCP project ID для платных тарифов Gemini (бесплатный тариф создаётся автоматически) |
ANTHROPIC_API_KEY |
API-ключ Anthropic Console (console.anthropic.com) |
ANTHROPIC_TOKEN |
Ручное или устаревшее переопределение Anthropic OAuth/установочного токена |
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 DeepSeek API |
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 endpoint-а) |
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 или автоматически определяемый локальный fallback CLI whisper (по умолчанию: en) |
HERMES_HOME |
Переопределить директорию конфигурации Hermes (по умолчанию: ~/.hermes). Также определяет область видимости PID-файла gateway и имени systemd-сервиса, поэтому несколько установок могут работать одновременно |
HERMES_GIT_BASH_PATH |
Только Windows. Переопределить поиск bash.exe для терминального инструмента. Указывает на любой bash — полная установка Git-for-Windows, WSL bash через симлинк, MSYS2, Cygwin. Установщик устанавливает это автоматически на предоставленный PortableGit. См. Руководство по Windows (Native) |
HERMES_DISABLE_WINDOWS_UTF8 |
Только Windows. Установите в 1 для отключения прослойки UTF-8 stdio (configure_windows_stdio()) и возврата к кодовой странице локали консоли. Полезно для диагностики ошибок кодировки; редко является правильной настройкой при обычной работе |
HERMES_KANBAN_HOME |
Переопределить общий корень Hermes, на который опирается kanban-доска (БД + рабочие пространства + логи воркеров). По умолчанию используется get_default_hermes_root() (родительский каталог активного профиля). Полезно для тестов и нестандартных развёртываний |
HERMES_KANBAN_BOARD |
Зафиксировать активную kanban-доску для этого процесса. Имеет приоритет над ~/.hermes/kanban/current; диспетчер внедряет это в окружение воркерных подпроцессов, чтобы воркеры физически не могли видеть задачи на других досках. По умолчанию: default. Валидация слага: строчные буквы, цифры, дефисы и подчёркивания, 1–64 символа |
HERMES_KANBAN_DB |
Зафиксировать путь к файлу базы данных kanban напрямую (наивысший приоритет; переопределяет HERMES_KANBAN_BOARD и HERMES_KANBAN_HOME). Диспетчер внедряет это в окружение воркерных подпроцессов, чтобы воркеры профиля сходились к доске диспетчера |
HERMES_KANBAN_WORKSPACES_ROOT |
Зафиксировать корень рабочих пространств kanban напрямую (наивысший приоритет для рабочих пространств; переопределяет 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), 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 |
Минимальный TTL ключа агента до перевыпуска (по умолчанию: 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) |
API инструментов
| Переменная | Описание |
|---|---|
PARALLEL_API_KEY |
AI-нативный веб-поиск (parallel.ai) |
FIRECRAWL_API_KEY |
Веб-скрапинг и облачный браузер (firecrawl.dev) |
FIRECRAWL_API_URL |
Пользовательский endpoint Firecrawl API для самостоятельных инсталляций (опционально) |
TAVILY_API_KEY |
API-ключ Tavily для AI-нативного веб-поиска, извлечения и краулинга (app.tavily.com) |
SEARXNG_URL |
URL экземпляра SearXNG для бесплатного самостоятельного веб-поиска — API-ключ не требуется (searxng.github.io) |
TAVILY_BASE_URL |
Переопределить endpoint Tavily API. Полезно для корпоративных прокси и самостоятельных бэкендов поиска, совместимых с Tavily. Аналогично GROQ_BASE_URL. |
EXA_API_KEY |
API-ключ Exa для AI-нативного веб-поиска и контента (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 |
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 |
Переопределить endpoint Groq STT, совместимый с OpenAI |
STT_OPENAI_MODEL |
Переопределить модель OpenAI STT (по умолчанию: whisper-1) |
STT_OPENAI_BASE_URL |
Переопределить endpoint STT, совместимый с OpenAI |
GITHUB_TOKEN |
GitHub-токен для Skills Hub (более высокие лимиты API, публикация навыков) |
HONCHO_API_KEY |
Моделирование пользователей между сессиями (honcho.dev) |
HONCHO_BASE_URL |
Базовый URL для самостоятельных инстансов Honcho (по умолчанию: облако Honcho). Для локальных инстансов API-ключ не требуется |
HINDSIGHT_TIMEOUT |
Таймаут в секундах для вызовов API memory-провайдера 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 или самостоятельных развёртываний gateway. Большинству пользователей не нужно их устанавливать — gateway настраивается автоматически через hermes model или hermes tools.
| Переменная | Описание |
|---|---|
TOOL_GATEWAY_DOMAIN |
Базовый домен для маршрутизации Tool Gateway (по умолчанию: nousresearch.com) |
TOOL_GATEWAY_SCHEME |
Схема HTTP или HTTPS для URL gateway (по умолчанию: https) |
TOOL_GATEWAY_USER_TOKEN |
Токен аутентификации для Tool Gateway (обычно заполняется автоматически из аутентификации Nous) |
FIRECRAWL_GATEWAY_URL |
Переопределить URL для endpoint-а Firecrawl gateway |
Терминальный бэкенд
| Переменная | Описание |
|---|---|
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 (пары хост:контейнер через запятую) |
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 |
Рабочая директория для сессий терминала (только gateway/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 для режима вебхука (включает вебхук вместо опроса) |
TELEGRAM_WEBHOOK_PORT |
Локальный порт прослушивания для сервера вебхука (по умолчанию: 8443) |
TELEGRAM_WEBHOOK_SECRET |
Секретный токен, который Telegram отправляет обратно в каждом обновлении для проверки. Обязателен, когда установлен TELEGRAM_WEBHOOK_URL — gateway отказывается запускаться без него (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. Полезно, когда в модераторских командах происходят изменения — разрешения для ролей распространяются автоматически. |
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 (сравнение и согласование), 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). См. Управление упоминаниями. |
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 |
GOOGLE_CHAT_PROJECT_ID |
GCP-проект, размещающий Pub/Sub-тему (использует GOOGLE_CLOUD_PROJECT как запасной) |
GOOGLE_CHAT_SUBSCRIPTION_NAME |
Полный путь Pub/Sub-подписки, projects/{proj}/subscriptions/{sub} (устаревший псевдоним: GOOGLE_CHAT_SUBSCRIPTION) |
GOOGLE_CHAT_SERVICE_ACCOUNT_JSON |
Путь к JSON-файлу сервисного аккаунта или сам JSON (использует GOOGLE_APPLICATION_CREDENTIALS как запасной) |
GOOGLE_CHAT_ALLOWED_USERS |
Email-адреса пользователей через запятую, которым разрешено общаться с ботом |
GOOGLE_CHAT_ALLOW_ALL_USERS |
Разрешить любому пользователю Google Chat взаимодействовать с ботом (только для разработки) |
GOOGLE_CHAT_HOME_CHANNEL |
Пространство по умолчанию (напр. spaces/AAAA...) для доставки cron |
GOOGLE_CHAT_HOME_CHANNEL_NAME |
Отображаемое имя домашнего пространства Google Chat |
GOOGLE_CHAT_MAX_MESSAGES |
Максимальное количество сообщений в полёте Pub/Sub FlowControl (по умолчанию: 1) |
GOOGLE_CHAT_MAX_BYTES |
Максимальное количество байт в полёте Pub/Sub FlowControl (по умолчанию: 16777216, 16 МиБ) |
GOOGLE_CHAT_BOOTSTRAP_SPACES |
Дополнительные ID пространств через запятую для зондирования при запуске при разрешении собственного users/{id} бота |
GOOGLE_CHAT_DEBUG_RAW |
Установите любое значение для логирования редактированных Pub/Sub-конвертов на уровне DEBUG (только для отладки) |
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 endpoint демона 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 |
Токен аутентификации 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-шлюза |
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 — принимать входящие сообщения от других ботов. См. взаимодействие бот-бот |
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 |
Секрет предприятия для callback-приложения |
WECOM_CALLBACK_AGENT_ID |
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-вход через iLink Bot API |
WEIXIN_TOKEN |
Токен аутентификации Weixin, полученный через QR-вход через iLink Bot API |
WEIXIN_BASE_URL |
Переопределить базовый URL Weixin iLink Bot API (по умолчанию: 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 домашнего сервера 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 |
Долгоживущий токен доступа 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-сервера. Обязателен для привязки не к localhost. |
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 обрабатывает только ввод-вывод платформы — вся работа агента делегируется удалённому серверу. Также настраивается через 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) |
Microsoft Graph (Teams Meetings)
Учётные данные только для приложения Microsoft Graph REST клиента, используемого конвейером сводок встреч Teams. См. Регистрация приложения Microsoft Graph для ознакомления с Azure portal и точными необходимыми разрешениями API.
| Переменная | Описание |
|---|---|
MSGRAPH_TENANT_ID |
ID арендатора Azure AD (GUID директории) для регистрации Graph-приложения. |
MSGRAPH_CLIENT_ID |
ID приложения (клиента) регистрации Azure-приложения. |
MSGRAPH_CLIENT_SECRET |
Значение секрета клиента для регистрации приложения. Храните в ~/.hermes/.env с chmod 600; периодически меняйте через Azure portal. |
MSGRAPH_SCOPE |
Область OAuth2 для запроса токена учётных данных клиента (по умолчанию: https://graph.microsoft.com/.default). |
MSGRAPH_AUTHORITY_URL |
Платформа удостоверений Microsoft (по умолчанию: https://login.microsoftonline.com). Переопределяйте только для национальных/суверенных облаков (напр. https://login.microsoftonline.us для GCC High). |
Слушатель вебхуков Microsoft Graph
Слушатель входящих уведомлений об изменениях для событий Graph (встречи Teams, календарь, чат и т.д.). См. Слушатель вебхуков Microsoft Graph для настройки и усиления безопасности.
| Переменная | Описание |
|---|---|
MSGRAPH_WEBHOOK_ENABLED |
Включить платформу шлюза msgraph_webhook (true/1/yes). |
MSGRAPH_WEBHOOK_PORT |
Порт, который прослушивает слушатель (по умолчанию: 8646). |
MSGRAPH_WEBHOOK_CLIENT_STATE |
Общий секрет, который Graph отправляет в каждом уведомлении; сравнивается с hmac.compare_digest. Сгенерируйте с помощью openssl rand -hex 32. |
MSGRAPH_WEBHOOK_ACCEPTED_RESOURCES |
Белый список путей/шаблонов ресурсов Graph через запятую (напр. communications/onlineMeetings,chats/*/messages). Замыкающий * означает префиксное совпадение. Пусто = принимать все. |
MSGRAPH_WEBHOOK_ALLOWED_SOURCE_CIDRS |
Диапазоны CIDR через запятую, которым разрешено отправлять POST на слушатель (напр. 52.96.0.0/14,52.104.0.0/14). Пусто = разрешить все (по умолчанию). В продакшене ограничьте опубликованными диапазонами исходящего трафика Microsoft Graph. |
Доставка сводок встреч Teams
Используется только когда включён плагин teams_pipeline. Настройки также можно задать в platforms.teams.extra в config.yaml — переменные окружения имеют приоритет, если заданы оба варианта. См. Microsoft Teams → Доставка сводок встреч.
| Переменная | Описание |
|---|---|
TEAMS_DELIVERY_MODE |
graph или incoming_webhook. |
TEAMS_INCOMING_WEBHOOK_URL |
Сгенерированный Teams URL вебхука; обязателен при TEAMS_DELIVERY_MODE=incoming_webhook. |
TEAMS_GRAPH_ACCESS_TOKEN |
Предварительно полученный делегированный токен доступа для доставки через Graph. Редко требуется — writer использует учётные данные приложения MSGRAPH_* как запасные, если не задано. |
TEAMS_TEAM_ID |
ID целевой команды для доставки в канал (режим graph). |
TEAMS_CHANNEL_ID |
ID целевого канала (в паре с TEAMS_TEAM_ID). |
TEAMS_CHAT_ID |
ID целевого личного или группового чата (альтернатива команда+канал для режима graph). |
LINE Messaging API
Используется встроенным плагином платформы LINE (plugins/platforms/line/). См. Шлюз мессенджеров → LINE для полной настройки.
| Переменная | Описание |
|---|---|
LINE_CHANNEL_ACCESS_TOKEN |
Долгоживущий токен доступа канала из консоли разработчика LINE (вкладка Messaging API). Обязательно. |
LINE_CHANNEL_SECRET |
Секрет канала (вкладка Basic settings); используется для проверки подписи вебхука HMAC-SHA256. Обязательно. |
LINE_HOST |
Хост привязки вебхука (по умолчанию: 0.0.0.0). |
LINE_PORT |
Порт привязки вебхука (по умолчанию: 8646). |
LINE_PUBLIC_URL |
Публичный HTTPS базовый URL (напр. https://my-tunnel.example.com). Обязателен для отправки изображений/аудио/видео — LINE принимает только URL, доступные через HTTPS. |
LINE_ALLOWED_USERS |
ID пользователей через запятую, которым разрешено писать боту в ЛС (с префиксом U). |
LINE_ALLOWED_GROUPS |
ID групп через запятую, в которых бот будет отвечать (с префиксом C). |
LINE_ALLOWED_ROOMS |
ID комнат через запятую, в которых бот будет отвечать (с префиксом R). |
LINE_ALLOW_ALL_USERS |
Запасной вариант только для разработки — принимает любой источник. По умолчанию: false. |
LINE_HOME_CHANNEL |
Цель доставки по умолчанию для cron-задач с deliver: line. |
LINE_SLOW_RESPONSE_THRESHOLD |
Секунды до срабатывания отложенного ответа Template Buttons (по умолчанию: 45). Установите 0 для отключения и всегда использовать Push-fallback. |
LINE_PENDING_TEXT |
Текст пузыря, отображаемый рядом с кнопкой postback. |
LINE_BUTTON_LABEL |
Текст кнопки postback (по умолчанию: Get answer). |
LINE_DELIVERED_TEXT |
Ответ, когда уже доставленная кнопка postback нажата снова (по умолчанию: Already replied ✅). |
LINE_INTERRUPTED_TEXT |
Ответ, когда нажата кнопка postback, осиротевшая из-за /stop (по умолчанию: Run was interrupted before completion.). |
Расширенная настройка мессенджеров
Расширенные регулировки для каждой платформы для управления исходящим пакетным отправителем. Большинству пользователей никогда не нужно их трогать; значения по умолчанию установлены с учётом лимитов скорости каждой платформы без ощущения замедления.
| Переменная | Описание |
|---|---|
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-соединений с Telegram API. |
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 |
Эквиваленты Matrix для настроек пакетной отправки Telegram. |
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 |
Gateway: секунды ожидания завершения активных запусков при /restart перед принудительным перезапуском (по умолчанию: 900). |
HERMES_GATEWAY_PLATFORM_CONNECT_TIMEOUT |
Таймаут подключения для каждой платформы при запуске gateway (секунды). |
HERMES_GATEWAY_BUSY_INPUT_MODE |
Поведение gateway при занятости по умолчанию: queue, steer или interrupt. Можно переопределить для каждого чата с помощью /busy. |
HERMES_GATEWAY_BUSY_ACK_ENABLED |
Отправляет ли gateway подтверждающее сообщение (⚡/⏳/⏩), когда пользователь отправляет ввод, пока агент занят (по умолчанию: 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 |
Таймаут неактивности gateway для запущенного агента в секундах (по умолчанию: 900). Сбрасывается при каждом вызове инструмента и каждом потоковом токене. Установите 0 для отключения. |
HERMES_AGENT_TIMEOUT_WARNING |
Gateway: отправить предупреждающее сообщение через это количество секунд бездействия (по умолчанию: 75% от HERMES_AGENT_TIMEOUT). |
HERMES_AGENT_NOTIFY_INTERVAL |
Gateway: интервал в секундах между уведомлениями о прогрессе для длительных запусков агента. |
HERMES_CHECKPOINT_TIMEOUT |
Таймаут создания контрольной точки файловой системы в секундах (по умолчанию: 30). |
HERMES_EXEC_ASK |
Включить запросы на подтверждение выполнения в режиме gateway (true/false) |
HERMES_ENABLE_PROJECT_PLUGINS |
Включить автоматическое обнаружение локальных плагинов репозитория из ./.hermes/plugins/ (true/false, по умолчанию: false) |
HERMES_PLUGINS_DEBUG |
1/true для вывода подробных логов обнаружения плагинов в stderr — сканированные директории, разобранные манифесты, причины пропуска и полные трассировки при сбое парсинга или register(). Предназначено для авторов плагинов. |
HERMES_BACKGROUND_NOTIFICATIONS |
Режим уведомлений фоновых процессов в gateway: all (по умолчанию), result, error, off |
HERMES_EPHEMERAL_SYSTEM_PROMPT |
Эфемерный системный промпт, внедряемый при вызове API (никогда не сохраняется в сессиях) |
HERMES_PREFILL_MESSAGES_FILE |
Путь к JSON-файлу с эфемерными prefill-сообщениями, внедряемыми при вызове API. |
HERMES_ALLOW_PRIVATE_URLS |
true/false — разрешить инструментам получать URL localhost/частной сети. По умолчанию отключено в режиме gateway. |
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. Полезно для скриптовых вызывающих программ (sweeper, CI, пакетные запуски), которым нужно переопределять модель по умолчанию для каждого запуска. |
Настройки сессий
| Переменная | Описание |
|---|---|
SESSION_IDLE_MINUTES |
Сбрасывать сессии после N минут бездействия (по умолчанию: 1440) |
SESSION_RESET_HOUR |
Час ежедневного сброса в 24-часовом формате (по умолчанию: 4 = 4 утра) |
Сжатие контекста (только config.yaml)
Сжатие контекста настраивается исключительно через config.yaml — для него нет переменных окружения. Параметры порогов находятся в блоке compression:, а модель/провайдер суммаризации — в auxiliary.compression:.
compression:
enabled: true
threshold: 0.50
target_ratio: 0.20 # доля порога для сохранения в качестве недавнего хвоста
protect_last_n: 20 # минимальное количество последних сообщений для сохранения без сжатия