5一、运行ollama也可以手动执行:



以上指令都是在【jupyterlab】,然后打开【终端】输入回车执行!
打开webUI可以切换模型:全部模型均可使用 e2b速度最快 31B最聪明
/model gemma4:e2b # 切换到 e2b 版本(7.2GB,轻量) /model gemma4:26b # 切换到 26B 版本(19GB,当前默认) /model gemma4:31b # 切换到 31B 版本(19GB)
以上指令都是在【jupyterlab】,然后打开【终端】输入回车执行!
进入hermes里面切换模型: 切换 Ollama 本地模型示例
/model gemma4:e2b # 切换到 e2b 版本(7.2GB,轻量) /model gemma4:26b # 切换到 26B 版本(19GB,当前默认) /model gemma4:31b # 切换到 31B 版本(19GB)
源码地址:
Hermes Web UI 是 Hermes Agent 的 Web 管理界面,提供 AI 聊天、会话管理、平台渠道配置、定时任务、 Usage 统计等功能。
/root/hermes-web-ui/start_app.sh
启动成功后显示:
前端 Web UI: http://localhost:7860
后端服务: http://localhost:8648
Hermes Agent: http://localhost:8642
grep token /root/logs/hermes-backend.log
# 停止所有服务
lsof -ti :7860 | xargs -r kill -9
lsof -ti :8648 | xargs -r kill -9
lsof -ti :8642 | xargs -r kill -9
位置:左侧菜单 Chat
功能:
会话管理:
位置:左侧菜单 Channels
支持的平台:
| 平台 | 说明 |
|---|---|
| Telegram | 配置 Bot Token、提及控制、反应 |
| Discord | 配置 Bot Token、自动创建线程、反应 |
| Slack | 配置 Bot Token、消息处理 |
| 启用/禁用、提及控制 | |
| Matrix | Access Token、 homeserver 配置 |
| Feishu (飞书) | App ID / Secret |
| 二维码登录 | |
| WeCom | 企业微信 Bot ID / Secret |
配置步骤:
位置:左侧菜单 Jobs
功能:
常用 Cron 预设:
| 预设 | 表达式 | 说明 |
|---|---|---|
| 每小时 | 0 * * * * | 每小时整点 |
| 每天早上9点 | 0 9 * * * | 每天 9:00 |
| 每周一 | 0 9 * * 1 | 每周一 9:00 |
位置:左侧菜单 Models
功能:
当前配置:
gemma4:e4b(来自本地 Ollama)位置:左侧菜单 Usage
显示内容:
位置:左侧菜单 Skills
功能:
位置:左侧菜单 Memory
功能:
位置:左侧菜单 Gateways
功能:
位置:左侧菜单 Settings
子菜单:
位置:左侧菜单 Logs
功能:
位置:左侧菜单 Terminal
功能:
# 确保 Ollama 服务运行
ollama serve
# 查看已安装模型
ollama list
编辑 ~/.hermes/config.yaml:
model:
default: gemma4:e4b
provider: custom
base_url: http://localhost:11434/v1
custom_providers:
- name: Ollama
base_url: http://localhost:11434/v1
model: gemma4:e4b
原因:Hermes Gateway 未启动
解决:
# 重新运行启动脚本
/root/hermes-web-ui/start_app.sh
# 检查服务状态
lsof -i :7860 -i :8648 -i :8642 | grep LISTEN
grep token /root/logs/hermes-backend.log
编辑 start_app.sh 第 3 行:
PORT=你想要的端口
启动脚本会自动检测并终止占用端口的进程(jupyterlab 除外)。
如需手动处理:
# 查看端口占用
lsof -i :7860
# 强制终止
kill -9 <PID>
# 前端日志
tail -f /root/logs/hermes-frontend.log
# 后端日志
tail -f /root/logs/hermes-backend.log
# Gateway 日志
tail -f /root/logs/hermes-agent.log
# 删除 PID 文件
rm -f ~/.hermes/gateway.pid
# 重新启动
/root/hermes-web-ui/start_app.sh
用户浏览器
↓
前端 Web UI (端口 7860)
↓ [API 代理]
后端服务 BFF (端口 8648)
↓ [Upstream]
Hermes Gateway (端口 8642)
↓
Ollama / 其他 LLM 提供商
/tmp/node-v22.14.0-linux-x64# 使用 Node 22 安装依赖
export PATH=/tmp/node-v22.14.0-linux-x64/bin:$PATH
npm install
| 功能 | 说明 |
|---|---|
| 端口清理 | 启动前自动检测并终止占用端口的进程 |
| Jupyter 保护 | 不终止 jupyterlab 相关进程 |
| 延迟启动 | 端口释放后 sleep 2 秒再启动 |
| 多服务启动 | 依次启动前端、后端、Hermes Gateway |
| 端口 | 服务 | 说明 |
|---|---|---|
| 7860 | 前端 Web UI | 可通过脚本变量 PORT 修改 |
| 8648 | 后端服务 (BFF) | 固定端口 |
| 8642 | Hermes Gateway | 固定端口 |
/root/logs/ 目录
hermes-frontend.log - 前端日志hermes-backend.log - 后端日志hermes-agent.log - Gateway 日志hermes start(已废弃)hermes gateway runERROR gateway.run: PID file race lost to another gateway instance~/.hermes/gateway.pidmodel:
default: gemma4:e4b # 修改默认模型
provider: custom
base_url: http://localhost:11434/v1
custom_providers:
- name: Local (localhost:11434)
base_url: http://localhost:11434/v1
model: gemma4
grep token /root/logs/hermes-backend.log/api、/v1、/health、/upload、/webhook 代理到后端 8648| 问题 | 原因 | 解决方案 |
|---|---|---|
| 端口被占用 | 上次进程未正常关闭 | 脚本自动清理 |
| Hermes 未连接 | hermes-agent 未安装 | pip install hermes-agent |
| 认证失败 | 令牌过期或错误 | 查看日志获取新令牌 |
| Gateway PID 冲突 | 上次异常退出 | 删除 ~/.hermes/gateway.pid |
# 通过前端代理检查
curl http://localhost:7860/health
hermes-web-ui/
├── packages/
│ ├── client/ # Vue 3 前端
│ │ └── src/
│ │ ├── views/ # 页面视图
│ │ ├── components/ # 组件
│ │ ├── stores/ # Pinia 状态管理
│ │ └── api/ # API 调用
│ └── server/ # Koa 后端
│ └── src/
│ ├── routes/ # 路由定义
│ ├── controllers/ # 控制器
│ └── services/ # 服务层
├── start_app.sh # 启动脚本
└── vite.config.ts # Vite 配置
| 层 | 技术 |
|---|---|
| 前端 | Vue 3 + TypeScript + Vite + Naive UI + Pinia |
| 后端 | Koa 2 + node-pty (Web Terminal) |
| Agent | Hermes Gateway (Telegram, Discord, Slack 等) |
认证作者

支持自启动