Hermes Agent 配置文件精讲:模型、记忆、网关的每一个参数

第 18 篇装好了 Hermes,第 19 篇理解了它的核心理念。这一篇对标第 6 篇(OpenClaw 配置精讲),把 config.yml 的每一个参数拆开来看。从模型 Provider 的选择到记忆存储后端的取舍,从网关的多平台配置到生产级 config.yml 模板——配置写对了,Hermes 才开始真正"认识你"。


config.yml 全景结构

Hermes 的配置文件是 YAML 格式,默认路径 ~/.hermes/config.yml。整体分为五大块:

config.yml
├── agent          # Agent 自身配置(身份、人格、行为)
├── model          # 模型 Provider 和参数
├── memory         # 三层记忆存储配置
├── gateway        # 多平台接入(CLI / HTTP / IM)
├── skills         # Skill 自动生成和加载策略
├── logging        # 日志和调试
└── advanced       # 高级选项(自进化策略、并发控制)

可以用 hermes config validate 检查配置合法性,hermes config path 查看当前使用的配置文件路径。


一、agent 块:定义 Hermes 的"人格"

agent:
  # ──────────── 身份信息 ────────────
  name: "Hermes"                   # Agent 的名字(会在对话中自称)
  user_name: "${USER_NAME}"        # 你的名字(Hermes 会用这个名字称呼你)

  # ──────────── 语言和时区 ────────────
  language: "zh-CN"                # 主要交互语言
  timezone: "Asia/Shanghai"        # 时区(影响时间相关的回复)
  code_identifiers: "english"      # 代码标识符语言(english | native)

  # ──────────── 角色定义 ────────────
  role: "senior-fullstack"         # 预设角色:senior-fullstack | backend | frontend | devops | data
                                    # 也可以自定义(见下方 custom_role)
  custom_role: ""                  # 当 role 不满足需求时,自定义角色描述
  # custom_role: "我是一名量化交易员,主要用 Python + Pandas + Backtrader。
  #               关注代码性能和数值精度。代码风格偏好函数式。"

  # ──────────── 行为偏好 ────────────
  style:
    verbosity: "concise"           # concise(精简) | normal(正常) | detailed(详细)
    code_comments: "minimal"       # minimal | moderate | verbose
    error_language: "zh-CN"        # 错误信息语言
    confirm_before_action: true    # 执行高风险操作前是否确认

  # ──────────── 能力边界 ────────────
  capabilities:
    max_code_lines: 200            # 单次回复最大代码行数(超过会分段)
    max_context_messages: 50       # 保留最近 N 条消息
    enable_code_execution: false   # 是否允许执行代码(安全考虑,默认关闭)
    enable_file_write: true        # 是否允许写文件

参数详解

name / user_name:这两个参数决定了 Hermes 在对话中的自称和对你的称呼。如果 user_name 用环境变量 ${USER_NAME},记得在 shell 配置中 export。

role vs custom_rolerole 是预设模板,会加载一套针对该角色的默认行为。预设角色之间的差异:

senior-fullstack  → 前后端都懂,默认确认 API 契约和数据库变更
backend           → 专注后端,默认生成 FastAPI + SQLAlchemy 风格
frontend          → 专注前端,默认生成 React + TypeScript 风格
devops            → 专注运维,默认生成 Dockerfile + k8s + CI/CD 配置
data              → 专注数据,默认生成 PySpark + Pandas + SQL

如果预设不满足需求,用 custom_role 补充或覆盖。custom_role 不为空时,优先使用 custom_role

style.verbosity:不要去理解成"字数多少"——它控制的是推理展开的程度:

concise  → 直接给结论,不展开推理过程
normal   → 关键步骤给简要推理
detailed → 完整推理链 + 选项对比 + 推荐理由

日常工作用 concise,做架构决策时临时切换到 detailed(对话中也可以说"这次详细一点")。

capabilities.max_code_lines:不是硬截断——Hermes 会在接近 200 行时把代码拆成多段,每段之间有上下文衔接。


二、model 块:选择推理引擎

model:
  # ──────────── Provider 配置 ────────────
  provider: "anthropic"            # anthropic | openai | deepseek | ollama | openrouter
  name: "claude-sonnet-4-6"        # 模型名(取决于 provider)

  # ──────────── API 配置 ────────────
  api_key: "${ANTHROPIC_API_KEY}"  # API Key(必须用环境变量!)
  base_url: ""                     # 自定义 API 地址(代理或私有部署)
  timeout: 120                     # 请求超时(秒)

  # ──────────── 推理参数 ────────────
  temperature: 0.3                 # 0.0-2.0,越高越随机
  max_tokens: 8192                 # 单次回复最大 Token
  top_p: 0.95                      # nucleus sampling(和 temperature 二选一微调)

  # ──────────── 降级策略 ────────────
  fallback:
    enabled: true                  # 主模型不可用时自动降级
    providers:                     # 降级顺序(按列表顺序尝试)
      - provider: "openai"
        name: "gpt-5-mini"
        api_key: "${OPENAI_API_KEY}"
      - provider: "deepseek"
        name: "deepseek-v3"
        api_key: "${DEEPSEEK_API_KEY}"

  # ──────────── 成本控制 ────────────
  budget:
    daily_limit: 50                # 日消费上限(美元),超出后拒绝调用
    warn_threshold: 40             # 消费达到 80% 时告警

支持的 Provider 和环境变量映射表

Provider       | 环境变量            | 默认 base_url                        | 推荐场景
───────────────┼────────────────────┼──────────────────────────────────────┼──────────
anthropic      | ANTHROPIC_API_KEY   | https://api.anthropic.com             | 日常主力
openai         | OPENAI_API_KEY      | https://api.openai.com                | 备选/对比
deepseek       | DEEPSEEK_API_KEY    | https://api.deepseek.com              | 省钱/草稿
ollama         | (无需)              | http://localhost:11434                | 离线/隐私
openrouter     | OPENROUTER_API_KEY  | https://openrouter.ai/api/v1          | 多模型网关
groq           | GROQ_API_KEY        | https://api.groq.com/openai/v1        | 极速推理

OpenRouter 的特殊价值:通过它接入 50+ 模型,只需一个 API Key。适合做模型对比实验。但 OpenRouter 比直连多一层延迟(+200-500ms),生产环境不建议。

模型选择指南

任务类型                 推荐模型                  cost/task (估算)
───────────────────────────────────────────────────────────
日常编码                  claude-sonnet-4-6        $0.15
架构设计 / 安全审计       claude-opus-4-7          $0.80
简单任务 / 草稿           deepseek-v3              $0.02
批量处理 / 夜间任务       gpt-5-mini               $0.05
敏感数据 / 离线           ollama:llama-4           (免费,消耗本地 GPU)

base_url 的两种用法

用法一:API 代理(国内用户)

model:
  provider: "anthropic"
  name: "claude-sonnet-4-6"
  api_key: "${ANTHROPIC_API_KEY}"
  base_url: "https://your-proxy.com/v1"   # 走代理

用法二:私有部署模型

model:
  provider: "openai"            # 兼容 OpenAI API 格式即可
  name: "your-fine-tuned-model"
  api_key: "${PRIVATE_API_KEY}"
  base_url: "https://your-private-endpoint.com/v1"

降级策略的行为

1. 主模型 anthropic/claude-sonnet-4-6 调用失败(超时/限流/不可用)
2. 尝试 openai/gpt-5-mini
3. 如果还失败,尝试 deepseek/deepseek-v3
4. 所有降级选项都失败 → 返回错误:"所有模型 Provider 不可用,请稍后重试"
5. 降级期间有日志记录,下次启动时会在日志中提醒你"上次出现了降级"

三、memory 块:记忆系统的存储后端

这是 Hermes 配置中最需要仔细权衡的部分——不同的后端直接影响记忆的持久性、检索速度和部署复杂度。

memory:
  # ──────────── 三层记忆后端 ────────────
  session:                         # 会话记忆(当前对话)
    backend: "memory"              # memory(进程内) | redis
    max_messages: 50               # 保留最近 N 条
    ttl: 3600                      # 过期时间(秒),0 = 不过期

  persistent:                      # 持久记忆(跨会话)
    backend: "sqlite"              # sqlite | redis | postgres
    sqlite:                        # backend=sqlite 时的配置
      path: "~/.hermes/data/memory.db"
      fts_enabled: true            # 全文检索(FTS5)
      wal_mode: true               # WAL 模式(支持并发读写)
    redis:                         # backend=redis 时的配置
      host: "localhost"
      port: 6379
      db: 0
      password: "${REDIS_PASSWORD}"
      prefix: "hermes:mem:"
    postgres:                      # backend=postgres 时的配置
      url: "postgresql://user:pass@localhost:5432/hermes"
      pool_size: 10

  skill:                           # 技能记忆(自动生成的规则)
    backend: "sqlite"              # 同样支持 sqlite | redis | postgres
    auto_generate: true            # 是否自动从纠正中生成 Skill
    min_corrections: 3             # 同一模式纠正 N 次后才自动生成 Skill
    review_before_apply: true      # 新生成的 Skill 是否需要人工审核

  # ──────────── 向量检索(语义记忆) ────────────
  embeddings:
    enabled: true                  # 是否启用语义检索
    provider: "openai"             # openai | huggingface | ollama | local
    model: "text-embedding-3-small"
    api_key: "${OPENAI_API_KEY}"
    # huggingface 配置:
    # provider: "huggingface"
    # model: "BAAI/bge-small-zh-v1.5"   # 中文优化的小模型
    # 本地模型:
    # provider: "ollama"
    # model: "nomic-embed-text"

  # ──────────── 记忆维护 ────────────
  maintenance:
    dedup_interval: 86400          # 去重间隔(秒),86400 = 每天
    cleanup_interval: 604800       # 过期记忆清理间隔,604800 = 每周
    max_memories_per_type: 500     # 每种类型上限,超过后淘汰最旧的
    reinforcement_threshold: 5     # 被引用 N 次后标记为"强化记忆"

三种记忆后端的取舍

              SQLite                Redis                 Postgres
──────────────┼─────────────────────┼─────────────────────┼──────────────────────
持久性         ★★★★★(文件)        ★★★☆☆(内存+AOF)    ★★★★★(最可靠)
检索速度       ★★★☆☆(本地文件IO)  ★★★★★(内存操作)    ★★★★☆(索引优化)
全文检索       ✅ FTS5               ❌ 需要 RediSearch    ✅ pg_trgm + GIN
向量检索       ❌ 需要外挂           ❌ 需要 Redis Stack   ✅ pgvector
部署复杂度     ★☆☆☆☆(零配置)      ★★★☆☆(Docker 拉镜像)★★★★☆(需要管理)
适用场景       单机 / 个人使用       中小团队 / 高并发     生产级 / 大团队
并发能力       WAL 模式支持读并发     原生高并发            连接池 + 高并发

选择建议

个人开发者      → SQLite(零运维,够用到天荒地老)
2-5 人团队      → Redis(跨实例共享,检索快)
5+ 人团队       → Postgres(最可靠,pgvector 做语义检索)
混合方案        → session: memory + persistent: sqlite + skill: redis

Skill 自动生成配置

min_corrections 是最关键的参数:

min_corrections: 1   → 过度敏感,一次纠正就创建 Skill,产生大量噪音
min_corrections: 3   → 推荐值,同一模式纠正 3 次 = 确实是你的稳定偏好
min_corrections: 10  → 太保守,Agent 要用很久才能适应你的风格

review_before_apply: true 意味着每次自动生成的 Skill 会让你过目后才生效。建议初始几周保持 true,等信任建立后再改为 false

Embeddings 模型选型

模型                              维度    中文效果   成本          适用场景
──────────────────────────────────────────────────────────────────────
openai text-embedding-3-small     1536    ⭐⭐⭐      $0.02/1M    通用/英文为主
openai text-embedding-3-large     3072    ⭐⭐⭐⭐    $0.13/1M    需要高精度
BAAI/bge-small-zh-v1.5            512     ⭐⭐⭐⭐⭐  免费(本地)    中文为主
BAAI/bge-large-zh-v1.5            1024    ⭐⭐⭐⭐⭐  免费(本地)    中文高精度
nomic-embed-text (ollama)         768     ⭐⭐⭐     免费(本地)    离线/隐私

中文用户推荐 BAAI/bge-small-zh-v1.5——够小(~100MB)、中文效果好、本地运行不要钱。


四、gateway 块:Hermes 的"感官系统"

对标 OpenClaw 的 Gateway + Channel,Hermes 也支持多平台接入。而且比 OpenClaw 更多——内置支持 20+ 平台:

gateway:
  # ──────────── CLI(终端对话) ────────────
  cli:
    enabled: true                  # 默认开启
    history_file: "~/.hermes/history"
    prompt_style: "arrow"          # arrow(→) | number | minimal

  # ──────────── HTTP API ────────────
  http:
    enabled: false
    host: "127.0.0.1"
    port: 8080
    auth:
      type: "api_key"             # none | api_key | oauth2
      key: "${HERMES_API_KEY}"
    cors:
      allowed_origins: ["http://localhost:3000"]
    rate_limit:
      requests_per_minute: 60
      burst: 10

  # ──────────── Telegram ────────────
  telegram:
    enabled: false
    bot_token: "${TELEGRAM_BOT_TOKEN}"
    allowed_users: []              # 留空 = 所有人可交互;填入 user_id = 白名单
    group_policy: "mention"        # mention(被 @ 才回复) | always(所有消息都回复)

  # ──────────── 企业微信 ────────────
  wecom:
    enabled: false
    corp_id: "${WECOM_CORP_ID}"
    agent_id: "${WECOM_AGENT_ID}"
    secret: "${WECOM_SECRET}"
    token: "${WECOM_TOKEN}"
    encoding_aes_key: "${WECOM_ENCODING_AES_KEY}"

  # ──────────── 飞书 ────────────
  feishu:
    enabled: false
    app_id: "${FEISHU_APP_ID}"
    app_secret: "${FEISHU_APP_SECRET}"
    verification_token: "${FEISHU_VERIFICATION_TOKEN}"
    encrypt_key: "${FEISHU_ENCRYPT_KEY}"

  # ──────────── 钉钉 ────────────
  dingtalk:
    enabled: false
    app_key: "${DINGTALK_APP_KEY}"
    app_secret: "${DINGTALK_APP_SECRET}"
    robot_code: "${DINGTALK_ROBOT_CODE}"

  # ──────────── Slack ────────────
  slack:
    enabled: false
    bot_token: "${SLACK_BOT_TOKEN}"
    signing_secret: "${SLACK_SIGNING_SECRET}"
    app_token: "${SLACK_APP_TOKEN}"     # Socket Mode 需要

  # ──────────── Discord ────────────
  discord:
    enabled: false
    bot_token: "${DISCORD_BOT_TOKEN}"
    application_id: "${DISCORD_APP_ID}"

  # ──────────── 微信公众号 ────────────
  wechat_mp:
    enabled: false
    app_id: "${WECHAT_MP_APP_ID}"
    app_secret: "${WECHAT_MP_APP_SECRET}"
    token: "${WECHAT_MP_TOKEN}"
    encoding_aes_key: "${WECHAT_MP_AES_KEY}"

多平台同时在线

# 一个 Hermes 实例,同时在 CLI、Telegram、飞书上可用
gateway:
  cli:
    enabled: true
  telegram:
    enabled: true
    bot_token: "${TELEGRAM_BOT_TOKEN}"
  feishu:
    enabled: true
    app_id: "${FEISHU_APP_ID}"
    app_secret: "${FEISHU_APP_SECRET}"

关键特性:所有平台共享同一份记忆。你在 Telegram 上纠正过 Hermes 某个代码风格,回到 CLI 它已经记住了——因为记忆存储是统一的,平台只是接入层。

HTTP API 的使用模式

模式一:作为 CI/CD 中的代码审查步骤
  → GitHub Actions webhook → POST /api/v1/chat → 返回审查意见 → 评论到 PR

模式二:定时任务触发
  → crontab curl POST → Hermes 查询某数据 → 返回摘要 → 保存到文件

模式三:工具集成
  → Alfred/Raycast → 快捷调 Hermes → 返回结果

IM 平台的安全配置

telegram:
  allowed_users: ["123456789", "987654321"]   # 只响应这两个用户
  group_policy: "mention"                      # 群聊中只响应 @Hermes

feishu:
  allowed_departments: ["tech"]                # 只响应技术部员工
  ignore_self_messages: true                   # 忽略机器人自己发的消息

为什么不建议所有平台全开:每多一个平台,就多一个安全攻击面。按需开启,不需要的平台保持 enabled: false


五、skills 块:技能加载和自动生成

skills:
  # ──────────── 技能加载路径 ────────────
  paths:
    builtin: "~/.hermes/skills/builtin"      # 内置 Skill
    custom: "~/.hermes/skills/custom"         # 自定义 Skill
    auto_generated: "~/.hermes/skills/auto"   # 自动生成的 Skill(从纠正中学到的)

  # ──────────── 自动生成策略 ────────────
  autogen:
    enabled: true
    min_confidence: 0.85            # 置信度阈值(低于此值不自动生成)
    max_per_day: 5                  # 每天最多自动生成 N 个 Skill
    max_total: 50                   # 自动生成的 Skill 总量上限

  # ──────────── Skill 执行安全 ────────────
  security:
    sandbox: true                   # Skill 是否在沙箱中执行
    allow_network: false            # 是否允许 Skill 访问网络
    allow_file_write: true          # 是否允许 Skill 写文件(false 会限制 auto_generated)
    max_execution_time: 30          # 单个 Skill 最长执行时间(秒)

Skill 的三个来源

builtin/         → Hermes 自带的 Skill(版本升级时会更新)
custom/          → 你手写的 Skill(类似 ClawHub,但格式更简单)
auto/            → Hermes 自动生成的 Skill(从你的纠正中学到的)

优先级:custom > auto > builtin
(同名 Skill,custom 覆盖 auto 覆盖 builtin)

六、logging 和 advanced 块

logging:
  level: "info"                    # debug | info | warning | error
  format: "json"                   # json | text
  output: "both"                   # stdout | file | both
  file:
    path: "~/.hermes/logs/hermes.log"
    max_size: "100MB"
    max_backups: 7
    max_age: 30                    # 保留天数

  # 敏感信息过滤
  redact:
    enabled: true                  # 日志中自动脱敏 API Key / Token
    patterns:                      # 额外的脱敏模式
      - "password"
      - "secret"
      - "token"

advanced:
  # ──────────── 自进化控制 ────────────
  evolution:
    enabled: true                  # 总开关——关闭后 Hermes 不再从对话中学习
    analysis_mode: "batch"         # batch(后台批量) | realtime(实时) | manual(手动触发)
    batch_interval: 300            # batch 模式下的分析间隔(秒),300 = 5 分钟
    max_observations_per_cycle: 20 # 每个分析周期最多处理 N 条观察

  # ──────────── 并发和性能 ────────────
  concurrency:
    memory_extraction_workers: 2   # 记忆提取的并行度
    skill_generation_workers: 1    # Skill 生成的并行度(建议 1,避免冲突)

  # ──────────── 隐私控制 ────────────
  privacy:
    local_only: false              # true = 所有记忆分析在本地完成(隐私优先)
    allowed_memory_types:          # 只记录这些类型的记忆
      - "user"
      - "project"
      - "feedback"
    # - "conversation"             # 注释掉 = 不记录具体对话内容
    sensitive_patterns:            # 匹配这些正则的内容不会被记录
      - "\\b\\d{16,19}\\b"         # 信用卡号
      - "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b"  # 邮箱

evolution.analysis_mode 的选择

batch     → 推荐。后台每 5 分钟分析一次,不影响对话响应速度
realtime  → 对话结束后立即分析。记忆更新快但增加了每次对话的延迟
manual    → 需要手动运行 hermes memory analyze。适合调试或想完全控制时

privacy.local_only 的含义

local_only: false  → 记忆提取可能调用云端 API(用 model 中配置的 Provider)
local_only: true   → 记忆提取只使用本地 embeddings 模型 + 本地推理
                     (需要配置 ollama embeddings 和 ollama provider)
                     (隐私最大化,但提取质量取决于本地模型能力)

配置验证和调试

验证配置

# 检查配置语法和参数合法性
hermes config validate

# 输出示例:
# ✅ config.yml syntax: valid YAML
# ✅ agent block: all required fields present
# ✅ model block: provider 'anthropic' recognized
# ✅ memory block: sqlite path accessible
# ⚠️ gateway block: telegram enabled but TELEGRAM_BOT_TOKEN not set
# ⚠️ skills block: custom path '~/.hermes/skills/custom' does not exist

# 查看当前完整配置(已脱敏)
hermes config show

# 查看特定块
hermes config show --block model
hermes config show --block memory

常见配置错误

错误一:环境变量未设置

# config.yml:
#   api_key: "${ANTHROPIC_API_KEY}"

$ hermes config validate
❌ model.api_key: environment variable ANTHROPIC_API_KEY is not set

# 解决:
export ANTHROPIC_API_KEY=sk-ant-your-key
# 或写入 ~/.bashrc / ~/.zshrc

错误二:不支持的 Provider

$ hermes config validate
❌ model.provider: 'google' is not a supported provider
   Supported: anthropic, openai, deepseek, ollama, openrouter, groq

错误三:memory backend 配置不完整

# 选了 redis 但没有配连接信息:
memory:
  persistent:
    backend: "redis"
    # redis:  ← 没填

$ hermes config validate
❌ memory.persistent.redis: required when backend='redis'

生产级 config.yml 模板

这是一个可以直接用的完整配置模板——把 ${...} 环境变量填好就能跑:

# ~/.hermes/config.yml
# Hermes Agent 生产级配置

agent:
  name: "Hermes"
  user_name: "${USER_NAME}"
  language: "zh-CN"
  timezone: "Asia/Shanghai"
  code_identifiers: "english"
  role: "senior-fullstack"
  style:
    verbosity: "concise"
    code_comments: "minimal"
    error_language: "zh-CN"
    confirm_before_action: true
  capabilities:
    max_code_lines: 200
    max_context_messages: 50
    enable_code_execution: false
    enable_file_write: true

model:
  provider: "anthropic"
  name: "claude-sonnet-4-6"
  api_key: "${ANTHROPIC_API_KEY}"
  timeout: 120
  temperature: 0.3
  max_tokens: 8192
  fallback:
    enabled: true
    providers:
      - provider: "deepseek"
        name: "deepseek-v3"
        api_key: "${DEEPSEEK_API_KEY}"
  budget:
    daily_limit: 50
    warn_threshold: 40

memory:
  session:
    backend: "memory"
    max_messages: 50
    ttl: 3600
  persistent:
    backend: "sqlite"
    sqlite:
      path: "~/.hermes/data/memory.db"
      fts_enabled: true
      wal_mode: true
  skill:
    backend: "sqlite"
    auto_generate: true
    min_corrections: 3
    review_before_apply: true
  embeddings:
    enabled: true
    provider: "huggingface"
    model: "BAAI/bge-small-zh-v1.5"
  maintenance:
    dedup_interval: 86400
    cleanup_interval: 604800
    max_memories_per_type: 500
    reinforcement_threshold: 5

gateway:
  cli:
    enabled: true
    history_file: "~/.hermes/history"
  http:
    enabled: false              # 需要时改为 true
    host: "127.0.0.1"
    port: 8080
    auth:
      type: "api_key"
      key: "${HERMES_API_KEY}"

skills:
  paths:
    builtin: "~/.hermes/skills/builtin"
    custom: "~/.hermes/skills/custom"
    auto_generated: "~/.hermes/skills/auto"
  autogen:
    enabled: true
    min_confidence: 0.85
    max_per_day: 5
    max_total: 50
  security:
    sandbox: true
    allow_network: false
    allow_file_write: true
    max_execution_time: 30

logging:
  level: "info"
  format: "json"
  output: "both"
  file:
    path: "~/.hermes/logs/hermes.log"
    max_size: "100MB"
    max_backups: 7
    max_age: 30
  redact:
    enabled: true

advanced:
  evolution:
    enabled: true
    analysis_mode: "batch"
    batch_interval: 300
    max_observations_per_cycle: 20
  concurrency:
    memory_extraction_workers: 2
    skill_generation_workers: 1
  privacy:
    local_only: false
    allowed_memory_types:
      - "user"
      - "project"
      - "feedback"

和 OpenClaw config.yml 的对比

                     OpenClaw                          Hermes Agent
──────────────────────────────────────────────────────────────────
核心设计             围绕"多 Agent 协作"                围绕"单 Agent 进化"
模型配置             per-Agent 独立配置                 全局统一模型 + 降级链
记忆系统             三级共享(Redis/SQLite/Walrus)     三级私有(会话/持久/技能)
Gateway              3 种 Channel                       20+ 平台接入
Skill                ClawHub 市场下载                   自动生成 + 内置 + 自定义
独有配置             Worktree 隔离 / Scheduler 策略      自进化开关 / 隐私控制 / 记忆提取
配置复杂度           高(多 Agent 各不相同)             中(单 Agent 但记忆参数多)
验证命令             openclaw config check              hermes config validate

OpenClaw 的配置重心在"如何让多个 Agent 高效协作";Hermes 的配置重心在"如何让一个 Agent 持续深入地了解你"。


这篇文章的要点

1. config.yml 七块结构:agent / model / memory / gateway / skills / logging / advanced

2. model 块核心:
   → 7 种 Provider 的环境变量映射表
   → 降级链 + 成本预算
   → base_url 用于代理或私有部署

3. memory 块核心:
   → 三层记忆(session / persistent / skill)
   → 三种后端(sqlite / redis / postgres)的取舍决策树
   → Skill 自动生成参数(min_corrections=3 是关键)
   → Embeddings 模型选型(中文推荐 bge-small-zh-v1.5)

4. gateway 块核心:
   → 20+ 平台,多平台共享同一份记忆
   → IM 平台安全配置(白名单 + 群聊策略)

5. 一套可直接复制的生产级 config.yml 模板

延伸阅读

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐