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

📖 小节


📝 作业

  1. 基础题(难度⭐):修改 config.yaml,设置你的 Agent 名字和语言偏好,验证配置生效。
  2. 进阶题(难度⭐⭐):创建 dev 和 prod 两套配置,实现一键切换开发和生产环境。
  3. 挑战题(难度⭐⭐⭐):设计一套基于环境变量的 12-factor 配置方案,确保敏感信息零硬编码。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏