跳转至

配置指南

HermesX 全部环境变量和配置项参考。

配置优先级

环境变量 > 服务默认值

SaaS 部署应通过环境变量或 Secret 注入配置。遗留本地配置文件不属于受支持的公开运行时。

SaaS 服务配置

变量 必填 默认值 说明
DATABASE_URL - 数据库连接字符串。PostgreSQL 使用 postgres://...;MySQL 使用 user:pass@tcp(host:3306)/dbname?parseTime=true&charset=utf8mb4&loc=UTC
HERMES_ACP_TOKEN - 静态管理员 Bearer Token,用于 admin 端点认证
HERMES_BOOTSTRAP_RATE_LIMIT_RPM 5 POST /admin/v1/bootstrap 按来源 IP 的每分钟尝试次数
SAAS_API_PORT 8080 SaaS API 服务端口
SAAS_ALLOWED_ORIGINS -(不启用 CORS) CORS 允许的来源,* 表示全部,或逗号分隔的域名列表
SAAS_STATIC_DIR -(不提供静态文件) 静态文件目录路径;发布镜像使用 /static 提供内嵌 WebUI
HERMES_API_PORT 8081 OpenAI 兼容适配器端口
HERMES_API_KEY - OpenAI 兼容适配器的 Bearer Token
HERMES_ACP_PORT - ACP 服务器端口(不设置则不启动 ACP)

LLM 配置

变量 必填 默认值 说明
LLM_API_URL - LLM API 端点 URL
LLM_API_KEY - LLM API 认证密钥
LLM_MODEL - 默认 LLM 模型名称
HERMES_MODEL - SaaS Agent Runtime 默认模型
HERMES_PROVIDER - LLM 提供商(openai / anthropic / auto)
HERMES_BASE_URL - SaaS Agent Runtime 的 LLM API Base URL
HERMES_API_KEY_LLM - SaaS Agent Runtime 的 LLM API Key
HERMES_API_MODE - API 协议模式(openai / anthropic)
HERMES_MAX_ITERATIONS 20 Agent 最大迭代次数
HERMES_MAX_TOKENS 4096 单次响应最大 token 数

存储配置

数据库

变量 必填 默认值 说明
DATABASE_URL 是(SaaS 模式) - PostgreSQL 或 MySQL 连接字符串
DATABASE_DRIVER postgres 数据库驱动类型:postgresmysql

Redis

变量 必填 默认值 说明
REDIS_URL - Redis 连接字符串,用于分布式速率限制和 Cron Scheduler 分布式锁

Cron Scheduler

启用分布式定时任务调度需要 REDIS_URL 已配置。Scheduler 通过 Redis 分布式锁实现多 Pod 互斥执行。

变量 必填 默认值 说明
SCHEDULER_POLL_INTERVAL 30s 从 PG 同步定时任务的轮询间隔
SCHEDULER_EXEC_TIMEOUT 5m 单次任务执行超时时间
SCHEDULER_LOCK_TTL 12m Redis 分布式锁 TTL(应大于最长任务执行时间)

Scheduler 在 REDIS_URL 可用时自动启动。如果 Redis 不可用,scheduler 初始化失败但不阻塞主服务启动(non-fatal)。

MinIO / S3

变量 必填 默认值 说明
MINIO_ENDPOINT - MinIO 服务地址(如 localhost:9000
MINIO_ACCESS_KEY - MinIO 访问密钥
MINIO_SECRET_KEY - MinIO 密钥
MINIO_BUCKET hermes-skills MinIO 存储桶名称
MINIO_USE_SSL false 是否使用 SSL 连接 MinIO
BUNDLED_SKILLS_DIR skills 内置技能目录路径,用于租户自动 Provisioning

当配置了 MinIO 后,系统在以下时机自动同步技能: - 创建租户时:异步将 BUNDLED_SKILLS_DIR 中的所有技能复制到租户 MinIO 前缀,并生成默认 SOUL.md - 服务启动时:遍历所有租户执行增量同步(新增/更新内置技能,跳过用户修改过的技能)

可观测性配置

变量 必填 默认值 说明
OTEL_EXPORTER_OTLP_ENDPOINT -(不启用 tracing) OpenTelemetry OTLP gRPC 端点
OTEL_EXPORTER_OTLP_INSECURE false 是否使用不安全连接
OTEL_SERVICE_NAME hermes-agent OTel 服务名

Agent 行为配置(v1.4.0+)

变量 必填 默认值 说明
HERMES_CONTEXT_COMPRESSION true 启用上下文自动压缩
HERMES_COMPRESSION_THRESHOLD 80000 触发压缩的 token 阈值
HERMES_MEMORY_CURATOR true 启用自主记忆整理
HERMES_MAX_MEMORIES 100 单租户最大记忆条数
HERMES_SELF_IMPROVE true 启用自我改进循环
HERMES_REVIEW_INTERVAL 10 自我评审触发间隔(对话轮次)
HERMES_MAX_INSIGHTS 50 最大改进洞察条数

调试与运行时

变量 必填 默认值 说明
HERMES_DEBUG false 启用调试日志(LLM 请求/响应详情)
HERMES_DEFAULT_MODEL - 全局默认模型(config fallback)
HERMES_FILE_STATE - 为 SaaS Agent 执行启用文件状态跟踪

记忆系统

Hermes 支持多种外部记忆提供商,按需配置:

Honcho

变量 说明
HONCHO_API_KEY Honcho 记忆服务 API Key
HONCHO_APP_ID Honcho 应用 ID
HONCHO_BASE_URL Honcho 服务地址
HONCHO_USER_ID Honcho 用户标识

Mem0

变量 说明
MEM0_API_KEY Mem0 记忆服务 API Key
MEM0_BASE_URL Mem0 服务地址

Supermemory

变量 说明
SUPERMEMORY_API_KEY Supermemory 服务 API Key
SUPERMEMORY_BASE_URL Supermemory 服务地址

Channel 与消息平台集成

Channel 与消息平台集成通过 SaaS 服务配置。旧独立 gateway 子命令不再是受支持的公开运行时。

变量 说明
TELEGRAM_BOT_TOKEN Telegram Bot Token
DISCORD_BOT_TOKEN Discord Bot Token
SLACK_APP_TOKEN Slack App-Level Token
SLACK_BOT_TOKEN Slack Bot Token
DMWORK_API_URL DmWork API 端点
DMWORK_BOT_TOKEN DmWork Bot Token

辅助视觉模型

用于图像识别等多模态场景:

变量 默认值 说明
AUXILIARY_VISION_API_KEY 回退到 OPENROUTER_API_KEY Vision LLM API Key
AUXILIARY_VISION_BASE_URL OpenRouter 端点 Vision LLM Base URL
AUXILIARY_VISION_MODEL - Vision 模型名称

工具 API Key

各类工具集成所需的 API Key:

变量 说明
OPENROUTER_API_KEY OpenRouter API Key
GEMINI_API_KEY Google Gemini API Key
GOOGLE_API_KEY Google API Key(搜索等)
EXA_API_KEY Exa 搜索 API Key
FIRECRAWL_API_KEY Firecrawl 网页抓取 API Key
FAL_KEY fal.ai 图像生成 API Key
ELEVENLABS_API_KEY ElevenLabs TTS API Key
OSV_ENDPOINT Open Source Vulnerabilities API 端点

邮件配置

变量 说明
EMAIL_FROM 发件人地址
EMAIL_USERNAME 邮箱账号
EMAIL_PASSWORD 邮箱密码
EMAIL_SMTP_HOST SMTP 服务器地址
EMAIL_SMTP_PORT SMTP 端口
EMAIL_IMAP_HOST IMAP 服务器地址

浏览器工具

变量 默认值 说明
BROWSER_BACKEND local 浏览器后端(localbrowserbase
BROWSER_CDP_URL - Chrome DevTools Protocol 端点
HASS_URL - Home Assistant 地址
HASS_TOKEN - Home Assistant 长期访问令牌

沙箱执行模式

SANDBOX_MODE 控制 execute_code 工具的执行后端:

变量 必填 默认值 说明
SANDBOX_MODE 启用 execute_code 时必填 - 代码执行后端模式

可选值:

模式 说明 适用场景
local 仅当 HERMESX_ALLOW_LOCAL_SANDBOX=true 且环境不是 production 时直接在宿主机执行 显式本地 SaaS 开发
docker 通过 Docker 容器执行 容器隔离执行,需要 Docker 守护进程
k8s-job 通过 Kubernetes Job 执行 生产环境、无需 DinD 或特权容器

如果未设置 SANDBOX_MODEexecute_code 会返回错误,不会回退到宿主机执行。当 HERMES_ENVHERMESX_ENVAPP_ENVGO_ENV 任一值为 production 时,local 模式会被拒绝。

K8s Job 模式配置

SANDBOX_MODE=k8s-job 时,以下变量可选配置:

变量 默认值 说明
K8S_JOB_NAMESPACE default Job 运行的命名空间
K8S_JOB_IMAGE ubuntu:latest Job 使用的容器镜像
K8S_JOB_CPU_LIMIT 500m CPU 资源限制
K8S_JOB_MEMORY_LIMIT 256Mi 内存资源限制
K8S_JOB_SERVICE_ACCOUNT -(使用默认 SA) Job Pod 的 ServiceAccount

注意:K8s Job 模式需要 kubectl 已配置且可访问目标集群。在集群内部署时,通常通过 in-cluster config 自动完成。

本地 SaaS 开发

本地开发仍应运行 SaaS 服务形态:

docker compose -f docker-compose.saas.yml up -d --build
# 或在已有外部依赖时:
SAAS_STATIC_DIR=./webui/dist ./hermesx saas-api

不要再记录或依赖旧本地助手、gateway 运行时或分离前端容器配置。

安全注意事项

  • HERMES_ACP_TOKEN 用于管理员认证,生产环境必须使用强密码
  • POST /admin/v1/bootstrap 默认按来源 IP 限制为 5 RPM;公网入口仍建议在 Nginx/Ingress 层叠加限流
  • DATABASE_URL 中的密码建议通过 Kubernetes Secret 或 Vault 注入
  • API Key 以 SHA-256 哈希存储,无法逆向获取原始值
  • 设置 SAAS_ALLOWED_ORIGINS 为具体域名,避免在生产环境使用 *
  • 生产环境基础设施镜像必须固定 release tag 或 digest,不要部署 :latest
  • MinIO 凭证应与 PostgreSQL 凭证独立管理

相关文档