Files
zclaw_openfang/docs/archive/openclaw-legacy/deviation-analysis.md
iven 62f182785f docs: create comprehensive system analysis report
Replace partial alignment analysis with full SYSTEM_ANALYSIS.md containing:

- Complete deviation analysis (API 60%, UI 80%, Hands 43%, Skills 7%)
- Root cause analysis of gaps
- 5-phase evolution roadmap with clear milestones
- Technical debt inventory
- Acceptance criteria per phase

Key findings:
- Session management API completely missing (0%)
- 4/7 Hands missing TOML configurations
- Workflow editor/delete/create using placeholder alerts
- HandTaskPanel using hardcoded mock data

Updates:
- Archive README updated with clear pointer to new report
- deviation-analysis.md marked as deprecated with comparison table
- knowledge-base README updated to reference SYSTEM_ANALYSIS.md
- Removed partial openfang-alignment-analysis.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 00:01:39 +08:00

340 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ZCLAW 偏离分析报告
> ⚠️ **此报告已废弃**
>
> 本报告基于 OpenClaw 分析,项目已迁移到 OpenFang。
>
> **请查看最新的系统分析报告**
> - **[../SYSTEM_ANALYSIS.md](../SYSTEM_ANALYSIS.md)** - 包含完整的偏离分析、API 覆盖率、演化路线图
>
> 关键数据对比:
>
> | 指标 | 本报告 (OpenClaw) | 最新报告 (OpenFang) |
> |------|-------------------|---------------------|
> | 偏离程度 | 75% | 20% |
> | API 覆盖率 | 未统计 | 60% (37/62) |
> | UI 完成度 | 未统计 | 80% (20/25) |
> | Hands 配置 | 0% | 43% (3/7) |
**日期**: 2026-03-11
**目的**: 对标 QClaw / AutoClaw / OpenClaw分析当前项目是否偏离初衷
**状态**: 📦 已废弃 - 请查看 [SYSTEM_ANALYSIS.md](../SYSTEM_ANALYSIS.md)
---
## 迁移说明
项目已于 2026-03-14 从 OpenClaw 迁移到 OpenFang原因
1. 架构统一为 Rust
2. 性能大幅提升(启动 180ms vs 5.98s,内存 40MB vs 394MB
3. 安全性更强16 层纵深防御 vs 3 层)
4. OpenFang 本身基于 OpenClaw 开发,功能兼容
以下为原报告内容,仅供历史参考。
---
## 一、三大产品深度理解
### 1. OpenClaw — 开源核心 (GitHub 28万+ Stars)
OpenClaw 是一个**本地优先的 AI 代理平台**,不是简单的聊天机器人,而是一个能真正操控电脑执行任务的系统。
**核心架构:**
| 组件 | 说明 |
|------|------|
| **Gateway** | Node.js 进程,是整个系统的**核心控制面板**,管理 sessions、channels、tools、events |
| **Channel Plugins** | IM 渠道适配器 — WhatsApp, Telegram, Slack, Discord, iMessage 等 10+ 种 |
| **心跳引擎 (Heartbeat)** | 定期唤醒,检查 HEARTBEAT.md 任务清单,**主动**执行预定任务 |
| **持久化身份** | SOUL.md(性格)、MEMORY.md(长期记忆)、AGENTS.md(角色配置) — **纯文本Git 可控** |
| **Skills 系统** | SKILL.md 文件 + 脚本三级渐进式披露100+ 预配置技能 |
| **MCP 支持** | 模型上下文协议JSON-RPC 2.0,扩展外部工具 (File System, Web Fetch, DB 等) |
| **核心工具** | bash(命令行)、read/write(文件系统)、browser(浏览器控制) |
| **插件体系** | Channel / Memory / Tool / Provider 四类插件 |
| **存储** | 默认 SQLite支持向量存储、知识图谱 |
**关键设计哲学:**
- **本地优先**: 所有数据和执行都在本地
- **透明可控**: 纯文本配置,用户能完全掌控 AI 的"大脑"
- **执行而非建议**: 不是只出主意,而是真正动手做事
- **自我进化**: Agent 可修改自身指令、改进工作流
---
### 2. QClaw — 腾讯产品化封装
QClaw **不是**腾讯从零重写的框架,而是**围绕 OpenClaw 做的一次产品化封装**
**核心卖点:**
- **一键安装**: 下载即用,无需配置环境
- **微信 + QQ 双端接入**: 腾讯核心优势,在微信/QQ中直接对话指挥电脑
- **内置国产模型**: Kimi, MiniMax, GLM, DeepSeek + 自定义模型
- **5000+ Skills 生态**: ClawHub、GitHub 等丰富生态
- **持续记忆**: 记住偏好和上下文
- **本地部署**: 操控文件、浏览器、邮件
**使用场景:**
- 远程操作电脑文件/网页
- 社媒自动运营
- GitHub 项目自动开发
- 学术论文自动整理
- 每日天气定时提醒
---
### 3. AutoClaw — 智谱 AutoGLM 定制版 (v0.2.12)
基于 OpenClaw 的智谱定制版,核心是**飞书集成**。
**从 13 张界面截图提取的完整功能架构:**
#### 主界面布局
- **左侧栏 3 个 Tab**: 分身 / IM频道 / 定时任务
- **中间**: 聊天区域 + 发送框 + 模型选择器 (glm-5)
- **右侧**: 代码/文件区域 + Agent 面板
#### 设置系统 (10 个页面)
| 页面 | 功能 |
|------|------|
| 通用 | 账号安全、主题(白色/Neon Noir)、开机自启、显示工具调用 |
| 用量统计 | 会话数/消息数/总Token按模型分类统计 |
| 积分详情 | 积分总量、消耗/获得明细 |
| **模型与API** | 内置模型(Pony-Alpha-2) + 自定义模型(glm-5/qwen3.5-plus/kimi-k2.5/MiniMax-M2.5) + **Gateway URL** (ws://127.0.0.1:18789) |
| **MCP 服务** | File System / Web Fetch + 快速添加(Brave Search, SQLite) |
| **技能** | SKILL.md 文件管理,额外技能目录 (~/.opencode/skills) |
| **IM 频道** | 添加/管理频道,快速添加飞书 |
| **工作区** | 项目目录、文件访问限制、自动保存上下文、文件监听、从OpenClaw迁移 |
| 数据与隐私 | 本地数据路径、优化计划 |
| 提交反馈 / 关于 | 反馈表单、版本信息 |
#### 核心概念
- **分身 (Clone)**: 每个分身是独立的 Agent 实例,有自己的配置和对话历史
- **快速配置**: 名字、角色、昵称、使用场景(编程/写作/产品/数据分析/设计/运维/研发/营销)
- **Gateway WebSocket 连接**: ws://127.0.0.1:18789 — 这是 OpenClaw Gateway 的连接方式
- **工作区**: 默认 ~/.openclaw-autoclaw/workspace文件访问沙盒
---
## 二、当前 ZCLAW 项目现状
### 已有的代码 (37 文件, 2378 行)
| 模块 | 内容 |
|------|------|
| src/config/ | Zod 配置管理 |
| src/utils/ | Logger + ID 生成器 |
| src/db/ | SQLite Schema (8表) + BaseDAO |
| src/core/ai/ | 智谱GLM + OpenAI Provider + AIManager |
| src/core/multi-agent/ | MessageBus + BaseAgent + Planner/Executor/Combiner + Orchestrator |
| src/core/remote-execution/ | 并发队列 + 任务管理 |
| src/core/task-orchestration/ | 拓扑排序 + 计划执行 |
| src/core/memory/ | 内存记忆 + 用户画像 |
| src/core/proactive/ | node-cron 定时任务 |
| src/im/ | IM Gateway + 飞书适配器 |
| src/api/ | ZClawAPI for Tauri |
| src/app.ts | ZClawApp 主类 |
| desktop/ | Tauri + React 三栏布局 |
---
## 三、偏离分析 — 核心问题
### 🔴 严重偏离
#### 1. 架构根本性偏离 — 没有基于 OpenClaw
**问题**: 项目初衷是"学习 QClaw 跟 AutoClaw打造结合 Tauri + OpenClaw 的系统",但当前代码**完全没有 OpenClaw 的影子**。
- OpenClaw 的核心是 **Gateway** (Node.js 进程 + WebSocket)
- QClaw 和 AutoClaw 都是**围绕 OpenClaw 做封装**
- 我们的 ZCLAW 却从零自己发明了一套架构 (RemoteExecutionEngine / TaskOrchestrator / AgentOrchestrator)
- 这些自创系统**不是 OpenClaw 的概念**,等于在重造轮子
**应该**: 直接集成 OpenClaw Gateway或至少学习其架构模式来构建
#### 2. Skills 系统完全缺失
**问题**: Skills 是 OpenClaw/QClaw/AutoClaw 的**核心扩展机制**。
- OpenClaw 有 100+ 预配置技能
- QClaw 有 5000+ Skills 生态
- AutoClaw 截图显示有完整的技能管理界面
- Skills 基于 SKILL.md 文件,三级渐进式披露,解决 Token 成本
- 我们的 `src/skills/` 目录是**空的**,完全没有实现
#### 3. MCP (模型上下文协议) 完全缺失
**问题**: MCP 是现代 AI Agent 的标准工具扩展协议。
- AutoClaw 内置: File System、Web Fetch可快速添加 Brave Search、SQLite
- OpenClaw 原生支持 MCP
- 我们完全没有 MCP 支持
#### 4. 工具执行层是"假的"
**问题**: OpenClaw 能**真正**操控电脑 — 执行 Shell 命令、读写文件、控制浏览器。
- 我们的 BrowserAgent / FileAgent / TerminalAgent 实际上是**用 AI 模拟输出结果**
- 没有任何真实的命令执行、文件操作或浏览器控制能力
- 用户期望"操控电脑完成任务",我们只能"假装操作然后编结果"
---
### 🟡 方向偏离
#### 5. "多Agent协作" vs "分身(Clone)"概念错位
**问题**:
- AutoClaw 的"分身"是**独立的 Agent 实例**,每个分身有自己的名字、角色、记忆、对话
- 我们的"多 Agent"是面向**任务拆解**的 (Planner → Executor → Combiner)
- 这是两种完全不同的概念
**AutoClaw 的分身**: 像是雇了多个助手,每个负责不同领域
**我们的多 Agent**: 像是一个任务流水线Planner 规划 → Executor 执行 → Combiner 汇总
#### 6. 持久化方式偏离
**问题**:
- OpenClaw 用**纯文本文件**: SOUL.md, MEMORY.md, AGENTS.md — 透明、Git 可控
- 我们用 SQLite 数据库表
- 数据库不是错的,但缺少 OpenClaw 的**透明可控**理念
- 用户无法像 Git 那样管理 AI 的"大脑"
#### 7. 心跳引擎缺失
**问题**:
- OpenClaw 的核心特色是**心跳引擎** — 定期唤醒,检查 HEARTBEAT.md主动执行任务
- 这是"主动服务"的真正含义
- 我们的 ProactiveServiceSystem 只是简单的 node-cron 定时器包装
#### 8. 工作区 (Workspace) 概念缺失
**问题**:
- AutoClaw 有完整的工作区管理: 项目目录、文件访问沙盒、上下文自动保存、文件监听
- 这是 Agent 安全执行的基础
- 我们完全没有工作区概念
---
### 🟢 方向正确
| 功能 | 评价 |
|------|------|
| 左侧栏三个 Tab (分身/IM频道/定时任务) | ✅ 与 AutoClaw 布局一致 |
| 多模型 Provider 支持 | ✅ 但需加 Gateway WebSocket 连接 |
| IM 网关 + 飞书适配器 | ✅ 但应更像 OpenClaw Channel Plugin |
| 定时任务 | ✅ 需升级为心跳引擎模式 |
| SQLite 数据库 | ✅ OpenClaw 也用 SQLite但需补充纯文本文件 |
| Tauri 桌面应用 | ✅ 与目标一致 (QClaw用Electron, 我们用Tauri更好) |
| 配置管理 (.env) | ✅ 需要但方向对 |
---
## 四、偏离程度评估
```
整体偏离程度: ████████░░ 75%
```
**核心原因**: 项目从**"基于 OpenClaw 做 Tauri 封装"**变成了**"从零自建 AI Agent 框架"**。
这就像是:
- 目标是造一辆"基于丰田平台的改装车"
- 实际上在从零造发动机、底盘和变速箱
- 造出来的还跟丰田的规格不兼容
---
## 五、修正建议
### 方案 A: 直接集成 OpenClaw推荐
```
OpenClaw Gateway (npm install openclaw)
↕ WebSocket (ws://127.0.0.1:18789)
Tauri Desktop App (我们的前端)
↕ Tauri Commands
React UI (学习 AutoClaw 的界面设计)
```
**步骤:**
1. 安装 OpenClaw 作为依赖(或子进程启动)
2. 通过 WebSocket 连接 OpenClaw Gateway
3. Tauri 前端做 UI 封装(学 AutoClaw 的设计)
4. 添加自定义 Channel Plugin (微信/QQ/飞书)
5. 添加自定义 Skills
6. 添加 MCP 服务管理
**优点**: 直接获得 OpenClaw 的全部能力 (真实工具执行、Skills 生态、MCP 等)
**缺点**: 学习成本,依赖外部项目
### 方案 B: 学习架构重构(折中)
保留 Tauri + 自己的后端,但按 OpenClaw 的架构模式重构:
1. **重构为 Gateway 模式**: 把我们的后端重构为 OpenClaw 风格的 Gateway
2. **实现 Skills 系统**: SKILL.md 文件 + 渐进式披露
3. **实现 MCP 支持**: JSON-RPC 2.0 工具扩展协议
4. **实现真实工具**: bash 命令执行、文件读写、浏览器控制 (Playwright)
5. **实现分身系统**: 每个分身 = 独立 Agent 实例 + 独立配置/记忆
6. **实现心跳引擎**: HEARTBEAT.md + 定期检查 + 主动执行
7. **实现工作区**: 项目沙盒 + 文件监听 + 上下文保存
8. **补充纯文本持久化**: SOUL.md + MEMORY.md + AGENTS.md
**优点**: 深度学习理解架构,自主可控
**缺点**: 工作量大,可能重复造轮子
### 方案 C: 混合方案(务实)
- OpenClaw 作为执行引擎(子进程运行或 WebSocket 连接)
- Tauri 做桌面 UI 封装(仿 AutoClaw 界面)
- 自己实现差异化功能(微信接入、中文 Skills、国产模型优化
---
## 六、需要保留 vs 需要重写 vs 需要新建
### ✅ 保留
- `src/config/` — 配置管理(调整 key 名称对标 OpenClaw
- `src/utils/` — Logger + ID 生成器
- `src/db/` — SQLite 层OpenClaw 也用 SQLite
- `src/core/ai/` — 多模型 Provider补充 Gateway 连接方式)
- `src/im/` — IM 网关(重构为 Channel Plugin 模式)
- `desktop/` — Tauri 前端(大幅扩展界面)
### 🔄 重写
- `src/core/multi-agent/` → 重构为**分身 (Clone) 系统**
- `src/core/remote-execution/` → 重构为**真实工具执行层** (bash/file/browser)
- `src/core/task-orchestration/` → 简化,交给 LLM 自主规划
- `src/core/proactive/` → 重构为**心跳引擎**
- `src/core/memory/` → 补充纯文本文件 (MEMORY.md)
- `src/app.ts` → 重构为 **Gateway 模式**
### 🆕 新建
- `src/skills/` — Skills 系统SKILL.md 加载/解析/注册)
- `src/mcp/` — MCP 协议支持
- `src/tools/` — 真实工具执行 (bash, file, browser via Playwright)
- `src/workspace/` — 工作区管理(沙盒、文件监听、上下文保存)
- `src/gateway/` — WebSocket Gateway 服务
- 前端设置页面(通用/用量统计/模型API/MCP/技能/IM/工作区/隐私)
---
## 七、结论
**当前项目已经严重偏离了"学习 QClaw/AutoClaw + 基于 OpenClaw"的初衷。**
核心问题不在于代码质量(代码是可以编译的),而在于**架构方向**:我们在自己发明一套 AI Agent 框架,而不是基于 OpenClaw 做 Tauri 封装。
建议选择方案后,优先做以下事情:
1. 深入研究 OpenClaw 源码和 Gateway 架构
2. 确定是直接集成还是学习重构
3. 实现 Skills 系统和 MCP 支持
4. 实现真实工具执行能力
5. 按 AutoClaw 界面设计前端
---
*本报告基于 QClaw 官网、AutoClaw 官网 + 13张界面截图、OpenClaw GitHub + 技术文章的深度分析*