2.5 KiB
Open WebUI integration
中文 · English
Responsibility split
Open WebUI is the product shell. It owns account registration, login sessions, RBAC, administrator approval, conversation history, and rendering. K1412 does not fork those responsibilities into a second authentication or chat database.
K1412 Runtime owns the only user-facing Agent loop: context selection, durable memory, planning, tool schemas, scheduling, parallel reads, child Agents, evidence gating, experiments, and run-event persistence. Workspace Gateway owns identity-bound execution policy and Docker lifecycle.
This split makes the expensive experimental surface small. A new scheduler or context policy changes Runtime, not the account system or entire frontend.
Tool and progress rendering
Open WebUI natively understands tool-call and reasoning detail blocks. It also has a richer live status mechanism for loops that execute inside its own backend. K1412 Runtime is an external OpenAI-compatible provider, so it cannot mutate Open WebUI's internal socket status objects directly.
K1412 therefore emits Open WebUI-compatible completed tool detail blocks. Each tool appears once with:
- a localized action name;
- sanitized arguments (file contents and patches are omitted);
- success or failure state;
- concise plain output instead of the internal JSON envelope.
K1412 deliberately does not expose hidden chain-of-thought. The UI shows execution progress, tool evidence, completion checks, and concise Agent summaries. This is enough to inspect behavior without treating private model reasoning as a product API.
The earlier implementation appended one unfinished and one completed
<details> element for every tool call. Since standard provider streaming is
append-only, Open WebUI rendered them as duplicate cards. Runtime now emits
only the completed card; the normal generation indicator covers the active
wait.
Patches and upgrade cost
Open WebUI is pinned to v0.9.6 and an exact commit. The web image applies a
small patch set during a reproducible build. Product-specific Svelte
components and the authenticated workspace router live under docker/web/.
Upgrading Open WebUI requires:
- updating the tag and commit pin;
- replaying every patch with
git apply; - building the Svelte production bundle;
- running authentication, Agent-loop, isolation, and file-browser E2E tests;
- reviewing upstream license changes.
The K1412 Agent loop is not embedded into Open WebUI, so most Agent experiments do not incur this upgrade cost.