Skip to content

Web 控制界面问题

本页收录 GitHub Issues 中 Control UI(Dashboard)相关高频问题,精选有明确解决方案的案例。 编号格式 #NNNNN 对应 GitHub issue,可直接在 issues 列表搜索去重。


问题 1:Control UI 静置一段时间后出现 401 错误

来源:GitHub #25663(2026-02)

现象:在 Control UI(WebChat)里正常对话,离开 10-15 分钟后再发消息,提示 HTTP 401: Invalid Authentication。刷新页面(F5)后立即恢复正常。

原因:WebSocket 长时间无活动后连接断开,重连时 UI 没有自动重发 localStorage 中存储的 token,导致认证失败。token 本身有效,属于重连逻辑缺陷。

解决方法

  • 临时绕过:遇到 401 时直接刷新页面(F5),重新加载会从 localStorage 读取 token 并重连
  • 长期方案:等待官方修复 WebSocket 重连时的 token 重发逻辑

验证方法:浏览器 DevTools → Network → WS 标签 → 查看 Close 帧代码。

  • Code 1006(异常关闭)= 连接超时断开
  • Code 1000(正常关闭)= 主动关闭

问题 2:Control UI 提示 "assets not found",界面无法加载

来源:GitHub #53672(2026-03)

现象:升级 OpenClaw 后打开 Control UI,页面显示:

Control UI assets not found. Build them with `pnpm ui:build`
(auto-installs UI deps), or run `pnpm ui:dev` during development.

原因:升级或重装 OpenClaw 后,dist/control-ui/ 目录下的前端静态资源没有同步更新,Gateway 找不到可用的 UI 文件。常见于手动 git pull 后没有重新构建 UI。

解决方法

方案 1(推荐):重新构建 UI

bash
pnpm ui:build   # 首次运行会自动安装 UI 依赖

方案 2:如果不需要 Control UI,只用 CLI,在 openclaw.json 中禁用 UI 加载:

json5
{
  gateway: {
    controlUi: {
      enabled: false
    }
  }
}

方案 3:降级到上一个可用版本(如 2026.3.13),等官方修复

注意:通过 npm install -g openclaw 全局安装的版本,Control UI 应该是预构建好的,不需要手动 pnpm ui:build。如果全局安装版出现此错误,可能是 npm 包发布时遗漏了 dist 文件,建议升级到最新版本。


问题 3:Control UI Skills 搜索框显示 WebSocket 地址

来源:GitHub #53648(2026-03)

现象:Control UI 左侧 Skills 菜单的搜索框里,默认显示 ws://127.0.0.1:xxxxx 而不是空白或占位提示文字。

原因:UI 代码中搜索框的 defaultValueplaceholder 被错误地绑定到了 Gateway WebSocket 地址变量,属于前端展示 Bug,不影响功能。

解决方法

  • 此为纯 UI 展示 Bug,不影响搜索和 Skills 功能,直接在搜索框中输入即可覆盖显示的内容
  • 等待官方版本修复

问题 4:升级后聊天界面出现 <relevant-memories> 内容

来源:GitHub #53696(2026-03)

现象:升级到 v2026.3.23 后,Control UI 的聊天记录中出现 <relevant-memories> XML 块,内容是内部记忆上下文,不应该显示给用户。

原因memory-lancedb-pro 插件的自动召回(autoRecall)功能注入的记忆内容块,在 v3.23 的 UI 渲染逻辑变更后意外泄漏到了前端展示层。

解决方法

临时绕过:禁用 autoRecall:

json5
{
  tools: {
    memory: {
      autoRecall: { enabled: false }
    }
  }
}

或临时卸载 memory-lancedb-pro 插件:

bash
openclaw plugins uninstall memory-lancedb-pro

长期方案:等待官方修复 UI 渲染过滤逻辑(<relevant-memories> 块应在前端被过滤,不渲染到聊天 UI)。


另见