51 lines
2.4 KiB
Markdown
51 lines
2.4 KiB
Markdown
# Open WebUI 集成
|
||
|
||
中文 · [English](openwebui-integration.md)
|
||
|
||
## 职责划分
|
||
|
||
Open WebUI 是产品外壳,负责账户注册、登录会话、RBAC、管理员审批、对话历史和渲染。
|
||
K1412 不会把这些职责再次分叉到第二套鉴权系统或聊天数据库中。
|
||
|
||
K1412 Runtime 负责唯一面向用户的 Agent Loop:上下文选择、持久记忆、计划、工具 Schema、
|
||
调度、并行读取、子 Agent、证据门禁、实验和运行事件持久化。Workspace Gateway 负责绑定
|
||
用户身份的执行策略和 Docker 生命周期。
|
||
|
||
这种划分缩小了成本最高的实验面。更换调度器或上下文策略只需要修改 Runtime,不需要同时
|
||
修改账户系统或整个前端。
|
||
|
||
## 工具与进度展示
|
||
|
||
Open WebUI 原生能够理解工具调用和推理详情块;对于在其自身后端内部执行的 Loop,它还提供
|
||
更丰富的实时状态机制。K1412 Runtime 是一个外部 OpenAI 兼容 Provider,因此不能直接修改
|
||
Open WebUI 内部的 Socket 状态对象。
|
||
|
||
因此,K1412 会输出与 Open WebUI 兼容的“已完成工具详情块”。每个工具只展示一次,其中包括:
|
||
|
||
- 本地化的动作名称;
|
||
- 清理后的参数(不展示文件内容和 Patch 正文);
|
||
- 成功或失败状态;
|
||
- 简洁的纯文本结果,而不是内部 JSON 包装。
|
||
|
||
K1412 不会暴露隐藏的思维链。界面展示执行进度、工具证据、完成检查和简洁的 Agent 摘要。
|
||
这些信息足以检查行为,又不会把模型私有推理当成产品 API。
|
||
|
||
早期实现会为每次工具调用分别追加一个“未完成”和一个“已完成”的 `<details>` 元素。由于
|
||
标准 Provider 流是只追加的,Open WebUI 会将它们渲染成重复卡片。Runtime 现在只输出完成
|
||
卡片,工具等待期间由正常的生成指示器表示。
|
||
|
||
## 补丁与升级成本
|
||
|
||
Open WebUI 固定为 v0.9.6 和一个精确 commit。Web 镜像在可复现构建中应用一组小型补丁。
|
||
产品专用 Svelte 组件和已鉴权的工作区路由位于 `docker/web/`。
|
||
|
||
升级 Open WebUI 需要:
|
||
|
||
1. 更新标签和 commit 固定值;
|
||
2. 使用 `git apply` 重新应用每个补丁;
|
||
3. 构建 Svelte 生产 Bundle;
|
||
4. 运行鉴权、Agent Loop、隔离和文件浏览器 E2E;
|
||
5. 检查上游许可证变化。
|
||
|
||
K1412 Agent Loop 没有嵌入 Open WebUI,因此大多数 Agent 实验不承担这部分升级成本。
|