Files
zclaw_openfang/docs/SYSTEM_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

361 lines
14 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 系统偏离分析与演化路线图
**分析日期**: 2026-03-14
**分析版本**: OpenFang v0.4.0 + ZClaw Desktop v0.2.0
**目的**: 识别系统当前偏离点,规划后续演化方向
---
## 一、执行摘要
### 1.1 项目定位
ZCLAW 是基于 **OpenFang** (Rust Agent OS) 的 AI Agent 桌面客户端,核心价值:
- 真实连接 OpenFang Kernel
- 真实驱动 Agents / Skills / Hands / Workflows
- 真实读写 TOML 配置与工作区
- 真实反映运行时状态与审计日志
### 1.2 当前状态概览
```
┌─────────────────────────────────────────────────────────────────┐
│ ZCLAW 系统状态仪表盘 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ API 覆盖率 ████████████░░░░░░░░ 60% (37/62 端点) │
│ UI 完成度 ████████████████░░░░ 80% (20/25 组件) │
│ Hands 配置 ████░░░░░░░░░░░░░░░░ 43% (3/7 有 TOML) │
│ Skills 定义 ██░░░░░░░░░░░░░░░░░░ 7% (4/60+ 潜在) │
│ │
│ 整体对齐度 ████████████████░░░░ 80% │
│ │
└─────────────────────────────────────────────────────────────────┘
```
---
## 二、系统偏离点分析
### 2.1 API 层偏离
#### 完全缺失 (0% 实现)
| 模块 | 端点数 | 影响 | 优先级 |
|------|--------|------|--------|
| **Session 管理** | 5 | 会话无法持久化,历史记录丢失 | 🔴 P0 |
| **OpenAI 兼容 API** | 3 | 无法作为 OpenAI 代理使用 | 🟡 P2 |
#### 严重不足 (< 50% 实现)
| 模块 | 覆盖率 | 缺失功能 | 优先级 |
|------|--------|----------|--------|
| **Skills 管理** | 20% | 创建/详情/更新/删除技能 | 🟡 P1 |
| **Channels 管理** | 33% | 添加/配置/删除通道 | 🟡 P1 |
| **Trigger 管理** | 25% | 创建/详情/删除触发器 | 🟡 P1 |
#### 部分实现 (50-80%)
| 模块 | 覆盖率 | 缺失功能 | 优先级 |
|------|--------|----------|--------|
| **Agent 管理** | 75% | 获取详情、启动 Agent | 🟢 P1 |
| **Workflow 管理** | 71% | 创建工作流、执行历史 | 🟢 P1 |
| **配置管理** | 60% | 更新配置、热重载 | 🟢 P1 |
#### 完全实现 (> 90%)
| 模块 | 覆盖率 | 说明 |
|------|--------|------|
| **Hands 管理** | 100% | 所有 CRUD + 触发 + 审批 |
| **安全与审计** | 100% | 审计日志、安全状态、审批 |
| **统计与健康** | 100% | 健康检查、用量统计、工作区 |
### 2.2 UI 层偏离
#### 使用 Mock/Placeholder 数据的组件
| 组件 | 问题 | 影响 | 优先级 |
|------|------|------|--------|
| `HandTaskPanel.tsx` | 任务历史硬编码 | 用户看不到真实执行历史 | 🔴 P0 |
| `WorkflowList.tsx` | 编辑器/删除/新建未实现 | 工作流无法管理 | 🔴 P0 |
| `SecurityStatus.tsx` | 默认显示全 disabled | 安全状态误导用户 | 🟡 P1 |
| `ModelsAPI.tsx` | 模型列表硬编码 | 无法动态切换模型 | 🟡 P1 |
| `SchedulerPanel.tsx` | 创建任务未实现 | 定时任务无法配置 | 🟡 P1 |
| `About.tsx` | 版本检查未实现 | 更新提醒不可用 | 🟢 P2 |
| `Credits.tsx` | 积分数据硬编码 | 积分系统不可用 | 🟢 P2 |
#### 中文化完成度
| 状态 | 组件数 | 说明 |
|------|--------|------|
| ✅ 完全中文 | 23 | 所有用户可见文本已本地化 |
| ⚠️ 部分英文 | 2 | 部分技术术语保留英文 |
### 2.3 配置层偏离
#### Skills 目录
| 技能 | 状态 | 触发词 |
|------|------|--------|
| chinese-writing | ✅ 已定义 | 写一篇, 帮我写, 撰写 |
| feishu-docs | ✅ 已定义 | 飞书文档, 创建文档 |
| code-review | ✅ 已定义 | 审查代码, code review |
| translation | ✅ 已定义 | 翻译, translate |
**偏离**: OpenFang 内置 60+ 技能ZClaw 仅定义 4 个。
#### Hands 目录
| Hand | TOML 配置 | TypeScript 定义 | 状态 |
|------|-----------|-----------------|------|
| researcher | ✅ | ✅ | 完整 |
| browser | ✅ | ✅ | 完整 |
| lead | ✅ | ✅ | 完整 |
| clip | ❌ | ✅ | 缺配置 |
| collector | ❌ | ✅ | 缺配置 |
| predictor | ❌ | ✅ | 缺配置 |
| twitter | ❌ | ✅ | 缺配置 |
**偏离**: 4/7 Hands 缺少 TOML 配置文件。
#### 配置文件格式
| 文件 | 格式 | 用途 | 状态 |
|------|------|------|------|
| `chinese-providers.toml` | TOML | LLM 提供商配置 | ✅ OpenFang |
| `openclaw.default.json` | JSON | OpenClaw 遗留配置 | ⚠️ 待迁移 |
| `SOUL.md` / `AGENTS.md` | Markdown | Agent 人格定义 | ✅ |
| `USER.md` | Markdown | 用户偏好 | ✅ |
**偏离**: 保留 OpenClaw JSON 配置,需迁移到 OpenFang TOML。
### 2.4 类型定义偏离
| 类型文件 | 状态 | 缺失类型 |
|----------|------|----------|
| `types/hands.ts` | ✅ 完整 | - |
| Agent 类型 | ❌ 缺失 | Agent, AgentConfig, AgentStatus |
| Session 类型 | ❌ 缺失 | Session, SessionMessage |
| Settings 类型 | ❌ 缺失 | Settings, QuickConfig 完整定义 |
| Workflow 类型 | ⚠️ 部分 | WorkflowStep 详细定义 |
---
## 三、根因分析
### 3.1 为什么存在这些偏离?
```
┌─────────────────────────────────────────────────────────────────┐
│ 偏离根因分析 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. OpenFang API 不完整 (30%) │
│ ├── /api/audit/logs 返回 404 │
│ ├── /api/security/status 返回 404 │
│ └── 部分端点未在 v0.4.0 实现 │
│ │
│ 2. 时间优先级 (40%) │
│ ├── 核心聊天功能优先 │
│ ├── Hands/Workflows 基础功能已完成 │
│ └── 高级功能(编辑器、创建器)延后 │
│ │
│ 3. 设计决策 (20%) │
│ ├── 使用 Mock 数据便于 UI 开发 │
│ ├── 保留 OpenClaw 兼容性 │
│ └── 逐步迁移而非一次性重写 │
│ │
│ 4. 技术债务 (10%) │
│ ├── 类型定义分散 │
│ ├── 配置格式混合 │
│ └── 部分 TODO 未清理 │
│ │
└─────────────────────────────────────────────────────────────────┘
```
### 3.2 可接受的偏离 vs 需要修正的偏离
#### 可接受的偏离(不修正)
1. **OpenAI 兼容 API 缺失** - 非核心功能,第三方集成用
2. **Credits 页面硬编码** - 依赖 OpenFang 积分系统 API
3. **About 版本检查** - 可延后实现
#### 需要修正的偏离(必须修正)
1. **HandTaskPanel Mock 数据** - 用户看不到真实执行历史
2. **Workflow 编辑器缺失** - 核心功能不完整
3. **Session 管理缺失** - 会话无法持久化
4. **4 个 Hands 缺 TOML 配置** - 功能定义不完整
---
## 四、演化路线图
### Phase 1: 核心功能补全 (P0)
**目标**: 修复影响核心用户体验的偏离
**时间**: 1-2 周
| 任务 | 文件 | 状态 |
|------|------|------|
| 实现 HandTaskPanel 真实任务历史 | `HandTaskPanel.tsx` | 🔴 待开始 |
| 实现 Workflow 编辑器 | `WorkflowEditor.tsx` (新建) | 🔴 待开始 |
| 实现 Workflow 删除功能 | `WorkflowList.tsx` | 🔴 待开始 |
| 实现 Session 管理 API | `gatewayStore.ts` | 🔴 待开始 |
| 补充 4 个 Hands TOML 配置 | `hands/*.HAND.toml` | 🔴 待开始 |
### Phase 2: 功能增强 (P1)
**目标**: 提升功能完整性和用户体验
**时间**: 2-3 周
| 任务 | 文件 | 状态 |
|------|------|------|
| 实现 Channels 完整 CRUD | `gatewayStore.ts` | 🔴 待开始 |
| 实现 Triggers 完整 CRUD | `gatewayStore.ts` | 🔴 待开始 |
| 实现 Skills 完整 CRUD | `gatewayStore.ts` | 🔴 待开始 |
| 动态获取模型列表 | `ModelsAPI.tsx` | 🔴 待开始 |
| 实现定时任务创建 | `SchedulerPanel.tsx` | 🔴 待开始 |
| SecurityStatus 真实数据 | `SecurityStatus.tsx` | 🔴 待开始 |
### Phase 3: 配置迁移 (P1)
**目标**: 完成从 OpenClaw 到 OpenFang 的配置迁移
**时间**: 1 周
| 任务 | 说明 | 状态 |
|------|------|------|
| 迁移 openclaw.default.json | 转换为 config.toml | 🔴 待开始 |
| 补充主 config.toml | OpenFang 服务器配置 | 🔴 待开始 |
| 清理 OpenClaw 遗留代码 | 移除兼容层 | 🔴 待开始 |
### Phase 4: 类型系统完善 (P2)
**目标**: 建立完整的 TypeScript 类型定义
**时间**: 1 周
| 任务 | 文件 | 状态 |
|------|------|------|
| Agent 类型定义 | `types/agent.ts` | 🔴 待开始 |
| Session 类型定义 | `types/session.ts` | 🔴 待开始 |
| Settings 类型定义 | `types/settings.ts` | 🔴 待开始 |
| Workflow 详细类型 | `types/workflow.ts` | 🔴 待开始 |
### Phase 5: Skills 生态扩展 (P2)
**目标**: 扩展 Skills 目录,对标 OpenFang 内置技能
**时间**: 持续进行
| 技能类别 | 示例技能 | 优先级 |
|----------|----------|--------|
| 开发工具 | git, docker, kubernetes | 高 |
| 数据处理 | csv, json, yaml, excel | 高 |
| 文档生成 | markdown, pdf, docx | 中 |
| 网络工具 | http, curl, websocket | 中 |
| AI 增强 | embedding, rag, memory | 中 |
---
## 五、技术债务清单
### 5.1 代码层面
| 债务 | 位置 | 影响 | 清理方案 |
|------|------|------|----------|
| MockTask 接口 | `HandTaskPanel.tsx` | 数据不真实 | 移除,使用真实 API |
| AVAILABLE_MODELS 硬编码 | `ModelsAPI.tsx` | 模型列表不动态 | 从 API 获取 |
| DEFAULT_LAYERS 全 false | `SecurityStatus.tsx` | 误导用户 | 等待 API 或移除默认值 |
| alert() 占位 | 多个文件 | UX 差 | 实现真实功能或 Toast 提示 |
### 5.2 配置层面
| 债务 | 位置 | 影响 | 清理方案 |
|------|------|------|----------|
| OpenClaw JSON 配置 | `config/openclaw.default.json` | 配置格式混合 | 迁移到 TOML |
| 缺少主配置文件 | `config/` | OpenFang 配置不完整 | 创建 config.toml |
### 5.3 类型层面
| 债务 | 影响 | 清理方案 |
|------|------|----------|
| 类型定义分散 | 维护困难 | 集中到 types/ 目录 |
| 部分 any 类型 | 类型安全差 | 补充具体类型 |
| 缺少 API 响应类型 | API 调用不安全 | 定义 Response 类型 |
---
## 六、验收标准
### 6.1 Phase 1 完成标准
- [ ] HandTaskPanel 显示真实任务历史(无 MockTask
- [ ] Workflow 可创建、编辑、删除
- [ ] Session 可持久化,刷新后历史保留
- [ ] 7 个 Hands 全部有 TOML 配置
### 6.2 Phase 2 完成标准
- [ ] Channels 可完整 CRUD
- [ ] Triggers 可完整 CRUD
- [ ] Skills 可完整 CRUD
- [ ] 模型列表从 API 动态获取
- [ ] SecurityStatus 显示真实数据
### 6.3 Phase 3 完成标准
- [ ] 无 OpenClaw JSON 配置文件
- [ ] 所有配置使用 TOML 格式
- [ ] 无 OpenClaw 兼容层代码
---
## 七、风险与缓解
| 风险 | 概率 | 影响 | 缓解措施 |
|------|------|------|----------|
| OpenFang API 变更 | 中 | 高 | 版本锁定,变更日志跟踪 |
| Session API 未实现 | 高 | 高 | 使用 localStorage 临时方案 |
| 安全层 API 未实现 | 高 | 中 | UI 显示"等待 API"状态 |
| 工作流编辑器复杂度高 | 中 | 中 | 先实现简化版,逐步增强 |
---
## 八、附录
### A. API 覆盖率详细统计
| 类别 | 端点数 | 已实现 | 覆盖率 |
|------|--------|--------|--------|
| Agent 管理 | 8 | 6 | 75% |
| Session 管理 | 5 | 0 | 0% |
| Skills 管理 | 5 | 1 | 20% |
| Hands 管理 | 8 | 8 | 100% |
| Channels 管理 | 6 | 2 | 33% |
| Workflow 管理 | 7 | 5 | 71% |
| Trigger 管理 | 4 | 1 | 25% |
| 配置管理 | 5 | 3 | 60% |
| 安全与审计 | 5 | 5 | 100% |
| 统计与健康 | 6 | 6 | 100% |
| OpenAI 兼容 | 3 | 0 | 0% |
| **总计** | **62** | **37** | **60%** |
### B. UI 组件完成度详细统计
| 类别 | 组件数 | 完全实现 | 部分实现 | 未实现 |
|------|--------|----------|----------|--------|
| 核心功能 | 5 | 5 | 0 | 0 |
| OpenFang 特有 | 10 | 6 | 4 | 0 |
| 设置页面 | 10 | 6 | 2 | 2 |
| **总计** | **25** | **17** | **6** | **2** |
---
*文档创建: 2026-03-14*
*下次审查: Phase 1 完成后*