Skip to content

桌面端架构基座

迁移来源:desktop/docs/ARCHITECTURE.md

这篇适合桌面端开发者先建立边界感,不是功能手册,而是“哪些事能做,哪些事不能做”。

第一条硬规则

桌面端仍然是唯一执行真源

  • local runtime 负责真正执行
  • React 界面只负责展示和编排
  • CLI 负责暴露命令入口,不再偷偷造一套执行引擎

第二条硬规则

所有功能先定义命令合约

任何功能在开始写 UI 或 runtime 之前,先在 packages/command-contracts 里定义:

  • 命令 ID
  • 输入 schema
  • 输出 schema
  • 命令由谁执行

这样后面桌面 UI、CLI 和自动化调用才能共用一套入口。

第三条硬规则

插件优先兼容,不优先炫技

插件层先守住 3 件事:

  • manifest 真源
  • 命令命名空间
  • openclaw 兼容字段

目录分层怎么理解

apps/gui

桌面壳、页面编排、共享 UI 和前端服务都在这里。

apps/cli

命令行入口,只负责参数解析和标准输出。

packages/command-contracts

命令、插件 schema、输入输出定义的真源。

packages/plugin-sdk

给插件作者使用的 SDK,不承载运行时逻辑。

这一阶段不做什么

  • 不做旧桌面端页面整体迁移
  • 不急着把所有 Agent 执行链一次搬完
  • 不把本地执行职责下沉到后端

提醒

如果某个改动会破坏“桌面端是唯一执行真源”这条边界,就不应该继续往下做。

内容通过 Markdown 维护,适合持续迭代。