跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言AI大前端

OpenClaw WebUI Chat 工作流程与核心组件解析

OpenClaw WebUI 是基于 Web Components 的前端应用,提供聊天界面与 Agent 交互。架构包含前端(control-ui)、后端服务(Gateway、Agent、Session)。Chat 流程涵盖初始化(WebSocket 连接、会话加载)、消息发送(API 调用、流式返回)、会话管理及工具调用。核心 API 包括 chat.send、chat.history 等。技术特点支持流式响应、实时通信及模块化设计。

ApiHolic发布于 2026/4/5更新于 2026/10/26109 浏览

整体架构

OpenClaw WebUI 是一个基于 Web Components 的现代前端应用,提供了直观的聊天界面来与 OpenClaw Agent 进行交互。

主要程序名称

前端程序

  1. control-ui/index.html - WebUI 主页面
  2. control-ui/assets/index-BeKTXH1m.js - 打包后的前端核心代码
  3. control-ui/assets/index-DWhx-9JL.css - 前端样式文件

后端服务

  1. Gateway 服务 - 运行在端口 18789,提供 API 端点
  2. Agent 服务 - 处理代理逻辑
  3. Session 服务 - 管理会话状态

Chat 工作流程

1. 初始化阶段

  • 页面加载:用户访问 WebUI 地址(通常是 http://localhost:18789)
  • WebSocket 连接:前端与 Gateway 建立 WebSocket 连接,用于实时通信
  • 会话加载:前端加载默认会话或上次活动的会话
  • 历史记录获取:调用 chat.history API 端点获取历史消息

2. 消息发送流程

  1. 用户输入:用户在聊天输入框中输入消息
  2. 消息处理:
    • 前端验证输入内容
    • 显示'正在发送'状态
    • 生成唯一的 runId 标识本次对话
  3. API 调用:
    • 前端调用 chat.send API 端点
    • 发送数据包括:会话密钥、消息内容、幂等性密钥
    • 支持附件(如图片)上传
  4. 后端处理:
    • Gateway 接收请求并路由到相应的 Agent
    • Agent 分析消息内容
    • 可能调用工具(如 web_search)获取信息
    • 生成回复内容
  5. 消息接收:
    • 后端通过 WebSocket 流式返回回复
    • 前端实时显示回复内容
    • 支持工具调用结果的展示

3. 会话管理

  • 会话选择:用户可以在下拉菜单中选择不同的会话
  • 会话切换:切换会话时会加载对应会话的历史记录
  • 会话刷新:用户可以手动刷新聊天数据

4. 工具调用流程

  1. 工具检测:Agent 分析用户请求,确定是否需要调用工具
  2. 工具调用:
    • 前端显示工具调用状态
    • 后端执行工具操作(如搜索)
  3. 结果处理:
    • 工具执行结果返回给 Agent
    • Agent 分析结果并生成回复
    • 前端显示工具调用结果和 Agent 回复

5. 界面交互

  • 主题切换:支持系统、浅色、深色三种主题
  • 思考模式:可切换显示/隐藏 Agent 的思考过程
  • 专注模式:可切换显示/隐藏侧边栏和页面标题
  • 消息滚动:新消息自动滚动到底部
  • 加载状态:显示各种操作的加载状态

核心 API 端点

  1. chat.send - 发送聊天消息
    • 参数:sessionKey, message, idempotencyKey, attachments
    • 返回:Agent 回复
  2. chat.history - 获取聊天历史
    • 参数:sessionKey, limit
    • 返回:历史消息列表
  3. status - 获取系统状态
    • 返回:系统运行状态
  4. health - 获取系统健康状态
    • 返回:系统健康信息

技术特点

  1. 流式响应:支持模型回复的流式展示,提升用户体验
  2. 实时通信:使用 WebSocket 实现实时消息传递
  3. 模块化设计:前端代码采用模块化结构,易于维护
  4. 响应式布局:适配不同屏幕尺寸
  5. 丰富的交互:支持表情、图片、工具调用等多种交互方式

工作流程图

┌─────────────┐     ┌─────────────┐     ┌─────────────┐     ┌─────────────┐  
│   用户界面  │     │  前端处理   │     │ Gateway 服务│     │  Agent 服务  │  
└─────┬───────┘     └─────┬───────┘     └─────┬───────┘     └─────┬───────┘  
      │                  │                  │                  │  
      │ 输入消息         │                  │                  │  
      ├─────────────────>│                  │                  │  
      │                  │ 验证输入         │                  │  
      │                  │ 生成 runId       │                  │  
      │                  │                  │                  │  
      │                  │ 调用 chat.send API│                  │  
      │                  ├─────────────────>│                  │  
      │                  │                  │ 路由请求         │  
      │                  │                  ├─────────────────>│  
      │                  │                  │                  │  
      │                  │                  │                  │  处理消息  
      │                  │                  │                  ├─────────┐  
      │                  │                  │                  │         │  
      │                  │                  │                  │ 调用工具  
      │                  │                  │                  │         │  
      │                  │                  │                  │         │  
      │                  │                  │                  │<────────┘  
      │                  │                  │                  │  
      │                  │                  │                  │ 生成回复  
      │                  │                  │                  │  
      │                  │                  │<─────────────────┘  
      │                  │<─────────────────┘  
      │                  │  
      │                  │ 流式返回回复  
      │                  │  
      │<─────────────────┘  
      │  
      │ 显示回复  
      │  
┌─────┴───────┐  
│   用户界面  │  
└─────────────┘

目录

  1. 整体架构
  2. 主要程序名称
  3. 前端程序
  4. 后端服务
  5. Chat 工作流程
  6. 1. 初始化阶段
  7. 2. 消息发送流程
  8. 3. 会话管理
  9. 4. 工具调用流程
  10. 5. 界面交互
  11. 核心 API 端点
  12. 技术特点
  13. 工作流程图

更多推荐文章

查看全部
  • Arduino BLDC 自主巡逻机器人设计与实现(避障 + 路径规划)
  • 2026 年测试工程师必备的 10 个免费开源 AI 工具
  • CSP 考试中学生排队问题的 Vector 动态数组解法
  • Python Flask HTTP 微服务开发与数据库集成
  • Java 9 至 Java 25 语言演进与关键技术革新解析
  • Node.js 安装与环境变量配置教程
  • Java 反射机制核心解析
  • NVIDIA AI Enterprise 运维实战:医疗行业培训路线
  • 基于 cpolar 内网穿透远程访问 Open-Lovable 网页克隆工具
  • CapCutAPI:开源剪映编程控制与视频编辑方案
  • Rust+Tauri 实战:构建 OpenClaw 安全沙箱清理工具
  • IT 行业常见专业认证证书介绍
  • Java Map 常用实现类及特性对比
  • MinIO 分布式对象存储介绍及与 SeaweedFS 对比
  • 【FPGA入坑指南第二章】安装vivado/vitis2023.1软件
  • AIGC 技术解析:定义、核心特点与应用场景
  • 分布式文件系统 HDFS 存储原理
  • 基于 Leaflet 和天地图的免费运动场所 WebGIS 可视化
  • 用 ChatGPT、DALL·E 和 Runway 做日漫小故事
  • Spring Bean 加载方式与依赖注入详解

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online