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

2.4 KiB
Raw Permalink Blame History

Open WebUI 集成

中文 · English

职责划分

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 实验不承担这部分升级成本。