官方 Hermes WebUI 的 Setup 页面仅修改 WebUI 自身的配置,不会自动同步到 hermes-agent 的主 config.yaml,这是产品设计的特性,并不是问题bug。
官方 hermes-webui 的设计思路:
✅ WebUI 自己有独立配置
❌ 不会自动写入 agent 的 /home/hermes/.hermes/config.yaml
❌ 不会自动同步模型、provider、base_url 到后端
WebUI ↔ Agent 配置完全同步的方法
方法 1:强制 WebUI 使用 Agent 的同一个配置目录(真正共享 config.yaml)
现在的三容器配置是:
yaml
hermes-agent:
volumes:
- hermes-home:/home/hermes/.hermes # Agent 配置
hermes-webui:
volumes:
- hermes-home:/home/hermeswebui/.hermes # WebUI 自己的配置
两个不同路径 → 两套配置 → 永远不同步!
✅ 修复:让 WebUI 直接读取 / 写入 Agent 的配置目录
修改 docker-compose.three-container.yml 里的 hermes-webui 挂载:
WebUI原来的独立挂载
yaml
- hermes-home:/home/hermeswebui/.hermes
改成正确的(强制共用 Agent 配置)
yaml
- hermes-home:/home/hermes/.hermes
同时给 WebUI 加环境变量,告诉它配置路径:
yaml
environment:
- HERMES_HOME=/home/hermes/.hermes # 关键!
完整修复后的 hermes-webui 配置
yaml
hermes-webui:
image: ghcr.io/nesquena/hermes-webui:latest
container_name: hermes-webui
depends_on:
- hermes-agent
ports:
- "127.0.0.1:8787:8787"
volumes:
# 👇 这一行是修复核心:和 agent 使用同一个配置目录
- hermes-home:/home/hermes/.hermes
- hermes-agent-src:/home/hermeswebui/.hermes/hermes-agent
- ${HERMES_WORKSPACE:-~/workspace}:/workspace
environment:
- HERMES_WEBUI_HOST=0.0.0.0
- HERMES_WEBUI_PORT=8787
# 👇 关键环境变量:让 WebUI 知道配置在哪里
- HERMES_HOME=/home/hermes/.hermes
- WANTED_UID=${UID:-1000}
- WANTED_GID=${GID:-1000}
restart: unless-stopped
networks:
- hermes-net
然后重启(必须执行)
sudo docker compose -f docker-compose.three-container.yml down
sudo docker compose -f docker-compose.three-container.yml up -d
✅ 现在效果
WebUI Setup 页面修改模型
直接写入 agent 的 config.yaml
hermes-agent 立即读取
三容器完全同步
永久生效、不丢失
方法 2(最简单,不想改 compose 就用这个)
如果不想改 yaml,直接手动保持配置一致即可:
WebUI Setup 填写模型
把同样内容复制到
config.yaml重启容器
这是目前 90% 用户的做法。
最终总结
WebUI 默认不写 agent 配置,是官方设计
真正同步 = 让 WebUI 和 Agent 挂载同一个配置目录
改完 compose → 重启 → 永久解决