refactor: 统一项目名称从OpenFang到ZCLAW
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
重构所有代码和文档中的项目名称,将OpenFang统一更新为ZCLAW。包括: - 配置文件中的项目名称 - 代码注释和文档引用 - 环境变量和路径 - 类型定义和接口名称 - 测试用例和模拟数据 同时优化部分代码结构,移除未使用的模块,并更新相关依赖项。
This commit is contained in:
@@ -7,8 +7,8 @@
|
||||
当前对“完整可用 ZCLAW”的定义如下:
|
||||
|
||||
- 用户能够在本机启动 ZCLAW 桌面应用
|
||||
- 用户安装 ZCLAW 时,OpenClaw 运行时已经随包提供,而不是要求用户另行安装
|
||||
- 桌面应用能够引导并管理随 ZCLAW 一起分发的本地 OpenClaw Gateway
|
||||
- 用户安装 ZCLAW 时,ZCLAW 运行时已经随包提供,而不是要求用户另行安装
|
||||
- 桌面应用能够引导并管理随 ZCLAW 一起分发的本地 ZCLAW Gateway
|
||||
- 前端能够稳定连接 Gateway,并完成基础握手与鉴权
|
||||
- 用户能够创建、编辑、切换 Agent(Clone)
|
||||
- 用户能够发起真实对话并收到流式回复
|
||||
@@ -21,11 +21,11 @@
|
||||
|
||||
### 2.1 已完成的关键能力
|
||||
|
||||
- Gateway 握手参数已修正,能够兼容 OpenClaw 2026.3.11
|
||||
- Gateway 握手参数已修正,能够兼容 ZCLAW 2026.3.11
|
||||
- Token 鉴权已接入前端连接流程
|
||||
- `zclaw-ui` 插件可被 Gateway 正常加载
|
||||
- Agent 的创建、编辑、保存链路已打通
|
||||
- `scripts/setup.ts` 已可在已有 `~/.openclaw/openclaw.json` 时非破坏性合并插件与 skills 路径
|
||||
- `scripts/setup.ts` 已可在已有 `~/.zclaw/zclaw.json` 时非破坏性合并插件与 skills 路径
|
||||
- 自定义插件 manifest/package id 对齐问题已修复
|
||||
|
||||
### 2.2 当前仍阻塞交付的核心问题
|
||||
@@ -37,9 +37,9 @@
|
||||
- `desktop/src-tauri/src/lib.rs` 仍是默认模板
|
||||
- 当前产品更像“前端连接外部 Gateway”,还不是“完整桌面应用”
|
||||
|
||||
2. **当前仍默认依赖用户独立安装 OpenClaw**
|
||||
2. **当前仍默认依赖用户独立安装 ZCLAW**
|
||||
- 这与最终产品目标不一致
|
||||
- 最终必须做到:安装 ZCLAW 后即可直接使用 OpenClaw 能力
|
||||
- 最终必须做到:安装 ZCLAW 后即可直接使用 ZCLAW 能力
|
||||
- 因此现阶段的 CLI/PATH 依赖只能作为开发期和过渡期方案
|
||||
|
||||
3. **真实桌面链路缺少本地运行闭环验证**
|
||||
@@ -59,8 +59,8 @@
|
||||
### 3.1 核心原则
|
||||
|
||||
- **先打通闭环,再做扩展**:优先修复阻塞真实使用的能力缺口,而不是继续加功能
|
||||
- **优先最短交付路径**:优先复用 OpenClaw 现有 CLI/service 能力,而不是一开始就做完整 sidecar 架构
|
||||
- **最终必须内置 OpenClaw**:开发阶段允许复用系统已安装的 OpenClaw,但交付阶段必须改为随 ZCLAW 一起分发和托管
|
||||
- **优先最短交付路径**:优先复用 ZCLAW 现有 CLI/service 能力,而不是一开始就做完整 sidecar 架构
|
||||
- **最终必须内置 ZCLAW**:开发阶段允许复用系统已安装的 ZCLAW,但交付阶段必须改为随 ZCLAW 一起分发和托管
|
||||
- **浏览器模式不回退**:新增 Tauri 能力必须有运行时保护,不影响现有浏览器预览/开发体验
|
||||
- **阶段可提交**:每个阶段都有独立验收标准,达到后可形成 clean checkpoint
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
|
||||
- **P0**:Tauri 桌面壳接入本地 Gateway 生命周期管理
|
||||
- **P0**:完成真实桌面端基础闭环验证
|
||||
- **P0**:确定并落地“ZCLAW 安装即内置 OpenClaw”的分发方案
|
||||
- **P0**:确定并落地“ZCLAW 安装即内置 ZCLAW”的分发方案
|
||||
- **P1**:补齐最影响可用性的设置页占位项
|
||||
- **P1**:形成交付前 smoke checklist 和文档更新
|
||||
- **P2**:补测试、清理遗留代码、准备打包发布
|
||||
@@ -81,7 +81,7 @@
|
||||
|
||||
### A.1 目标
|
||||
|
||||
让 ZCLAW 桌面应用在 Tauri 环境下具备对本地 OpenClaw Gateway 的基础管理能力:
|
||||
让 ZCLAW 桌面应用在 Tauri 环境下具备对本地 ZCLAW Gateway 的基础管理能力:
|
||||
|
||||
- 查询本地 Gateway 状态
|
||||
- 启动本地 Gateway
|
||||
@@ -91,13 +91,13 @@
|
||||
|
||||
### A.2 实现策略
|
||||
|
||||
优先采用**Tauri Rust 命令封装 OpenClaw CLI** 的方式,而不是直接引入完整 sidecar:
|
||||
优先采用**Tauri Rust 命令封装 ZCLAW CLI** 的方式,而不是直接引入完整 sidecar:
|
||||
|
||||
- Rust 侧封装以下命令:
|
||||
- `openclaw gateway status --json`
|
||||
- `openclaw gateway start --json`
|
||||
- `openclaw gateway stop --json`
|
||||
- `openclaw gateway restart --json`
|
||||
- `zclaw gateway status --json`
|
||||
- `zclaw gateway start --json`
|
||||
- `zclaw gateway stop --json`
|
||||
- `zclaw gateway restart --json`
|
||||
- 前端通过 `invoke` 调用 Rust 命令
|
||||
- 通过运行时判断,仅在 Tauri 环境中启用这组能力
|
||||
- 浏览器模式继续保留“手工连接外部 Gateway”的现有逻辑
|
||||
@@ -107,7 +107,7 @@
|
||||
- 这一阶段是**开发期过渡方案**
|
||||
- 它的价值是先把桌面端产品闭环跑通
|
||||
- 但它**不是最终交付形态**
|
||||
- 最终交付必须把 OpenClaw 运行时随 ZCLAW 一起打包,而不是要求用户本机已有 `openclaw`
|
||||
- 最终交付必须把 ZCLAW 运行时随 ZCLAW 一起打包,而不是要求用户本机已有 `zclaw`
|
||||
|
||||
### A.3 代码范围
|
||||
|
||||
@@ -124,12 +124,12 @@
|
||||
- 用户可点击启动/停止/重启
|
||||
- 启动成功后,前端可继续连接并拉取基础数据
|
||||
- 浏览器模式不因该改动而报错或白屏
|
||||
- 开发环境下,即使仍依赖系统 `openclaw`,也已经明确与最终 bundling 方案解耦
|
||||
- 开发环境下,即使仍依赖系统 `zclaw`,也已经明确与最终 bundling 方案解耦
|
||||
|
||||
### A.5 风险与应对
|
||||
|
||||
- **风险**:不同机器上 `openclaw` 不在 PATH
|
||||
- **应对**:前端明确提示“未安装 OpenClaw CLI”或“命令不可用”
|
||||
- **风险**:不同机器上 `zclaw` 不在 PATH
|
||||
- **应对**:前端明确提示“未安装 ZCLAW CLI”或“命令不可用”
|
||||
- **风险**:`status --json` / `start --json` 输出结构不稳定
|
||||
- **应对**:Rust 侧优先使用 `serde_json::Value` 宽松解析,再映射到前端稳定结构
|
||||
- **风险**:服务模式与前台 `gateway run` 并存导致认知混乱
|
||||
@@ -169,31 +169,31 @@
|
||||
|
||||
---
|
||||
|
||||
## Phase C:OpenClaw 随包分发与运行时托管
|
||||
## Phase C:ZCLAW 随包分发与运行时托管
|
||||
|
||||
### C.1 目标
|
||||
|
||||
把当前“依赖用户本机单独安装 OpenClaw”的开发态方案,推进到真正可交付的产品方案:
|
||||
把当前“依赖用户本机单独安装 ZCLAW”的开发态方案,推进到真正可交付的产品方案:
|
||||
|
||||
- 用户安装 ZCLAW 时,OpenClaw 运行时已经包含在安装包内
|
||||
- ZCLAW 启动后,能够直接找到并启动内置 OpenClaw
|
||||
- 用户不需要再单独安装一套 OpenClaw CLI / 环境
|
||||
- 用户安装 ZCLAW 时,ZCLAW 运行时已经包含在安装包内
|
||||
- ZCLAW 启动后,能够直接找到并启动内置 ZCLAW
|
||||
- 用户不需要再单独安装一套 ZCLAW CLI / 环境
|
||||
|
||||
### C.2 目标形态
|
||||
|
||||
最终交付建议采用以下形态:
|
||||
|
||||
- 安装包内包含 OpenClaw 可执行运行时或受控分发产物
|
||||
- 安装包内包含 ZCLAW 可执行运行时或受控分发产物
|
||||
- Tauri Rust 侧通过固定相对路径或 sidecar 机制调用该运行时
|
||||
- ZCLAW 负责:
|
||||
- 初始化 OpenClaw home / workspace
|
||||
- 初始化 ZCLAW home / workspace
|
||||
- 写入或合并默认配置
|
||||
- 启动 / 停止 / 重启 Gateway
|
||||
- 读取日志与状态
|
||||
|
||||
### C.3 方案比较
|
||||
|
||||
#### 方案 1:继续依赖系统安装的 `openclaw`
|
||||
#### 方案 1:继续依赖系统安装的 `zclaw`
|
||||
|
||||
优点:
|
||||
|
||||
@@ -209,7 +209,7 @@
|
||||
|
||||
- **仅适合开发期,不可作为最终交付方案**
|
||||
|
||||
#### 方案 2:把 OpenClaw 作为 sidecar / bundled runtime 随 ZCLAW 分发
|
||||
#### 方案 2:把 ZCLAW 作为 sidecar / bundled runtime 随 ZCLAW 分发
|
||||
|
||||
优点:
|
||||
|
||||
@@ -227,15 +227,15 @@
|
||||
|
||||
### C.4 实施任务
|
||||
|
||||
- 确认 OpenClaw 可分发形态
|
||||
- 确认 ZCLAW 可分发形态
|
||||
- npm 包直接落地
|
||||
- 预构建二进制
|
||||
- 内置 Node + OpenClaw 组合运行时
|
||||
- 内置 Node + ZCLAW 组合运行时
|
||||
- 确认 Tauri 2 下 sidecar / bundled binary 的最佳实现方式
|
||||
- 为 Windows 优先落地一版 bundling 方案
|
||||
- 调整 Rust 侧命令执行逻辑
|
||||
- 优先调用内置运行时
|
||||
- 开发模式可回退到系统 `openclaw`
|
||||
- 开发模式可回退到系统 `zclaw`
|
||||
- 验证安装后首次启动流程
|
||||
- 不依赖用户额外安装
|
||||
- 可直接启动 Gateway
|
||||
@@ -243,10 +243,10 @@
|
||||
|
||||
### C.5 验收标准
|
||||
|
||||
- 全新机器上,未单独安装 OpenClaw 的情况下,可直接安装并启动 ZCLAW
|
||||
- ZCLAW 可成功拉起内置 OpenClaw Gateway
|
||||
- 全新机器上,未单独安装 ZCLAW 的情况下,可直接安装并启动 ZCLAW
|
||||
- ZCLAW 可成功拉起内置 ZCLAW Gateway
|
||||
- Agent / 聊天 / 设置等核心功能可正常工作
|
||||
- 用户文档不再要求“先安装 OpenClaw 再使用 ZCLAW”
|
||||
- 用户文档不再要求“先安装 ZCLAW 再使用 ZCLAW”
|
||||
|
||||
---
|
||||
|
||||
@@ -298,7 +298,7 @@
|
||||
|
||||
说明:
|
||||
|
||||
- 最终交付 smoke test 不应再把系统级 `openclaw --version` 作为前置要求
|
||||
- 最终交付 smoke test 不应再把系统级 `zclaw --version` 作为前置要求
|
||||
- 应改为验证 ZCLAW 内置运行时是否可用
|
||||
|
||||
#### 桌面启动检查
|
||||
@@ -329,7 +329,7 @@
|
||||
|
||||
#### 安装闭环检查
|
||||
|
||||
- 全新环境中无需单独安装 OpenClaw
|
||||
- 全新环境中无需单独安装 ZCLAW
|
||||
- 安装 ZCLAW 后首次启动即可使用
|
||||
- 若内置运行时损坏或缺失,错误提示明确
|
||||
|
||||
@@ -383,17 +383,17 @@
|
||||
|
||||
- 从桌面打开到完成一次对话全链路可用
|
||||
|
||||
## Milestone 3:OpenClaw 随包分发打通
|
||||
## Milestone 3:ZCLAW 随包分发打通
|
||||
|
||||
输出物:
|
||||
|
||||
- Windows 优先的一体化 bundling 方案
|
||||
- ZCLAW 优先调用内置 OpenClaw 运行时
|
||||
- 安装后无需用户额外安装 OpenClaw 的可运行链路
|
||||
- ZCLAW 优先调用内置 ZCLAW 运行时
|
||||
- 安装后无需用户额外安装 ZCLAW 的可运行链路
|
||||
|
||||
完成标志:
|
||||
|
||||
- 在未安装 OpenClaw 的机器/环境中,安装 ZCLAW 后即可直接使用
|
||||
- 在未安装 ZCLAW 的机器/环境中,安装 ZCLAW 后即可直接使用
|
||||
|
||||
## Milestone 4:设置页与交付收尾
|
||||
|
||||
@@ -417,7 +417,7 @@
|
||||
2. 在前端新增 Tauri Gateway bridge
|
||||
3. 在 `gatewayStore` 中接入本地 Gateway 状态与动作
|
||||
4. 在 Settings > General 中增加本地 Gateway 管理卡片
|
||||
5. 明确 OpenClaw 随包分发方案,避免把系统安装依赖固化为最终设计
|
||||
5. 明确 ZCLAW 随包分发方案,避免把系统安装依赖固化为最终设计
|
||||
6. 进行编译/运行级验证
|
||||
7. 若验证通过,记录到 `PROGRESS.md`
|
||||
|
||||
@@ -439,7 +439,7 @@
|
||||
|
||||
### Checkpoint C
|
||||
|
||||
- 完成 OpenClaw bundling / sidecar 方案设计
|
||||
- 完成 ZCLAW bundling / sidecar 方案设计
|
||||
- 明确 Windows 优先的交付路径
|
||||
|
||||
### Checkpoint D
|
||||
@@ -455,12 +455,12 @@
|
||||
|
||||
## 8. 结论
|
||||
|
||||
当前最短、最正确的交付路径,不是继续扩展更多功能,而是先把 ZCLAW 从“能连 Gateway 的前端”推进成“能在桌面端真正管理并使用内置 OpenClaw 的产品”。
|
||||
当前最短、最正确的交付路径,不是继续扩展更多功能,而是先把 ZCLAW 从“能连 Gateway 的前端”推进成“能在桌面端真正管理并使用内置 ZCLAW 的产品”。
|
||||
|
||||
因此,本轮执行的核心结论是:
|
||||
|
||||
- **先做 Tauri 本地 Gateway 生命周期管理**
|
||||
- **再完成 OpenClaw 随包分发方案**
|
||||
- **再完成 ZCLAW 随包分发方案**
|
||||
- **然后做真实桌面端闭环验证**
|
||||
- **最后收尾设置页与交付文档**
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Context
|
||||
|
||||
**背景**:ZCLAW 项目基于 OpenFang 定制开发,目标是结合 OpenClaw、NanoClaw、ZeroClaw 等系统的优点。当前 Agent 智能层已超前完成(Phase 1-3 完成, Phase 4 部分完成),但 OpenViking 集成依赖外部 Python 服务,用户安装繁琐。
|
||||
**背景**:ZCLAW 项目基于 ZCLAW 定制开发,目标是结合 ZCLAW、NanoClaw、ZeroClaw 等系统的优点。当前 Agent 智能层已超前完成(Phase 1-3 完成, Phase 4 部分完成),但 OpenViking 集成依赖外部 Python 服务,用户安装繁琐。
|
||||
|
||||
**问题**:如何深度集成 OpenViking,避免 Python 依赖,实现无感安装体验?
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## 背景
|
||||
|
||||
ZCLAW 是基于 OpenFang (Rust Agent OS) 的 AI Agent 桌面客户端。经过 Phase 1-8 的功能开发,系统已达到 93% API 覆盖率和 100% UI 组件完成度。现在需要对前端设计元素进行全面优化,提升用户操作效率与视觉体验。
|
||||
ZCLAW 是基于 ZCLAW (Rust Agent OS) 的 AI Agent 桌面客户端。经过 Phase 1-8 的功能开发,系统已达到 93% API 覆盖率和 100% UI 组件完成度。现在需要对前端设计元素进行全面优化,提升用户操作效率与视觉体验。
|
||||
|
||||
## 当前状态分析
|
||||
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
# OpenFang Hands & Workflow 集成开发方案
|
||||
# ZCLAW Hands & Workflow 集成开发方案
|
||||
|
||||
## 上下文
|
||||
|
||||
**目标**: 将 OpenFang 的 Hands 和 Workflow 功能深度集成到 ZClaw 桌面客户端,提供与 OpenFang Web 界面对等的用户体验。
|
||||
**目标**: 将 ZCLAW 的 Hands 和 Workflow 功能深度集成到 ZClaw 桌面客户端,提供与 ZCLAW Web 界面对等的用户体验。
|
||||
|
||||
**当前状态**:
|
||||
- ZClaw 已有基础的 `HandsPanel.tsx` 和 `WorkflowList.tsx` 组件
|
||||
- 这些组件功能有限,缺少 OpenFang 的核心 UI 特性
|
||||
- OpenFang v0.4.0 提供了 8 个 Hands 和完整的 Workflow/Scheduler 系统
|
||||
- 这些组件功能有限,缺少 ZCLAW 的核心 UI 特性
|
||||
- ZCLAW v0.4.0 提供了 8 个 Hands 和完整的 Workflow/Scheduler 系统
|
||||
|
||||
**参考界面**: http://127.0.0.1:50051 (OpenFang Dashboard)
|
||||
**参考界面**: http://127.0.0.1:50051 (ZCLAW Dashboard)
|
||||
|
||||
---
|
||||
|
||||
## 一、OpenFang 界面分析总结
|
||||
## 一、ZCLAW 界面分析总结
|
||||
|
||||
### 1.1 Hands 页面设计
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
|
||||
### 3.1 Phase 1: 增强 HandsPanel (优先级: 高)
|
||||
|
||||
**目标**: 提供与 OpenFang 对等的 Hands 管理体验
|
||||
**目标**: 提供与 ZCLAW 对等的 Hands 管理体验
|
||||
|
||||
**文件修改**:
|
||||
- `desktop/src/components/HandsPanel.tsx` (重写)
|
||||
@@ -468,7 +468,7 @@ getWorkflowDetails: (id: string) => Promise<Workflow>;
|
||||
|
||||
### 3.5 Phase 5: 导航重构 (优先级: 中)
|
||||
|
||||
**目标**: 重构导航结构,匹配 OpenFang 布局
|
||||
**目标**: 重构导航结构,匹配 ZCLAW 布局
|
||||
|
||||
**文件修改**:
|
||||
- `desktop/src/components/Sidebar.tsx`
|
||||
@@ -538,7 +538,7 @@ getWorkflowDetails: (id: string) => Promise<Workflow>;
|
||||
### 5.1 手动测试
|
||||
|
||||
1. **Hands 测试**:
|
||||
- 启动 ZClaw,连接 OpenFang (端口 50051)
|
||||
- 启动 ZClaw,连接 ZCLAW (端口 50051)
|
||||
- 打开 Hands 标签
|
||||
- 验证 8 个 Hands 正确显示
|
||||
- 点击 Details 查看详情弹窗
|
||||
@@ -653,11 +653,11 @@ function RequirementItem({ description, met, details }: Requirement) {
|
||||
|
||||
| 风险 | 影响 | 缓解措施 |
|
||||
|------|------|----------|
|
||||
| OpenFang API 变更 | 高 | 使用实际 API 测试验证,保持与 OpenFang v0.4.0 兼容 |
|
||||
| ZCLAW API 变更 | 高 | 使用实际 API 测试验证,保持与 ZCLAW v0.4.0 兼容 |
|
||||
| UI 复杂度 | 中 | 分阶段实现,先核心功能后高级功能 |
|
||||
| 性能问题 | 低 | 使用虚拟列表处理大量数据 |
|
||||
|
||||
---
|
||||
|
||||
*计划创建时间: 2026-03-14*
|
||||
*参考版本: OpenFang v0.4.0*
|
||||
*参考版本: ZCLAW v0.4.0*
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
# ZClaw: 从 OpenClaw 迁移到 OpenFang 可行性方案
|
||||
# ZClaw: 从 ZCLAW 迁移到 ZCLAW 可行性方案
|
||||
|
||||
> **规划日期**: 2026-03-13
|
||||
> **目标**: 制定从 OpenClaw 到 OpenFang 的渐进式迁移策略,实现平稳过渡
|
||||
> **目标**: 制定从 ZCLAW 到 ZCLAW 的渐进式迁移策略,实现平稳过渡
|
||||
|
||||
---
|
||||
|
||||
## 一、背景与动机
|
||||
|
||||
### 1.1 当前架构 (OpenClaw)
|
||||
### 1.1 当前架构 (ZCLAW)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ ZClaw Desktop (当前) │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ React 19 UI → Zustand Store → GatewayClient → OpenClaw │
|
||||
│ React 19 UI → Zustand Store → GatewayClient → ZCLAW │
|
||||
│ 技术栈: Tauri 2.0 + TypeScript + Node.js Gateway │
|
||||
│ 内存: >1GB | 启动: 2-5s | 安装: 500MB │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 1.2 目标架构 (OpenFang)
|
||||
### 1.2 目标架构 (ZCLAW)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ ZClaw Desktop (OpenFang) │
|
||||
│ ZClaw Desktop (ZCLAW) │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ React 19 UI → Zustand Store → OpenFangClient → OpenFang │
|
||||
│ React 19 UI → Zustand Store → ZCLAWClient → ZCLAW │
|
||||
│ 技术栈: Tauri 2.0 + TypeScript + Rust Gateway │
|
||||
│ 内存: ~40MB | 启动: 180ms | 安装: 32MB │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
### 1.3 迁移动机
|
||||
|
||||
| 维度 | OpenClaw | OpenFang | 提升 |
|
||||
| 维度 | ZCLAW | ZCLAW | 提升 |
|
||||
|------|----------|----------|------|
|
||||
| **启动速度** | 5.98s | 180ms | **33x 更快** |
|
||||
| **内存占用** | 394MB | 40MB | **90% 更少** |
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
### 2.1 协议差异
|
||||
|
||||
| 方面 | OpenClaw | OpenFang |
|
||||
| 方面 | ZCLAW | ZCLAW |
|
||||
|------|----------|----------|
|
||||
| **WebSocket URL** | `ws://127.0.0.1:18789` | `ws://127.0.0.1:4200/ws` |
|
||||
| **协议格式** | 自定义 JSON 帧 | 标准 JSON + gRPC |
|
||||
@@ -56,15 +56,15 @@
|
||||
|
||||
### 2.2 配置差异
|
||||
|
||||
| 方面 | OpenClaw | OpenFang |
|
||||
| 方面 | ZCLAW | ZCLAW |
|
||||
|------|----------|----------|
|
||||
| **配置目录** | `~/.openclaw/` | `~/.openfang/` |
|
||||
| **配置目录** | `~/.zclaw/` | `~/.zclaw/` |
|
||||
| **配置格式** | YAML/JSON | TOML |
|
||||
| **插件系统** | TypeScript (`index.ts`) | SKILL.md + WASM |
|
||||
|
||||
### 2.3 API 差异
|
||||
|
||||
| 功能 | OpenClaw RPC | OpenFang API |
|
||||
| 功能 | ZCLAW RPC | ZCLAW API |
|
||||
|------|-------------|--------------|
|
||||
| 发送消息 | `agent` | `chat` / `/api/chat` |
|
||||
| 列出 Agent | `zclaw.clones.list` | `GET /api/agents` |
|
||||
@@ -79,7 +79,7 @@
|
||||
|
||||
### 3.1 策略原则
|
||||
|
||||
1. **双版本并行**: 保持 OpenClaw 可用,同时开发 OpenFang
|
||||
1. **双版本并行**: 保持 ZCLAW 可用,同时开发 ZCLAW
|
||||
2. **适配层抽象**: 通过接口隔离后端差异
|
||||
3. **功能对等优先**: 先保证核心功能,再添加新特性
|
||||
4. **灰度发布**: Beta 测试验证后全面切换
|
||||
@@ -108,18 +108,18 @@ Phase 7 (2周): 测试验证 ─────────────────
|
||||
|
||||
**关键任务**:
|
||||
1. 创建 `GatewayBackend` 接口抽象
|
||||
2. 创建 `OpenFangClient` 骨架
|
||||
2. 创建 `ZCLAWClient` 骨架
|
||||
3. 配置双后端切换机制
|
||||
4. 设置 OpenFang 开发环境
|
||||
4. 设置 ZCLAW 开发环境
|
||||
|
||||
**交付物**:
|
||||
- `desktop/src/lib/types/gateway-backend.ts` - 接口定义
|
||||
- `desktop/src/lib/openfang-client.ts` - 客户端骨架
|
||||
- `desktop/src/lib/zclaw-client.ts` - 客户端骨架
|
||||
- `desktop/src/lib/backend-factory.ts` - 后端工厂
|
||||
|
||||
### Phase 2: 客户端实现 (Week 3-4)
|
||||
|
||||
**目标**: 完整实现 OpenFang 客户端
|
||||
**目标**: 完整实现 ZCLAW 客户端
|
||||
|
||||
**关键文件**: [gateway-client.ts](desktop/src/lib/gateway-client.ts)
|
||||
|
||||
@@ -134,20 +134,20 @@ interface GatewayBackend {
|
||||
// ... 其他方法
|
||||
}
|
||||
|
||||
// 2. OpenClaw 实现 (现有代码重构)
|
||||
class OpenClawBackend implements GatewayBackend { ... }
|
||||
// 2. ZCLAW 实现 (现有代码重构)
|
||||
class ZCLAWBackend implements GatewayBackend { ... }
|
||||
|
||||
// 3. OpenFang 实现 (新建)
|
||||
class OpenFangBackend implements GatewayBackend {
|
||||
// 3. ZCLAW 实现 (新建)
|
||||
class ZCLAWBackend implements GatewayBackend {
|
||||
private ws: WebSocket;
|
||||
private url = 'ws://127.0.0.1:4200/ws';
|
||||
|
||||
async connect(): Promise<void> {
|
||||
// OpenFang 认证协议
|
||||
// ZCLAW 认证协议
|
||||
}
|
||||
|
||||
async chat(message: string, opts?: ChatOptions): Promise<{runId: string}> {
|
||||
// OpenFang chat 格式
|
||||
// ZCLAW chat 格式
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -162,8 +162,8 @@ class OpenFangBackend implements GatewayBackend {
|
||||
```typescript
|
||||
interface GatewayStore {
|
||||
// 新增
|
||||
backendType: 'openclaw' | 'openfang';
|
||||
switchBackend(type: 'openclaw' | 'openfang'): void;
|
||||
backendType: 'zclaw' | 'zclaw';
|
||||
switchBackend(type: 'zclaw' | 'zclaw'): void;
|
||||
|
||||
// 修改 connect 方法
|
||||
connect: async (url?, token?) => {
|
||||
@@ -175,7 +175,7 @@ interface GatewayStore {
|
||||
|
||||
### Phase 4: 插件迁移 (Week 7-9)
|
||||
|
||||
**目标**: 迁移现有插件到 OpenFang 格式
|
||||
**目标**: 迁移现有插件到 ZCLAW 格式
|
||||
|
||||
| 插件 | 当前格式 | 目标格式 | 复杂度 |
|
||||
|------|----------|----------|--------|
|
||||
@@ -187,11 +187,11 @@ interface GatewayStore {
|
||||
```
|
||||
plugins/
|
||||
├── zclaw-chinese-models/
|
||||
│ ├── openclaw.plugin.json → 删除
|
||||
│ ├── zclaw.plugin.json → 删除
|
||||
│ └── index.ts → 转换为 providers.toml
|
||||
│
|
||||
├── zclaw-feishu/
|
||||
│ └── index.ts → 迁移到 OpenFang channels
|
||||
│ └── index.ts → 迁移到 ZCLAW channels
|
||||
│
|
||||
└── zclaw-ui/
|
||||
└── index.ts → 拆分为 REST 端点
|
||||
@@ -199,30 +199,30 @@ plugins/
|
||||
|
||||
### Phase 5: Tauri 后端 (Week 10-11)
|
||||
|
||||
**目标**: 更新 Rust 后端支持 OpenFang
|
||||
**目标**: 更新 Rust 后端支持 ZCLAW
|
||||
|
||||
**关键文件**: [lib.rs](desktop/src-tauri/src/lib.rs)
|
||||
|
||||
**修改内容**:
|
||||
```rust
|
||||
// 新增 OpenFang 命令
|
||||
// 新增 ZCLAW 命令
|
||||
#[tauri::command]
|
||||
async fn openfang_status() -> Result<OpenFangStatus, String> { ... }
|
||||
async fn zclaw_status() -> Result<ZCLAWStatus, String> { ... }
|
||||
|
||||
#[tauri::command]
|
||||
async fn openfang_start() -> Result<(), String> { ... }
|
||||
async fn zclaw_start() -> Result<(), String> { ... }
|
||||
|
||||
#[tauri::command]
|
||||
async fn openfang_stop() -> Result<(), String> { ... }
|
||||
async fn zclaw_stop() -> Result<(), String> { ... }
|
||||
|
||||
// 新增配置迁移命令
|
||||
#[tauri::command]
|
||||
async fn migrate_to_openfang() -> Result<MigrationResult, String> { ... }
|
||||
async fn migrate_to_zclaw() -> Result<MigrationResult, String> { ... }
|
||||
```
|
||||
|
||||
### Phase 6: UI 增强 (Week 12-14)
|
||||
|
||||
**目标**: 添加 OpenFang 特有的 UI 功能
|
||||
**目标**: 添加 ZCLAW 特有的 UI 功能
|
||||
|
||||
**新增组件**:
|
||||
1. `HandsPanel.tsx` - Hands 管理界面
|
||||
@@ -232,7 +232,7 @@ async fn migrate_to_openfang() -> Result<MigrationResult, String> { ... }
|
||||
|
||||
**修改组件**:
|
||||
1. `SettingsLayout.tsx` - 添加后端切换选项
|
||||
2. `General.tsx` - 添加 OpenFang 配置项
|
||||
2. `General.tsx` - 添加 ZCLAW 配置项
|
||||
|
||||
### Phase 7: 测试验证 (Week 15-16)
|
||||
|
||||
@@ -254,7 +254,7 @@ async fn migrate_to_openfang() -> Result<MigrationResult, String> { ... }
|
||||
|------|------|----------|
|
||||
| 协议不兼容 | 高 | 创建适配层,保持双后端 |
|
||||
| 插件迁移复杂 | 高 | 分阶段迁移,保持 TypeScript 桥接 |
|
||||
| OpenFang 不成熟 | 中 | 持续关注上游,建立社区联系 |
|
||||
| ZCLAW 不成熟 | 中 | 持续关注上游,建立社区联系 |
|
||||
| 配置格式差异 | 中 | 构建自动迁移工具 |
|
||||
|
||||
### 5.2 运营风险
|
||||
@@ -272,11 +272,11 @@ async fn migrate_to_openfang() -> Result<MigrationResult, String> { ... }
|
||||
const USE_OPENFANG = process.env.ZCLAW_USE_OPENFANG === 'true';
|
||||
|
||||
// localStorage 切换
|
||||
const backendType = localStorage.getItem('zclaw-backend') || 'openclaw';
|
||||
const backendType = localStorage.getItem('zclaw-backend') || 'zclaw';
|
||||
|
||||
// 一键回滚
|
||||
function rollbackToOpenClaw() {
|
||||
localStorage.setItem('zclaw-backend', 'openclaw');
|
||||
function rollbackToZCLAW() {
|
||||
localStorage.setItem('zclaw-backend', 'zclaw');
|
||||
window.location.reload();
|
||||
}
|
||||
```
|
||||
@@ -296,7 +296,7 @@ function rollbackToOpenClaw() {
|
||||
- [ ] 使用统计
|
||||
- [ ] 配置管理
|
||||
|
||||
**OpenFang 新特性**:
|
||||
**ZCLAW 新特性**:
|
||||
- [ ] Hand 触发 (Clip, Lead, Researcher 等)
|
||||
- [ ] Workflow 执行
|
||||
- [ ] 16 层安全验证
|
||||
@@ -304,7 +304,7 @@ function rollbackToOpenClaw() {
|
||||
|
||||
### 6.2 性能基准
|
||||
|
||||
| 指标 | OpenClaw 基线 | OpenFang 目标 |
|
||||
| 指标 | ZCLAW 基线 | ZCLAW 目标 |
|
||||
|------|---------------|---------------|
|
||||
| 冷启动 | 5.98s | < 500ms |
|
||||
| 空闲内存 | 394MB | < 100MB |
|
||||
@@ -317,13 +317,13 @@ function rollbackToOpenClaw() {
|
||||
|
||||
| 文件 | 修改类型 | 说明 |
|
||||
|------|----------|------|
|
||||
| [gateway-client.ts](desktop/src/lib/gateway-client.ts) | 重构 | 抽取接口,创建 OpenFang 实现 |
|
||||
| [gateway-client.ts](desktop/src/lib/gateway-client.ts) | 重构 | 抽取接口,创建 ZCLAW 实现 |
|
||||
| [gatewayStore.ts](desktop/src/store/gatewayStore.ts) | 修改 | 添加后端切换逻辑 |
|
||||
| [chatStore.ts](desktop/src/store/chatStore.ts) | 修改 | 适配新事件格式 |
|
||||
| [lib.rs](desktop/src-tauri/src/lib.rs) | 扩展 | 添加 OpenFang 管理命令 |
|
||||
| [lib.rs](desktop/src-tauri/src/lib.rs) | 扩展 | 添加 ZCLAW 管理命令 |
|
||||
| [zclaw-ui/index.ts](plugins/zclaw-ui/index.ts) | 迁移 | 转换为 REST API |
|
||||
| [zclaw-chinese-models/index.ts](plugins/zclaw-chinese-models/index.ts) | 迁移 | 转换为 TOML 配置 |
|
||||
| [zclaw-feishu/index.ts](plugins/zclaw-feishu/index.ts) | 迁移 | 使用 OpenFang channel |
|
||||
| [zclaw-feishu/index.ts](plugins/zclaw-feishu/index.ts) | 迁移 | 使用 ZCLAW channel |
|
||||
|
||||
---
|
||||
|
||||
@@ -331,11 +331,11 @@ function rollbackToOpenClaw() {
|
||||
|
||||
| 阶段 | 周期 | 开始 | 结束 | 关键交付物 |
|
||||
|------|------|------|------|------------|
|
||||
| Phase 1 | 2周 | Week 1 | Week 2 | OpenFangClient 骨架 |
|
||||
| Phase 1 | 2周 | Week 1 | Week 2 | ZCLAWClient 骨架 |
|
||||
| Phase 2 | 2周 | Week 3 | Week 4 | 完整客户端 + 流式处理 |
|
||||
| Phase 3 | 2周 | Week 5 | Week 6 | 更新后的 stores |
|
||||
| Phase 4 | 3周 | Week 7 | Week 9 | 迁移后的插件 |
|
||||
| Phase 5 | 2周 | Week 10 | Week 11 | Rust OpenFang 支持 |
|
||||
| Phase 5 | 2周 | Week 10 | Week 11 | Rust ZCLAW 支持 |
|
||||
| Phase 6 | 3周 | Week 12 | Week 14 | Hands/Workflow UI |
|
||||
| Phase 7 | 2周 | Week 15 | Week 16 | 测试套件,验证报告 |
|
||||
|
||||
@@ -371,14 +371,14 @@ function rollbackToOpenClaw() {
|
||||
| 追求差异化竞争 | ✅ **建议迁移** |
|
||||
| 目标是内容创作者/销售 | ✅ **强烈建议迁移** |
|
||||
| 资源有限 | ⚠️ 渐进评估 |
|
||||
| 追求快速迭代 | ⚠️ 保持 OpenClaw,关注 OpenFang |
|
||||
| 追求快速迭代 | ⚠️ 保持 ZCLAW,关注 ZCLAW |
|
||||
|
||||
### 9.3 下一步行动
|
||||
|
||||
1. **立即**: 确认迁移决策,分配资源
|
||||
2. **Week 1**: 创建 `GatewayBackend` 接口
|
||||
3. **Week 2**: 搭建 OpenFang 开发环境
|
||||
4. **Week 3-4**: 实现 `OpenFangClient`
|
||||
3. **Week 2**: 搭建 ZCLAW 开发环境
|
||||
4. **Week 3-4**: 实现 `ZCLAWClient`
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
- `zclaw-ui` 插件已加载
|
||||
- `zclaw.clones.list`、`zclaw.plugins.status` 可用
|
||||
- Agent 创建、右侧 Agent 面板编辑、保存回刷已验证通过
|
||||
- 快速配置应视为创建/更新 OpenClaw Agent
|
||||
- 快速配置应视为创建/更新 ZCLAW Agent
|
||||
- 右侧 Agent 面板已经是当前 Agent 配置的真实编辑入口
|
||||
|
||||
这意味着“新会话提示词”应该优先挂在 **Agent Profile 真实配置链路** 上,而不是再创建一套独立的本地状态。
|
||||
@@ -98,7 +98,7 @@
|
||||
- 会话级 `sessionPromptDraft`
|
||||
- 首轮消息注入
|
||||
|
||||
后续再根据 Gateway / OpenClaw 演进升级为结构化原生协议。
|
||||
后续再根据 Gateway / ZCLAW 演进升级为结构化原生协议。
|
||||
|
||||
---
|
||||
|
||||
@@ -361,7 +361,7 @@
|
||||
|
||||
## 九、主要风险与处理策略
|
||||
|
||||
### 风险 1:当前 selected Agent 还未完全映射到 OpenClaw runtime agent
|
||||
### 风险 1:当前 selected Agent 还未完全映射到 ZCLAW runtime agent
|
||||
|
||||
影响:
|
||||
|
||||
|
||||
@@ -9,19 +9,19 @@
|
||||
### 前端服务
|
||||
- **URL**: http://localhost:1420
|
||||
- **框架**: React + Vite + Tauri
|
||||
- **代理**: `/api` -> `http://127.0.0.1:50051` (OpenFang 后端)
|
||||
- **代理**: `/api` -> `http://127.0.0.1:50051` (ZCLAW 后端)
|
||||
|
||||
### 启动步骤 (⚠️ 需要先启动服务)
|
||||
|
||||
**步骤 0: 启动服务** (在测试前必须完成)
|
||||
```bash
|
||||
# 终端 1: 启动后端服务
|
||||
cd g:\ZClaw_openfang
|
||||
cd g:\ZClaw_zclaw
|
||||
pnpm dev
|
||||
# 等待后端服务就绪 (看到 "Server started" 或类似消息)
|
||||
|
||||
# 终端 2: 启动前端开发服务器 (新开一个终端)
|
||||
cd g:\ZClaw_openfang\desktop
|
||||
cd g:\ZClaw_zclaw\desktop
|
||||
pnpm dev
|
||||
# 等待 Vite 服务就绪 (看到 "Local: http://localhost:1420")
|
||||
```
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
# ZClaw 改进方案:从"前端 UI 演示"升级为"真正的 OpenClaw Runtime 控制界面"
|
||||
# ZClaw 改进方案:从"前端 UI 演示"升级为"真正的 ZCLAW Runtime 控制界面"
|
||||
|
||||
**日期**: 2026-03-12
|
||||
**状态**: 规划中
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
#### 1. 分身与 Agent 断层
|
||||
- **现状**: 分身存储在 `zclaw-data.json` (ZCLAW 自定义格式)
|
||||
- **问题**: 不映射到 OpenClaw 原生 `agents.list` 配置
|
||||
- **问题**: 不映射到 ZCLAW 原生 `agents.list` 配置
|
||||
- **影响**: 聊天时不所有分身共用 `main` Agent
|
||||
- **表现**: Bootstrap 文件生成了但可能未被 Agent 运行时使用
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
|
||||
#### 2. 设置页是"假状态"
|
||||
- **现状**: 大部分设置只存 localStorage
|
||||
- **问题**: 没有调用 OpenClaw 的 `config.get/config.patch/config.apply`
|
||||
- **影响**: 用户改了设置而 OpenClaw 运行时行为不变
|
||||
- **问题**: 没有调用 ZCLAW 的 `config.get/config.patch/config.apply`
|
||||
- **影响**: 用户改了设置而 ZCLAW 运行时行为不变
|
||||
|
||||
**关键代码位置**:
|
||||
- `desktop/src/components/Settings/*.tsx`: 所有设置页面
|
||||
@@ -43,7 +43,7 @@
|
||||
## P0: 最小可行改进 - 让分身真正工作
|
||||
|
||||
### 目标
|
||||
让分身系统真正映射到 OpenClaw Agent 实例,实现分身隔离(独立 Agent 会话)。
|
||||
让分身系统真正映射到 ZCLAW Agent 实例,实现分身隔离(独立 Agent 会话)。
|
||||
|
||||
### 关键任务
|
||||
|
||||
@@ -74,14 +74,14 @@
|
||||
2. 切换 `agentId`
|
||||
|
||||
### 技术挑战
|
||||
- **OpenClaw Agent 进程管理**: 隐式依赖 Gateway 的 Agent 启动机制
|
||||
- **会话隔离**: 需要验证 OpenClaw 是否支持 `agentId` 参数
|
||||
- **配置同步时机**: 何时同步分身配置到 OpenClaw
|
||||
- **ZCLAW Agent 进程管理**: 隐式依赖 Gateway 的 Agent 启动机制
|
||||
- **会话隔离**: 需要验证 ZCLAW 是否支持 `agentId` 参数
|
||||
- **配置同步时机**: 何时同步分身配置到 ZCLAW
|
||||
|
||||
- **错误处理**: Agent 启动失败时的回退策略
|
||||
|
||||
### 验收标准
|
||||
- [ ] 创建分身后能在 OpenClaw 的 `agents.list` 中看到
|
||||
- [ ] 创建分身后能在 ZCLAW 的 `agents.list` 中看到
|
||||
- [ ] 切换分身后聊天时传递正确的 `agentId`
|
||||
- [ ] 不同分身的会话完全隔离
|
||||
- [ ] Bootstrap 文件被 Agent 正确加载
|
||||
@@ -92,7 +92,7 @@
|
||||
## P1: 设置页 Runtime 化
|
||||
|
||||
### 目标
|
||||
让设置页真正修改 OpenClaw Runtime 配置。
|
||||
让设置页真正修改 ZCLAW Runtime 配置。
|
||||
|
||||
### 关键任务
|
||||
|
||||
@@ -127,7 +127,7 @@ async applyConfig(): Promise<void>
|
||||
- 修改: `patchConfig('agents.defaults.workspace')`
|
||||
|
||||
### 技术挑战
|
||||
- **配置路径**: OpenClaw 配置是嵌套结构,需要正确处理路径
|
||||
- **配置路径**: ZCLAW 配置是嵌套结构,需要正确处理路径
|
||||
- **配置验证**: 修改前验证配置有效性
|
||||
- **错误恢复**: 配置修改失败时的回滚
|
||||
- **UI 反馈**: 配置修改时的加载状态
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
|
||||
### 1.1 核心发现
|
||||
|
||||
基于 `docs/openclaw-deep-dive.md` 的目标与实际代码的对比:
|
||||
基于 `docs/zclaw-deep-dive.md` 的目标与实际代码的对比:
|
||||
|
||||
| 模块 | 目标状态 | 实际状态 | 差距程度 |
|
||||
|------|----------|----------|----------|
|
||||
| **Gateway 连接** | 设备认证 + Challenge 签名 | ✅ 完整实现 | 无差距 |
|
||||
| **分身系统** | 映射到 OpenClaw `agents.list` | ⚠️ 独立存储在 `zclaw-data.json` | **严重** |
|
||||
| **设置页** | OpenClaw Runtime 配置面板 | ⚠️ 大部分是前端本地状态 | **严重** |
|
||||
| **分身系统** | 映射到 ZCLAW `agents.list` | ⚠️ 独立存储在 `zclaw-data.json` | **严重** |
|
||||
| **设置页** | ZCLAW Runtime 配置面板 | ⚠️ 大部分是前端本地状态 | **严重** |
|
||||
| **右侧面板** | 真实 Agent 身份与状态 | ⚠️ 混合真实数据与硬编码值 | **中等** |
|
||||
|
||||
### 1.2 关键差距详解
|
||||
@@ -27,21 +27,21 @@
|
||||
│ ❌ 无同步
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ OpenClaw agents.list (openclaw.json) │
|
||||
│ ZCLAW agents.list (zclaw.json) │
|
||||
│ 只有: [{ id: "main", groupChat: {...} }] │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**后果**:
|
||||
- 所有分身实际共用同一个 `main` Agent
|
||||
- 聊天时不传递 `agentId`,OpenClaw 不知道当前是哪个分身
|
||||
- 聊天时不传递 `agentId`,ZCLAW 不知道当前是哪个分身
|
||||
- Bootstrap 文件(IDENTITY.md, SOUL.md 等)生成了但未被运行时使用
|
||||
|
||||
#### 差距 2:设置页是"假状态"
|
||||
|
||||
| 设置页 | 当前实现 | 应该实现 |
|
||||
|--------|----------|----------|
|
||||
| 模型选择 | 存在 `chatStore.currentModel`(前端状态) | 调用 `config.patch` 修改 OpenClaw 配置 |
|
||||
| 模型选择 | 存在 `chatStore.currentModel`(前端状态) | 调用 `config.patch` 修改 ZCLAW 配置 |
|
||||
| MCP 服务 | 存 `quickConfig`,部分同步到 Gateway | 管理 `plugins.load.paths` |
|
||||
| 技能目录 | 存 `quickConfig` | 管理 `skills.load.extraDirs` |
|
||||
| IM 频道 | 存 `quickConfig`,只显示状态 | 管理 `channels.*` 配置 |
|
||||
@@ -49,7 +49,7 @@
|
||||
| 隐私 | 存 `quickConfig` | 管理 telemetry/优化计划 |
|
||||
|
||||
**缺失的 RPC 方法**:
|
||||
- `config.get` - 读取 OpenClaw 配置
|
||||
- `config.get` - 读取 ZCLAW 配置
|
||||
- `config.patch` - 修改配置
|
||||
- `config.apply` - 热更新配置
|
||||
|
||||
@@ -68,16 +68,16 @@ const defaultUserName = '用户7141'; // 假用户名
|
||||
### 2.1 架构层面的偏差
|
||||
|
||||
**文档期望**:
|
||||
> ZClaw 应该是 OpenClaw Runtime 的控制界面
|
||||
> ZClaw 应该是 ZCLAW Runtime 的控制界面
|
||||
|
||||
**实际实现**:
|
||||
> ZClaw 是一个有自己数据模型的前端应用,与 OpenClaw 是松耦合
|
||||
> ZClaw 是一个有自己数据模型的前端应用,与 ZCLAW 是松耦合
|
||||
|
||||
### 2.2 数据模型的分裂
|
||||
|
||||
```
|
||||
OpenClaw 数据模型:
|
||||
openclaw.json → agents.list → Agent workspace → Bootstrap files
|
||||
ZCLAW 数据模型:
|
||||
zclaw.json → agents.list → Agent workspace → Bootstrap files
|
||||
|
||||
ZClaw 数据模型:
|
||||
zclaw-data.json → clones[] → (独立的) workspace 路径
|
||||
@@ -85,21 +85,21 @@ ZClaw 数据模型:
|
||||
|
||||
两套数据模型没有桥接,导致:
|
||||
1. 分身不能路由到正确的 Agent
|
||||
2. 设置不能影响 OpenClaw 行为
|
||||
2. 设置不能影响 ZCLAW 行为
|
||||
3. Bootstrap 文件与运行时脱节
|
||||
|
||||
---
|
||||
|
||||
## 三、头脑风暴:改进方案
|
||||
|
||||
### 3.1 方案 A:完全对齐 OpenClaw(推荐)
|
||||
### 3.1 方案 A:完全对齐 ZCLAW(推荐)
|
||||
|
||||
**核心思路**:让 ZClaw 分身直接映射到 OpenClaw Agent
|
||||
**核心思路**:让 ZClaw 分身直接映射到 ZCLAW Agent
|
||||
|
||||
```
|
||||
改进后架构:
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ ZClaw 分身 = OpenClaw Agent │
|
||||
│ ZClaw 分身 = ZCLAW Agent │
|
||||
│ │
|
||||
│ clone_1 ↔ agents.list[0] (id: "programmer") │
|
||||
│ clone_2 ↔ agents.list[1] (id: "designer") │
|
||||
@@ -110,9 +110,9 @@ ZClaw 数据模型:
|
||||
```
|
||||
|
||||
**优点**:
|
||||
- 符合 `openclaw-deep-dive.md` 的设计哲学
|
||||
- 符合 `zclaw-deep-dive.md` 的设计哲学
|
||||
- 分身真正有独立人格、记忆、工具权限
|
||||
- 设置页可以直接操作 OpenClaw 配置
|
||||
- 设置页可以直接操作 ZCLAW 配置
|
||||
|
||||
**缺点**:
|
||||
- 改动较大,需要修改多个模块
|
||||
@@ -129,7 +129,7 @@ ZClaw 数据模型:
|
||||
│ zclaw-data.json → clones[] │
|
||||
│ │ │
|
||||
│ ▼ (单向同步) │
|
||||
│ openclaw.json → agents.list (从分身生成) │
|
||||
│ zclaw.json → agents.list (从分身生成) │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
@@ -139,13 +139,13 @@ ZClaw 数据模型:
|
||||
|
||||
**缺点**:
|
||||
- 数据冗余,需要维护同步
|
||||
- 不符合 OpenClaw 的设计哲学
|
||||
- 不符合 ZCLAW 的设计哲学
|
||||
|
||||
### 3.3 方案 C:混合模式
|
||||
|
||||
**核心思路**:
|
||||
- 简单分身:共用 `main` Agent,通过 Bootstrap 文件区分
|
||||
- 高级分身:映射到独立 OpenClaw Agent
|
||||
- 高级分身:映射到独立 ZCLAW Agent
|
||||
|
||||
---
|
||||
|
||||
@@ -153,12 +153,12 @@ ZClaw 数据模型:
|
||||
|
||||
### P0:让分身真正工作(最小可行)
|
||||
|
||||
**目标**:创建分身时同步到 OpenClaw `agents.list`,聊天时传递 `agentId`
|
||||
**目标**:创建分身时同步到 ZCLAW `agents.list`,聊天时传递 `agentId`
|
||||
|
||||
**关键修改**:
|
||||
|
||||
1. **`plugins/zclaw-ui/index.ts`**
|
||||
- `createClone` 时调用 OpenClaw API 添加到 `agents.list`
|
||||
- `createClone` 时调用 ZCLAW API 添加到 `agents.list`
|
||||
- `deleteClone` 时从 `agents.list` 移除
|
||||
- 新增 `zclaw.agents.sync` 方法
|
||||
|
||||
@@ -172,17 +172,17 @@ ZClaw 数据模型:
|
||||
- `sendMessage` 时传递 `currentAgent.id` 作为 `agentId`
|
||||
|
||||
4. **新增 Gateway RPC**
|
||||
- `zclaw.config.get` - 读取 OpenClaw 配置
|
||||
- `zclaw.config.get` - 读取 ZCLAW 配置
|
||||
- `zclaw.config.patch` - 修改配置
|
||||
|
||||
**验收标准**:
|
||||
- [ ] 创建分身后,`openclaw.json` 的 `agents.list` 包含新 Agent
|
||||
- [ ] 创建分身后,`zclaw.json` 的 `agents.list` 包含新 Agent
|
||||
- [ ] 切换分身后,聊天请求携带正确的 `agentId`
|
||||
- [ ] 每个分身有独立的对话上下文
|
||||
|
||||
### P1:设置页 Runtime 化
|
||||
|
||||
**目标**:设置修改直接影响 OpenClaw Runtime
|
||||
**目标**:设置修改直接影响 ZCLAW Runtime
|
||||
|
||||
**关键修改**:
|
||||
|
||||
@@ -201,7 +201,7 @@ ZClaw 数据模型:
|
||||
- 配置变更后显示"需要重启"提示(如需要)
|
||||
|
||||
**验收标准**:
|
||||
- [ ] 模型选择后,`openclaw.json` 的 `agents.defaults.model` 更新
|
||||
- [ ] 模型选择后,`zclaw.json` 的 `agents.defaults.model` 更新
|
||||
- [ ] 添加技能目录后,`skills.load.extraDirs` 更新
|
||||
- [ ] Gateway 重启后配置生效
|
||||
|
||||
@@ -242,7 +242,7 @@ ZClaw 数据模型:
|
||||
| `desktop/src/components/CloneManager.tsx` | 显示同步状态 |
|
||||
| `desktop/src/components/RightPanel.tsx` | 显示真实 Agent 数据 |
|
||||
| `desktop/src/components/Settings/*.tsx` | 改造为 Runtime 配置面板 |
|
||||
| `config/openclaw.default.json` | 更新默认 Agent 模板 |
|
||||
| `config/zclaw.default.json` | 更新默认 Agent 模板 |
|
||||
|
||||
---
|
||||
|
||||
@@ -251,7 +251,7 @@ ZClaw 数据模型:
|
||||
| 风险 | 缓解措施 |
|
||||
|------|----------|
|
||||
| 数据迁移复杂 | 提供迁移脚本,保留 `zclaw-data.json` 作为备份 |
|
||||
| OpenClaw 版本兼容 | 检测 OpenClaw 版本,低版本降级到兼容模式 |
|
||||
| ZCLAW 版本兼容 | 检测 ZCLAW 版本,低版本降级到兼容模式 |
|
||||
| 破坏现有功能 | 灰度发布,支持回滚 |
|
||||
| 性能下降 | 懒加载 Agent 配置,缓存 RPC 结果 |
|
||||
|
||||
@@ -259,12 +259,12 @@ ZClaw 数据模型:
|
||||
|
||||
## 七、确认的方案
|
||||
|
||||
**选择:方案 A - 完全对齐 OpenClaw**
|
||||
**选择:方案 A - 完全对齐 ZCLAW**
|
||||
|
||||
理由:
|
||||
1. 符合 `openclaw-deep-dive.md` 的设计哲学
|
||||
1. 符合 `zclaw-deep-dive.md` 的设计哲学
|
||||
2. 分身真正有独立人格、记忆、工具权限
|
||||
3. 设置页可以直接操作 OpenClaw 配置
|
||||
3. 设置页可以直接操作 ZCLAW 配置
|
||||
4. 长期维护成本最低
|
||||
|
||||
---
|
||||
@@ -277,7 +277,7 @@ ZClaw 数据模型:
|
||||
|
||||
**修改点**:
|
||||
1. `createClone` 方法增加:
|
||||
- 调用 OpenClaw 内部 API 将分身添加到 `agents.list`
|
||||
- 调用 ZCLAW 内部 API 将分身添加到 `agents.list`
|
||||
- 设置 `agentId` 字段关联分身与 Agent
|
||||
2. `deleteClone` 方法增加:
|
||||
- 从 `agents.list` 移除对应 Agent
|
||||
@@ -315,7 +315,7 @@ ZClaw 数据模型:
|
||||
**文件**: `desktop/src/lib/gateway-client.ts` + `plugins/zclaw-ui/index.ts`
|
||||
|
||||
**新增方法**:
|
||||
- `zclaw.config.get` - 读取 OpenClaw 配置
|
||||
- `zclaw.config.get` - 读取 ZCLAW 配置
|
||||
- `zclaw.config.patch` - 修改配置(不重启)
|
||||
- `zclaw.config.apply` - 热更新配置(如需重启)
|
||||
|
||||
@@ -335,7 +335,7 @@ ZClaw 数据模型:
|
||||
|
||||
### P0 完成标准
|
||||
|
||||
- [ ] 创建分身后,`~/.openclaw/openclaw.json` 的 `agents.list` 包含新 Agent
|
||||
- [ ] 创建分身后,`~/.zclaw/zclaw.json` 的 `agents.list` 包含新 Agent
|
||||
- [ ] 删除分身后,对应 Agent 从 `agents.list` 移除
|
||||
- [ ] 切换分身后,聊天请求携带正确的 `agentId`
|
||||
- [ ] 每个分身有独立的对话上下文(不串聊)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
**目的**: 对 ZCLAW 系统进行全面的代码层面现状分析,识别偏离点、潜在风险,制定分阶段演化路线图。
|
||||
|
||||
**当前状态**:
|
||||
- OpenFang v0.4.0 + ZClaw Desktop v0.2.0
|
||||
- ZCLAW v0.4.0 + ZClaw Desktop v0.2.0
|
||||
- API 覆盖率: 93% (63/68 端点)
|
||||
- UI 完成度: 100% (30/30 组件)
|
||||
- Skills 定义: 68 个已完成
|
||||
@@ -24,7 +24,7 @@
|
||||
### 1.1 项目结构
|
||||
|
||||
```
|
||||
ZClaw_openfang/
|
||||
ZClaw_zclaw/
|
||||
├── desktop/ # Tauri 桌面应用 (主要代码)
|
||||
│ ├── src/
|
||||
│ │ ├── components/ # React UI (46 组件)
|
||||
@@ -35,7 +35,7 @@ ZClaw_openfang/
|
||||
│ └── src-tauri/ # Rust 后端
|
||||
├── skills/ # 68 个 SKILL.md 定义
|
||||
├── hands/ # 7 个 HAND.toml 配置
|
||||
├── config/ # OpenFang TOML 配置
|
||||
├── config/ # ZCLAW TOML 配置
|
||||
├── tests/ # Vitest 测试
|
||||
└── docs/ # 文档
|
||||
```
|
||||
@@ -43,7 +43,7 @@ ZClaw_openfang/
|
||||
### 1.2 核心数据流
|
||||
|
||||
```
|
||||
React UI → Zustand Store → GatewayClient → OpenFang Kernel (端口 50051)
|
||||
React UI → Zustand Store → GatewayClient → ZCLAW Kernel (端口 50051)
|
||||
↓
|
||||
WebSocket (ws://127.0.0.1:50051/ws)
|
||||
REST API (http://127.0.0.1:50051/api/*)
|
||||
@@ -541,7 +541,7 @@ pnpm audit
|
||||
|
||||
### 手动验证
|
||||
|
||||
1. 连接 OpenFang (端口 50051)
|
||||
1. 连接 ZCLAW (端口 50051)
|
||||
2. 发送消息并验证流式返回
|
||||
3. 触发 Hand 并验证执行
|
||||
4. 保存配置并验证持久化
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
|
||||
### 1.1 项目定位
|
||||
|
||||
ZCLAW 是一个**基于 OpenClaw 框架的定制化中文 AI 助手平台**,对标 AutoClaw (智谱) 和 QClaw (腾讯)。
|
||||
ZCLAW 是一个**基于 ZCLAW 框架的定制化中文 AI 助手平台**,对标 AutoClaw (智谱) 和 QClaw (腾讯)。
|
||||
|
||||
**核心价值主张**:
|
||||
```
|
||||
OpenClaw Gateway (成熟执行引擎)
|
||||
ZCLAW Gateway (成熟执行引擎)
|
||||
↕ WebSocket Protocol v3
|
||||
ZCLAW Tauri App (轻量桌面 UI)
|
||||
+ 中文模型 Provider (GLM/Qwen/Kimi/MiniMax)
|
||||
@@ -22,15 +22,15 @@ ZCLAW Tauri App (轻量桌面 UI)
|
||||
| 阶段 | 架构方向 | 状态 |
|
||||
|------|----------|------|
|
||||
| v1 | 自建 AI Agent 框架 (src/core/*) | 🗑️ 已归档 |
|
||||
| v2 | 基于 OpenClaw + Tauri | ✅ 当前方向 |
|
||||
| v2 | 基于 ZCLAW + Tauri | ✅ 当前方向 |
|
||||
|
||||
**架构转向原因**:v1 偏离初衷约 75%,重复造轮子而非复用 OpenClaw 生态。
|
||||
**架构转向原因**:v1 偏离初衷约 75%,重复造轮子而非复用 ZCLAW 生态。
|
||||
|
||||
### 1.3 技术栈一览
|
||||
|
||||
| 层级 | 技术 | 版本 |
|
||||
|------|------|------|
|
||||
| 执行引擎 | OpenClaw Gateway | Node.js daemon |
|
||||
| 执行引擎 | ZCLAW Gateway | Node.js daemon |
|
||||
| 桌面壳 | Tauri | 2.0 |
|
||||
| 前端框架 | React | 19.1.0 |
|
||||
| 状态管理 | Zustand | 5.0.11 |
|
||||
@@ -51,7 +51,7 @@ ZCLAW Tauri App (轻量桌面 UI)
|
||||
| Phase 2 | 前端 Settings 页面体系 (10页) | ✅ 100% |
|
||||
| Phase 3 | 聊天对接 + 分身管理 | ✅ 100% |
|
||||
| Phase 3.5 | 前端质量提升 | ✅ 100% |
|
||||
| Phase 4 | OpenClaw 真实集成测试 | ⏳ 待开始 |
|
||||
| Phase 4 | ZCLAW 真实集成测试 | ⏳ 待开始 |
|
||||
| Phase 5 | Tauri Rust sidecar + 打包发布 | 📋 规划中 |
|
||||
|
||||
### 2.2 代码统计
|
||||
@@ -74,11 +74,11 @@ ZCLAW Tauri App (轻量桌面 UI)
|
||||
|
||||
## 三、核心模块深度分析
|
||||
|
||||
### 3.1 OpenClaw Gateway 集成层 (src/gateway/)
|
||||
### 3.1 ZCLAW Gateway 集成层 (src/gateway/)
|
||||
|
||||
#### manager.ts - 子进程管理器
|
||||
```
|
||||
功能: 管理 OpenClaw Gateway 子进程生命周期
|
||||
功能: 管理 ZCLAW Gateway 子进程生命周期
|
||||
特性:
|
||||
- 启动/停止 Gateway daemon
|
||||
- 健康检查 (HTTP 探测)
|
||||
@@ -88,7 +88,7 @@ ZCLAW Tauri App (轻量桌面 UI)
|
||||
|
||||
#### ws-client.ts - WebSocket 客户端
|
||||
```
|
||||
功能: 实现 OpenClaw Gateway Protocol v3
|
||||
功能: 实现 ZCLAW Gateway Protocol v3
|
||||
特性:
|
||||
- 三步握手 (challenge → connect → hello-ok)
|
||||
- 请求/响应模式 (30秒超时)
|
||||
@@ -110,7 +110,7 @@ ZCLAW Tauri App (轻量桌面 UI)
|
||||
|
||||
#### @zclaw/feishu - 飞书 Channel Plugin
|
||||
```
|
||||
功能: 将飞书注册为 OpenClaw 消息渠道
|
||||
功能: 将飞书注册为 ZCLAW 消息渠道
|
||||
特性:
|
||||
- OAuth tenant_access_token 管理 (2h 有效期, 1.5h 刷新)
|
||||
- 文本/富文本消息发送
|
||||
@@ -154,14 +154,14 @@ ZCLAW Tauri App (轻量桌面 UI)
|
||||
|
||||
| 模块 | 状态 | 替代方案 |
|
||||
|------|------|----------|
|
||||
| remote-execution/ | 🗑️ | OpenClaw 工具执行 |
|
||||
| task-orchestration/ | 🗑️ | OpenClaw Agent Loop |
|
||||
| multi-agent/ | 🗑️ | OpenClaw agents.list |
|
||||
| memory/ | 🗑️ | OpenClaw Memory Plugin |
|
||||
| proactive/ | 🗑️ | OpenClaw Heartbeat Engine |
|
||||
| im/ | 🗑️ | OpenClaw Channel 系统 |
|
||||
| db/ | 🗑️ | OpenClaw 自带 SQLite |
|
||||
| config/ | 🗑️ | OpenClaw 配置系统 |
|
||||
| remote-execution/ | 🗑️ | ZCLAW 工具执行 |
|
||||
| task-orchestration/ | 🗑️ | ZCLAW Agent Loop |
|
||||
| multi-agent/ | 🗑️ | ZCLAW agents.list |
|
||||
| memory/ | 🗑️ | ZCLAW Memory Plugin |
|
||||
| proactive/ | 🗑️ | ZCLAW Heartbeat Engine |
|
||||
| im/ | 🗑️ | ZCLAW Channel 系统 |
|
||||
| db/ | 🗑️ | ZCLAW 自带 SQLite |
|
||||
| config/ | 🗑️ | ZCLAW 配置系统 |
|
||||
| api/ | 🗑️ | WebSocket + Tauri Commands |
|
||||
|
||||
---
|
||||
@@ -171,7 +171,7 @@ ZCLAW Tauri App (轻量桌面 UI)
|
||||
### 4.1 架构优势 💪
|
||||
|
||||
1. **复用成熟生态**
|
||||
- OpenClaw 28万+ Stars,工具执行/Skills/MCP/心跳引擎成熟
|
||||
- ZCLAW 28万+ Stars,工具执行/Skills/MCP/心跳引擎成熟
|
||||
- 避免重复造轮子,专注差异化价值
|
||||
|
||||
2. **Tauri 轻量化**
|
||||
@@ -189,7 +189,7 @@ ZCLAW Tauri App (轻量桌面 UI)
|
||||
|
||||
### 4.2 潜在风险 ⚠️
|
||||
|
||||
1. **OpenClaw 依赖**
|
||||
1. **ZCLAW 依赖**
|
||||
- 版本兼容性风险
|
||||
- 文档/社区支持限制
|
||||
|
||||
@@ -261,7 +261,7 @@ ZCLAW Tauri App (轻量桌面 UI)
|
||||
|
||||
#### 短期 (1-2周)
|
||||
1. **完成 Phase 4 集成测试**
|
||||
- 安装并验证 OpenClaw
|
||||
- 安装并验证 ZCLAW
|
||||
- 测试 Gateway 连接
|
||||
- 验证插件注册
|
||||
- 端到端消息收发测试
|
||||
@@ -311,7 +311,7 @@ ZCLAW Tauri App (轻量桌面 UI)
|
||||
|
||||
| 维度 | AutoClaw (智谱) | QClaw (腾讯) | ZCLAW |
|
||||
|------|----------------|--------------|-------|
|
||||
| 基础框架 | OpenClaw | OpenClaw | OpenClaw |
|
||||
| 基础框架 | ZCLAW | ZCLAW | ZCLAW |
|
||||
| IM 渠道 | 飞书 | 微信+QQ | 飞书 (计划微信/QQ) |
|
||||
| 桌面框架 | 自研 | Electron | Tauri 2.0 |
|
||||
| 模型支持 | GLM 系列 | 腾讯混元 | GLM/Qwen/Kimi/MiniMax |
|
||||
@@ -331,16 +331,16 @@ ZCLAW Tauri App (轻量桌面 UI)
|
||||
### Phase 4: 真实集成测试 (当前优先级)
|
||||
|
||||
```
|
||||
[ ] 1. 安装 OpenClaw
|
||||
- Windows: iwr -useb https://openclaw.ai/install.ps1 | iex
|
||||
- 验证: openclaw --version
|
||||
[ ] 1. 安装 ZCLAW
|
||||
- Windows: iwr -useb https://zclaw.ai/install.ps1 | iex
|
||||
- 验证: zclaw --version
|
||||
|
||||
[ ] 2. 配置 Gateway
|
||||
- 运行 openclaw configure
|
||||
- 运行 zclaw configure
|
||||
- 填入 API Key (智谱/通义/Kimi 任选)
|
||||
|
||||
[ ] 3. 启动 Gateway
|
||||
- openclaw gateway
|
||||
- zclaw gateway
|
||||
- 验证: curl http://127.0.0.1:18789/health
|
||||
|
||||
[ ] 4. 注册 ZCLAW 插件
|
||||
@@ -371,7 +371,7 @@ ZCLAW Tauri App (轻量桌面 UI)
|
||||
|
||||
## 七、总结
|
||||
|
||||
ZCLAW 是一个定位清晰的 OpenClaw 定制化项目,通过复用成熟生态 + Tauri 轻量桌面 + 中文优先策略,有望成为开源领域的 AutoClaw/QClaw 替代方案。
|
||||
ZCLAW 是一个定位清晰的 ZCLAW 定制化项目,通过复用成熟生态 + Tauri 轻量桌面 + 中文优先策略,有望成为开源领域的 AutoClaw/QClaw 替代方案。
|
||||
|
||||
**核心建议**:
|
||||
1. 🎯 聚焦 Phase 4 集成测试,打通端到端流程
|
||||
@@ -389,25 +389,25 @@ ZCLAW 是一个定位清晰的 OpenClaw 定制化项目,通过复用成熟生
|
||||
|
||||
### 8.1 Phase 4: 真实集成测试 🔌
|
||||
|
||||
**目标**: 打通 OpenClaw Gateway ↔ ZCLAW Tauri 端到端流程
|
||||
**目标**: 打通 ZCLAW Gateway ↔ ZCLAW Tauri 端到端流程
|
||||
|
||||
**任务清单**:
|
||||
```
|
||||
[ ] 安装 OpenClaw CLI
|
||||
- Windows: iwr -useb https://openclaw.ai/install.ps1 | iex
|
||||
- 验证: openclaw --version
|
||||
[ ] 安装 ZCLAW CLI
|
||||
- Windows: iwr -useb https://zclaw.ai/install.ps1 | iex
|
||||
- 验证: zclaw --version
|
||||
|
||||
[ ] 配置 Gateway
|
||||
- 运行 openclaw configure
|
||||
- 运行 zclaw configure
|
||||
- 配置 API Key (智谱 GLM 作为首选)
|
||||
|
||||
[ ] 启动 Gateway daemon
|
||||
- openclaw gateway --port 18789
|
||||
- zclaw gateway --port 18789
|
||||
- 验证: curl http://127.0.0.1:18789/health
|
||||
|
||||
[ ] 注册 ZCLAW 插件
|
||||
- pnpm setup (执行 scripts/setup.ts)
|
||||
- 验证插件加载: openclaw plugins list
|
||||
- 验证插件加载: zclaw plugins list
|
||||
|
||||
[ ] 前端连接测试
|
||||
- cd desktop && pnpm tauri dev
|
||||
@@ -432,15 +432,15 @@ ZCLAW 是一个定位清晰的 OpenClaw 定制化项目,通过复用成熟生
|
||||
**待处理目录**:
|
||||
| 目录 | 文件数 | 建议操作 |
|
||||
|------|--------|----------|
|
||||
| src/core/remote-execution/ | ~4 | 🗑️ 删除 (OpenClaw 替代) |
|
||||
| src/core/task-orchestration/ | ~3 | 🗑️ 删除 (OpenClaw 替代) |
|
||||
| src/core/multi-agent/ | ~8 | 🗑️ 删除 (OpenClaw 替代) |
|
||||
| src/core/memory/ | ~2 | 🗑️ 删除 (OpenClaw 替代) |
|
||||
| src/core/proactive/ | ~2 | 🗑️ 删除 (OpenClaw 替代) |
|
||||
| src/core/remote-execution/ | ~4 | 🗑️ 删除 (ZCLAW 替代) |
|
||||
| src/core/task-orchestration/ | ~3 | 🗑️ 删除 (ZCLAW 替代) |
|
||||
| src/core/multi-agent/ | ~8 | 🗑️ 删除 (ZCLAW 替代) |
|
||||
| src/core/memory/ | ~2 | 🗑️ 删除 (ZCLAW 替代) |
|
||||
| src/core/proactive/ | ~2 | 🗑️ 删除 (ZCLAW 替代) |
|
||||
| src/core/ai/ | ~6 | ⚠️ 评估 (可能复用 Provider) |
|
||||
| src/im/ | ~4 | 🗑️ 删除 (OpenClaw 替代) |
|
||||
| src/db/ | ~3 | 🗑️ 删除 (OpenClaw 替代) |
|
||||
| src/config/ | ~2 | 🗑️ 删除 (OpenClaw 替代) |
|
||||
| src/im/ | ~4 | 🗑️ 删除 (ZCLAW 替代) |
|
||||
| src/db/ | ~3 | 🗑️ 删除 (ZCLAW 替代) |
|
||||
| src/config/ | ~2 | 🗑️ 删除 (ZCLAW 替代) |
|
||||
| src/api/ | ~1 | 🗑️ 删除 (WebSocket 替代) |
|
||||
| src/app.ts | 1 | 🗑️ 删除 |
|
||||
| src/index.ts | 1 | 🔄 重写为简单入口 |
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
使用 3 个并行 Explore 代理深度分析:
|
||||
- 前端组件和 UI 状态管理
|
||||
- OpenFang 通信层实现
|
||||
- ZCLAW 通信层实现
|
||||
- 配置和技能系统
|
||||
|
||||
### 1.3 实施方法
|
||||
@@ -55,7 +55,7 @@
|
||||
|
||||
| 来源 | 端口 | 状态 |
|
||||
|------|------|------|
|
||||
| **实际 OpenFang** | 50051 | 代码正确适配 |
|
||||
| **实际 ZCLAW** | 50051 | 代码正确适配 |
|
||||
| **文档** | 4200 | 需更新 |
|
||||
| **FALLBACK_GATEWAY_URLS** | 50051, 4200 | 回退列表包含两个 |
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
|
||||
### Phase 1: 功能对齐 ✅ 完成
|
||||
|
||||
**目标**: 连接所有 UI 组件到真实 OpenFang 能力
|
||||
**目标**: 连接所有 UI 组件到真实 ZCLAW 能力
|
||||
|
||||
| 任务 | 状态 | 文件 |
|
||||
|------|------|------|
|
||||
@@ -95,7 +95,7 @@
|
||||
|
||||
### Phase 3: 扩展和增强 ✅ 完成
|
||||
|
||||
**目标**: 完善 OpenFang 特有功能的 UI
|
||||
**目标**: 完善 ZCLAW 特有功能的 UI
|
||||
|
||||
| 任务 | 状态 | 文件 |
|
||||
|------|------|------|
|
||||
@@ -227,7 +227,7 @@
|
||||
```
|
||||
|
||||
2. **手动验证**
|
||||
- 连接 OpenFang (端口 50051)
|
||||
- 连接 ZCLAW (端口 50051)
|
||||
- 验证数据流真实连接
|
||||
- 检查 localStorage 使用情况
|
||||
- 验证设置持久化
|
||||
|
||||
Reference in New Issue
Block a user