Open WebUI
Open WebUI 是目前最流行的自托管 AI 聊天界面之一。借助 Hermes Agent 内置的 API Server,你可以把 Open WebUI 作为 Hermes 的网页前端,获得更完善的会话管理、用户账号和现代聊天界面。
架构
Open WebUI 连接 Hermes Agent API Server 的方式与连接 OpenAI 完全相同。你的 agent 会用完整工具集处理请求,包括终端、文件操作、网页搜索、记忆和技能,然后返回最终响应。
快速设置
1. 启用 API Server
在 ~/.hermes/.env 中加入:
API_SERVER_ENABLED=true
API_SERVER_KEY=your-secret-key
2. 启动 Hermes Agent 网关
hermes gateway
3. 启动 Open WebUI
docker run -d -p 3000:8080 \
-e OPENAI_API_BASE_URL=http://host.docker.internal:8642/v1 \
-e OPENAI_API_KEY=your-secret-key \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
4. 打开界面
访问 http://localhost:3000。创建管理员账号后,你会在模型下拉框中看到 agent(默认 profile 显示为 hermes-agent)。
API 类型:Chat Completions 与 Responses
| Mode | Format | When to use |
|---|---|---|
| Chat Completions (default) | /v1/chat/completions | 推荐,开箱即用 |
| Responses (experimental) | /v1/responses | 适合需要 previous_response_id 的场景 |
使用 Chat Completions(推荐)
这是默认模式,不需要额外配置。Open WebUI 发送标准 OpenAI 格式请求,Hermes Agent 按同样格式返回。
使用 Responses API
- 打开 Admin Settings → Connections → OpenAI → Manage
- 编辑 hermes-agent 连接
- 将 API Type 从 “Chat Completions” 改成 “Responses (Experimental)”
- 保存
工作流程
- Open WebUI 向
POST /v1/chat/completions发送请求 - Hermes Agent 创建一个带完整工具集的
AIAgent实例 - agent 处理请求,期间可能调用工具
- 工具执行期间,进度消息会以内联形式流式显示在 UI 中
- 最终响应流式返回给 Open WebUI
配置参考
Hermes Agent(API Server)
| Variable | Default | Description |
|---|---|---|
API_SERVER_ENABLED | false | 启用 API Server |
API_SERVER_PORT | 8642 | HTTP 服务端口 |
API_SERVER_HOST | 127.0.0.1 | 绑定地址 |
API_SERVER_KEY | (required) | Bearer Token,需与 OPENAI_API_KEY 一致 |
Open WebUI
| Variable | Description |
|---|---|
OPENAI_API_BASE_URL | Hermes Agent API 地址(需包含 /v1) |
OPENAI_API_KEY | 必须为非空;应与 API_SERVER_KEY 保持一致 |
故障排除
- 模型下拉框为空:检查 URL 是否包含
/v1,并确认curl http://localhost:8642/v1/models有返回 - 连接测试通过但没有模型:通常还是因为少了
/v1 - 响应较慢:复杂请求下,Hermes 可能需要执行多个工具调用,这属于正常现象
- “Invalid API key”:确认 Open WebUI 中的
OPENAI_API_KEY与 Hermes 中的API_SERVER_KEY一致