Admin WebUI 是一个 React + Vite SPA,和 Worker 部署在同一个 Cloudflare 项目下。
访问入口:
/ui
WebUI 只负责管理和调试入口,不绕过 agent runtime。浏览器里发送的消息会被转换成 platform:webui 的 InternalMessage,再进入和 Telegram、QQ、WeCom、Weixin OC 相同的执行链路。
WebUI
-> /admin/messages
-> webui adapter
-> InternalMessage
-> Queue
-> Agent Durable Object
-> Agent runtime
-> Tool registry
这样做的结果是:
- WebUI 可以单独配置
platform:webui权限策略; - tool call、skill 选择、run 记录和 audit log 复用同一套实现;
- WebUI conversation history 只记录本地管理端会话,不调用外部平台 API。
当前 WebUI 包含:
- chat 和 conversation history;
- Telegram、QQ Official、WeCom、Weixin OC integration 管理;
- model provider 创建、API key 加密保存、模型刷新和启用;
- runs 列表和 run detail;
- VFS 浏览、读取和写入;
- schedules 创建、查看和取消;
- pending actions 查看和确认;
- permission policies 创建、查看和删除;
- admin token 登录校验和本地保存。
构建前端:
npm run admin:build单独启动 Vite:
npm run admin:dev启动完整 Worker:
npm run devnpm run dev 会先构建 WebUI,再启动 wrangler dev。前端产物输出到 apps/admin-web/dist,由 Wrangler assets binding 提供服务。
WebUI 入口会先显示 token 登录页,并通过 /admin/setup/status 校验 token。校验通过后才进入管理控制台,后续 /admin/* 请求会带上 Authorization: Bearer <token>。
如果未配置 INTERNAL_ADMIN_TOKEN,后端不会强制校验 /admin/* token;登录页仍会用当前输入访问 setup status,本地开发可以直接进入。生产环境应配置 INTERNAL_ADMIN_TOKEN。
浏览器本地保存的 admin token 只用于本机调试和访问当前部署,不应该写入仓库或文档示例。