结论先行
Open WebUI(一个漂亮的 LLM 聊天界面)+ Hermes Agent(Nous Research 的 AI 代理)= 双倍快乐。
装好花了 3 分钟,桥接花了 2 小时踩坑,但跑通的那一刻值得。结果就是:你可以在 Open WebUI 的美观界面里,直接调用 Hermes Agent 的全部能力——搜索、写代码、读网页、调技能,甚至发公众号。
为什么装它
事情的起因很朴素:我误以为 github.com/open-webui/open-webui 是一个 Hermes Skill,想装进来用。装到一半发现不对劲——这分明是一个独立的 LLM Web 聊天应用,46K Star,社区活跃度极高。
既然装都装了,那就用上。不仅要装,还要让它跟 Hermes 打通。
安装过程(踩坑实录)
环境: Windows 11 家庭版 / git-bash / conda 管理 Python
第一步:Python 版本踩坑
我本机 Python 3.10,Open WebUI 需要 ≥3.11。直接创建 conda 环境:
conda create -n open-webui python=3.12 -y
第二步:pip 安装
pip install open-webui
300+ 依赖包,包括 torch、transformers、sentence-transformers,下载了足足 10 分钟。版本号 0.10.2(最新版)。
第三步:启动→HuggingFace 墙
启动后卡在 all-MiniLM-L6-v2 模型下载——HuggingFace 直连超时。设个镜像解决:
set HF_ENDPOINT=https://hf-mirror.com
镜像跑通后,数据库自动迁移完成,Uvicorn 启动在 localhost:8080。
难点:PyInstaller 打包的 Hermes CLI
Open WebUI 装好了,但怎么能让它调用 Hermes?最直接的想法:
hermes chat -Q -q "用户的问题"
但 hermes 是 PyInstaller 打包的独立 exe,它自己内嵌了一个 Python 解释器,跑 agent 时内部报错 No module named 'pydantic'——这是打包时漏掉的依赖。venv 里装 pydantic 没用,exe 不认。
血泪教训:不要在 PyInstaller 打包的二进制上浪费时间。直接找 Python API 入口。
破局:venv Python 直接调用
检查目录结构发现,hermes-agent 的真实安装是可编辑模式(editable install)。
用这个 Python 可以直接导入 Hermes 的模块:
from hermes_cli.main import cmd_chat
cmd_chat(args) # ✅ 完美运行
于是写了一个 bridge_chat_runner.py,接收消息,调用 cmd_chat,输出干净的回复。
核心:桥接方案
┌──────────────┐ ┌───────────────────────┐ ┌──────────────┐
│ Open WebUI │────▶│ Hermes Bridge Server │────▶│ Hermes Agent│
│ :8080 │ │ :8787 │ │ venv Python │
│ Connections │◀────│ /v1/chat/completions │◀────│ cmd_chat() │
└──────────────┘ └───────────────────────┘ └──────────────┘
Bridge Server(约 470 行 Python) 做了两件事:
- 提供自定义的
/askAPI(内部调用 Hermes) - 模拟 OpenAI API:
/v1/models+/v1/chat/completions
这样 Open WebUI 完全不需要手动粘贴 Function,直接在「设置 → 外部连接」里添加一条 OpenAI 兼容连接,URL 填 http://localhost:8787/v1 即可。
关键代码(bridge_chat_runner.py 精简版):
from hermes_cli.main import cmd_chat
argv = ["-q", query, "-Q"] # -Q = quiet 模式
args = parser.parse_args(argv)
cmd_chat(args) # ✅ 输出回复
使用方式
双服务启动:
# 终端 1:Open WebUI → localhost:8080
bash open-webui/start-open-webui.sh
# 终端 2:Bridge Server → localhost:8787
bash open-webui/start-bridge.sh
浏览器打开 Open WebUI → 设置 → 外部连接 → 添加 OpenAI API:
- URL:
http://localhost:8787/v1 - Key:任意(本地桥接不验证)
保存刷新后,模型列表里出现 hermes-agent,选中即可用 Open WebUI 界面跟 Hermes Agent 对话。
踩坑一览
| 坑 | 解法 |
|---|---|
| PyInstaller 打包遗漏 pydantic | 不走 exe,走 venv Python API |
| Open WebUI 需要 Python ≥3.11 | conda 指定 3.12 |
| HuggingFace 直连不通 | HF_ENDPOINT=https://hf-mirror.com |
| OWUI Functions 界面中文叫「函数」 | 路径:管理员面板 → 函数 |
| SSE 流式响应 | Bridge 用 /v1/chat/completions 模拟 |
说点背景
这次用到的主要开源项目:
- Open WebUI(v0.10.2)— 社区 46K Star,兼容 Ollama / OpenAI / 自定义 API
- Hermes Agent(v0.18.2)— Nous Research 出品,带技能系统和 agent 循环
- FastAPI + Uvicorn — 桥接服务器的技术栈
从更大的维度看,中国 AI 在全栈工程化上正在快速追赶。根据斯坦福 HAI 2026 报告,中美模型能力差距已收窄至 2.7%,中国在 AI 论文和专利授权量上已位列全球第一(2025 年专利授权量 9.5 万项),工业机器人装机量是美国的 9 倍。虽然在 AI 投资上仍有 23:1 的差距,但这一代工具链的成熟正在大幅降低落地门槛。
如果觉得有帮助,点个「赞」和「在看」支持一下 👇