Skip to content
懒人吧
Go back

Hermes 配置迁移与平台差异化:微信、终端、Discord 各自的上下文策略

编辑页面

背景

Hermes 可以同时接入多个平台:飞书、Discord、终端、网页等。每个平台的消息格式、长度限制、用户期望都不一样:

如果所有平台用同一套 context_length 和 max_tokens,肯定出问题——微信端太长刷屏,终端端太短不够用。

Hermes 的配置体系

Hermes 的配置分两层:

全局配置(base)

~/.hermes/config.yaml 中的根级配置,所有平台共享:

model:
  provider: openai
  model: 9B
  context_length: 64000
  max_tokens: 15000

compression:
  threshold: 0.85

平台级配置(覆盖)

在全局配置下,可以为每个 channel 单独覆盖参数:

channels:
  terminal:
    model:
      max_tokens: 32000
      context_length: 64000

  feishu:
    model:
      max_tokens: 8000
      context_length: 32000

平台级配置采用合并覆盖规则:只覆盖指定的字段,未指定的继承全局配置。

配置覆盖规则

全局配置:
  context_length: 64000
  max_tokens: 15000

微信配置:
  max_tokens: 4000
  context_length: 32000
  (未指定 model.provider, 继承全局)

生效结果(微信):
  context_length: 32000   ← 覆盖
  max_tokens: 4000        ← 覆盖
  model.provider: openai  ← 继承全局

不需要重复写所有字段,只写需要不同的。

平台差异化推荐配置

终端

channels:
  terminal:
    model:
      max_tokens: 32000
      context_length: 64000
    compression:
      threshold: 0.9

终端适合长对话,消息长度没限制,可以拉满。

微信(飞书)

channels:
  feishu:
    model:
      max_tokens: 4000
      context_length: 32000
    compression:
      threshold: 0.8
    response:
      format: plain  # 不要 markdown 格式(微信展示差)

微信消息有长度限制,输出太长会被截断或刷屏。压缩阈值设低一点,让历史保持精简。

Discord

channels:
  discord:
    model:
      max_tokens: 8000
      context_length: 48000
    response:
      split: true  # 长消息自动分段

Discord 单条消息 2000 字符,超过需要分段。split 选项可以自动切分后分条发送。

配置迁移注意事项

1. 先复制再修改

修改配置前先备份原文件:

cp ~/.hermes/config.yaml ~/.hermes/config.yaml.bak

2. 改完测对应平台

每个平台的配置改动只影响该平台,但最好逐个测试:

hermes chat -c terminal  # 用终端配置测试

3. 注意上下文隔离

不同平台的对话上下文是独立的。微信聊的内容不会出现在终端的历史中。这意味着 context_length 设成不同值也不会有问题。

4. 迁移时检查过期配置

迁移配置是检查的好时机:删掉不再需要的旧配置、注释掉实验性参数、统一命名风格。

迁移检查清单

[ ] 全局配置是否保留了最通用的值?
[ ] 每个平台的 max_tokens 是否合理?
[ ] context_length 是否匹配后端模型上限?
[ ] 压缩阈值是否需要调整?
[ ] 响应格式(markdown/plain/split)是否适配平台?
[ ] 备份了旧配置?
[ ] 逐平台测试过?

总结

Hermes 的全局 + 平台覆盖配置体系设计得不错,核心原则是:

  1. 全局通用,平台差异化
  2. 只覆盖需要不同的字段
  3. 上下文独立,互不干扰
  4. 改完逐平台测试

编辑页面
Share this post on:

Previous Post
Hermes 接入 DuckDuckGo 搜索:内置 provider 零成本配置
Next Post
不改模型只改 Prompt:用中文强指令驯服本地 Agent