Files
zk-data-agent/docs/openwebui-integration.zh-CN.md
2026-07-26 21:32:12 +08:00

51 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 实验不承担这部分升级成本。