配置参考
Hermes Agent 的完整配置参考,主配置文件为 ~/.hermes/config.yaml。
配置文件结构
text
~/.hermes/
├── config.yaml # 主配置文件
├── .env # 环境变量(API 密钥等敏感信息)
├── auth.json # 认证配置
├── SOUL.md # 代理身份定义
├── MEMORY.md # 代理记忆
├── USER.md # 用户档案
├── memories/ # 外部记忆存储
├── skills/ # 已安装技能
├── cron/ # 定时任务配置
├── sessions/ # 会话数据(SQLite state.db)
└── logs/ # 日志文件
config.yaml 完整配置
LLM 提供商配置
yaml
# LLM 提供商配置
provider: nous # 默认提供商
providers:
nous:
api_key: ${NOUS_API_KEY}
model: hermes-3-llama-3.1-405b
base_url: https://api.nousresearch.com/v1
openai:
api_key: ${OPENAI_API_KEY}
model: gpt-4o
base_url: https://api.openai.com/v1
anthropic:
api_key: ${ANTHROPIC_API_KEY}
model: claude-sonnet-4-20250514
base_url: https://api.anthropic.com
deepseek:
api_key: ${DEEPSEEK_API_KEY}
model: deepseek-chat
base_url: https://api.deepseek.com/v1
辅助模型配置
Hermes 使用轻量级模型处理特定任务以节省成本:
yaml
# 辅助模型(默认使用 Gemini Flash)
auxiliary_models:
provider: google
model: gemini-2.0-flash
# 可为不同任务指定不同模型
tasks:
vision: gemini-2.0-flash
web_extract: gemini-2.0-flash
approval: gemini-2.0-flash
compression: gemini-2.0-flash
session_search: gemini-2.0-flash
skills_hub: gemini-2.0-flash
mcp: gemini-2.0-flash
memory_flush: gemini-2.0-flash
工具配置
yaml
# 工具配置
tools:
# 启用的工具集
enabled:
- browser
- terminal
- file
- search
- code_execution
- memory
- skills
# 终端后端配置
terminal:
backend: local # local | docker | ssh | modal | daytona | singularity
timeout: 300 # 命令超时(秒)
working_dir: ~ # 工作目录
# Docker 后端配置
docker:
image: ubuntu:22.04
auto_remove: true
security:
read_only_root: true
no_new_privileges: true
resource_limits:
memory: "512m"
cpu: "1.0"
network_mode: none
allowed_commands:
- python3
- node
- npm
- git
# SSH 后端配置
ssh:
host: remote-server.com
port: 22
user: deploy
key_file: ~/.ssh/id_rsa
记忆配置
yaml
# 记忆配置
memory:
provider: builtin # builtin | mem0 | honcho | openviking | ...
# 外部记忆提供商
mem0:
api_key: ${MEM0_API_KEY}
user_id: default-user
语音配置
yaml
# 语音配置
voice:
stt:
provider: faster-whisper # faster-whisper | groq | openai
language: zh
model: base
tts:
provider: edge-tts # edge-tts | elevenlabs | openai | neutts
voice: zh-CN-XiaoxiaoNeural
speed: 1.0
上下文压缩配置
yaml
# 上下文压缩
context:
compression:
enabled: true
threshold: 0.5 # 触发压缩的阈值(50%)
protect_first_n: 3 # 保护前 N 轮对话
protect_last_n: 4 # 保护后 N 轮对话
安全配置
yaml
# 安全配置
security:
# DM 配对
dm_pairing:
enabled: true
code_length: 8 # 配对码长度
ttl: 3600 # 配对码有效期(秒)
rate_limit: 5 # 每分钟尝试次数限制
max_failures: 5 # 最大失败次数
# 智能审批
approvals:
mode: smart # manual | smart | off
auto_approve_tools:
- search
- session_search
- memory
# SSRF 防护
ssrf_protection:
block_private_networks: true
block_cloud_metadata: true
allowed_domains: []
# 网站黑名单
website_blocklist:
enabled: true
domains: []
MCP 配置
yaml
# MCP 服务器配置
mcp:
servers:
filesystem:
transport: stdio
command: npx
args: ["-y", "@anthropic/mcp-server-filesystem", "/data"]
网关配置
yaml
# 消息网关配置
gateway:
sessions:
reset_policy:
time: "04:00"
idle_timeout: 1440
persistence: true
progress_notifications: true
环境变量
敏感信息应存储在 .env 文件中:
bash
# ~/.hermes/.env
NOUS_API_KEY=nous_xxxxx
OPENAI_API_KEY=sk-xxxxx
ANTHROPIC_API_KEY=sk-ant-xxxxx
DEEPSEEK_API_KEY=sk-xxxxx
GROQ_API_KEY=gsk_xxxxx
ELEVENLABS_API_KEY=sk_xxxxx
安全提示:切勿将 .env 文件提交到版本控制。确保 .env 已添加到 .gitignore 中。
配置文件(Profiles)
Hermes 支持多个配置文件,实现完全隔离的实例:
- 每个 Profile 拥有独立的配置、会话、技能和主目录
- 使用
--profile <name>参数指定 Profile - 默认 Profile 为
default
bash
# 使用特定 Profile 启动
hermes --profile work
hermes --profile personal
# 为网关指定 Profile
hermes gateway start --profile production