我把 Hermes Agent 塞进了 Open WebUI

结论先行

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) 做了两件事:

  1. 提供自定义的 /ask API(内部调用 Hermes)
  2. 模拟 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.11conda 指定 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 的差距,但这一代工具链的成熟正在大幅降低落地门槛。


如果觉得有帮助,点个「赞」和「在看」支持一下 👇

← 返回文章列表