Hermes Agent: 配置文件
最后更新:2026-08-31
配置文件是 Hermes Agent 的大脑控制中心——调对了参数,Agent 就像一个懂你的老朋友;调错了,就像一个刚入职的新人。
💡 提示:Hermes 使用 YAML 作为主要配置格式,支持环境变量覆盖和多环境切换。所有配置都有合理默认值,零配置即可启动。
📋 前置知识:第2课 Hermes Agent 安装
1. 你将学到
| 编号 | 内容 |
|---|---|
| ❶ | config.yaml 完整结构 |
| ❷ | 核心配置项详解 |
| ❸ | 环境变量覆盖机制 |
| ❹ | 多环境配置管理 |
| ❺ | 配置验证与调试 |
2. 故事
(1) 痛点:每次换环境都要改配置
Bob 开发时用本地模型,部署时切换云端 API,测试时又要用另一个 Key。每次手动改 config 文件,经常改错或忘记改回来。
(2) 解法:环境配置分离
Alice 用环境变量和多配置文件解决了这个问题:
BASH
# 开发环境
hermes chat --env dev
# 生产环境
hermes chat --env prod
# 测试环境
hermes chat --env test
Bob 再也不用手动改配置了。
3. config.yaml 完整结构
YAML
# ~/.hermes/config.yaml
# ===== Agent 基础配置 =====
agent:
name: "MyHermes"
version: "1.0.0"
description: "My personal AI assistant"
# 人格设定
personality:
tone: "friendly" # friendly / professional / creative
verbosity: "balanced" # concise / balanced / detailed
language: "zh-CN" # 默认语言
# 记忆配置
memory:
enabled: true
working_memory_limit: 50 # 工作记忆条目数
long_term_auto_save: true # 自动保存长期记忆
user_model_update: true # 自动更新用户模型
honcho_endpoint: null # Honcho 服务地址(null=本地)
# ===== 模型配置 =====
model:
default: "gpt-4o"
fallback: "gpt-4o-mini"
temperature: 0.7
max_tokens: 4096
timeout: 60
# ===== 技能配置 =====
skills:
auto_learn: true # 自动学习模式
learn_threshold: 3 # 观察N次重复模式后自动创建技能
custom_skills_dir: null # 自定义技能目录(null=默认)
# ===== 工具配置 =====
tools:
enabled_categories:
- filesystem
- web
- code_execution
- vision
- voice
- data
disabled_tools: [] # 禁用的特定工具
sandbox: true # 代码执行沙箱
max_execution_time: 30 # 最大执行时间(秒)
# ===== 平台配置 =====
platforms:
telegram:
enabled: false
token: null
discord:
enabled: false
token: null
slack:
enabled: false
token: null
web:
enabled: true
port: 8080
terminal:
enabled: true
# ===== 安全与隐私 =====
security:
redact_api_keys: true # 日志中脱敏 API Key
sandbox_code: true # 代码执行沙箱
allowed_paths: # 文件系统允许访问的路径
- "~/projects"
- "~/documents"
denied_paths:
- "~/.ssh"
- "~/.gnupg"
# ===== 日志 =====
logging:
level: "INFO" # DEBUG / INFO / WARNING / ERROR
file: "~/.hermes/logs/hermes.log"
max_size_mb: 100
rotation: 7 # 保留7天日志
# ===== 高级配置 =====
advanced:
cron_enabled: true # 定时任务
checkpoint_enabled: true # 检查点
delegate_enabled: true # 委托
mcp_enabled: true # MCP 协议
research_mode: false # 研究模式(批量轨迹)
4. 核心配置项详解
(1) Agent 人格设定
YAML
personality:
tone: "friendly"
verbosity: "balanced"
language: "zh-CN"
custom_prompt: |
你是我的技术助手,擅长:
1. React + TypeScript 开发
2. 代码审查与优化
3. 技术文档撰写
回答时使用简洁的中文。
(2) 记忆配置
YAML
memory:
working_memory_limit: 50 # 50条当前上下文
long_term_auto_save: true # 自动保存重要信息
user_model_update: true # Honcho 自动画像
recall_on_start: true # 启动时自动回忆
memory_decay: false # 记忆衰减(实验性)
(3) 工具安全边界
YAML
tools:
sandbox: true # 代码在沙箱中执行
max_execution_time: 30 # 超时自动终止
# 文件系统访问控制
filesystem:
allow_write: true
allow_delete: false # 禁止删除文件
max_file_size: 10MB # 单文件最大10MB
# 网络访问控制
web:
allow_requests: true
blocked_domains:
- "malware-site.com"
rate_limit: 10 # 每分钟最多10次请求
5. 环境变量覆盖
任何配置项都可以通过环境变量覆盖,规则:HERMES_ 前缀 + 下划线分隔路径。
BASH
# 覆盖默认模型
export HERMES_MODEL_DEFAULT="gpt-4o-mini"
# 覆盖 API Key
export OPENAI_API_KEY="sk-..."
# 覆盖记忆设置
export HERMES_MEMORY_ENABLED="false"
# 覆盖日志级别
export HERMES_LOGGING_LEVEL="DEBUG"
# 使用 .env 文件(推荐)
cat > ~/.hermes/.env << EOF
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
HERMES_MODEL_DEFAULT=gpt-4o
HERMES_LOGGING_LEVEL=INFO
EOF
环境变量优先级
命令行参数 > 环境变量 > .env 文件 > config.yaml > 默认值
6. 多环境管理
BASH
# 目录结构
~/.hermes/
├── config.yaml # 默认配置
├── config.dev.yaml # 开发环境
├── config.prod.yaml # 生产环境
├── config.test.yaml # 测试环境
└── .env # 环境变量
YAML
# config.dev.yaml - 开发环境
model:
default: "llama3.2" # 用本地模型省钱
temperature: 0.9 # 更有创造力
logging:
level: "DEBUG" # 详细日志
tools:
sandbox: false # 开发时不用沙箱
YAML
# config.prod.yaml - 生产环境
model:
default: "gpt-4o" # 云端模型保质量
temperature: 0.5 # 更稳定
logging:
level: "WARNING" # 只记警告
security:
sandbox_code: true # 必须沙箱
redact_api_keys: true # 必须脱敏
7. 配置验证
BASH
# 验证配置文件
hermes config validate
# 查看当前生效配置
hermes config show
# 查看某个配置项
hermes config get model.default
# 设置配置项
hermes config set model.temperature 0.5
# 导出配置
hermes config export > backup.yaml
试一试:自定义你的 Agent
BASH
# 创建个性化配置
hermes config set personality.tone "professional"
hermes config set personality.language "en"
hermes config set memory.working_memory_limit 100
# 查看生效的配置
hermes config show | head -20
# 对话测试
hermes chat
> 你好!你的语气设定已切换为专业模式。
❓ 常见问题
Q 配置文件在哪里?
A 默认在
~/.hermes/config.yaml。可通过 HERMES_CONFIG_PATH 环境变量修改。Q 改了配置要重启吗?
A 大部分配置热加载,无需重启。模型切换和平台配置需要重启才能生效。
Q 配置写错了会怎样?
A Hermes 启动时验证配置,格式错误会报错并提示修正行号,不会静默使用错误配置。
Q 如何备份配置?
A
hermes config export > backup.yaml,或直接复制 ~/.hermes/config.yaml。Q 多台机器共享配置?
A 将配置文件放入 Git 仓库,在各机器上 clone 并设置
HERMES_CONFIG_PATH 指向仓库中的配置。注意不要提交 API Key!Q 如何恢复默认配置?
A
hermes config reset,或删除 config.yaml 后重新 hermes init。📖 小节
- config.yaml 是主配置文件,包含 Agent、模型、记忆、工具、平台等全部设置
- 环境变量优先级:命令行 > 环境变量 > .env > config.yaml > 默认值
- 多环境管理:
config.dev.yaml/config.prod.yaml切换开发/生产配置 hermes config validate验证配置,hermes config show查看生效值- 安全配置:沙箱、路径限制、API Key 脱敏
📝 作业
- 基础题(难度⭐):修改 config.yaml,设置你的 Agent 名字和语言偏好,验证配置生效。
- 进阶题(难度⭐⭐):创建 dev 和 prod 两套配置,实现一键切换开发和生产环境。
- 挑战题(难度⭐⭐⭐):设计一套基于环境变量的 12-factor 配置方案,确保敏感信息零硬编码。