跳到主要内容

环境变量参考

所有变量都应设置在 ~/.hermes/.env 文件中。你也可以使用 hermes config set VAR value 命令来设置它们。

LLM 提供商

变量描述
OPENROUTER_API_KEYOpenRouter API 密钥(推荐,灵活性高)
OPENROUTER_BASE_URL覆盖 OpenRouter 兼容的基础 URL
AI_GATEWAY_API_KEYVercel AI Gateway API 密钥 (ai-gateway.vercel.sh)
AI_GATEWAY_BASE_URL覆盖 AI Gateway 基础 URL(默认:https://ai-gateway.vercel.sh/v1
OPENAI_API_KEY用于自定义 OpenAI 兼容端点的 API 密钥(与 OPENAI_BASE_URL 一起使用)
OPENAI_BASE_URL自定义端点的基础 URL(VLLM、SGLang 等)
COPILOT_GITHUB_TOKENCopilot API 的 GitHub 令牌 — 第一优先级(OAuth gho_* 或细粒度 PAT github_pat_*;经典 PAT ghp_* 不支持
GH_TOKENGitHub 令牌 — Copilot 的第二优先级(也供 gh CLI 使用)
GITHUB_TOKENGitHub 令牌 — Copilot 的第三优先级
HERMES_COPILOT_ACP_COMMAND覆盖 Copilot ACP CLI 二进制文件路径(默认:copilot
COPILOT_CLI_PATHHERMES_COPILOT_ACP_COMMAND 的别名
HERMES_COPILOT_ACP_ARGS覆盖 Copilot ACP 参数(默认:--acp --stdio
COPILOT_ACP_BASE_URL覆盖 Copilot ACP 基础 URL
GLM_API_KEYz.ai / 智谱 AI GLM API 密钥 (z.ai)
ZAI_API_KEYGLM_API_KEY 的别名
Z_AI_API_KEYGLM_API_KEY 的别名
GLM_BASE_URL覆盖 z.ai 基础 URL(默认:https://api.z.ai/api/paas/v4
KIMI_API_KEYKimi / 月之暗面 AI API 密钥 (moonshot.ai)
KIMI_BASE_URL覆盖 Kimi 基础 URL(默认:https://api.moonshot.ai/v1
MINIMAX_API_KEYMiniMax API 密钥 — 全球端点 (minimax.io)
MINIMAX_BASE_URL覆盖 MiniMax 基础 URL(默认:https://api.minimax.io/v1
MINIMAX_CN_API_KEYMiniMax API 密钥 — 中国端点 (minimaxi.com)
MINIMAX_CN_BASE_URL覆盖 MiniMax 中国基础 URL(默认:https://api.minimaxi.com/v1
KILOCODE_API_KEYKilo Code API 密钥 (kilo.ai)
KILOCODE_BASE_URL覆盖 Kilo Code 基础 URL(默认:https://api.kilo.ai/api/gateway
HF_TOKENHugging Face 令牌,用于推理提供商 (huggingface.co/settings/tokens)
HF_BASE_URL覆盖 Hugging Face 基础 URL(默认:https://router.huggingface.co/v1
ANTHROPIC_API_KEYAnthropic Console API 密钥 (console.anthropic.com)
ANTHROPIC_TOKEN手动或旧版 Anthropic OAuth/setup-token 覆盖
DASHSCOPE_API_KEY阿里云 DashScope API 密钥,用于通义千问模型 (modelstudio.console.alibabacloud.com)
DASHSCOPE_BASE_URL自定义 DashScope 基础 URL(默认:https://coding-intl.dashscope.aliyuncs.com/v1
DEEPSEEK_API_KEYDeepSeek API 密钥,用于直接访问 DeepSeek (platform.deepseek.com)
DEEPSEEK_BASE_URL自定义 DeepSeek API 基础 URL
OPENCODE_ZEN_API_KEYOpenCode Zen API 密钥 — 按需付费访问精选模型 (opencode.ai)
OPENCODE_ZEN_BASE_URL覆盖 OpenCode Zen 基础 URL
OPENCODE_GO_API_KEYOpenCode Go API 密钥 — $10/月订阅,用于开源模型 (opencode.ai)
OPENCODE_GO_BASE_URL覆盖 OpenCode Go 基础 URL
CLAUDE_CODE_OAUTH_TOKEN如果你手动导出了令牌,用于显式覆盖 Claude Code 令牌
HERMES_MODEL首选模型名称(在 LLM_MODEL 之前检查,由网关使用)
LLM_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覆盖提供商选择:autoopenrouternousopenai-codexcopilotcopilot-acpanthropichuggingfacezaikimi-codingminimaxminimax-cnkilocodealibaba(默认:auto
HERMES_PORTAL_BASE_URL覆盖 Nous Portal URL(用于开发/测试)
NOUS_INFERENCE_BASE_URL覆盖 Nous 推理 API URL
HERMES_NOUS_MIN_KEY_TTL_SECONDS重新签发前代理密钥的最小生存时间(默认:1800 = 30分钟)
HERMES_NOUS_TIMEOUT_SECONDSNous 凭证/令牌流程的 HTTP 超时时间
HERMES_DUMP_REQUESTS将 API 请求负载转储到日志文件(true/false
HERMES_PREFILL_MESSAGES_FILE一个 JSON 文件的路径,该文件包含在 API 调用时注入的临时预填充消息
HERMES_TIMEZONEIANA 时区覆盖(例如 America/New_York

工具 API

变量描述
PARALLEL_API_KEYAI 原生网络搜索 (parallel.ai)
FIRECRAWL_API_KEY网络抓取 (firecrawl.dev)
FIRECRAWL_API_URL用于自托管实例的自定义 Firecrawl API 端点(可选)
TAVILY_API_KEYTavily API 密钥,用于 AI 原生网络搜索、提取和爬取 (app.tavily.com)
BROWSERBASE_API_KEY浏览器自动化 (browserbase.com)
BROWSERBASE_PROJECT_IDBrowserbase 项目 ID
BROWSER_USE_API_KEYBrowser Use 云浏览器 API 密钥 (browser-use.com)
BROWSER_CDP_URL本地浏览器的 Chrome DevTools 协议 URL(通过 /browser connect 设置,例如 ws://localhost:9222
BROWSER_INACTIVITY_TIMEOUT浏览器会话不活动超时时间(秒)
FAL_KEY图像生成 (fal.ai)
GROQ_API_KEYGroq Whisper STT API 密钥 (groq.com)
ELEVENLABS_API_KEYElevenLabs 高级 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用于 Skills Hub 的 GitHub 令牌(更高的 API 速率限制,技能发布)
HONCHO_API_KEY跨会话用户建模 (honcho.dev)
HONCHO_BASE_URL自托管 Honcho 实例的基础 URL(默认:Honcho 云)。本地实例不需要 API 密钥
TINKER_API_KEYRL 训练 (tinker-console.thinkingmachines.ai)
WANDB_API_KEYRL 训练指标 (wandb.ai)
DAYTONA_API_KEYDaytona 云沙箱 (daytona.io)

终端后端

变量描述
TERMINAL_ENV后端:localdockersshsingularitymodaldaytona
TERMINAL_DOCKER_IMAGEDocker 镜像(默认:python:3.11
TERMINAL_DOCKER_FORWARD_ENV要显式转发到 Docker 终端会话的环境变量名称的 JSON 数组。注意:技能声明的 required_environment_variables 会自动转发 — 你只需要为任何技能都未声明的变量设置此项。
TERMINAL_DOCKER_VOLUMES额外的 Docker 卷挂载(逗号分隔的 host:container 对)
TERMINAL_DOCKER_MOUNT_CWD_TO_WORKSPACE高级选项:将启动时的当前工作目录挂载到 Docker /workspacetrue/false,默认:false
TERMINAL_SINGULARITY_IMAGESingularity 镜像或 .sif 路径
TERMINAL_MODAL_IMAGEModal 容器镜像
TERMINAL_DAYTONA_IMAGEDaytona 沙箱镜像
TERMINAL_TIMEOUT命令超时时间(秒)
TERMINAL_LIFETIME_SECONDS终端会话的最大生存时间(秒)
TERMINAL_CWD所有终端会话的工作目录
SUDO_PASSWORD启用 sudo 而无需交互式提示

SSH 后端

变量描述
TERMINAL_SSH_HOST远程服务器主机名
TERMINAL_SSH_USERSSH 用户名
TERMINAL_SSH_PORTSSH 端口(默认:22)
TERMINAL_SSH_KEY私钥路径
TERMINAL_SSH_PERSISTENT覆盖 SSH 的持久化 shell(默认:遵循 TERMINAL_PERSISTENT_SHELL

容器资源 (Docker, Singularity, Modal, Daytona)

变量描述
TERMINAL_CONTAINER_CPUCPU 核心数(默认: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_TOKENTelegram 机器人令牌(来自 @BotFather)
TELEGRAM_ALLOWED_USERS允许使用机器人的用户 ID 列表,用逗号分隔
TELEGRAM_HOME_CHANNEL用于定时任务交付的默认 Telegram 聊天/频道
TELEGRAM_HOME_CHANNEL_NAMETelegram 主频道的显示名称
DISCORD_BOT_TOKENDiscord 机器人令牌
DISCORD_ALLOWED_USERS允许使用机器人的 Discord 用户 ID 列表,用逗号分隔
DISCORD_HOME_CHANNEL用于定时任务交付的默认 Discord 频道
DISCORD_HOME_CHANNEL_NAMEDiscord 主频道的显示名称
DISCORD_REQUIRE_MENTION在服务器频道中响应前需要 @提及
DISCORD_FREE_RESPONSE_CHANNELS不需要提及即可响应的频道 ID 列表,用逗号分隔
DISCORD_AUTO_THREAD在支持时自动将长回复放入线程
SLACK_BOT_TOKENSlack 机器人令牌(xoxb-...
SLACK_APP_TOKENSlack 应用级令牌(xapp-...,Socket 模式必需)
SLACK_ALLOWED_USERS允许的 Slack 用户 ID 列表,用逗号分隔
SLACK_HOME_CHANNEL用于定时任务交付的默认 Slack 频道
SLACK_HOME_CHANNEL_NAMESlack 主频道的显示名称
WHATSAPP_ENABLED启用 WhatsApp 桥接(true/false
WHATSAPP_MODEbot(独立号码)或 self-chat(给自己发消息)
WHATSAPP_ALLOWED_USERS允许的电话号码列表,用逗号分隔(带国家代码,无 +
SIGNAL_HTTP_URLsignal-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_NAMESignal 主频道的显示名称
SIGNAL_IGNORE_STORIES忽略 Signal 故事/状态更新
SIGNAL_ALLOW_ALL_USERS允许所有 Signal 用户,无需允许列表
TWILIO_ACCOUNT_SIDTwilio 账户 SID(与电话技能共享)
TWILIO_AUTH_TOKENTwilio 认证令牌(与电话技能共享)
TWILIO_PHONE_NUMBERTwilio 电话号码,E.164 格式(与电话技能共享)
SMS_WEBHOOK_PORT用于接收短信的 Webhook 监听端口(默认:8080
SMS_ALLOWED_USERS允许聊天的 E.164 电话号码列表,用逗号分隔
SMS_ALLOW_ALL_USERS允许所有短信发送者,无需允许列表
SMS_HOME_CHANNEL用于定时任务/通知交付的电话号码
SMS_HOME_CHANNEL_NAME短信主频道的显示名称
EMAIL_ADDRESS电子邮件网关适配器的电子邮件地址
EMAIL_PASSWORD电子邮件账户的密码或应用密码
EMAIL_IMAP_HOST电子邮件适配器的 IMAP 主机名
EMAIL_IMAP_PORTIMAP 端口
EMAIL_SMTP_HOST电子邮件适配器的 SMTP 主机名
EMAIL_SMTP_PORTSMTP 端口
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_DOMAINfeishu(中国)或 lark(国际)。默认:feishu
FEISHU_CONNECTION_MODEwebsocket(推荐)或 webhook。默认:websocket
FEISHU_ENCRYPT_KEYWebhook 模式的可选加密密钥
FEISHU_VERIFICATION_TOKENWebhook 模式的可选验证令牌
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
MATTERMOST_URLMattermost 服务器 URL(例如 https://mm.example.com
MATTERMOST_TOKENMattermost 的机器人令牌或个人访问令牌
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_HOMESERVERMatrix 家庭服务器 URL(例如 https://matrix.org
MATRIX_ACCESS_TOKEN用于机器人认证的 Matrix 访问令牌
MATRIX_USER_IDMatrix 用户 ID(例如 @hermes:matrix.org)— 密码登录必需,使用访问令牌时可选
MATRIX_PASSWORDMatrix 密码(访问令牌的替代方案)
MATRIX_ALLOWED_USERS允许向机器人发送消息的 Matrix 用户 ID 列表,用逗号分隔(例如 @alice:matrix.org
MATRIX_HOME_ROOM用于主动消息交付的房间 ID(例如 !abc123:matrix.org
MATRIX_ENCRYPTION启用端到端加密(true/false,默认:false
HASS_TOKENHome Assistant 长期访问令牌(启用 HA 平台 + 工具)
HASS_URLHome 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_KEYAPI 服务器认证的 Bearer 令牌。强烈推荐;任何网络可访问的部署都需要。
API_SERVER_CORS_ORIGINS允许直接调用 API 服务器的浏览器来源列表,用逗号分隔(例如 http://localhost:3000,http://127.0.0.1:3000)。默认:禁用。
API_SERVER_PORTAPI 服务器端口(默认:8642
API_SERVER_HOSTAPI 服务器的主机/绑定地址(默认:127.0.0.1)。仅在设置了 API_SERVER_KEY 和严格的 API_SERVER_CORS_ORIGINS 允许列表时,才使用 0.0.0.0 进行网络访问。
MESSAGING_CWD消息传递模式下终端命令的工作目录(默认:~
GATEWAY_ALLOWED_USERS允许跨所有平台的用户 ID 列表,用逗号分隔
GATEWAY_ALLOW_ALL_USERS允许所有用户,无需允许列表(true/false,默认:false

代理行为

变量描述
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_TIMEOUTLLM API 调用超时时间(秒)(默认:900
HERMES_EXEC_ASK在网关模式下启用执行批准提示(true/false
HERMES_ENABLE_PROJECT_PLUGINS启用从 ./.hermes/plugins/ 自动发现仓库本地插件(true/false,默认:false
HERMES_BACKGROUND_NOTIFICATIONS网关中后台进程通知模式:all(默认),resulterroroff
HERMES_EPHEMERAL_SYSTEM_PROMPT在 API 调用时注入的临时系统提示(永远不会持久化到会话中)

会话设置

变量描述
SESSION_IDLE_MINUTES在 N 分钟无活动后重置会话(默认:1440)
SESSION_RESET_HOUR每日重置小时(24小时制)(默认:4 = 凌晨4点)

上下文压缩(仅限 config.yaml)

上下文压缩仅通过 config.yaml 中的 compression 部分配置 —— 没有对应的环境变量。

compression:
enabled: true
threshold: 0.50
summary_model: google/gemini-3-flash-preview
summary_provider: auto
summary_base_url: null # 用于摘要的自定义 OpenAI 兼容端点

辅助任务覆盖

变量描述
AUXILIARY_VISION_PROVIDER覆盖视觉任务的提供商
AUXILIARY_VISION_MODEL覆盖视觉任务的模型
AUXILIARY_VISION_BASE_URL用于视觉任务的直接 OpenAI 兼容端点
AUXILIARY_VISION_API_KEYAUXILIARY_VISION_BASE_URL 配对的 API 密钥
AUXILIARY_WEB_EXTRACT_PROVIDER覆盖网页提取/摘要的提供商
AUXILIARY_WEB_EXTRACT_MODEL覆盖网页提取/摘要的模型
AUXILIARY_WEB_EXTRACT_BASE_URL用于网页提取/摘要的直接 OpenAI 兼容端点
AUXILIARY_WEB_EXTRACT_API_KEYAUXILIARY_WEB_EXTRACT_BASE_URL 配对的 API 密钥

对于特定任务的直接端点,Hermes 使用任务配置的 API 密钥或 OPENAI_API_KEY。它不会为这些自定义端点重用 OPENROUTER_API_KEY

备用模型(仅限 config.yaml)

主模型备用方案仅通过 config.yaml 配置 —— 没有对应的环境变量。添加一个包含 providermodel 键的 fallback_model 部分,以便在主模型遇到错误时启用自动故障转移。

fallback_model:
provider: openrouter
model: anthropic/claude-sonnet-4

完整详情请参阅备用提供商

提供商路由(仅限 config.yaml)

这些配置放在 ~/.hermes/config.yamlprovider_routing 部分下:

描述
sort提供商排序方式:"price"(默认),"throughput",或 "latency"
only允许的提供商 slug 列表(例如:["anthropic", "google"]
ignore要跳过的提供商 slug 列表
order按顺序尝试的提供商 slug 列表
require_parameters仅使用支持所有请求参数的提供商(true/false
data_collection"allow"(默认)或 "deny" 以排除存储数据的提供商
提示

使用 hermes config set 来设置环境变量 —— 它会自动将它们保存到正确的文件(.env 用于密钥,config.yaml 用于其他所有内容)。