配置
Hermes Agent 的所有配置通过两个文件管理:
| 文件 | 用途 |
|---|---|
~/.hermes/config.yaml | 主配置文件(非敏感配置) |
~/.hermes/.env | 密钥与凭据(API Key 等) |
原则:凡是涉及密钥、Token、密码的配置项,一律写入 .env;其余配置写入 config.yaml。
配置管理命令
bash
# 查看所有当前配置
hermes config show
# 设置单个配置项
hermes config set key value
# 打开编辑器编辑完整配置
hermes config edit
# 迁移旧版配置格式到新版
hermes config migrate模型与提供商配置
通过交互式选择器配置默认模型:
bash
hermes model或直接在 config.yaml 中指定:
yaml
provider:
# 默认提供商
default: nous_portal # nous_portal | openrouter | openai | anthropic | google | deepseek | ollama
# 各提供商的模型选择
models:
nous_portal: hermes-3-llama-3.1-70b
openrouter: anthropic/claude-3-5-sonnet
openai: gpt-4o
anthropic: claude-3-5-sonnet-20241022
google: gemini-1.5-pro
deepseek: deepseek-chat
ollama: llama3.2
# OpenAI 兼容自定义端点
custom_openai:
base_url: https://your-endpoint.com/v1
model: your-model-name对应的 .env 密钥:
bash
NOUS_API_KEY=nsk-xxxxxxxxxxxx
OPENROUTER_API_KEY=sk-or-xxxxxxxxxxxx
OPENAI_API_KEY=sk-xxxxxxxxxxxx
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxx
GOOGLE_API_KEY=AIzaxxxxxxxxxx
DEEPSEEK_API_KEY=sk-xxxxxxxxxxxx记忆配置
控制持久记忆和用户画像功能:
yaml
memory:
# 是否启用跨会话持久记忆
memory_enabled: true
# 是否启用用户画像积累
user_profile_enabled: true
# 记忆条目上限(超出后自动压缩/淘汰旧记忆)
max_memory_entries: 500
# 用户画像最大长度(Token 数)
max_profile_tokens: 2000
# 记忆检索相关性阈值(0.0 ~ 1.0)
retrieval_threshold: 0.7
# 使用向量数据库增强检索(需安装 vector extra)
vector_store:
enabled: false
backend: chroma # chroma | qdrant
path: ~/.hermes/vectordb终端后端配置
控制 Hermes Agent 如何执行终端命令:
yaml
terminal:
# 后端类型
# local - 直接在宿主机执行(默认)
# docker - 在 Docker 容器中执行(推荐,更安全)
# ssh - 在远程服务器上执行
# singularity - HPC 集群环境
# modal - Modal 无服务器执行
# daytona - Daytona 云开发环境
backend: local
# 命令执行超时(秒)
timeout: 300
# Docker 后端配置
docker:
image: nousresearch/hermes-sandbox:latest
# 允许挂载的宿主机目录(逗号分隔)
allowed_mounts:
- ~/projects
- /tmp
# 容器内工作目录
workdir: /workspace
# 网络模式
network: bridge
# 内存限制
memory_limit: 2g
# CPU 限制
cpu_limit: "2.0"
# SSH 后端配置
ssh:
host: your-server.example.com
port: 22
user: ubuntu
key_file: ~/.ssh/id_rsa
# 或使用密码(不推荐)
# password: your_password
# Singularity 后端配置
singularity:
image: /path/to/hermes.sif
bind_paths:
- /scratch:/workspace
# Modal 后端配置
modal:
app_name: hermes-agent
cpu: 2
memory: 4096对话压缩配置
当对话上下文超过模型 Token 限制时,自动进行摘要压缩:
yaml
compression:
# 是否启用自动压缩
enabled: true
# 触发压缩的 Token 阈值(占模型上下文窗口的比例)
threshold: 0.8
# 用于生成摘要的模型(可使用更便宜的模型)
summary_model: openai/gpt-4o-mini
# 压缩时保留的最近消息数(不参与压缩)
keep_recent: 10显示配置
控制终端界面的显示行为:
yaml
display:
# 输入忙碌时的行为
# block - 阻止输入,等待响应完成
# queue - 将输入加入队列
# allow - 允许打断当前响应(默认)
busy_input_mode: allow
# 工具调用预览的最大字符数
# 超出部分折叠显示
tool_preview_length: 500
# 响应完成时是否响铃提示
bell_on_complete: false
# 是否显示 Token 用量统计
show_token_usage: true
# 代码块语法高亮主题
# 支持所有 pygments 主题
code_theme: monokai
# 是否启用流式输出(打字机效果)
streaming: true
# 时间戳格式
timestamp_format: "%H:%M:%S"技能目录配置
除默认的 ~/.hermes/skills/ 外,还可以挂载额外的技能目录:
yaml
skills:
# 额外的技能目录(绝对路径)
external_dirs:
- ~/my-team-skills
- /opt/shared-skills
- /home/user/projects/custom-skills
# 是否自动从对话中提炼技能
auto_extract: true
# 技能提炼的置信度阈值(0.0 ~ 1.0)
extraction_threshold: 0.8人格(Personality)配置
定义智能体的行为风格和专业角色:
yaml
agent:
personalities:
# 人格 ID(通过 hermes --persona <id> 激活)
- id: default
name: Hermes
description: 通用助手
system_prompt: |
你是 Hermes,一个由 Nous Research 开发的 AI 助手。
你博学多才,乐于助人,回复简洁清晰。
在中国环境中,优先使用中文回复。
- id: dev
name: 开发助手
description: 专注于软件开发的技术助手
system_prompt: |
你是一名资深软件工程师,专注于代码质量和最佳实践。
回复时优先给出可直接运行的代码示例,并附上简要说明。
对于架构问题,先了解需求再给出建议。
- id: writer
name: 写作助手
description: 专注于内容创作和文字润色
system_prompt: |
你是一名专业文字工作者,擅长各种文体的写作和润色。
回复时注重文字的准确性、流畅性和感染力。激活指定人格:
bash
hermes --persona dev
hermes --persona writer快捷命令配置
定义常用命令的快捷方式:
yaml
quick_commands:
# 格式:命令名: 完整提示词
commands:
standup: "生成今日工作日报,包括昨日完成事项、今日计划和遇到的问题"
review: "对以下代码进行 code review,关注性能、安全性和可维护性"
translate: "将以下内容翻译成英文,保持原文风格和格式"
summarize: "用三句话总结以下内容的核心要点"
commit: "根据 git diff 内容,生成符合 Conventional Commits 规范的提交信息"使用快捷命令:
bash
hermes /standup
hermes /review < mycode.py审批模式配置
控制 Hermes Agent 在执行敏感操作前是否需要用户确认:
yaml
approvals:
# 审批模式
# manual - 手动审批(默认,最安全)
# smart - 由 LLM 评估风险,低风险自动批准
# off - 关闭审批,自动批准所有操作(危险!)
mode: manual
# 手动审批超时(秒),超时后自动拒绝
timeout: 30
# smart 模式下,风险评分低于此阈值时自动批准(0.0 ~ 1.0)
auto_approve_threshold: 0.2
# 始终需要审批的操作类型(即使在 smart 或 off 模式下)
always_require:
- recursive_delete
- system_modification
- network_expose安全配置
yaml
security:
# 网站访问黑名单(支持域名和 IP 段)
website_blocklist:
- "*.torrent"
- "*.onion"
- "192.168.0.0/16" # 阻止访问内网
- "10.0.0.0/8"
# 是否启用 SSRF 防护
ssrf_protection: true
# 是否启用 Tirith 预执行安全扫描
tirith_scanning: true
# 凭据自动脱敏(在日志和输出中隐藏 API Key)
credential_redaction: trueMCP 服务器配置
将外部 MCP 服务器的工具集成到 Hermes Agent:
yaml
mcp:
servers:
# 本地 MCP 服务器(stdio 协议)
- name: filesystem
type: stdio
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-filesystem"
- "/home/user/documents"
# 远程 MCP 服务器(SSE 协议)
- name: custom-tools
type: sse
url: https://your-mcp-server.example.com/sse
headers:
Authorization: "Bearer ${MCP_SERVER_TOKEN}"
# Brave Search MCP
- name: brave-search
type: stdio
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-brave-search"
env:
BRAVE_API_KEY: "${BRAVE_API_KEY}"TTS(文字转语音)配置
yaml
tts:
# TTS 引擎
# edge - Microsoft Edge TTS(免费,无需 API Key)
# elevenlabs - ElevenLabs(高质量,需要 API Key)
# openai - OpenAI TTS(需要 API Key)
engine: edge
# Edge TTS 配置
edge:
voice: zh-CN-XiaoxiaoNeural # 中文女声
rate: "+0%" # 语速(-50% ~ +200%)
pitch: "+0Hz" # 音调
# ElevenLabs 配置
elevenlabs:
voice_id: your_voice_id
model: eleven_multilingual_v2
stability: 0.5
similarity_boost: 0.75
# OpenAI TTS 配置
openai:
model: tts-1-hd
voice: nova # alloy | echo | fable | onyx | nova | shimmer
speed: 1.0
# 是否在响应完成后自动朗读
auto_speak: false对应的 .env 密钥:
bash
ELEVENLABS_API_KEY=your_key_here完整配置示例
以下是一份面向中文用户的推荐配置:
yaml
provider:
default: openrouter
models:
openrouter: anthropic/claude-3-5-sonnet
memory:
memory_enabled: true
user_profile_enabled: true
max_memory_entries: 300
terminal:
backend: docker
timeout: 180
docker:
image: nousresearch/hermes-sandbox:latest
allowed_mounts:
- ~/projects
compression:
enabled: true
threshold: 0.8
summary_model: openai/gpt-4o-mini
display:
busy_input_mode: allow
tool_preview_length: 300
bell_on_complete: true
show_token_usage: true
streaming: true
approvals:
mode: smart
timeout: 30
auto_approve_threshold: 0.2
security:
ssrf_protection: true
credential_redaction: true
tts:
engine: edge
edge:
voice: zh-CN-XiaoxiaoNeural
auto_speak: false