Hermes WebUI 部署与运维标准手册 (v3.5)

本手册整合了多次部署复盘经验,旨在为 WSL2 环境下的 Hermes WebUI 提供一套从零开始的、物理级的清空与重建标准。

一、 部署环境参数基准

  • 宿主机操作系统:Windows 11 (经由 WSL2 虚拟化运行 Ubuntu)
  • 网络路由拓扑:Mirrored (镜像模式)
    • 作用:强制 WSL 内核端口与 Windows 宿主机的 localhost 进行物理级映射,消除 NAT 转换障碍。
  • 架构组成
    • 底层驱动:Hermes Agent (Nous Research 官方主线)
    • 应用层组件:nesquena/hermes-webui (纯 Python 后端驱动)

二、 第一阶段:物理级全盘清算

在进行任何重建之前,必须彻底抹除旧环境的残留,以防止模型连接快照”劫持”新配置。

# 1. 强制释放 8787 端口并终止所有相关进程
fuser -k 8787/tcp
pkill -f hermes
 
# 2. 物理级删除代码目录及私有数据库缓存
rm -rf ~/hermes-webui
rm -rf ~/.hermes/webui
rm ~/.hermes/state.db
 
# 3. 清理旧的启动别名并刷新系统配置
sed -i '/alias run-web/d' ~/.bashrc
source ~/.bashrc

三、 第二阶段:标准化环境重建

废弃官方 bootstrap.py 引导脚本,采用手动构建虚拟环境的方式,以确保依赖链的完整性。

# 1. 获取纯净前端源码
git clone https://github.com/nesquena/hermes-webui.git ~/hermes-webui
cd ~/hermes-webui
 
# 2. 构建隔离运行舱 (venv)
python3 -m venv venv
source venv/bin/activate
 
# 3. 强化安装核心依赖库
pip install --upgrade pip
pip install openai anthropic loguru python-dotenv requests websockets pyyaml fire fal_client firecrawl
 
# 4. 退出虚拟环境
deactivate

四、 第三阶段:权限熔断与启动固化

通过环境变量注入法,解决 .env 文件读取不到的问题,并实现一键启动。

# 1. 写入凭证并实施权限熔断(禁止非属主用户访问)
echo "HERMES_WEBUI_PASSWORD=[WebUI密码] > .env
chmod 600 .env
 
# 2. 注入启动口令 (Alias) 到系统档案
# 注意:此步将密码直接锁死在启动流程中
echo 'alias run-web="export HERMES_WEBUI_PASSWORD=[WebUI密码] && cd ~/hermes-webui && source venv/bin/activate && python3 server.py"' >> ~/.bashrc
 
# 3. 立即激活设置
source ~/.bashrc

五、 故障树分析与异常处置

报错现象逻辑归因终极对策
No password set 警告程序未能在当前目录下识别到 .env 文件。确保使用整合版中的 alias 启动,通过 export 强制定义密码。
ModuleNotFoundErrorWebUI 虚拟环境缺少 Agent 运行所需的库(如 openai)。进入 WebUI 目录激活 venv,重新执行本文档第三阶段的 pip install。
Invalid editable requirement指向 Agent 的物理路径错误(通常漏掉了路径中的隐藏点 .)。检查路径,确保指向 /home/用户名/.hermes/hermes-agent。
无法访问 localhost:8787端口进程未驻留或 WSL2 镜像模式映射断链。1. 核查终端是否有启动回显;2. 在 Windows PowerShell 执行 wsl —shutdown 后重启。
timeout 15 或长时间转圈外部 API 响应过慢或 WSL 网络阻塞。点击停止按钮,引导 Agent 切换到 “Web Search” 模式手动提取信息。

六、 进阶运维与架构策略

1. 核心资产灾备判定

当触发硬件更换或系统重装时,需转移的核心资产仅限以下范围:

  • /home/用户名/.hermes/ (全目录):包含全部对话快照 (state.db)、技能树、用户画像及 API 密钥。
  • /home/用户名/hermes-webui/.env:包含 WebUI 的验证口令。
  • :除上述文件外,其余代码文件均建议通过 Git 重新克隆以保持纯净。

2. 技能触发的”唯一性”原则

为确保 Agent 运行精准,避免日常口语干扰:

  • 避坑:不要使用”分析”、“查一下”等模糊词。
  • 策略:采用 [动作动词] + [特定对象] 结构(例如:“进行财务分析”)。

3. 权限管理

更新代码或迁移目录后,若提示权限不足,请执行:

chown -R $(whoami):$(whoami) ~/.hermes