openclaw 技术分析
·
整体技术架构
Gateway 守护进程 做服务进程
session(会话核心),和大模型的会话
[dingtalk] Full Inbound Data:
16:16:32 [dingtalk] Inbound: from=李金钢 text="桌面截图给我..."
16:16:32 [diagnostic] lane enqueue: lane=session:agent:main:dingtalk:group:cidfy3fcauba1yyemx/ag5npw== queueSize=1
16:16:32 [diagnostic] lane dequeue: lane=session:agent:main:dingtalk:group:cidfy3fcauba1yyemx/ag5npw== waitMs=2 queueSize=0
16:16:32 [diagnostic] lane enqueue: lane=main queueSize=1
16:16:32 [diagnostic] lane dequeue: lane=main waitMs=2 queueSize=0
16:16:32 [agent/embedded] embedded run start: runId=81a1e8ef-44e5-4f9d-bb8a-7f3600503e3e sessionId=e71d706b-4909-4c64-8b55-d28c4712d9fa provider=custom-1 model=LongCat-Flash-Chat thinking=off messageChannel=dingtalk
16:16:32 [diagnostic] session state: sessionId=e71d706b-4909-4c64-8b55-d28c4712d9fa sessionKey=unknown prev=idle new=processing reason="run_started" queueDepth=0
16:16:32 [diagnostic] run registered: sessionId=e71d706b-4909-4c64-8b55-d28c4712d9fa totalActive=1
CLI系统
配置文件可视化配置UI系统
主要是看和改配置文件,不是重要系统,而且Gateway 守护进程 和ui系统可以分开部署
核心框架
- Lit: 基于Web Components的轻量级框架。
- 使用
html和nothing从lit库导入。 - 利用模板字面量语法来渲染组件。
- 使用
Lit(原 LitElement)是由 Google 开发的轻量级 JavaScript 库,旨在简化原生 Web Components 的开发。它的核心理念是“利用平台(Use the platform)”,通过极小的运行时开销(约 5KB),提供响应式属性、声明式模板和作用域样式等现代框架功能。
- Lit 核心技术方案
Lit 的核心由两个主要部分组成:
lit-html:高性能 HTML 模板系统。它使用 Tagged Template Literals(标签模板字符串)来定义模板,通过在静态部分和动态部分之间设置“标记”,更新时仅触达 DOM 的动态部分,而非全局 diff。
LitElement:基于原生 HTMLElement 的基类。它处理了 Web Components 的样板代码,自动将组件属性(Properties)映射到 HTML 特性(Attributes),并触发更新循环- 真正的技术栈无关:Lit 封装的组件在浏览器看来就是原生的 HTML 标签(如
<font style="color:rgb(10, 10, 10);background-color:rgb(240, 242, 245);"><my-button></font>)。无论主应用是 React 还是 Vue,都可以直接通过<font style="color:rgb(10, 10, 10);background-color:rgb(240, 242, 245);">document.createElement</font>或在模板中引用,无需安装特定的框架运行时。
- 零冲突隔离:通过 Shadow DOM(下文详述),组件的样式和 DOM 结构与外部完全隔离。即便子应用 A 用了
<font style="color:rgb(10, 10, 10);background-color:rgb(240, 242, 245);">bootstrap</font>,子应用 B 用了<font style="color:rgb(10, 10, 10);background-color:rgb(240, 242, 245);">tailwind</font>,Lit 组件内部的样式也不会被污染或外溢。- 极其轻量:Lit 运行时仅约 5KB。相比之下,如果为了共享一个按钮而引入整个 Vue 或 React 运行时,性能损耗巨大。
- 原子化共享:适合构建“跨团队通用 UI 组件库”(如基础表单、弹窗、图表),确保全公司不同技术栈的产品线拥有统一的视觉和交互体验。
- vs vue 等非虚拟dom库
构建工具
- Vite: 现代化的前端构建工具。
- 配置文件:
vite.config.ts - 测试配置:
vitest.config.ts
- 配置文件:
测试框架
- Vitest: 基于Vite的测试框架。
- 支持单元测试等,并且有相应的配置文件可见。
样式系统
- 原生CSS: 使用标准的CSS文件来组织样式。
- 文件结构中包含专门存放样式的
styles目录。
- 文件结构中包含专门存放样式的
TypeScript支持
- 完整地支持TypeScript,确保了类型定义清晰明确。
通信协议ws (非传统http)
12:23:24 [heartbeat] started
12:23:24 [gateway] agent model: custom-1/LongCat-Flash-Chat
12:23:24 [gateway] listening on ws://127.0.0.1:18789 (PID 34936)
12:23:24 [gateway] listening on ws://[::1]:18789
12:23:24 [gateway] log file: \tmp\openclaw\openclaw-2026-02-12.log
12:23:24 [ws] → event health seq=1 clients=0 presenceVersion=1 healthVersion=2
12:23:24 [browser/service] Browser control service ready (profiles=2)
12:23:24 [dingtalk] [default] Initializing DingTalk Stream client...
更多推荐



所有评论(0)