配置项参考
Hermes 的配置文件位于 ~/.hermes/config.yaml。本页面列出所有可用配置项及其默认值和说明。
使用 hermes config edit 打开编辑器,或使用 hermes config set <键> <值> 直接设置单个配置项。
完整配置示例
yaml
memory:
memory_enabled: true
user_profile_enabled: true
memory_char_limit: 8000
user_char_limit: 2000
terminal:
backend: local
cwd: ~
timeout: 120
docker_image: "ghcr.io/nousresearch/hermes:latest"
container_cpu: 2
container_memory: "4g"
container_disk: "20g"
container_persistent: false
compression:
enabled: true
threshold: 80000
summary_model: "claude-3-haiku-20240307"
display:
busy_input_mode: interrupt
tool_preview_length: 500
bell_on_complete: false
skills:
external_dirs:
- ~/my-hermes-skills
- /opt/company-skills
agent:
personalities:
default:
name: Hermes
system_prompt: "你是一个强大的 AI 助手。"
coder:
name: Coder
system_prompt: "你是一个专业的软件工程师,擅长代码编写和调试。"
quick_commands:
morning_report:
type: exec
command: "hermes -Q '生成今天的工作计划摘要'"
approvals:
mode: smart
timeout: 30
security:
website_blocklist:
enabled: false
domains:
- "example-blocked.com"
mcp_servers:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"]
include: ["read_file", "write_file"]
exclude: []
remote_api:
url: "https://my-mcp-server.example.com/sse"
headers:
Authorization: "Bearer mytoken"
tts:
provider: edge
edge:
voice: "zh-CN-XiaoxiaoNeural"
rate: "+0%"
pitch: "+0Hz"
elevenlabs:
voice_id: "your-voice-id"
model: "eleven_multilingual_v2"
stability: 0.5
similarity_boost: 0.75
openai:
voice: "nova"
model: "tts-1"
speed: 1.0memory — 记忆系统
控制 Hermes 的长期记忆功能。
| 配置键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
memory.memory_enabled | bool | true | 是否启用长期记忆。启用后,Hermes 会自动从对话中提取并存储重要信息 |
memory.user_profile_enabled | bool | true | 是否启用用户画像。Hermes 会记录用户偏好、习惯等个人信息 |
memory.memory_char_limit | int | 8000 | 记忆内容注入到上下文的最大字符数 |
memory.user_char_limit | int | 2000 | 用户画像注入到上下文的最大字符数 |
说明
- 记忆更改在下次会话才会生效,当前会话不会立即更新。
- 使用
hermes memory命令可查看和管理已存储的记忆条目。 - 减小
memory_char_limit可以减少每次请求的 token 消耗。
terminal — 终端后端
控制 Hermes 执行 shell 命令的方式和环境。
| 配置键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
terminal.backend | string | local | 终端后端类型,见下表 |
terminal.cwd | string | ~ | 命令执行的默认工作目录 |
terminal.timeout | int | 120 | 命令执行超时时间(秒) |
terminal.docker_image | string | — | Docker 后端使用的镜像 |
terminal.container_cpu | int | 2 | 容器分配的 CPU 核心数 |
terminal.container_memory | string | "4g" | 容器分配的内存大小 |
terminal.container_disk | string | "20g" | 容器磁盘空间大小 |
terminal.container_persistent | bool | false | 容器是否持久化(重启后保留状态) |
后端类型
| 值 | 说明 |
|---|---|
local | 在本地机器上直接执行命令(默认) |
docker | 在 Docker 容器内执行,提供隔离环境 |
ssh | 通过 SSH 连接远程机器执行 |
singularity | 使用 Singularity/Apptainer 容器(适合 HPC 环境) |
modal | 使用 Modal 云平台执行 |
daytona | 使用 Daytona 开发环境 |
compression — 上下文压缩
当对话上下文过长时,自动压缩历史消息以节省 token。
| 配置键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
compression.enabled | bool | true | 是否启用自动压缩 |
compression.threshold | int | 80000 | 触发压缩的上下文字符数阈值 |
compression.summary_model | string | "claude-3-haiku-20240307" | 用于生成摘要的模型(通常使用较小、较快的模型) |
display — 显示设置
控制 CLI 界面的显示行为。
| 配置键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
display.busy_input_mode | string | interrupt | Agent 工作时输入框的行为模式,见下表 |
display.tool_preview_length | int | 500 | 工具调用结果预览的最大字符数 |
display.bell_on_complete | bool | false | 任务完成时是否发出终端铃声提示 |
busy_input_mode 值
| 值 | 说明 |
|---|---|
interrupt | 用户输入会中断当前 Agent 执行(默认) |
queue | 用户输入会排队,等待 Agent 完成后再处理 |
skills — 技能目录
配置技能文件的搜索路径。
| 配置键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
skills.external_dirs | list | [] | 额外的技能目录路径列表,Hermes 会从这些目录加载自定义技能 |
示例
yaml
skills:
external_dirs:
- ~/my-skills
- /opt/team-skillsagent — Agent 人格
配置不同的 Agent 人格(Personality),每个人格有独立的名称和系统提示词。
| 配置键 | 类型 | 说明 |
|---|---|---|
agent.personalities | map | 人格名称到配置的映射 |
agent.personalities.<名称>.name | string | 显示名称 |
agent.personalities.<名称>.system_prompt | string | 该人格的系统提示词 |
示例
yaml
agent:
personalities:
default:
name: Hermes
system_prompt: "你是 Hermes,一个强大且友善的 AI 助手。"
analyst:
name: 数据分析师
system_prompt: "你是一个专业的数据分析师,擅长数据处理和可视化。请用严谨的分析方法回答问题。"
writer:
name: 写作助手
system_prompt: "你是一个创意写作助手,擅长各种文体的写作。语言优美,富有表现力。"使用 hermes honcho 命令切换人格。
quick_commands — 快捷命令
定义可通过名称快速调用的自定义命令。
| 配置键 | 类型 | 说明 |
|---|---|---|
quick_commands.<名称>.type | string | 命令类型,目前支持 exec |
quick_commands.<名称>.command | string | 要执行的 shell 命令 |
示例
yaml
quick_commands:
daily_standup:
type: exec
command: "hermes -Q '请根据今天的日期生成一份站会报告模板'"
check_server:
type: exec
command: "hermes -Q '检查服务器状态并报告异常'"approvals — 工具调用审批
控制 Hermes 执行工具(如运行命令、写文件)时是否需要用户确认。
| 配置键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
approvals.mode | string | smart | 审批模式,见下表 |
approvals.timeout | int | 30 | 等待用户确认的超时时间(秒),超时后自动拒绝 |
mode 值
| 值 | 说明 |
|---|---|
manual | 所有工具调用都需要手动确认 |
smart | 智能判断:危险操作需要确认,安全操作自动批准(默认) |
off | 跳过所有确认(等同于 --yolo 标志) |
security — 安全设置
配置安全相关的限制。
| 配置键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
security.website_blocklist.enabled | bool | false | 是否启用网站黑名单 |
security.website_blocklist.domains | list | [] | 禁止访问的域名列表 |
示例
yaml
security:
website_blocklist:
enabled: true
domains:
- "social-media-distraction.com"
- "streaming-site.com"mcp_servers — MCP 服务器
配置 MCP(Model Context Protocol)服务器,扩展 Hermes 的工具能力。
每个 MCP 服务器可以是本地进程或远程 SSE 端点。
本地进程类型
yaml
mcp_servers:
<服务器名称>:
command: "执行命令"
args: ["参数1", "参数2"]
include: ["要包含的工具名"] # 可选,白名单
exclude: ["要排除的工具名"] # 可选,黑名单远程 SSE 类型
yaml
mcp_servers:
<服务器名称>:
url: "https://mcp-server.example.com/sse"
headers:
Authorization: "Bearer <token>"
include: []
exclude: []配置项说明
| 配置键 | 类型 | 说明 |
|---|---|---|
command | string | 本地 MCP 服务器的启动命令 |
args | list | 命令参数列表 |
url | string | 远程 MCP 服务器的 SSE URL |
headers | map | HTTP 请求头(用于认证) |
include | list | 只加载指定工具(空列表表示全部加载) |
exclude | list | 排除指定工具 |
tts — 文字转语音
配置语音输出功能(Text-to-Speech)。
| 配置键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tts.provider | string | edge | TTS 提供商,见下表 |
提供商选项
| 值 | 说明 |
|---|---|
edge | Microsoft Edge TTS(免费,无需 API 密钥) |
elevenlabs | ElevenLabs(高质量,需要 API 密钥) |
openai | OpenAI TTS(需要 API 密钥) |
edge 提供商配置
yaml
tts:
provider: edge
edge:
voice: "zh-CN-XiaoxiaoNeural" # 语音角色
rate: "+0%" # 语速调整(如 "+20%")
pitch: "+0Hz" # 音调调整常用中文语音:zh-CN-XiaoxiaoNeural(女声)、zh-CN-YunxiNeural(男声)
elevenlabs 提供商配置
yaml
tts:
provider: elevenlabs
elevenlabs:
voice_id: "your-voice-id"
model: "eleven_multilingual_v2"
stability: 0.5 # 稳定性(0.0 ~ 1.0)
similarity_boost: 0.75 # 相似度增强(0.0 ~ 1.0)openai 提供商配置
yaml
tts:
provider: openai
openai:
voice: "nova" # alloy / echo / fable / onyx / nova / shimmer
model: "tts-1" # tts-1 / tts-1-hd
speed: 1.0 # 语速(0.25 ~ 4.0)环境变量(.env)
敏感信息(API 密钥、Token)应存放在 ~/.hermes/.env 文件中,而不是 config.yaml。
bash
# AI 提供商密钥
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=...
# 消息平台 Token
TELEGRAM_BOT_TOKEN=...
TELEGRAM_ALLOWED_USERS=123456789,987654321
DISCORD_BOT_TOKEN=...
DISCORD_ALLOWED_USERS=...
SLACK_BOT_TOKEN=...
# TTS
ELEVENLABS_API_KEY=...提示:使用
hermes config edit打开配置文件,使用hermes setup通过交互式向导配置 API 密钥。