Skip to content

配置项参考

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.0

memory — 记忆系统

控制 Hermes 的长期记忆功能。

配置键类型默认值说明
memory.memory_enabledbooltrue是否启用长期记忆。启用后,Hermes 会自动从对话中提取并存储重要信息
memory.user_profile_enabledbooltrue是否启用用户画像。Hermes 会记录用户偏好、习惯等个人信息
memory.memory_char_limitint8000记忆内容注入到上下文的最大字符数
memory.user_char_limitint2000用户画像注入到上下文的最大字符数

说明

  • 记忆更改在下次会话才会生效,当前会话不会立即更新。
  • 使用 hermes memory 命令可查看和管理已存储的记忆条目。
  • 减小 memory_char_limit 可以减少每次请求的 token 消耗。

terminal — 终端后端

控制 Hermes 执行 shell 命令的方式和环境。

配置键类型默认值说明
terminal.backendstringlocal终端后端类型,见下表
terminal.cwdstring~命令执行的默认工作目录
terminal.timeoutint120命令执行超时时间(秒)
terminal.docker_imagestringDocker 后端使用的镜像
terminal.container_cpuint2容器分配的 CPU 核心数
terminal.container_memorystring"4g"容器分配的内存大小
terminal.container_diskstring"20g"容器磁盘空间大小
terminal.container_persistentboolfalse容器是否持久化(重启后保留状态)

后端类型

说明
local在本地机器上直接执行命令(默认)
docker在 Docker 容器内执行,提供隔离环境
ssh通过 SSH 连接远程机器执行
singularity使用 Singularity/Apptainer 容器(适合 HPC 环境)
modal使用 Modal 云平台执行
daytona使用 Daytona 开发环境

compression — 上下文压缩

当对话上下文过长时,自动压缩历史消息以节省 token。

配置键类型默认值说明
compression.enabledbooltrue是否启用自动压缩
compression.thresholdint80000触发压缩的上下文字符数阈值
compression.summary_modelstring"claude-3-haiku-20240307"用于生成摘要的模型(通常使用较小、较快的模型)

display — 显示设置

控制 CLI 界面的显示行为。

配置键类型默认值说明
display.busy_input_modestringinterruptAgent 工作时输入框的行为模式,见下表
display.tool_preview_lengthint500工具调用结果预览的最大字符数
display.bell_on_completeboolfalse任务完成时是否发出终端铃声提示

busy_input_mode 值

说明
interrupt用户输入会中断当前 Agent 执行(默认)
queue用户输入会排队,等待 Agent 完成后再处理

skills — 技能目录

配置技能文件的搜索路径。

配置键类型默认值说明
skills.external_dirslist[]额外的技能目录路径列表,Hermes 会从这些目录加载自定义技能

示例

yaml
skills:
  external_dirs:
    - ~/my-skills
    - /opt/team-skills

agent — Agent 人格

配置不同的 Agent 人格(Personality),每个人格有独立的名称和系统提示词。

配置键类型说明
agent.personalitiesmap人格名称到配置的映射
agent.personalities.<名称>.namestring显示名称
agent.personalities.<名称>.system_promptstring该人格的系统提示词

示例

yaml
agent:
  personalities:
    default:
      name: Hermes
      system_prompt: "你是 Hermes,一个强大且友善的 AI 助手。"
    analyst:
      name: 数据分析师
      system_prompt: "你是一个专业的数据分析师,擅长数据处理和可视化。请用严谨的分析方法回答问题。"
    writer:
      name: 写作助手
      system_prompt: "你是一个创意写作助手,擅长各种文体的写作。语言优美,富有表现力。"

使用 hermes honcho 命令切换人格。


quick_commands — 快捷命令

定义可通过名称快速调用的自定义命令。

配置键类型说明
quick_commands.<名称>.typestring命令类型,目前支持 exec
quick_commands.<名称>.commandstring要执行的 shell 命令

示例

yaml
quick_commands:
  daily_standup:
    type: exec
    command: "hermes -Q '请根据今天的日期生成一份站会报告模板'"
  check_server:
    type: exec
    command: "hermes -Q '检查服务器状态并报告异常'"

approvals — 工具调用审批

控制 Hermes 执行工具(如运行命令、写文件)时是否需要用户确认。

配置键类型默认值说明
approvals.modestringsmart审批模式,见下表
approvals.timeoutint30等待用户确认的超时时间(秒),超时后自动拒绝

mode 值

说明
manual所有工具调用都需要手动确认
smart智能判断:危险操作需要确认,安全操作自动批准(默认)
off跳过所有确认(等同于 --yolo 标志)

security — 安全设置

配置安全相关的限制。

配置键类型默认值说明
security.website_blocklist.enabledboolfalse是否启用网站黑名单
security.website_blocklist.domainslist[]禁止访问的域名列表

示例

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: []

配置项说明

配置键类型说明
commandstring本地 MCP 服务器的启动命令
argslist命令参数列表
urlstring远程 MCP 服务器的 SSE URL
headersmapHTTP 请求头(用于认证)
includelist只加载指定工具(空列表表示全部加载)
excludelist排除指定工具

tts — 文字转语音

配置语音输出功能(Text-to-Speech)。

配置键类型默认值说明
tts.providerstringedgeTTS 提供商,见下表

提供商选项

说明
edgeMicrosoft Edge TTS(免费,无需 API 密钥)
elevenlabsElevenLabs(高质量,需要 API 密钥)
openaiOpenAI 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 密钥。

基于 MIT 许可发布 | 由 Nous Research 开发