WebUI 控制台
技术栈
前端位于 webui/,基于:
- React 19
- React Router 7
- Vite 6
- TypeScript
- Tailwind CSS 4
- i18next
访问方式
正常情况下由 Gateway 托管:
text
http://<host>:<port>/webui?token=<gateway.token>Gateway 会在 /webui 首次访问时写入 clawgo_webui_token Cookie。
页面结构
从 webui/src/pages 可以看出控制台并不是单一聊天页,而是运维工作台。
Dashboard
总览页面,展示运行时关键统计。
Chat
支持两类视图:
- 主对话历史
- subagent 内部流
它会调用:
/webui/api/chat/webui/api/chat/history/webui/api/chat/stream/webui/api/subagents_runtime
这也是最能体现“主通道与内部协作流分离”的页面。
Subagents
用于查看统一 agent 拓扑、任务、线程、消息和节点分支。
它不仅展示本地 subagent,也展示:
- node-backed branch
- node 在线状态
- agent tree
- stream items
Config
配置编辑工作台,支持:
- 表单模式
- Raw JSON 模式
- 按热更新字段过滤
- 差异对比
- 提交高风险配置前确认
后端接口:
GET /webui/api/configPOST /webui/api/config
Logs
用于实时日志流和最近日志查看。
后端接口:
/webui/api/logs/stream/webui/api/logs/recent
Skills
用于查看、安装、刷新 skills,并检测例如 clawhub 等依赖状态。
接口:
/webui/api/skills
Memory
查看和编辑 memory 文件。
接口:
/webui/api/memory
Cron
管理定时任务,支持:
- list
- create
- update
- enable
- disable
- delete
接口:
/webui/api/cron
SubagentProfiles
对 profile 化的 subagent 进行管理,支持:
- 新建 profile
- 修改 allowlist
- 编辑
system_prompt_file - 启停 profile
接口:
/webui/api/subagent_profiles/webui/api/tool_allowlist_groups/webui/api/subagents_runtime
TaskAudit
查看任务队列与审计记录,字段非常丰富,包括:
task_idstatussourceduration_msretry_countprovidermodelinput_previewlogsmedia_items
接口:
/webui/api/task_queue/webui/api/task_audit
EKG
对应 /webui/api/ekg_stats,用于展示运行时状态趋势。
Exec Approvals / Logs / Log Codes
这几页用于运维和审计辅助。
WebUI API 总表
当前后端显式注册了这些接口:
/webui/api/config/webui/api/chat/webui/api/chat/history/webui/api/chat/stream/webui/api/version/webui/api/upload/webui/api/nodes/webui/api/cron/webui/api/skills/webui/api/sessions/webui/api/memory/webui/api/subagent_profiles/webui/api/subagents_runtime/webui/api/tool_allowlist_groups/webui/api/task_audit/webui/api/task_queue/webui/api/ekg_stats/webui/api/exec_approvals/webui/api/logs/stream/webui/api/logs/recent
构建与嵌入
WebUI 不是独立部署前提。仓库里的 Makefile 会:
- 构建
webui/dist - 同步到
cmd/clawgo/workspace/webui - 让 Go 的
embed机制在发布时带上这些静态资源
因此 release 包同时能分发 runtime 和控制台。