環境變量參考
所有變量均需配置在 ~/.hermes/.env 文件中。你也可以通過 hermes config set VAR value 命令設置它們。
大語言模型(LLM)提供商
| 變量 | 描述 |
|---|---|
OPENROUTER_API_KEY | OpenRouter API 密鑰(推薦,靈活性高) |
OPENROUTER_BASE_URL | 覆蓋 OpenRouter 兼容的基地址 |
AI_GATEWAY_API_KEY | Vercel AI Gateway API 密鑰 (ai-gateway.vercel.sh) |
AI_GATEWAY_BASE_URL | 覆蓋 AI Gateway 基地址(默認:https://ai-gateway.vercel.sh/v1) |
OPENAI_API_KEY | 自定義 OpenAI 兼容端點的 API 密鑰(與 OPENAI_BASE_URL 一起使用) |
OPENAI_BASE_URL | 自定義端點的基地址(如 VLLM、SGLang 等) |
COPILOT_GITHUB_TOKEN | Copilot API 用的 GitHub token —— 優先級最高(OAuth gho_* 或細粒度個人訪問令牌 github_pat_*;經典個人訪問令牌 ghp_* 不支持) |
GH_TOKEN | GitHub token —— Copilot 第二優先級(也用於 gh CLI) |
GITHUB_TOKEN | GitHub token —— 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 | 覆蓋 Copilot ACP 基地址 |
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 基地址(默認:https://api.z.ai/api/paas/v4) |
KIMI_API_KEY | Kimi / Moonshot AI API 密鑰 (moonshot.ai) |
KIMI_BASE_URL | 覆蓋 Kimi 基地址(默認:https://api.moonshot.ai/v1) |
MINIMAX_API_KEY | MiniMax API 密鑰 —— 全球端點 (minimax.io) |
MINIMAX_BASE_URL | 覆蓋 MiniMax 基地址(默認:https://api.minimax.io/v1) |
MINIMAX_CN_API_KEY | MiniMax API 密鑰 —— 中國端點 (minimaxi.com) |
MINIMAX_CN_BASE_URL | 覆蓋 MiniMax 中國端地址(默認:https://api.minimaxi.com/v1) |
KILOCODE_API_KEY | Kilo Code API 密鑰 (kilo.ai) |
KILOCODE_BASE_URL | 覆蓋 Kilo Code 基地址(默認:https://api.kilo.ai/api/gateway) |
HF_TOKEN | Hugging Face 推理服務提供商的令牌 (huggingface.co/settings/tokens) |
HF_BASE_URL | 覆蓋 Hugging Face 基地址(默認: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 基地址 |
ANTHROPIC_API_KEY | Anthropic 控制檯 API 密鑰 (console.anthropic.com) |
ANTHROPIC_TOKEN | 手動或舊版 Anthropic OAuth/設置令牌覆蓋 |
DASHSCOPE_API_KEY | 阿里雲 DashScope API 密鑰,用於 Qwen 模型 (modelstudio.console.alibabacloud.com) |
DASHSCOPE_BASE_URL | 自定義 DashScope 基地址(默認:https://coding-intl.dashscope.aliyuncs.com/v1) |
DEEPSEEK_API_KEY | DeepSeek API 密鑰,用於直接訪問 DeepSeek (platform.deepseek.com) |
DEEPSEEK_BASE_URL | 自定義 DeepSeek API 基地址 |
OPENCODE_ZEN_API_KEY | OpenCode Zen API 密鑰 —— 按需付費訪問精選模型 (opencode.ai) |
OPENCODE_ZEN_BASE_URL | 覆蓋 OpenCode Zen 基地址 |
OPENCODE_GO_API_KEY | OpenCode Go API 密鑰 —— 每月 $10 訂閱,用於開放模型 (opencode.ai) |
OPENCODE_GO_BASE_URL | 覆蓋 OpenCode Go 基地址 |
CLAUDE_CODE_OAUTH_TOKEN | 如果你手動導出過,可顯式覆蓋 Claude Code 的 OAuth 令牌 |
HERMES_MODEL | 在進程級別覆蓋模型名稱(由定時任務調度器使用;正常情況下建議使用 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 配置目錄(默認:~/.hermes)。同時也影響網關 PID 文件和 systemd 服務名稱的作用域,因此允許多個安裝實例併發運行 |
提供商認證(OAuth)
對於原生 Anthropic 認證,當存在 Claude Code 自身的憑證文件時,Hermes 會優先使用這些文件,因為它們可以自動刷新。儘管環境變量如 ANTHROPIC_TOKEN 仍可作為手動覆蓋使用,但它們已不再是 Claude Pro/Max 登錄的首選路徑。
| 變量 | 描述 |
|---|---|
HERMES_INFERENCE_PROVIDER | 覆蓋提供者選擇:auto、openrouter、nous、openai-codex、copilot、copilot-acp、anthropic、huggingface、zai、kimi-coding、minimax、minimax-cn、kilocode、alibaba、deepseek、opencode-zen、opencode-go、ai-gateway(默認:auto) |
HERMES_PORTAL_BASE_URL | 覆蓋 Nous Portal URL(用於開發/測試) |
NOUS_INFERENCE_BASE_URL | 覆蓋 Nous 推理 API URL |
HERMES_NOUS_MIN_KEY_TTL_SECONDS | 重新生成 Agent 密鑰前的最小密鑰 TTL(默認:1800 = 30分鐘) |
HERMES_NOUS_TIMEOUT_SECONDS | Nous 憑證/令牌流程的 HTTP 超時時間 |
HERMES_DUMP_REQUESTS | 將 API 請求負載轉儲到日誌文件(true/false) |
HERMES_PREFILL_MESSAGES_FILE | 在 API 調用時注入的臨時預填充消息的 JSON 文件路徑 |
HERMES_TIMEZONE | IANA 時區覆蓋(例如 America/New_York) |
工具 API
| 變量 | 描述 |
|---|---|
PARALLEL_API_KEY | AI 原生網絡搜索(parallel.ai) |
FIRECRAWL_API_KEY | 網頁抓取與雲瀏覽器(firecrawl.dev) |
FIRECRAWL_API_URL | 自託管實例的自定義 Firecrawl API 端點(可選) |
TAVILY_API_KEY | Tavily API 密鑰,用於 AI 原生網絡搜索、內容提取與爬取(app.tavily.com) |
EXA_API_KEY | Exa API 密鑰,用於 AI 原生網絡搜索與內容獲取(exa.ai) |
BROWSERBASE_API_KEY | 瀏覽器自動化(browserbase.com) |
BROWSERBASE_PROJECT_ID | Browserbase 項目 ID |
BROWSER_USE_API_KEY | Browser Use 雲瀏覽器 API 密鑰(browser-use.com) |
FIRECRAWL_BROWSER_TTL | Firecrawl 瀏覽器會話 TTL(秒)(默認:300) |
BROWSER_CDP_URL | 本地瀏覽器的 Chrome DevTools Protocol URL(通過 /browser connect 設置,例如 ws://localhost:9222) |
CAMOFOX_URL | Camofox 本地反檢測瀏覽器 URL(默認:http://localhost:9377) |
BROWSER_INACTIVITY_TIMEOUT | 瀏覽器會話不活動超時時間(秒) |
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 模型(默認:whisper-large-v3-turbo) |
GROQ_BASE_URL | 覆蓋 Groq OpenAI 兼容 STT 端點 |
STT_OPENAI_MODEL | 覆蓋 OpenAI STT 模型(默認:whisper-1) |
STT_OPENAI_BASE_URL | 覆蓋 OpenAI 兼容 STT 端點 |
GITHUB_TOKEN | GitHub 令牌,用於 Skills Hub(更高的 API 速率限制,技能發佈) |
HONCHO_API_KEY | 跨會話用戶建模(honcho.dev) |
HONCHO_BASE_URL | 自託管 Honcho 實例的基 URL(默認:Honcho 雲)。本地實例無需 API 密鑰 |
SUPERMEMORY_API_KEY | 帶有個人資料回憶與會話攝入的語義長期記憶(supermemory.ai) |
TINKER_API_KEY | 強化學習訓練(tinker-console.thinkingmachines.ai) |
WANDB_API_KEY | 強化學習訓練指標(wandb.ai) |
DAYTONA_API_KEY | Daytona 雲沙箱(daytona.io) |
終端後端
| 變量 | 描述 |
|---|---|
TERMINAL_ENV | 後端:local、docker、ssh、singularity、modal、daytona |
TERMINAL_DOCKER_IMAGE | Docker 鏡像(默認:nikolaik/python-nodejs:python3.11-nodejs20) |
TERMINAL_DOCKER_FORWARD_ENV | 要顯式轉發到 Docker 終端會話的環境變量名稱 JSON 數組。注意:技能聲明的 required_environment_variables 會自動轉發——你只需為未被任何技能聲明的變量使用此項。 |
TERMINAL_DOCKER_VOLUMES | 額外的 Docker 卷掛載(以逗號分隔的 host:container 對) |
TERMINAL_DOCKER_MOUNT_CWD_TO_WORKSPACE | 高級可選:將啟動時的當前工作目錄掛載到 Docker 的 /workspace(true/false,默認:false) |
TERMINAL_SINGULARITY_IMAGE | Singularity 鏡像或 .sif 路徑 |
TERMINAL_MODAL_IMAGE | Modal 容器鏡像 |
TERMINAL_DAYTONA_IMAGE | Daytona 沙箱鏡像 |
TERMINAL_TIMEOUT | 命令超時時間(秒) |
TERMINAL_LIFETIME_SECONDS | 終端會話最大持續時間(秒) |
TERMINAL_CWD | 所有終端會話的工作目錄 |
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 的持久化 shell(默認:遵循 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/) |
持久化 Shell
| 變量 | 描述 |
|---|---|
TERMINAL_PERSISTENT_SHELL | 為非本地後端啟用持久化 shell(默認:true)。也可通過 config.yaml 中的 terminal.persistent_shell 設置 |
TERMINAL_LOCAL_PERSISTENT | 為本地後端啟用持久化 shell(默認:false) |
TERMINAL_SSH_PERSISTENT | 覆蓋 SSH 後端的持久化 shell(默認:遵循 TERMINAL_PERSISTENT_SHELL) |
消息傳遞
| 變量 | 描述 |
|---|---|
TELEGRAM_BOT_TOKEN | Telegram 機器人令牌(來自 @BotFather) |
TELEGRAM_ALLOWED_USERS | 允許使用機器人的逗號分隔的用戶 ID 列表 |
TELEGRAM_HOME_CHANNEL | 定時任務推送的默認 Telegram 聊天/頻道 |
TELEGRAM_HOME_CHANNEL_NAME | Telegram 主頻道的顯示名稱 |
TELEGRAM_WEBHOOK_URL | Webhook 模式使用的公共 HTTPS URL(啟用 Webhook 而非輪詢) |
TELEGRAM_WEBHOOK_PORT | Webhook 服務器的本地監聽端口(默認:8443) |
TELEGRAM_WEBHOOK_SECRET | 用於驗證更新來源為 Telegram 的密鑰令牌 |
TELEGRAM_REACTIONS | 在處理過程中啟用消息的 emoji 反饋(默認:false) |
DISCORD_BOT_TOKEN | Discord 機器人令牌 |
DISCORD_ALLOWED_USERS | 允許使用機器人的逗號分隔的 Discord 用戶 ID 列表 |
DISCORD_HOME_CHANNEL | 定時任務推送的默認 Discord 頻道 |
DISCORD_HOME_CHANNEL_NAME | Discord 主頻道的顯示名稱 |
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 |
SLACK_BOT_TOKEN | Slack 機器人令牌(xoxb-...) |
SLACK_APP_TOKEN | Slack 應用級令牌(xapp-...,Socket Mode 所需) |
SLACK_ALLOWED_USERS | 逗號分隔的 Slack 用戶 ID 列表 |
SLACK_HOME_CHANNEL | 定時任務推送的默認 Slack 頻道 |
SLACK_HOME_CHANNEL_NAME | Slack 主頻道的顯示名稱 |
WHATSAPP_ENABLED | 啟用 WhatsApp 橋接(true/false) |
WHATSAPP_MODE | bot(獨立號碼)或 self-chat(給自己發消息) |
WHATSAPP_ALLOWED_USERS | 逗號分隔的電話號碼(含國家代碼,不帶 +),或 * 表示允許所有發送者 |
WHATSAPP_ALLOW_ALL_USERS | 允許所有 WhatsApp 發送者而無需白名單(true/false) |
WHATSAPP_DEBUG | 在橋接中記錄原始消息事件以用於故障排查(true/false) |
SIGNAL_HTTP_URL | 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_PORT | 入站短信的 Webhook 監聽端口(默認:8080) |
SMS_ALLOWED_USERS | 逗號分隔的允許聊天的 E.164 電話號碼列表 |
SMS_ALLOW_ALL_USERS | 允許所有短信發送者而無需白名單 |
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 | 釘釘機器人 AppKey(來自開發者平臺 open.dingtalk.com) |
DINGTALK_CLIENT_SECRET | 釘釘機器人 AppSecret(來自開發者平臺) |
DINGTALK_ALLOWED_USERS | 逗號分隔的允許向機器人發送消息的釘釘用戶 ID 列表 |
FEISHU_APP_ID | 飛書/Lark 機器人 App ID(來自 open.feishu.cn) |
FEISHU_APP_SECRET | 飛書/Lark 機器人 App Secret |
FEISHU_DOMAIN | feishu(中國)或 lark(國際)。默認:feishu |
FEISHU_CONNECTION_MODE | websocket(推薦)或 webhook。默認:websocket |
FEISHU_ENCRYPT_KEY | Webhook 模式下的可選加密密鑰 |
FEISHU_VERIFICATION_TOKEN | Webhook 模式下的可選驗證令牌 |
FEISHU_ALLOWED_USERS | 逗號分隔的允許向機器人發送消息的飛書用戶 ID 列表 |
FEISHU_HOME_CHANNEL | 飛書聊天 ID,用於定時任務推送和通知 |
WECOM_BOT_ID | 企業微信 AI 機器人 ID(來自管理控制檯) |
WECOM_SECRET | 企業微信 AI 機器人密鑰 |
WECOM_WEBSOCKET_URL | 自定義 WebSocket URL(默認:wss://openws.work.weixin.qq.com) |
WECOM_ALLOWED_USERS | 逗號分隔的允許向機器人發送消息的企業微信用戶 ID 列表 |
WECOM_HOME_CHANNEL | 企業微信聊天 ID,用於定時任務推送和通知 |
WEIXIN_ACCOUNT_ID | 通過 iLink Bot API 的二維碼登錄獲取的微信賬號 ID |
WEIXIN_TOKEN | 通過 iLink Bot API 的二維碼登錄獲取的微信認證令牌 |
WEIXIN_BASE_URL | 覆蓋微信 iLink Bot API 基礎 URL(默認:https://ilinkai.weixin.qq.com) |
WEIXIN_CDN_BASE_URL | 覆蓋微信 CDN 基礎 URL(用於媒體,默認: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_GROUP_ALLOWED_USERS | 逗號分隔的允許與機器人交互的微信群組 ID 列表 |
WEIXIN_HOME_CHANNEL | 微信聊天 ID,用於定時任務推送和通知 |
WEIXIN_HOME_CHANNEL_NAME | 微信主頻道的顯示名稱 |
WEIXIN_ALLOW_ALL_USERS | 允許所有微信用戶而無需白名單(true/false) |
BLUEBUBBLES_SERVER_URL | BlueBubbles 服務器 URL(例如 http://192.168.1.10:1234) |
BLUEBUBBLES_PASSWORD | BlueBubbles 服務器密碼 |
BLUEBUBBLES_WEBHOOK_HOST | Webhook 監聽綁定地址(默認:127.0.0.1) |
BLUEBUBBLES_WEBHOOK_PORT | Webhook 監聽端口(默認:8645) |
BLUEBUBBLES_HOME_CHANNEL | 用於定時/通知推送的電話號碼或郵箱 |
BLUEBUBBLES_ALLOWED_USERS | 逗號分隔的授權用戶列表 |
BLUEBUBBLES_ALLOW_ALL_USERS | 允許所有用戶(true/false) |
MATTERMOST_URL | Mattermost 服務器 URL(例如 https://mm.example.com) |
MATTERMOST_TOKEN | Mattermost 機器人令牌或個人訪問令牌 |
MATTERMOST_ALLOWED_USERS | 逗號分隔的允許向機器人發送消息的 Mattermost 用戶 ID 列表 |
MATTERMOST_HOME_CHANNEL | 用於主動消息推送(定時任務、通知)的頻道 ID |
MATTERMOST_REQUIRE_MENTION | 在頻道中需 @ 提及(默認:true)。設為 false 可響應所有消息。 |
MATTERMOST_FREE_RESPONSE_CHANNELS | 逗號分隔的頻道 ID 列表,在這些頻道中機器人無需 @ 提及即可響應 |
MATTERMOST_REPLY_MODE | 回覆風格:thread(線程回覆)或 off(平鋪消息,默認) |
MATRIX_HOMESERVER | Matrix homeserver URL(例如 https://matrix.org) |
MATRIX_ACCESS_TOKEN | 用於機器人認證的 Matrix 訪問令牌 |
MATRIX_USER_ID | Matrix 用戶 ID(例如 @hermes:matrix.org)——密碼登錄時必需,使用訪問令牌時可選 |
MATRIX_PASSWORD | Matrix 密碼(替代訪問令牌) |
MATRIX_ALLOWED_USERS | 逗號分隔的允許向機器人發送消息的 Matrix 用戶 ID 列表(例如 @alice:matrix.org) |
MATRIX_HOME_ROOM | 用於主動消息推送的房間 ID(例如 !abc123:matrix.org) |
MATRIX_ENCRYPTION | 啟用端到端加密(true/false,默認:false) |
MATRIX_REQUIRE_MENTION | 在房間中需 @ 提及(默認:true)。設為 false 可響應所有消息。 |
MATRIX_FREE_RESPONSE_ROOMS | 逗號分隔的房間 ID 列表,在這些房間中機器人無需 @ 提及即可響應 |
MATRIX_AUTO_THREAD | 自動為房間消息創建線程(默認:true) |
MATRIX_DM_MENTION_THREADS | 當機器人在私聊中被 @ 提及時創建線程(默認:false) |
HASS_TOKEN | Home Assistant 長期訪問令牌(啟用 HA 平臺 + 工具) |
HASS_URL | Home Assistant URL(默認:http://homeassistant.local:8123) |
WEBHOOK_ENABLED | 啟用 Webhook 平臺適配器(true/false) |
WEBHOOK_PORT | 接收 Webhook 的 HTTP 服務器端口(默認:8644) |
WEBHOOK_SECRET | Webhook 簽名驗證的全局 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 需要為每個連接指定不同的模型名稱。 |
MESSAGING_CWD | 消息模式下終端命令的工作目錄(默認:~) |
GATEWAY_ALLOWED_USERS | 跨所有平臺允許的用戶 ID 列表(逗號分隔) |
GATEWAY_ALLOW_ALL_USERS | 允許所有用戶而無需白名單(true/false,默認:false) |
Agent 行為
| 變量 | 描述 |
|---|---|
HERMES_MAX_ITERATIONS | 每次對話中工具調用的最大迭代次數(默認值:90) |
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 | 自定義延遲範圍最小值(毫秒) |
HERMES_HUMAN_DELAY_MAX_MS | 自定義延遲範圍最大值(毫秒) |
HERMES_QUIET | 抑制非必要輸出(true/false) |
HERMES_API_TIMEOUT | LLM API 調用超時時間(秒),默認值:1800 |
HERMES_STREAM_READ_TIMEOUT | 流式傳輸套接字讀取超時時間(秒),默認值:120。對於本地提供者,自動增加至 HERMES_API_TIMEOUT。若本地 LLM 在長時間代碼生成時超時,請適當增加該值。 |
HERMES_STREAM_STALE_TIMEOUT | 檢測流式傳輸“過期”的超時時間(秒),默認值:180。對於本地提供者,自動禁用。若在此時間窗口內未收到任何數據塊,則觸發連接終止。 |
HERMES_EXEC_ASK | 在網關模式下啟用執行審批提示(true/false) |
HERMES_ENABLE_PROJECT_PLUGINS | 啟用從 ./.hermes/plugins/ 自動發現項目本地插件(true/false,默認值:false) |
HERMES_BACKGROUND_NOTIFICATIONS | 網關模式下的後臺進程通知模式:all(默認)、result、error、off |
HERMES_EPHEMERAL_SYSTEM_PROMPT | 在 API 調用時注入的臨時系統提示(從不持久化到會話中) |
定時調度器
| 變量 | 描述 |
|---|---|
HERMES_CRON_TIMEOUT | 定時任務 Agent 運行的不活動超時時間(秒),默認值:600。當 Agent 正在主動調用工具或接收流式數據塊時,可無限運行——此設置僅在空閒時觸發。設為 0 表示無限制。 |
HERMES_CRON_SCRIPT_TIMEOUT | 附加到定時任務的預運行腳本的超時時間(秒),默認值:120。對於需要更長執行時間的腳本(例如用於反機器人計時的隨機延遲),可進行覆蓋。也可通過 config.yaml 中的 cron.script_timeout_seconds 配置。 |
會話設置
| 變量 | 描述 |
|---|---|
SESSION_IDLE_MINUTES | 會話在空閒 N 分鐘後重置(默認值:1440) |
SESSION_RESET_HOUR | 每日重置時間(24 小時制,默認值:4 = 凌晨 4 點) |
上下文壓縮(僅限 config.yaml)
上下文壓縮僅通過 config.yaml 中的 compression 部分進行配置——無對應環境變量。
compression:
enabled: true
threshold: 0.50
summary_model: "" # 空=使用主要配置的model
summary_provider: auto
summary_base_url: null # 用於摘要的自定義 OpenAI 兼容端點
輔助任務覆蓋
| 變量 | 描述 |
|---|---|
AUXILIARY_VISION_PROVIDER | 覆蓋視覺任務的提供者 |
AUXILIARY_VISION_MODEL | 覆蓋視覺任務的模型 |
AUXILIARY_VISION_BASE_URL | 視覺任務的直接 OpenAI 兼容端點 |
AUXILIARY_VISION_API_KEY | 與 AUXILIARY_VISION_BASE_URL 配對使用的 API 密鑰 |
AUXILIARY_WEB_EXTRACT_PROVIDER | 覆蓋網頁提取/摘要任務的提供者 |
AUXILIARY_WEB_EXTRACT_MODEL | 覆蓋網頁提取/摘要任務的模型 |
AUXILIARY_WEB_EXTRACT_BASE_URL | 網頁提取/摘要任務的直接 OpenAI 兼容端點 |
AUXILIARY_WEB_EXTRACT_API_KEY | 與 AUXILIARY_WEB_EXTRACT_BASE_URL 配對使用的 API 密鑰 |
對於特定任務的直接端點,Hermes 使用任務配置的 API 密鑰或 OPENAI_API_KEY。它不會複用 OPENROUTER_API_KEY 用於這些自定義端點。
備用模型(僅限 config.yaml)
主模型的備用模型配置僅通過 config.yaml 進行——無對應環境變量。在 config.yaml 中添加 fallback_model 部分,幷包含 provider 和 model 鍵,以在主模型出現錯誤時啟用自動故障轉移。
fallback_model:
provider: openrouter
model: anthropic/claude-sonnet-4
請參閱 備用提供者 以獲取完整說明。
提供者路由(僅限 config.yaml)
這些配置項應位於 ~/.hermes/config.yaml 的 provider_routing 部分下:
| 鍵 | 描述 |
|---|---|
sort | 提供者排序方式:"price"(默認)、"throughput"、或 "latency" |
only | 允許使用的提供者別名列表(例如:["anthropic", "google"]) |
ignore | 要跳過的提供者別名列表 |
order | 按順序嘗試的提供者別名列表 |
require_parameters | 僅使用支持所有請求參數的提供者(true/false) |
data_collection | "allow"(默認)或 "deny",用於排除存儲數據的提供者 |
提示
使用 hermes config set 命令設置環境變量——它會自動將配置保存到正確文件中(.env 用於密鑰,config.yaml 用於其他所有內容)。