환경 변수
anchor alias
환경 변수 참조
모든 변수는 ~/.hermes/.env에 저장됩니다. hermes config set VAR value로 설정할 수도 있습니다.
LLM 제공자
| 변수 | 설명 |
|---|---|
OPENROUTER_API_KEY | OpenRouter API 키(유연성을 위해 권장) |
OPENROUTER_BASE_URL | OpenRouter 호환 기본 URL 재정의 |
HERMES_OPENROUTER_CACHE | OpenRouter 응답 캐싱을 활성화합니다(1/true/yes/on). config.yaml의 openrouter.response_cache을 재정의합니다. 응답 캐싱을 참조하세요. |
HERMES_OPENROUTER_CACHE_TTL | 캐시 TTL(초)(1~86400) config.yaml에서 openrouter.response_cache_ttl을 재정의합니다. |
NOUS_BASE_URL | Nous Portal 기본 URL 재정의(거의 필요하지 않음, 개발/테스트에만 해당) |
NOUS_INFERENCE_BASE_URL | Nous 추론 엔드포인트를 직접 재정의 |
AI_GATEWAY_API_KEY | Vercel AI 게이트웨이 API 키(ai-gateway.vercel.sh) |
AI_GATEWAY_BASE_URL | AI Gateway 기본 URL override(기본값: https://ai-gateway.vercel.sh/v1) |
OPENAI_API_KEY | 사용자 정의 OpenAI 호환 엔드포인트용 API 키(OPENAI_BASE_URL과 함께 사용됨) |
OPENAI_BASE_URL | 사용자 정의 엔드포인트(VLLM, SGLang 등)의 기본 URL |
COPILOT_GITHUB_TOKEN | Copilot API용 GitHub 토큰 - 첫 번째 우선 순위(OAuth gho_* 또는 세분화된 PAT github_pat_*, 클래식 PAT ghp_*는 지원되지 않음) |
GH_TOKEN | GitHub 토큰 - Copilot의 두 번째 우선 순위(gh CLI에서도 사용됨) |
GITHUB_TOKEN | GitHub 토큰 — Copilot의 세 번째 우선순위 |
HERMES_COPILOT_ACP_COMMAND | Copilot ACP CLI 바이너리 경로 override(기본값: copilot) |
COPILOT_CLI_PATH | HERMES_COPILOT_ACP_COMMAND의 별칭 |
HERMES_COPILOT_ACP_ARGS | Copilot ACP 인수 override(기본값: --acp --stdio) |
COPILOT_ACP_BASE_URL | Copilot ACP 기본 URL 재정의 |
GLM_API_KEY | z.ai / ZhipuAI GLM API 키 (z.ai) |
ZAI_API_KEY | GLM_API_KEY의 별칭 |
Z_AI_API_KEY | GLM_API_KEY의 별칭 |
GLM_BASE_URL | z.ai 기본 URL override(기본값: https://api.z.ai/api/paas/v4) |
KIMI_API_KEY | Kimi / Moonshot AI API 키 (moonshot.ai) |
KIMI_BASE_URL | Kimi 기본 URL override(기본값: https://api.moonshot.ai/v1) |
KIMI_CN_API_KEY | Kimi / Moonshot China API 키(moonshot.cn) |
ARCEEAI_API_KEY | Arcee AI API 키 (chat.arcee.ai) |
ARCEE_BASE_URL | Arcee 기본 URL override(기본값: https://api.arcee.ai/api/v1) |
GMI_API_KEY | GMI 클라우드 API 키(gmicloud.ai) |
GMI_BASE_URL | GMI Cloud 기본 URL override(기본값: https://api.gmi-serving.com/v1) |
MINIMAX_API_KEY | MiniMax API 키 — 전역 엔드포인트(minimax.io). **minimax-oauth**에서는 사용되지 않습니다(OAuth 경로는 대신 브라우저 로그인을 사용합니다). |
MINIMAX_BASE_URL | MiniMax 기본 URL을 override합니다(기본값: https://api.minimax.io/anthropic — Hermes는 MiniMax의 Anthropic Messages 호환 엔드포인트를 사용합니다). **minimax-oauth**에서는 사용되지 않습니다. |
MINIMAX_CN_API_KEY | MiniMax API 키 — 중국 엔드포인트(minimaxi.com). **minimax-oauth**에서는 사용되지 않습니다(OAuth 경로는 대신 브라우저 로그인을 사용합니다). |
MINIMAX_CN_BASE_URL | MiniMax China 기본 URL을 override합니다(기본값: https://api.minimaxi.com/anthropic). **minimax-oauth**에서는 사용되지 않습니다. |
KILOCODE_API_KEY | 킬로 코드 API 키(kilo.ai) |
KILOCODE_BASE_URL | Kilo 코드 기본 URL override(기본값: https://api.kilo.ai/api/gateway) |
XIAOMI_API_KEY | Xiaomi MiMo API 키(platform.xiaomimimo.com) |
XIAOMI_BASE_URL | Xiaomi MiMo 기본 URL override(기본값: https://api.xiaomimimo.com/v1) |
TOKENHUB_API_KEY | Tencent TokenHub API 키(tokenhub.tencentmaas.com) |
TOKENHUB_BASE_URL | Tencent TokenHub 기본 URL override(기본값: https://tokenhub.tencentmaas.com/v1) |
AZURE_FOUNDRY_API_KEY | Azure AI Foundry/Azure OpenAI API 키(ai.azure.com) |
AZURE_FOUNDRY_BASE_URL | Azure AI Foundry 엔드포인트 URL(예: OpenAI 스타일의 경우 https://<resource>.openai.azure.com/openai/v1 또는 Anthropic 스타일의 경우 https://<resource>.services.ai.azure.com/anthropic) |
AZURE_ANTHROPIC_KEY | Azure Foundry Claude 배포를 가리키는 provider: anthropic + base_url에 대한 Azure Anthropic API 키(Anthropic 및 Azure Anthropic이 모두 구성된 경우 ANTHROPIC_API_KEY 대체) |
HF_TOKEN | 추론 제공자를 위한 Hugging Face 토큰 (huggingface.co/settings/tokens) |
HF_BASE_URL | Hugging Face 기본 URL override(기본값: https://router.huggingface.co/v1) |
GOOGLE_API_KEY | Google AI Studio API 키(aistudio.google.com/app/apikey) |
GEMINI_API_KEY | GOOGLE_API_KEY의 별칭 |
GEMINI_BASE_URL | Google AI Studio 기본 URL 재정의 |
HERMES_GEMINI_CLIENT_ID | google-gemini-cli PKCE 로그인을 위한 OAuth 클라이언트 ID(선택사항, 기본값은 Google의 공개 gemini-cli 클라이언트) |
HERMES_GEMINI_CLIENT_SECRET | google-gemini-cli에 대한 OAuth 클라이언트 비밀번호(선택사항) |
HERMES_GEMINI_PROJECT_ID | 유료 Gemini 등급의 GCP 프로젝트 ID(무료 등급 자동 프로비저닝) |
ANTHROPIC_API_KEY | Anthropic 콘솔 API 키 (console.anthropic.com) |
ANTHROPIC_TOKEN | 수동 또는 레거시 Anthropic OAuth/설정 토큰 재정의 |
DASHSCOPE_API_KEY | Qwen 모델용 Alibaba Cloud DashScope API 키(modelstudio.console.alibabacloud.com) |
DASHSCOPE_BASE_URL | 사용자 정의 DashScope 기본 URL(기본값: https://dashscope-intl.aliyuncs.com/compatible-mode/v1, 중국 본토 지역의 경우 https://dashscope.aliyuncs.com/compatible-mode/v1 사용) |
DEEPSEEK_API_KEY | DeepSeek 직접 액세스를 위한 DeepSeek API 키 (platform.deepseek.com) |
DEEPSEEK_BASE_URL | 사용자 정의 DeepSeek API 기본 URL |
NOVITA_API_KEY | NovitaAI API 키 — 모델 API, 에이전트 샌드박스 및 GPU 클라우드를 위한 AI 기반 클라우드(novita.ai/settings/key-management) |
NOVITA_BASE_URL | NovitaAI 기본 URL override(기본값: https://api.novita.ai/openai/v1) |
NVIDIA_API_KEY | NVIDIA NIM API 키 — Nemotron 및 개방형 모델(build.nvidia.com) |
NVIDIA_BASE_URL | NVIDIA 기본 URL override(기본값: https://integrate.api.nvidia.com/v1, 로컬 NIM 엔드포인트의 경우 http://localhost:8000/v1로 설정) |
STEPFUN_API_KEY | StepFun API 키 — 단계 계열 모델(platform.stepfun.com) |
STEPFUN_BASE_URL | StepFun 기본 URL override(기본값: https://api.stepfun.com/v1) |
OLLAMA_API_KEY | Ollama Cloud API 키 — 로컬 GPU 없이 관리되는 Ollama 카탈로그(ollama.com/settings/keys) |
OLLAMA_BASE_URL | Ollama Cloud 기본 URL override(기본값: https://ollama.com/v1) |
XAI_API_KEY | 채팅용 xAI(Grok) API 키 + TTS(console.x.ai) |
XAI_BASE_URL | xAI 기본 URL override(기본값: https://api.x.ai/v1) |
MISTRAL_API_KEY | Voxtral TTS 및 Voxtral STT용 Mistral API 키(console.mistral.ai) |
AWS_REGION | Bedrock 추론을 위한 AWS 지역(예: us-east-1, eu-central-1). boto3으로 읽습니다. |
AWS_PROFILE | Bedrock 인증을 위한 AWS 명명 프로필(~/.aws/credentials 읽음) 기본 boto3 자격 증명 체인을 사용하려면 설정하지 않은 상태로 두세요. |
BEDROCK_BASE_URL | Bedrock 런타임 기본 URL override(기본값: https://bedrock-runtime.us-east-1.amazonaws.com, 일반적으로 설정하지 않은 상태로 두고 대신 AWS_REGION 사용) |
HERMES_QWEN_BASE_URL | Qwen Portal 기본 URL override(기본값: https://portal.qwen.ai/v1) |
OPENCODE_ZEN_API_KEY | OpenCode Zen API 키 — 선별된 모델에 대한 종량제 액세스(opencode.ai) |
OPENCODE_ZEN_BASE_URL | OpenCode Zen 기본 URL 재정의 |
OPENCODE_GO_API_KEY | OpenCode Go API 키 — 개방형 모델에 대한 월 구독료 $10(opencode.ai) |
OPENCODE_GO_BASE_URL | OpenCode Go 기본 URL 재정의 |
CLAUDE_CODE_OAUTH_TOKEN | 수동으로 내보낼 경우 명시적 Claude Code 토큰 재정의 |
HERMES_MODEL | 프로세스 수준에서 모델 이름 override(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에 전달된 기본 언어 또는 자동 감지된 로컬 whisper CLI 대체(기본값: en) |
HERMES_HOME | Hermes 구성 디렉터리를 override합니다(기본값: ~/.hermes). 또한 게이트웨이 PID 파일과 시스템 서비스 이름의 범위를 지정하므로 여러 설치를 동시에 실행할 수 있습니다. |
HERMES_GIT_BASH_PATH | Windows에만 해당. 터미널 도구에 대한 bash.exe 검색을 재정의합니다. 모든 bash에서 포인트 — Windows용 전체 Git 설치, Symlink를 통한 WSL bash, MSYS2, Cygwin. 설치 프로그램은 이를 프로비저닝한 PortableGit에 자동으로 설정합니다. Windows(네이티브) 가이드를 참조하세요. |
HERMES_DISABLE_WINDOWS_UTF8 | Windows에만 해당. UTF-8 stdio shim(configure_windows_stdio())을 비활성화하고 콘솔의 로케일 코드 페이지로 대체하려면 1로 설정합니다. 인코딩 버그를 양분하는 데 유용합니다. 정상 작동 시 올바른 설정이 되는 경우는 거의 없습니다. |
HERMES_KANBAN_HOME | 칸반 보드(db + 작업 공간 + 작업자 로그)를 고정하는 공유 Hermes 루트를 override합니다. get_default_hermes_root()(활성 프로필의 상위 프로필)로 대체됩니다. 테스트 및 비정상적인 배포에 유용합니다. |
HERMES_KANBAN_BOARD | 이 프로세스에 대해 활성 칸반 보드를 고정합니다. ~/.hermes/kanban/current보다 우선합니다. 디스패처는 이를 작업자 하위 프로세스 환경에 주입하여 작업자가 물리적으로 다른 보드의 작업을 볼 수 없도록 합니다. 기본값은 default입니다. 슬러그 유효성 검사: 소문자 영숫자 + 하이픈 + 밑줄, 1-64자 |
HERMES_KANBAN_DB | 칸반 데이터베이스 파일 경로를 직접 고정합니다(가장 높은 우선 순위, HERMES_KANBAN_BOARD 및 HERMES_KANBAN_HOME보다 우선). 디스패처는 이를 작업자 하위 프로세스 환경에 주입하여 프로필 작업자가 디스패처 보드에 수렴되도록 합니다. |
HERMES_KANBAN_WORKSPACES_ROOT | 칸반 작업 공간 루트를 직접 고정합니다(작업 공간의 우선 순위가 가장 높으며 HERMES_KANBAN_HOME보다 높음). 디스패처는 이를 작업자 하위 프로세스 환경에 주입합니다. |
제공자 인증(OAuth)
기본 Anthropic 인증의 경우 Hermes는 Claude Code의 자체 자격 증명 파일이 있는 경우 해당 자격 증명이 자동으로 새로 고쳐질 수 있기 때문에 이를 선호합니다. Anthropic에 대한 OAuth에는 추가 사용 크레딧을 구매한 Claude Max 플랜이 필요합니다 — Hermes는 기본 Max 허용량이 아닌 Max 플랜의 추가/초과 크레딧에서만 가져오는 Claude Code로 라우팅하며 Claude Pro에서는 작동하지 않습니다. Max + 추가 크레딧이 없으면 대신 API 키를 사용하세요. ANTHROPIC_TOKEN과 같은 환경 변수는 수동 재정의에 유용하지만 더 이상 Claude Max 로그인의 기본 경로가 아닙니다.
| 변수 | 설명 |
|---|---|
HERMES_INFERENCE_PROVIDER | 제공자 선택 override: auto, custom, openrouter, nous, openai-codex, copilot, copilot-acp, anthropic, huggingface, novita, 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), xai-oauth(SuperGrok 가입자를 위한 브라우저 OAuth 로그인 - API 키가 필요하지 않습니다. xAI Grok OAuth 가이드 참조), google-gemini-cli, qwen-oauth, bedrock, opencode-zen, opencode-go, ai-gateway, tencent-tokenhub (기본값: auto) |
HERMES_PORTAL_BASE_URL | Nous Portal URL 재정의(개발/테스트용) |
NOUS_INFERENCE_BASE_URL | Nous 추론 API URL 재정의 |
HERMES_NOUS_MIN_KEY_TTL_SECONDS | 다시 만들기 전 최소 에이전트 키 TTL(기본값: 1800 = 30분) |
HERMES_NOUS_TIMEOUT_SECONDS | Nous 자격 증명/토큰 흐름에 대한 HTTP 시간 초과 |
HERMES_DUMP_REQUESTS | API 요청 페이로드를 로그 파일로 덤프합니다(true/false). |
HERMES_PREFILL_MESSAGES_FILE | API 호출 시 삽입된 임시 미리 채우기 메시지의 JSON 파일 경로 |
HERMES_TIMEZONE | IANA 시간대 override(예: America/New_York) |
도구 API
| 변수 | 설명 |
|---|---|
PARALLEL_API_KEY | AI 기반 웹 검색(parallel.ai) |
FIRECRAWL_API_KEY | 웹 스크래핑 및 클라우드 브라우저(firecrawl.dev) |
FIRECRAWL_API_URL | 자체 호스팅 인스턴스를 위한 사용자 지정 Firecrawl API 엔드포인트(선택 사항) |
TAVILY_API_KEY | AI 기반 웹 검색, 추출, 크롤링을 위한 Tavily API 키(app.tavily.com) |
SEARXNG_URL | 무료 자체 호스팅 웹 검색을 위한 SearXNG 인스턴스 URL - API 키가 필요하지 않습니다. (searxng.github.io) |
TAVILY_BASE_URL | Tavily API 엔드포인트를 override합니다. 기업 프록시 및 자체 호스팅 Tavily 호환 검색 백엔드에 유용합니다. GROQ_BASE_URL과 동일한 패턴입니다. |
EXA_API_KEY | AI 기반 웹 검색 및 콘텐츠를 위한 Exa API 키 (exa.ai) |
BROWSERBASE_API_KEY | 브라우저 자동화 (browserbase.com) |
BROWSERBASE_PROJECT_ID | 브라우저베이스 프로젝트 ID |
BROWSER_USE_API_KEY | 브라우저 클라우드 브라우저 API 키 사용(browser-use.com) |
FIRECRAWL_BROWSER_TTL | Firecrawl 브라우저 세션 TTL(초)(기본값: 300) |
BROWSER_CDP_URL | 로컬 브라우저용 Chrome DevTools 프로토콜 URL(/browser connect을 통해 설정, 예: ws://localhost:9222) |
CAMOFOX_URL | Camofox 로컬 탐지 방지 브라우저 URL(기본값: http://localhost:9377) |
CAMOFOX_USER_ID | 공유 표시 세션을 위한 외부 관리형 Camofox 사용자 ID(선택 사항) |
CAMOFOX_SESSION_KEY | CAMOFOX_USER_ID에 대한 탭을 생성할 때 사용되는 선택적 Camofox 세션 키 |
CAMOFOX_ADOPT_EXISTING_TAB | 새 탭을 만들기 전에 기존 Camofox 탭을 재사용하려면 true로 설정하세요. |
BROWSER_INACTIVITY_TIMEOUT | 브라우저 세션 비활성 시간 초과(초) |
AGENT_BROWSER_ARGS | 추가 Chromium 실행 플래그(쉼표 또는 줄바꿈으로 구분) Hermes는 루트로 실행하거나 AppArmor로 제한되지 않은 권한 없는 사용자 네임스페이스(Ubuntu 23.10+, DGX Spark, 많은 컨테이너 이미지)에서 실행할 때 --no-sandbox,--disable-dev-shm-usage을 자동 삽입합니다. 다른 플래그를 재정의하거나 추가하려는 경우에만 이를 수동으로 설정하세요. |
FAL_KEY | 이미지 생성(fal.ai) |
GROQ_API_KEY | Groq Whisper STT API 키 (groq.com) |
ELEVENLABS_API_KEY | ElevenLabs 프리미엄 TTS 음성(elevenlabs.io) |
STT_GROQ_MODEL | Groq STT 모델 override(기본값: whisper-large-v3-turbo) |
GROQ_BASE_URL | Groq OpenAI 호환 STT 엔드포인트 재정의 |
STT_OPENAI_MODEL | OpenAI STT 모델 override(기본값: whisper-1) |
STT_OPENAI_BASE_URL | OpenAI 호환 STT 엔드포인트 재정의 |
GITHUB_TOKEN | Skills Hub용 GitHub 토큰(더 높은 API 속도 제한, 기술 게시) |
HONCHO_API_KEY | 교차 세션 사용자 모델링(honcho.dev) |
HONCHO_BASE_URL | 자체 호스팅 Honcho 인스턴스의 기본 URL(기본값: Honcho 클라우드) 로컬 인스턴스에는 API 키가 필요하지 않습니다. |
HINDSIGHT_TIMEOUT | Hindsight 메모리 제공자 API 호출에 대한 시간 초과(초)(기본값: 60) /sync 또는 on_session_switch 동안 Hindsight 인스턴스의 응답 속도가 느리고 errors.log에서 시간 초과가 표시되는 경우 이 문제를 해결하세요. |
SUPERMEMORY_API_KEY | 프로필 회수 및 세션 수집을 통한 의미론적 장기 메모리(supermemory.ai) |
DAYTONA_API_KEY | Daytona 클라우드 샌드박스(daytona.io) |
VERCEL_TOKEN | Vercel Sandbox 액세스 토큰(vercel.com) |
VERCEL_PROJECT_ID | Vercel 프로젝트 ID(VERCEL_TOKEN에 필요) |
VERCEL_TEAM_ID | Vercel 팀 ID(VERCEL_TOKEN에 필요) |
VERCEL_OIDC_TOKEN | Vercel 단기 OIDC 토큰(개발 전용 대안) |
Langfuse 관측성
번들로 제공되는 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 | Langfuse 서버 URL(기본값: 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 | 표준 Langfuse SDK 이름. HERMES_LANGFUSE_* 해당 항목이 설정되지 않은 경우 대체 항목으로 허용됩니다. |
Nous 도구 게이트웨이
이러한 변수는 유료 Nous 가입자 또는 자체 호스팅 게이트웨이 배포를 위한 도구 게이트웨이를 구성합니다. 대부분의 사용자는 이를 설정할 필요가 없습니다. 게이트웨이는 hermes model 또는 hermes tools을 통해 자동으로 구성됩니다.
| 변수 | 설명 |
|---|---|
TOOL_GATEWAY_DOMAIN | 도구 게이트웨이 라우팅을 위한 기본 도메인(기본값: nousresearch.com) |
TOOL_GATEWAY_SCHEME | 게이트웨이 URL에 대한 HTTP 또는 HTTPS 체계(기본값: https) |
TOOL_GATEWAY_USER_TOKEN | 도구 게이트웨이용 인증 토큰(일반적으로 Nous 인증에서 자동으로 채워짐) |
FIRECRAWL_GATEWAY_URL | 특히 Firecrawl 게이트웨이 엔드포인트의 URL을 재정의합니다. |
터미널 백엔드
| 변수 | 설명 |
|---|---|
TERMINAL_ENV | 백엔드: local, docker, ssh, singularity, modal, daytona, vercel_sandbox |
HERMES_DOCKER_BINARY | Hermes 셸 컨테이너 바이너리를 override합니다(예: podman, /usr/local/bin/docker). 설정하지 않으면 Hermes는 PATH에서 docker 또는 podman을 자동 검색합니다. 둘 다 설치되어 있고 기본값이 아닌 것을 원하거나 바이너리가 PATH 외부에 있는 경우 필요합니다. |
TERMINAL_DOCKER_IMAGE | 도커 이미지(기본값: nikolaik/python-nodejs:python3.11-nodejs20) |
TERMINAL_DOCKER_FORWARD_ENV | Docker 터미널 세션에 명시적으로 전달할 env var 이름의 JSON 배열입니다. 참고: 스킬 선언 required_environment_variables은 자동으로 전달됩니다. 이는 어떤 스킬에서도 선언되지 않은 변수에만 필요합니다. |
TERMINAL_DOCKER_VOLUMES | 추가 Docker 볼륨 마운트(쉼표로 구분된 host:container 쌍) |
TERMINAL_DOCKER_MOUNT_CWD_TO_WORKSPACE | 고급 옵트인: 실행 cwd를 Docker /workspace(true/false, 기본값: false)에 마운트합니다. |
TERMINAL_SINGULARITY_IMAGE | 특이점 이미지 또는 .sif 경로 |
TERMINAL_MODAL_IMAGE | 모달 컨테이너 이미지 |
TERMINAL_DAYTONA_IMAGE | 데이토나 샌드박스 이미지 |
TERMINAL_VERCEL_RUNTIME | Vercel 샌드박스 런타임(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용 영구 셸 override(기본값: TERMINAL_PERSISTENT_SHELL을 따름) |
컨테이너 리소스(Docker, Singularity, Modal, Daytona)
| 변수 | 설명 |
|---|---|
TERMINAL_CONTAINER_CPU | CPU 코어(기본값: 1) |
TERMINAL_CONTAINER_MEMORY | 메모리(MB)(기본값: 5120) |
TERMINAL_CONTAINER_DISK | 디스크(MB)(기본값: 51200) |
TERMINAL_CONTAINER_PERSISTENT | 세션 전반에 걸쳐 컨테이너 파일 시스템 유지(기본값: true) |
TERMINAL_SANDBOX_DIR | 작업공간 및 오버레이의 호스트 디렉터리(기본값: ~/.hermes/sandboxes/) |
영구 쉘
| 변수 | 설명 |
|---|---|
TERMINAL_PERSISTENT_SHELL | 로컬이 아닌 백엔드에 대해 영구 셸을 활성화합니다(기본값: true). config.yaml의 terminal.persistent_shell을 통해 설정할 수도 있습니다. |
TERMINAL_LOCAL_PERSISTENT | 로컬 백엔드에 대한 영구 셸 활성화(기본값: false) |
TERMINAL_SSH_PERSISTENT | SSH 백엔드에 대한 영구 셸 override(기본값: TERMINAL_PERSISTENT_SHELL을 따릅니다) |
메시징
| 변수 | 설명 |
|---|---|
TELEGRAM_BOT_TOKEN | 텔레그램 봇 토큰(@BotFather에서) |
TELEGRAM_ALLOWED_USERS | 봇 사용이 허용된 쉼표로 구분된 사용자 ID(DM, 그룹, 포럼에 적용) |
TELEGRAM_GROUP_ALLOWED_USERS | 그룹/포럼에서만 승인된 쉼표로 구분된 발신자 사용자 ID입니다(DM 액세스 권한을 부여하지 않음). Chat ID 모양의 값(-으로 시작)은 지원 중단 경고와 함께 #17686 이전 구성과의 하위 호환성을 위한 채팅 ID로 계속 사용됩니다. |
TELEGRAM_GROUP_ALLOWED_CHATS | 쉼표로 구분된 그룹/포럼 채팅 ID. 모든 회원이 승인되었습니다. |
TELEGRAM_HOME_CHANNEL | 크론 전달을 위한 기본 텔레그램 채팅/채널 |
TELEGRAM_HOME_CHANNEL_NAME | 텔레그램 홈 채널의 표시 이름 |
TELEGRAM_WEBHOOK_URL | 웹훅 모드용 공개 HTTPS URL(폴링 대신 웹훅 활성화) |
TELEGRAM_WEBHOOK_PORT | 웹훅 서버용 로컬 수신 포트(기본값: 8443) |
TELEGRAM_WEBHOOK_SECRET | 비밀 토큰 텔레그램은 확인을 위해 업데이트할 때마다 다시 에코됩니다. TELEGRAM_WEBHOOK_URL이 설정될 때마다 필수입니다 — 게이트웨이가 없으면 게이트웨이가 시작을 거부합니다(GHSA-3vpc-7q5r-276h). openssl rand -hex 32로 생성합니다. |
TELEGRAM_REACTIONS | 처리 중 메시지에 대한 이모티콘 반응 활성화(기본값: false) |
TELEGRAM_REPLY_TO_MODE | 응답 참조 동작: off, first(기본값) 또는 all. 디스코드 패턴과 일치합니다. |
TELEGRAM_IGNORED_THREADS | 봇이 응답하지 않는 쉼표로 구분된 텔레그램 포럼 주제/스레드 ID |
TELEGRAM_PROXY | 텔레그램 연결을 위한 프록시 URL — HTTPS_PROXY을 override합니다. http://, https://, socks5:// 지원 |
DISCORD_BOT_TOKEN | 디스코드 봇 토큰 |
DISCORD_ALLOWED_USERS | 봇을 사용할 수 있는 쉼표로 구분된 Discord 사용자 ID |
DISCORD_ALLOWED_ROLES | 쉼표로 구분된 Discord 역할 ID는 봇 사용이 허용됩니다(또는 DISCORD_ALLOWED_USERS 사용). Members 인텐트를 자동으로 활성화합니다. 조정 팀이 이탈할 때 유용합니다. 역할 부여가 자동으로 전파됩니다. |
DISCORD_ALLOWED_CHANNELS | 쉼표로 구분된 Discord 채널 ID입니다. 설정되면 봇은 이러한 채널(허용되는 경우 DM 포함)에서만 응답합니다. config.yamldiscord.allowed_channels을 재정의합니다. |
DISCORD_PROXY | Discord 연결을 위한 프록시 URL — HTTPS_PROXY을 override합니다. http://, https://, socks5:// 지원 |
DISCORD_HOME_CHANNEL | 크론 전달을 위한 기본 Discord 채널 |
DISCORD_HOME_CHANNEL_NAME | Discord 홈 채널의 표시 이름 |
DISCORD_COMMAND_SYNC_POLICY | Discord 슬래시 명령 시작 동기화 정책: safe(차이 및 조정), bulk(레거시 tree.sync()) 또는 off |
DISCORD_REQUIRE_MENTION | 서버 채널에서 응답하기 전에 @mention 요구 |
DISCORD_FREE_RESPONSE_CHANNELS | 언급이 필요하지 않은 경우 쉼표로 구분된 채널 ID |
DISCORD_AUTO_THREAD | 지원되는 경우 자동 스레드 긴 답장 |
DISCORD_REACTIONS | 처리 중 메시지에 대한 이모티콘 반응 활성화(기본값: 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-..., 소켓 모드에 필요) |
SLACK_ALLOWED_USERS | 쉼표로 구분된 Slack 사용자 ID |
SLACK_HOME_CHANNEL | 크론 전달을 위한 기본 Slack 채널 |
SLACK_HOME_CHANNEL_NAME | Slack 홈 채널의 표시 이름 |
GOOGLE_CHAT_PROJECT_ID | Pub/Sub 주제를 호스팅하는 GCP 프로젝트(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 | 봇과 채팅이 허용되는 쉼표로 구분된 사용자 이메일 |
GOOGLE_CHAT_ALLOW_ALL_USERS | 모든 Google Chat 사용자가 봇을 실행하도록 허용(개발자 전용) |
GOOGLE_CHAT_HOME_CHANNEL | cron 전달을 위한 기본 공간(예: spaces/AAAA...) |
GOOGLE_CHAT_HOME_CHANNEL_NAME | Google Chat 홈 공간의 표시 이름 |
GOOGLE_CHAT_MAX_MESSAGES | Pub/Sub FlowControl 최대 진행 중인 메시지(기본값: 1) |
GOOGLE_CHAT_MAX_BYTES | Pub/Sub FlowControl 최대 진행 중인 바이트(기본값: 16777216, 16MiB) |
GOOGLE_CHAT_BOOTSTRAP_SPACES | 봇 자체 users/{id}을 확인할 때 시작 시 조사할 쉼표로 구분된 추가 공간 ID입니다. |
GOOGLE_CHAT_DEBUG_RAW | DEBUG 수준에서 수정된 Pub/Sub 봉투를 기록하려면 임의의 값으로 설정하세요(디버깅 전용). |
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 | signal-cli 데몬 HTTP 끝점(예: 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 | Twilio 계정 SID(전화 스킬과 공유) |
TWILIO_AUTH_TOKEN | Twilio 인증 토큰(전화 통신 스킬과 공유됨, 웹후크 서명 검증에도 사용됨) |
TWILIO_PHONE_NUMBER | E.164 형식의 Twilio 전화번호(전화 스킬과 공유됨) |
SMS_WEBHOOK_URL | Twilio 서명 확인을 위한 공개 URL — Twilio 콘솔의 웹후크 URL과 일치해야 합니다(필수). |
SMS_WEBHOOK_PORT | 인바운드 SMS용 웹훅 리스너 포트(기본값: 8080) |
SMS_WEBHOOK_HOST | 웹훅 바인딩 주소(기본값: 0.0.0.0) |
SMS_INSECURE_NO_SIGNATURE | Twilio 서명 확인을 비활성화하려면 true으로 설정합니다(로컬 개발자 전용 - 프로덕션용 아님) |
SMS_ALLOWED_USERS | 채팅이 허용되는 쉼표로 구분된 E.164 전화번호 |
SMS_ALLOW_ALL_USERS | 허용 목록 없이 모든 SMS 발신자를 허용합니다. |
SMS_HOME_CHANNEL | 크론 작업/알림 전달을 위한 전화번호 |
SMS_HOME_CHANNEL_NAME | SMS 홈 채널의 표시 이름 |
EMAIL_ADDRESS | 이메일 게이트웨이 어댑터의 이메일 주소 |
EMAIL_PASSWORD | 이메일 계정의 비밀번호 또는 앱 비밀번호 |
EMAIL_IMAP_HOST | 이메일 어댑터의 IMAP 호스트 이름 |
EMAIL_IMAP_PORT | IMAP 포트 |
EMAIL_SMTP_HOST | 이메일 어댑터의 SMTP 호스트 이름 |
EMAIL_SMTP_PORT | SMTP 포트 |
EMAIL_ALLOWED_USERS | 봇에게 메시지를 보낼 수 있는 쉼표로 구분된 이메일 주소 |
EMAIL_HOME_ADDRESS | 사전 이메일 전송을 위한 기본 수신자 |
EMAIL_HOME_ADDRESS_NAME | 이메일 홈 대상의 표시 이름 |
EMAIL_POLL_INTERVAL | 이메일 폴링 간격(초) |
EMAIL_ALLOW_ALL_USERS | 모든 인바운드 이메일 발신자를 허용합니다. |
DINGTALK_CLIENT_ID | 개발자 포털의 DingTalk 봇 AppKey(open.dingtalk.com) |
DINGTALK_CLIENT_SECRET | 개발자 포털의 DingTalk 봇 AppSecret |
DINGTALK_ALLOWED_USERS | 봇에 메시지를 보낼 수 있는 쉼표로 구분된 DingTalk 사용자 ID |
FEISHU_APP_ID | open.feishu.cn의 Feishu/Lark 봇 앱 ID |
FEISHU_APP_SECRET | Feishu/Lark 봇 앱 비밀 |
FEISHU_DOMAIN | feishu(중국) 또는 lark(해외). 기본값: feishu |
FEISHU_CONNECTION_MODE | websocket(권장) 또는 webhook. 기본값: websocket |
FEISHU_ENCRYPT_KEY | 웹훅 모드를 위한 선택적 암호화 키 |
FEISHU_VERIFICATION_TOKEN | 웹훅 모드에 대한 선택적 확인 토큰 |
FEISHU_ALLOWED_USERS | 봇에 메시지를 보낼 수 있는 쉼표로 구분된 Feishu 사용자 ID |
FEISHU_ALLOW_BOTS | none (기본값) / mentions / all — 다른 봇의 인바운드 메시지를 수락합니다. 봇 간 메시징을 참조하세요. |
FEISHU_REQUIRE_MENTION | true(기본값) / false — 그룹 메시지가 봇을 @멘션해야 하는지 여부입니다. group_rules.<chat_id>.require_mention을 통해 채팅별로 재정의합니다. |
FEISHU_HOME_CHANNEL | 크론 전달 및 알림을 위한 Feishu 채팅 ID |
WECOM_BOT_ID | 관리 콘솔의 WeCom AI Bot ID |
WECOM_SECRET | WeCom AI Bot 비밀 |
WECOM_WEBSOCKET_URL | 사용자 정의 WebSocket URL(기본값: wss://openws.work.weixin.qq.com) |
WECOM_ALLOWED_USERS | 봇에 메시지를 보낼 수 있는 쉼표로 구분된 WeCom 사용자 ID |
WECOM_HOME_CHANNEL | 크론 전달 및 알림을 위한 WeCom 채팅 ID |
WECOM_CALLBACK_CORP_ID | 콜백 자체 구축 앱용 WeCom enterprise Corp ID |
WECOM_CALLBACK_CORP_SECRET | 자체 제작 앱의 기업 비밀 |
WECOM_CALLBACK_AGENT_ID | 자체 제작 앱의 에이전트 ID |
WECOM_CALLBACK_TOKEN | 콜백 확인 토큰 |
WECOM_CALLBACK_ENCODING_AES_KEY | 콜백 암호화를 위한 AES 키 |
WECOM_CALLBACK_HOST | 콜백 서버 바인드 주소 (기본값: 0.0.0.0) |
WECOM_CALLBACK_PORT | 콜백 서버 포트(기본값: 8645) |
WECOM_CALLBACK_ALLOWED_USERS | 허용 목록의 쉼표로 구분된 사용자 ID |
WECOM_CALLBACK_ALLOW_ALL_USERS | 허용 목록 없이 모든 사용자를 허용하려면 true을 설정하세요. |
WEIXIN_ACCOUNT_ID | iLink Bot API를 통해 QR 로그인을 통해 얻은 Weixin 계정 ID |
WEIXIN_TOKEN | iLink Bot API를 통해 QR 로그인을 통해 획득한 Weixin 인증 토큰 |
WEIXIN_BASE_URL | Weixin iLink Bot API 기본 URL override(기본값: https://ilinkai.weixin.qq.com) |
WEIXIN_CDN_BASE_URL | 미디어에 대한 Weixin CDN 기본 URL override(기본값: 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 | 봇에 DM을 보낼 수 있는 쉼표로 구분된 Weixin 사용자 ID |
WEIXIN_GROUP_ALLOWED_USERS | 쉼표로 구분된 Weixin 그룹 채팅 ID(회원 사용자 ID 아님)가 봇과 상호 작용할 수 있습니다. 변수 이름은 레거시이며 그룹 ID가 필요합니다. iLink가 실제로 그룹 이벤트를 전달할 때만 적용됩니다. QR 로그인 iLink 봇 ID(...@im.bot)는 일반적으로 일반 WeChat 그룹 메시지를 수신하지 않습니다. |
WEIXIN_HOME_CHANNEL | 크론 전달 및 알림을 위한 Weixin 채팅 ID |
WEIXIN_HOME_CHANNEL_NAME | Weixin 홈 채널의 표시 이름 |
WEIXIN_ALLOW_ALL_USERS | 허용 목록 없이 모든 Weixin 사용자 허용(true/false) |
BLUEBUBBLES_SERVER_URL | BlueBubbles 서버 URL(예: http://192.168.1.10:1234) |
BLUEBUBBLES_PASSWORD | BlueBubbles 서버 비밀번호 |
BLUEBUBBLES_WEBHOOK_HOST | 웹훅 리스너 바인드 주소(기본값: 127.0.0.1) |
BLUEBUBBLES_WEBHOOK_PORT | 웹훅 리스너 포트(기본값: 8645) |
BLUEBUBBLES_HOME_CHANNEL | 크론/알림 전달을 위한 전화/이메일 |
BLUEBUBBLES_ALLOWED_USERS | 쉼표로 구분된 승인된 사용자 |
BLUEBUBBLES_ALLOW_ALL_USERS | 모든 사용자 허용(true/false) |
QQ_APP_ID | [q.qq.com]의 QQ 봇 앱 ID(https://q.qq.com) |
QQ_CLIENT_SECRET | [q.qq.com]의 QQ 봇 앱 비밀번호(https://q.qq.com) |
QQ_STT_API_KEY | 외부 STT 대체 제공자용 API 키(선택 사항, QQ 내장 ASR이 텍스트를 반환하지 않을 때 사용됨) |
QQ_STT_BASE_URL | 외부 STT 제공자의 기본 URL(선택 사항) |
QQ_STT_MODEL | 외부 STT 제공자의 모델 이름(선택 사항) |
QQ_ALLOWED_USERS | 쉼표로 구분된 QQ 사용자 openID가 봇에 메시지를 보낼 수 있습니다. |
QQ_GROUP_ALLOWED_USERS | 그룹 @-메시지 액세스를 위한 쉼표로 구분된 QQ 그룹 ID |
QQ_ALLOW_ALL_USERS | 모든 사용자 허용(true/false, QQ_ALLOWED_USERS 재정의) |
QQBOT_HOME_CHANNEL | 크론 전달 및 알림을 위한 QQ 사용자/그룹 openID |
QQBOT_HOME_CHANNEL_NAME | QQ 홈 채널의 표시 이름 |
QQ_PORTAL_HOST | QQ 포털 호스트를 override합니다(샌드박스 게이트웨이를 통해 라우팅하려면 sandbox.q.qq.com으로 설정, 기본값: q.qq.com). |
MATTERMOST_URL | 중요한 서버 URL(예: https://mm.example.com) |
MATTERMOST_TOKEN | Mattermost의 봇 토큰 또는 개인 액세스 토큰 |
MATTERMOST_ALLOWED_USERS | 봇에 메시지를 보낼 수 있는 쉼표로 구분된 Mattermost 사용자 ID |
MATTERMOST_HOME_CHANNEL | 사전 메시지 전달을 위한 채널 ID(cron, 알림) |
MATTERMOST_REQUIRE_MENTION | 채널에 @mention이 필요합니다(기본값: true). 모든 메시지에 응답하려면 false로 설정하세요. |
MATTERMOST_FREE_RESPONSE_CHANNELS | 봇이 @mention 없이 응답하는 쉼표로 구분된 채널 ID |
MATTERMOST_REPLY_MODE | 응답 스타일: thread(스레드 응답) 또는 off(단순한 메시지, 기본값) |
MATRIX_HOMESERVER | 매트릭스 홈서버 URL(예: https://matrix.org) |
MATRIX_ACCESS_TOKEN | 봇 인증을 위한 매트릭스 액세스 토큰 |
MATRIX_USER_ID | Matrix 사용자 ID(예: @hermes:matrix.org) — 비밀번호 로그인에 필요하며 액세스 토큰에는 선택 사항입니다. |
MATRIX_PASSWORD | 매트릭스 비밀번호(액세스 토큰 대체) |
MATRIX_ALLOWED_USERS | 봇에 메시지를 보낼 수 있는 쉼표로 구분된 Matrix 사용자 ID(예: @alice:matrix.org) |
MATRIX_HOME_ROOM | 사전 메시지 전달을 위한 세션실 ID(예: !abc123:matrix.org) |
MATRIX_ENCRYPTION | 종단 간 암호화 활성화(true/false, 기본값: false) |
MATRIX_DEVICE_ID | 다시 시작해도 지속성을 위한 안정적인 매트릭스 장치 ID(예: HERMES_BOT). 이것이 없으면 키는 모든 시작 및 기록실 암호 해독 중단을 순환합니다. |
MATRIX_REACTIONS | 수신 메시지에 대한 처리 수명 주기 이모티콘 반응을 활성화합니다(기본값: true). 비활성화하려면 false로 설정하세요. |
MATRIX_REQUIRE_MENTION | 객실에는 @mention이 필요합니다(기본값: true). 모든 메시지에 응답하려면 false로 설정하세요. |
MATRIX_FREE_RESPONSE_ROOMS | 봇이 @mention 없이 응답하는 쉼표로 구분된 방 ID |
MATRIX_AUTO_THREAD | 세션실 메시지에 대한 스레드 자동 생성(기본값: true) |
MATRIX_DM_MENTION_THREADS | DM에서 봇이 @mentioned인 경우 스레드 생성(기본값: false) |
MATRIX_RECOVERY_KEY | 장치 키 순환 후 교차 서명 확인을 위한 복구 키입니다. 교차 서명이 활성화된 설정에 권장됩니다. |
HASS_TOKEN | 홈어시스턴트 장기 액세스 토큰(HA 플랫폼 + 도구 활성화) |
HASS_URL | 홈어시스턴트 URL (기본값: http://homeassistant.local:8123) |
WEBHOOK_ENABLED | 웹훅 플랫폼 어댑터(true/false)를 활성화합니다. |
WEBHOOK_PORT | 웹훅 수신을 위한 HTTP 서버 포트(기본값: 8644) |
WEBHOOK_SECRET | 웹훅 서명 검증을 위한 전역 HMAC 비밀(경로가 자체 경로를 지정하지 않을 때 대체 수단으로 사용됨) |
API_SERVER_ENABLED | OpenAI 호환 API 서버(true/false)를 활성화합니다. 다른 플랫폼과 함께 실행됩니다. |
API_SERVER_KEY | API 서버 인증을 위한 Bearer 토큰입니다. 비루프백 바인딩에 적용됩니다. |
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 | 메시지를 전달할 원격 Hermes API 서버의 URL(프록시 모드). 설정되면 게이트웨이는 플랫폼 I/O만 처리하며 모든 에이전트 작업은 원격 서버에 위임됩니다. config.yaml의 gateway.proxy_url을 통해 구성할 수도 있습니다. |
GATEWAY_PROXY_KEY | 프록시 모드에서 원격 API 서버를 인증하기 위한 전달자 토큰입니다. 원격 호스트의 API_SERVER_KEY과 일치해야 합니다. |
MESSAGING_CWD | 메시징 모드의 터미널 명령에 대한 작업 디렉터리(기본값: ~) |
GATEWAY_ALLOWED_USERS | 모든 플랫폼에서 쉼표로 구분된 사용자 ID가 허용됩니다. |
GATEWAY_ALLOW_ALL_USERS | 허용 목록 없이 모든 사용자 허용(true/false, 기본값: false) |
Microsoft Graph(팀 세션)
다가오는 Teams 세션 요약 파이프라인에서 사용되는 Microsoft Graph REST 클라이언트에 대한 앱 전용 자격 증명입니다. Azure Portal 연습 및 필요한 정확한 API 권한은 Microsoft Graph 애플리케이션 등록을 참조하세요.
| 변수 | 설명 |
|---|---|
MSGRAPH_TENANT_ID | Graph 앱 등록을 위한 Azure AD 테넌트 ID(디렉터리 GUID)입니다. |
MSGRAPH_CLIENT_ID | Azure 앱 등록의 애플리케이션(클라이언트) ID입니다. |
MSGRAPH_CLIENT_SECRET | 앱 등록을 위한 클라이언트 비밀번호 값입니다. chmod 600을 사용하여 ~/.hermes/.env에 저장합니다. Azure Portal을 통해 주기적으로 순환합니다. |
MSGRAPH_SCOPE | 클라이언트 자격 증명 토큰 요청에 대한 OAuth2 범위(기본값: https://graph.microsoft.com/.default). |
MSGRAPH_AUTHORITY_URL | Microsoft ID 플랫폼 기관(기본값: https://login.microsoftonline.com). 국가/국가 클라우드에 대해서만 override합니다(예: GCC High의 경우 https://login.microsoftonline.us). |
Microsoft Graph 웹후크 수신기
그래프 이벤트(Teams 세션, 일정, 채팅 등)에 대한 인바운드 변경 알림 수신기입니다. 설정 및 보안 강화에 대해서는 Microsoft Graph Webhook Listener를 참조하세요.
| 변수 | 설명 |
|---|---|
MSGRAPH_WEBHOOK_ENABLED | msgraph_webhook 게이트웨이 플랫폼(true/1/yes)을 활성화합니다. |
MSGRAPH_WEBHOOK_PORT | 리스너가 바인딩되는 포트(기본값: 8646) |
MSGRAPH_WEBHOOK_CLIENT_STATE | 공유 비밀 그래프는 모든 알림에 반영됩니다. hmac.compare_digest과 비교됩니다. openssl rand -hex 32로 생성합니다. |
MSGRAPH_WEBHOOK_ACCEPTED_RESOURCES | 그래프 리소스 경로/패턴의 쉼표로 구분된 허용 목록입니다(예: communications/onlineMeetings,chats/*/messages). 후행 *은 접두사 일치입니다. 비어 있음 = 모두 수락합니다. |
MSGRAPH_WEBHOOK_ALLOWED_SOURCE_CIDRS | 리스너에 대한 POST가 허용되는 쉼표로 구분된 CIDR 범위입니다(예: 52.96.0.0/14,52.104.0.0/14). 비어 있음 = 모두 허용(기본값) 프로덕션에서는 Microsoft Graph의 게시된 송신 범위로 제한합니다. |
팀 세션 요약 전달
teams_pipeline 플러그인이 활성화된 경우에만 사용됩니다. config.yaml의 platforms.teams.extra에서도 설정을 구성할 수 있습니다. 둘 다 설정된 경우 환경 변수가 우선순위를 갖습니다. Microsoft Teams → 세션 요약 전달을 참조하세요.
| 변수 | 설명 |
|---|---|
TEAMS_DELIVERY_MODE | graph 또는 incoming_webhook. |
TEAMS_INCOMING_WEBHOOK_URL | Teams에서 생성된 웹훅 URL. TEAMS_DELIVERY_MODE=incoming_webhook인 경우 필요합니다. |
TEAMS_GRAPH_ACCESS_TOKEN | 그래프 전달을 위해 사전 획득된 위임된 액세스 토큰입니다. 거의 필요하지 않습니다. 설정이 해제되면 작성자는 MSGRAPH_* 앱 자격 증명으로 대체됩니다. |
TEAMS_TEAM_ID | 채널 전달을 위한 대상 팀 ID(graph 모드). |
TEAMS_CHANNEL_ID | 대상 채널 ID(TEAMS_TEAM_ID과 페어링됨) |
TEAMS_CHAT_ID | 1:1 또는 그룹 채팅 ID를 대상으로 합니다(graph 모드의 경우 팀+채널 대체). |
LINE 메시징 API
번들로 제공되는 LINE 플랫폼 플러그인(plugins/platforms/line/)에서 사용됩니다. 전체 설정은 Messaging Gateway → LINE을 참조하세요.
| 변수 | 설명 |
|---|---|
LINE_CHANNEL_ACCESS_TOKEN | LINE Developers Console(Messaging API 탭)의 장기 채널 액세스 토큰입니다. 필수의. |
LINE_CHANNEL_SECRET | 채널 비밀(기본 설정 탭) HMAC-SHA256 웹훅 서명 확인에 사용됩니다. 필수의. |
LINE_HOST | 웹훅 바인드 호스트(기본값: 0.0.0.0). |
LINE_PORT | 웹훅 바인드 포트(기본값: 8646). |
LINE_PUBLIC_URL | 공개 HTTPS 기본 URL(예: https://my-tunnel.example.com). 이미지/오디오/동영상 전송에 필요합니다. LINE은 HTTPS 연결이 가능한 URL만 허용합니다. |
LINE_ALLOWED_USERS | 봇 DM에 허용되는 쉼표로 구분된 사용자 ID(U-접두사). |
LINE_ALLOWED_GROUPS | 봇이 응답할 쉼표로 구분된 그룹 ID(C-접두사). |
LINE_ALLOWED_ROOMS | 봇이 응답할 쉼표로 구분된 방 ID(R-접두사). |
LINE_ALLOW_ALL_USERS | 개발자 전용 탈출구 — 모든 소스를 허용합니다. 기본값: false. |
LINE_HOME_CHANNEL | deliver: line을 사용하는 크론 작업의 기본 전달 대상입니다. |
LINE_SLOW_RESPONSE_THRESHOLD | 느린 LLM 템플릿 버튼 포스트백이 실행되기 몇 초 전입니다(기본값: 45). 푸시 폴백을 비활성화하고 항상 사용하려면 0을 설정하세요. |
LINE_PENDING_TEXT | 포스트백 버튼 옆에 표시되는 풍선 텍스트입니다. |
LINE_BUTTON_LABEL | 포스트백 버튼 라벨(기본값: Get answer). |
LINE_DELIVERED_TEXT | 이미 전달된 포스트백을 다시 탭하면 응답합니다(기본값: Already replied ✅). |
LINE_INTERRUPTED_TEXT | /stop 분리된 포스트백 버튼을 탭하면 응답합니다(기본값: Run was interrupted before completion.). |
고급 메시징 조정
아웃바운드 메시지 배처를 조절하기 위한 고급 플랫폼별 노브입니다. 대부분의 사용자는 이를 만질 필요가 없습니다. 기본값은 느린 느낌 없이 각 플랫폼의 속도 제한을 준수하도록 설정되어 있습니다.
| 변수 | 설명 |
|---|---|
HERMES_TELEGRAM_TEXT_BATCH_DELAY_SECONDS | 대기열에 있는 텔레그램 텍스트 청크를 플러시하기 전의 유예 기간입니다(기본값: 0.6). |
HERMES_TELEGRAM_TEXT_BATCH_SPLIT_DELAY_SECONDS | 단일 텔레그램 메시지가 길이 제한(기본값: 2.0)을 초과하는 경우 분할 청크 간의 지연입니다. |
HERMES_TELEGRAM_MEDIA_BATCH_DELAY_SECONDS | 대기열에 있는 텔레그램 미디어를 플러시하기 전의 유예 기간입니다(기본값: 0.6). |
HERMES_TELEGRAM_FOLLOWUP_GRACE_SECONDS | 마지막 스트림 청크 경주를 피하기 위해 에이전트가 완료된 후 후속 조치를 보내기 전에 지연합니다. |
HERMES_TELEGRAM_HTTP_CONNECT_TIMEOUT / _READ_TIMEOUT / _WRITE_TIMEOUT / _POOL_TIMEOUT | 기본 python-telegram-bot HTTP 시간 초과(초)를 재정의합니다. |
HERMES_TELEGRAM_HTTP_POOL_SIZE | Telegram API에 대한 최대 동시 HTTP 연결. |
HERMES_TELEGRAM_DISABLE_FALLBACK_IPS | DNS가 실패할 때 사용되는 하드 코딩된 Cloudflare 대체 IP를 비활성화합니다(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 배치 노브에 해당하는 매트릭스입니다. |
HERMES_FEISHU_TEXT_BATCH_DELAY_SECONDS / _SPLIT_DELAY_SECONDS / _MAX_CHARS / _MAX_MESSAGES | Feishu Batcher 튜닝 — 지연, 분할 지연, 메시지당 최대 문자 수, 배치당 최대 메시지. |
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 | 비전 모델에 이미지를 전달하기 전에 이미지를 다운로드하는 시간 제한(초)(기본값: 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로 설정합니다. 입력은 여전히 정상적으로 대기/조정/중단되며 채팅 응답만 무음 처리됩니다. config.yaml의 display.busy_ack_enabled에서 연결되었습니다. |
HERMES_FILE_MUTATION_VERIFIER | 턴별 파일 변형 검증자 바닥글을 활성화합니다(기본값: true). 활성화되면 Hermes는 턴 중에 실패하고 성공적인 쓰기로 대체되지 않은 write_file / patch 호출을 나열하는 권고를 추가합니다. 억제하려면 0, false, no 또는 off으로 설정하세요. config.yaml의 display.file_mutation_verifier을 미러링합니다. env var가 설정되면 승리합니다. |
HERMES_CRON_TIMEOUT | cron 작업 에이전트의 비활성 시간 제한은 초 단위로 실행됩니다(기본값: 600). 에이전트는 도구를 적극적으로 호출하거나 스트림 토큰을 받는 동안 무기한으로 실행할 수 있습니다. 이는 유휴 상태일 때만 트리거됩니다. 무제한의 경우 0로 설정하세요. |
HERMES_CRON_SCRIPT_TIMEOUT | cron 작업에 연결된 사전 실행 스크립트의 시간 초과(초 단위)(기본값: 120). 더 긴 실행이 필요한 스크립트에 대해 override합니다(예: 봇 방지 타이밍을 위한 무작위 지연). config.yaml의 cron.script_timeout_seconds을 통해 구성할 수도 있습니다. |
HERMES_CRON_MAX_PARALLEL | 최대 크론 작업은 틱당 병렬로 실행됩니다(기본값: 4). |
에이전트 행동
| 변수 | 설명 |
|---|---|
HERMES_MAX_ITERATIONS | 대화당 최대 도구 호출 반복 횟수(기본값: 90) |
HERMES_INFERENCE_MODEL | 프로세스 수준에서 모델 이름을 override합니다(세션의 config.yaml보다 우선순위를 가집니다). -m/--model 플래그를 통해 설정할 수도 있습니다. |
HERMES_YOLO_MODE | 위험한 명령 승인 메시지를 우회하려면 1으로 설정하세요. --yolo과 동일합니다. |
HERMES_ACCEPT_HOOKS | TTY 프롬프트 없이 config.yaml에 선언된 보이지 않는 셸 후크를 자동 승인합니다. --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 | 도구 진행률 표시에 대한 호환성 변수는 더 이상 사용되지 않습니다. config.yaml에서 display.tool_progress을 선호하세요. |
HERMES_TOOL_PROGRESS_MODE | 도구 진행 모드에 대한 호환성 변수는 더 이상 사용되지 않습니다. config.yaml에서 display.tool_progress을 선호하세요. |
HERMES_HUMAN_DELAY_MODE | 응답 속도: off/natural/custom |
HERMES_HUMAN_DELAY_MIN_MS | 사용자 정의 지연 범위 최소(ms) |
HERMES_HUMAN_DELAY_MAX_MS | 사용자 정의 지연 범위 최대값(ms) |
HERMES_QUIET | 필수적이지 않은 출력 억제(true/false) |
CODEX_HOME | Codex 앱 서버 런타임이 활성화되면 Codex CLI가 구성 + 인증을 읽는 디렉터리를 override합니다(기본값: ~/.codex). Hermes의 마이그레이션은 관리되는 블록을 <CODEX_HOME>/config.toml에 씁니다. |
HERMES_KANBAN_TASK | 작업자를 생성할 때 칸반 디스패처에 의해 설정됩니다(작업 UUID). 작업자와 생성된 hermes-tools MCP 하위 프로세스는 이를 상속하므로 칸반 도구가 올바르게 게이트됩니다. 수동으로 설정하지 마십시오. |
HERMES_API_TIMEOUT | LLM API 호출 시간 초과(초)(기본값: 1800) |
HERMES_API_CALL_STALE_TIMEOUT | 비스트리밍 오래된 호출 시간 초과(초)(기본값: 300). 설정되지 않은 상태로 두면 로컬 제공업체에 대해 자동으로 비활성화됩니다. config.yaml의 providers.<id>.stale_timeout_seconds 또는 providers.<id>.models.<model>.stale_timeout_seconds을 통해 구성할 수도 있습니다. |
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 | 게이트웨이: 이 시간 동안 활동이 없으면 경고 메시지를 보냅니다(기본값: HERMES_AGENT_TIMEOUT의 75%). |
HERMES_AGENT_NOTIFY_INTERVAL | 게이트웨이: 장기 실행 에이전트 차례에 대한 진행 알림 간격(초)입니다. |
HERMES_CHECKPOINT_TIMEOUT | 파일 시스템 체크포인트 생성 시간 초과(초)(기본값: 30) |
HERMES_EXEC_ASK | 게이트웨이 모드에서 실행 승인 프롬프트 활성화(true/false) |
HERMES_ENABLE_PROJECT_PLUGINS | ./.hermes/plugins/(true/false, 기본값: false)에서 repo-local 플러그인 자동 검색을 활성화합니다. |
HERMES_PLUGINS_DEBUG | 1/true - stderr에 대한 자세한 플러그인 검색 로그 표시 — 디렉터리 검색, 구문 분석된 매니페스트 표시, 이유 건너뛰기, 구문 분석 또는 register() 실패 시 전체 역추적. 플러그인 작성자를 대상으로 합니다. |
HERMES_BACKGROUND_NOTIFICATIONS | 게이트웨이의 백그라운드 프로세스 알림 모드: all(기본값), result, error, off |
HERMES_EPHEMERAL_SYSTEM_PROMPT | API 호출 시 삽입되는 임시 시스템 프롬프트(세션에 지속되지 않음) |
HERMES_PREFILL_MESSAGES_FILE | API 호출 시 삽입된 임시 미리 채우기 메시지의 JSON 파일 경로입니다. |
HERMES_ALLOW_PRIVATE_URLS | true/false — 도구가 로컬 호스트/개인 네트워크 URL을 가져올 수 있도록 허용합니다. 게이트웨이 모드에서는 기본적으로 꺼져 있습니다. |
HERMES_REDACT_SECRETS | true/false — 도구 출력, 로그 및 채팅 응답의 비밀 수정을 제어합니다(기본값: true). |
HERMES_WRITE_SAFE_ROOT | write_file/patch 쓰기를 제한하는 선택적 디렉터리 접두사입니다. 외부 경로에는 승인이 필요합니다. |
HERMES_DISABLE_FILE_STATE_GUARD | patch/write_file에서 "읽은 후 변경된 파일" 가드를 끄려면 1로 설정합니다. |
HERMES_CORE_TOOLS | 표준 핵심 도구 목록을 쉼표로 구분하여 재정의합니다(고급, 거의 필요하지 않음). |
HERMES_BUNDLED_SKILLS | 시작 시 로드되는 번들 스킬 목록에 대한 쉼표로 구분된 재정의입니다. |
HERMES_OPTIONAL_SKILLS | 처음 실행 시 자동 설치할 선택적 기술 이름의 쉼표로 구분된 목록입니다. |
HERMES_DEBUG_INTERRUPT | 자세한 인터럽트/취소 추적을 agent.log에 기록하려면 1로 설정합니다. |
HERMES_DUMP_REQUESTS | API 요청 페이로드를 로그 파일로 덤프합니다(true/false). |
HERMES_DUMP_REQUEST_STDOUT | API 요청 페이로드를 로그 파일 대신 stdout으로 덤프합니다. |
HERMES_OAUTH_TRACE | OAuth 토큰 교환 및 새로 고침 시도를 기록하려면 1으로 설정합니다. 수정된 타이밍 정보를 포함합니다. |
HERMES_OAUTH_FILE | OAuth 자격 증명 저장소에 사용되는 경로를 override합니다(기본값: ~/.hermes/auth.json). |
HERMES_AGENT_HELP_GUIDANCE | 사용자 정의 배포를 위해 시스템 프롬프트에 추가 지침 텍스트를 추가합니다. |
HERMES_AGENT_LOGO | CLI 시작 시 ASCII 배너 로고를 재정의합니다. |
DELEGATION_MAX_CONCURRENT_CHILDREN | delegate_task 배치당 최대 병렬 하위 에이전트 수(기본값: 3, 최소 1, 최대 한도 없음) config.yaml의 delegation.max_concurrent_children을 통해 구성할 수도 있습니다. 구성 값이 우선순위를 갖습니다. |
인터페이스
| 변수 | 설명 |
|---|---|
HERMES_TUI | 1으로 설정된 경우 기존 CLI 대신 TUI를 실행하세요. --tui 전달과 동일합니다. |
HERMES_TUI_DIR | 미리 빌드된 ui-tui/ 디렉터리의 경로입니다(dist/entry.js을 포함하고 node_modules를 채워야 함). distros 및 Nix에서 첫 번째 실행 npm install을 건너뛰는 데 사용됩니다. |
HERMES_TUI_RESUME | 실행 시 ID별로 특정 TUI 세션을 재개합니다. 설정되면 hermes --tui은 새 세션 생성을 건너뛰고 대신 명명된 세션을 선택합니다. 이는 연결 해제 또는 터미널 충돌 후 다시 연결하는 데 유용합니다. |
HERMES_TUI_THEME | TUI 색상 테마를 강제 적용합니다: light, dark 또는 원시 6자 배경 16진수(예: ffffff 또는 1a1a2e). 설정하지 않으면 Hermes는 COLORFGBG 및 터미널 백그라운드 쿼리를 사용하여 자동 감지합니다. 이 변수는 COLORFGBG을 설정하지 않은 터미널(Ghostty, Warp, iTerm2 등)의 감지를 재정의합니다. |
HERMES_INFERENCE_MODEL | config.yaml을 변경하지 않고 hermes -z / hermes chat에 대한 모델을 강제 적용합니다. HERMES_INFERENCE_PROVIDER과 페어링됩니다. 실행당 기본 모델을 재정의해야 하는 스크립트 호출자(스위퍼, 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 # fraction of threshold to preserve as recent tail
protect_last_n: 20 # minimum recent messages to keep uncompressed
compression.summary_model, compression.summary_provider 및 compression.summary_base_url이 포함된 이전 구성은 처음 로드 시 자동으로 auxiliary.compression.*로 마이그레이션됩니다.
보조 작업 재정의
| 변수 | 설명 |
|---|---|
AUXILIARY_VISION_PROVIDER | 비전 작업에 대한 제공자 재정의 |
AUXILIARY_VISION_MODEL | 비전 작업을 위한 모델 재정의 |
AUXILIARY_VISION_BASE_URL | 비전 작업을 위한 Direct OpenAI 호환 엔드포인트 |
AUXILIARY_VISION_API_KEY | AUXILIARY_VISION_BASE_URL과 쌍을 이루는 API 키 |
AUXILIARY_WEB_EXTRACT_PROVIDER | 웹 추출/요약을 위한 제공자 재정의 |
AUXILIARY_WEB_EXTRACT_MODEL | 웹 추출/요약을 위한 재정의 모델 |
AUXILIARY_WEB_EXTRACT_BASE_URL | 웹 추출/요약을 위한 Direct OpenAI 호환 엔드포인트 |
AUXILIARY_WEB_EXTRACT_API_KEY | AUXILIARY_WEB_EXTRACT_BASE_URL과 쌍을 이루는 API 키 |
작업별 직접 엔드포인트의 경우 Hermes는 작업에 구성된 API 키 또는 OPENAI_API_KEY을 사용합니다. 해당 사용자 정의 엔드포인트에는 OPENROUTER_API_KEY을 재사용하지 않습니다.
대체 제공자(config.yaml만 해당)
기본 모델 대체 체인은 config.yaml을 통해 독점적으로 구성되며 이에 대한 환경 변수가 없습니다. 기본 모델에 오류가 발생할 때 자동 장애 조치를 활성화하려면 provider 및 model 키가 포함된 최상위 fallback_providers 목록을 추가하세요.
fallback_providers:
- provider: openrouter
model: anthropic/claude-sonnet-4
이전 최상위 레벨 fallback_model 단일 제공자 형태는 이전 버전과의 호환성을 위해 계속 읽혀지지만 새 구성은 fallback_providers을 사용해야 합니다.
자세한 내용은 대체 제공자를 참조하세요.
제공자 라우팅(config.yaml만 해당)
이는 provider_routing 섹션 아래의 ~/.hermes/config.yaml에 들어 있습니다.
| 열쇠 | 설명 |
|---|---|
sort | 정렬 제공자: "price"(기본값), "throughput" 또는 "latency" |
only | 허용할 제공자 슬러그 목록(예: ["anthropic", "google"]) |
ignore | 건너뛸 제공자 슬러그 목록 |
order | 순서대로 시도할 제공자 슬러그 목록 |
require_parameters | 모든 요청 매개변수(true/false)를 지원하는 제공자만 사용하세요. |
data_collection | "allow"(기본값) 또는 "deny"(데이터 저장 제공자 제외) |
환경 변수를 설정하려면 hermes config set을 사용하세요. 자동으로 올바른 파일에 저장됩니다(비밀의 경우 .env, 기타 모든 것의 경우 config.yaml).