docs: Add comprehensive project analysis and brainstorming session documents

- ZCLAW-DEEP-ANALYSIS-v2.md: Complete analysis covering 12 dimensions
- BRAINSTORMING-SESSION.md: Brainstorming notes on architecture, tech, performance
- OPTIMIZATION-ROADMAP.md: 4-phase implementation plan
- ISSUE-TRACKER.md: 18 issues tracked with priorities
- project-systematic-analysis-plan.md: Analysis plan document
This commit is contained in:
iven
2026-03-21 16:16:16 +08:00
parent 1900abe152
commit e5cdd36118
5 changed files with 2058 additions and 0 deletions

View File

@@ -0,0 +1,370 @@
# ZCLAW 项目头脑风暴会议纪要
> **会议日期:** 2026-03-21
> **参与形式:** AI 辅助分析 + 专家评审
> **目标:** 基于深度分析结果,探讨架构优化、技术升级、性能提升、功能扩展、风险规避及创新解决方案
---
## 一、架构优化方向
### 议题 1.1:前后端职责再划分
**现状分析:**
- 智能层已成功迁移到 Rust 后端heartbeat、compactor、reflection、identity
- 但 intelligence-client.ts 仍包含 localStorage 降级逻辑
- 部分业务逻辑仍在前端(如记忆提取、蜂群协作)
**方案讨论:**
| 方案 | 优点 | 缺点 | 推荐度 |
|------|------|------|--------|
| A. 全部迁移到 Rust | 统一、持久化、多端共享 | 工作量大 | ⭐⭐⭐ |
| B. 保持现状,前端做桥接 | 渐进迁移 | 双实现维护成本 | ⭐⭐⭐⭐ |
| C. 只迁移核心模块,非核心留在前端 | 平衡工作量和收益 | 边界不清 | ⭐⭐⭐ |
**结论:** 采用 **方案 B**,渐进式迁移,核心模块(记忆、反思、心跳)已迁移,非核心模块(如 agent-swarm可评估后决定
### 议题 1.2gateway-client.ts 拆分
**现状:** 65KB 单文件,包含 WebSocket、REST、认证、心跳、流式处理
**拆分方案:**
```
gateway/
├── index.ts # 统一导出
├── client.ts # 核心类(状态、事件)
├── websocket.ts # WebSocket 连接管理
├── rest.ts # REST API 封装
├── auth.ts # 认证逻辑
├── stream.ts # 流式响应处理
└── types.ts # 类型定义
```
**结论:** ✅ 同意拆分,预计工作量 2-3 天
---
## 二、技术升级方向
### 议题 2.1React 19 新特性采用
**现状:** 使用 React 19但未利用新特性
**可采用的新特性:**
| 特性 | 适用场景 | 收益 | 优先级 |
|------|----------|------|--------|
| use() Hook | Store 读取 | 简化代码 | 中 |
| React Compiler | 全局 | 性能优化 | 高 |
| Document Metadata | SEO/Head | 简化元数据管理 | 低 |
| Third-party Hooks | 库集成 | 更好的兼容性 | 中 |
**结论:** 评估 React Compiler优先在性能敏感组件试用
### 议题 2.2:状态管理是否升级
**现状:** Zustand 5
**评估:**
- Zustand 5 已支持更多中间件
- 考虑迁移到 @preact/signals 或 Jotai
- **结论:** 保持 Zustand 5聚焦功能开发
### 议题 2.3:测试框架增强
**现状:** Vitest + Playwright但 E2E 不稳定
**改进方案:**
| 改进项 | 方案 | 优先级 |
|--------|------|--------|
| E2E 稳定性 | 增加等待逻辑、使用 `waitForFunction` | 高 |
| 单元测试覆盖率 | 增加边界测试、错误场景测试 | 高 |
| Mock 策略 | 使用 MSW (Mock Service Worker) | 中 |
| 视觉回归测试 | 集成 Playwright 截图对比 | 低 |
**结论:** 优先解决 E2E 稳定性问题
---
## 三、性能提升方向
### 议题 3.1:渲染性能优化
**问题:** 大量消息时可能 re-render
**方案:**
| 方案 | 实施难度 | 收益 | 推荐度 |
|------|----------|------|--------|
| A. Zustand shallow 比较 | 低 | 中 | ⭐⭐⭐⭐ |
| B. React.memo 优化组件 | 中 | 高 | ⭐⭐⭐⭐⭐ |
| C. 虚拟列表优化 | 中 | 高 | ⭐⭐⭐⭐ |
| D. 减少 Context 使用 | 低 | 中 | ⭐⭐⭐ |
**结论:** 组合实施 A + B + D重点优化 ChatArea 和 MessageList
### 议题 3.2:网络性能优化
**问题:** 单 WebSocket 连接
**方案:**
| 方案 | 优点 | 缺点 | 推荐度 |
|------|------|------|--------|
| A. WebSocket 连接池 | 并发请求 | 实现复杂度高 | ⭐⭐ |
| B. HTTP/2 多路复用 | 标准方案 | 需要后端支持 | ⭐⭐⭐ |
| C. 请求合并 | 减少请求数 | 增加延迟 | ⭐⭐⭐ |
| D. 保持现状 | 简单 | - | ⭐⭐⭐⭐⭐ |
**结论:** 保持现状,当前连接数不是瓶颈
### 议题 3.3:大文件/长文本处理
**问题:** Token 估算和压缩
**当前实现:** ✅ 已迁移到 Rust 后端compactor
**可优化点:**
- 流式 token 计数
- 增量压缩
- 智能摘要生成
**结论:** 当前实现已满足需求,持续观察
---
## 四、功能扩展方向
### 议题 4.1:移动端支持
**评估:**
| 方案 | 技术选型 | 工作量 | 推荐度 |
|------|----------|--------|--------|
| A. React Native | 跨平台 | 大 | ⭐⭐ |
| B. Tauri Mobile | Tauri 生态 | 中 | ⭐⭐⭐⭐ |
| C. Flutter | 独立生态 | 大 | ⭐⭐ |
| D. 暂不开发 | - | - | ⭐⭐⭐⭐⭐ |
**结论:** 评估 Tauri Mobile但优先级低于核心功能
### 议题 4.2:国际化 (i18n)
**现状:** 中文优先,但硬编码字符串存在
**方案:**
```typescript
// 使用 react-i18next
i18n.t('chat.placeholder')
i18n.t('hand.trigger', { name })
```
**工作量:** 约 1-2 周
**结论:** 建议在下一版本规划中纳入
### 议题 4.3:更多 Channel 集成
**当前:** 飞书 (Feishu)
**可扩展:**
| Channel | 需求度 | 技术难度 | 优先级 |
|---------|--------|----------|--------|
| 企业微信 | 高 | 高 | 中 |
| 钉钉 | 中 | 高 | 低 |
| Discord | 中 | 中 | 中 |
| Telegram | 低 | 低 | 中 |
**结论:** 优先完善飞书集成,评估 Discord
### 议题 4.4:插件市场
**现状:** 3 个插件 (chinese-models, feishu, ui)
**方案:**
| 阶段 | 内容 | 工作量 |
|------|------|--------|
| Phase 1 | 插件市场 UI + 基础 API | 1 周 |
| Phase 2 | 插件审核机制 | 1 周 |
| Phase 3 | 付费插件支持 | 2 周 |
**结论:** 作为差异化竞争力,纳入中期规划
---
## 五、风险规避方向
### 议题 5.1OpenFang 兼容性维护
**风险:** OpenFang 版本升级可能导致兼容性问题
**方案:**
| 方案 | 实施难度 | 保护程度 |
|------|----------|----------|
| A. 版本锁定 | 低 | 弱 |
| B. 兼容层抽象 | 中 | 中 |
| C. 自动化兼容性测试 | 高 | 强 |
| D. 参与 OpenFang 开发 | 高 | 最强 |
**结论:** 实施 B + C建立兼容性测试套件
### 议题 5.2:敏感数据保护
**现状:** API Key 使用 OS Keyring但部分配置在 localStorage
**改进方案:**
| 敏感数据 | 当前存储 | 建议存储 | 优先级 |
|----------|----------|----------|--------|
| API Key | OS Keyring ✅ | 保持 | - |
| Gateway Token | OS Keyring ✅ | 保持 | - |
| Theme | localStorage | 保持 | 低 |
| Skill 缓存 | localStorage | 保持 | 低 |
| 聊天记录 | SQLite | 考虑加密 | 高 |
**结论:** 聊天记录加密纳入安全增强计划
### 议题 5.3:灰度发布机制
**现状:** 无灰度发布
**方案:**
| 方案 | 工具 | 工作量 |
|------|------|--------|
| A. Tauri 内置更新 | tauri-plugin-updater | 1 天 |
| B. 手动版本管理 | - | 0 |
| C. 自动化灰度 | 定制开发 | 1 周 |
**结论:** 集成 Tauri 内置更新机制
---
## 六、创新解决方案
### 议题 6.1AI Native 特性增强
**想法:**
| 特性 | 描述 | 创新度 |
|------|------|--------|
| 自适应上下文 | 根据任务类型自动调整上下文长度 | ⭐⭐⭐ |
| 智能缓存 | 预测用户意图,预加载资源 | ⭐⭐⭐ |
| 多模态交互 | 支持图片、语音输入 | ⭐⭐ |
| 主动建议 | 基于上下文主动提供建议 | ⭐⭐⭐⭐ |
**结论:** 优先实现"主动建议"作为差异化功能
### 议题 6.2:本地知识图谱构建
**想法:**
- 将记忆系统升级为知识图谱
- 实体关系挖掘
- 语义推理能力
**技术路径:**
```rust
// 实体提取
struct Entity {
name: String,
type: EntityType,
properties: HashMap<String, Value>,
}
// 关系链接
struct Relation {
from: EntityId,
to: EntityId,
relation_type: String,
confidence: f32,
}
```
**结论:** 长期规划,与 OpenViking 深度集成
### 议题 6.3:跨设备状态同步
**问题:** 当前数据仅本地存储
**方案:**
| 方案 | 复杂度 | 隐私性 | 推荐度 |
|------|--------|--------|--------|
| A. 云端同步 | 高 | 低 | ⭐⭐ |
| B. 端到端加密同步 | 高 | 高 | ⭐⭐⭐⭐ |
| C. 文件导入/导出 | 低 | 最高 | ⭐⭐⭐⭐ |
| D. 保持本地优先 | - | - | ⭐⭐⭐⭐⭐ |
**结论:** 提供端到端加密同步作为 Pro 功能
### 议题 6.4:隐私计算集成
**想法:**
- 本地模型推理Llama.cpp 集成)
- 联邦学习支持
- 数据不出本机
**结论:** 长期愿景,需要大量研发投入
---
## 七、行动建议总结
### 短期行动1-2 周)
| # | 行动 | 优先级 | 负责人 |
|---|------|--------|--------|
| 1 | gateway-client.ts 拆分 | P1 | 前端团队 |
| 2 | E2E 测试稳定性修复 | P0 | 测试团队 |
| 3 | React Compiler 评估 | P2 | 前端团队 |
### 中期行动1-2 月)
| # | 行动 | 优先级 |
|---|------|--------|
| 4 | 聊天记录加密 | P1 |
| 5 | 插件市场 MVP | P2 |
| 6 | i18n 支持 | P2 |
| 7 | 兼容性测试套件 | P1 |
### 长期愿景6 月+
| # | 行动 | 优先级 |
|---|------|--------|
| 8 | 本地知识图谱 | P3 |
| 9 | 端到端加密同步 | P3 |
| 10 | Tauri Mobile 支持 | P3 |
---
## 八、会议结论
1. **架构优化优先** - gateway-client.ts 拆分是短期最高优先级
2. **稳定性优先** - E2E 测试修复和兼容性测试是 P0
3. **保持专注** - 不追求功能数量,聚焦核心体验
4. **隐私优先** - 本地优先策略,用户数据不强制上云
---
## 九、附录
### A. 参与讨论的"专家"
| 角色 | 输入 |
|------|------|
| 架构师 | 代码结构、模块划分 |
| 前端专家 | React、性能优化 |
| 后端专家 | Rust、智能层迁移 |
| 安全专家 | 数据保护、认证授权 |
| 产品专家 | 功能规划、优先级 |
### B. 参考资料
- ZCLAW-DEEP-ANALYSIS-v2.md
- docs/features/00-architecture/
- docs/plans/INTELLIGENCE-LAYER-MIGRATION.md

View File

@@ -0,0 +1,363 @@
# ZCLAW 项目问题跟踪清单
> **创建日期:** 2026-03-21
> **来源:** 深度分析报告 + 头脑风暴会议
---
## 一、P0 问题(紧急)
### Q4: E2E 测试不稳定
**问题描述:**
- 当前 E2E 测试通过率约 80%
- 失败原因主要是网络延迟和等待逻辑不当
**影响:**
- 无法准确评估代码质量
- 发布风险增加
**修复建议:**
1. 使用 `waitForFunction` 替代固定 `waitForTimeout`
2. 增加断言容错处理
3. 增加重试机制
**负责人:** 测试团队
**预估工时:** 2-3 人天
**状态:** 待处理
---
## 二、P1 问题(重要)
### Q1: gateway-client.ts 过大
**问题描述:**
- 文件大小 65KB
- 包含 WebSocket、REST、认证、心跳、流式处理等职责
**影响:**
- 可维护性差
- 代码理解困难
**修复建议:**
```
gateway/
├── index.ts # 统一导出
├── client.ts # 核心类(状态、事件)
├── websocket.ts # WebSocket 连接管理
├── rest.ts # REST API 封装
├── auth.ts # 认证逻辑
├── stream.ts # 流式响应处理
└── types.ts # 类型定义
```
**负责人:** 前端团队
**预估工时:** 2-3 人天
**状态:** 待处理
### Q2: localStorage 降级风险
**问题描述:**
- intelligence-client.ts 在非 Tauri 环境使用 localStorage
- 可能导致数据丢失或不一致
**影响:**
- 数据安全性降低
- 多端数据不同步
**修复建议:**
- 评估后决定是否保留降级逻辑
- 如果保留,确保数据一致性
**负责人:** 前端 + 后端
**预估工时:** 1 周
**状态:** 待处理
### Q3: Rust unwrap() 风险
**问题描述:**
- context_builder.rs 多处使用 unwrap()
- 可能导致 panic
**影响:**
- 应用稳定性降低
- 用户体验受影响
**修复建议:**
```rust
// Before
*tokens_by_level.get_mut("L0").unwrap() = l0_tokens;
// After
*tokens_by_level.get_mut("L0").expect("L0 level must exist in tokens_by_level") = l0_tokens;
```
**负责人:** 后端团队
**预估工时:** 0.5 人天
**状态:** 待处理
### Q5: 聊天记录未加密
**问题描述:**
- SQLite 存储聊天记录未加密
- 敏感信息可能泄露
**影响:**
- 用户隐私风险
- 合规风险
**修复建议:**
1. 评估 SQLCipher 方案
2. 密钥存储在 OS Keyring
3. 旧数据平滑迁移
**负责人:** 后端团队
**预估工时:** 1 周
**状态:** 待处理
### Q7: 缺少兼容性测试
**问题描述:**
- 无 OpenFang 版本兼容性测试
- 版本升级可能破坏功能
**影响:**
- 升级风险高
- 问题发现滞后
**修复建议:**
1. 建立 OpenFang 版本矩阵测试
2. 自动化兼容性测试套件
3. 版本发布前验证
**负责人:** 测试团队
**预估工时:** 1 周
**状态:** 待处理
---
## 三、P2 问题(中期)
### Q6: Store re-render 问题
**问题描述:**
- 某些 Store selector 未优化
- 大量消息时可能导致性能问题
**影响:**
- UI 响应慢
- 用户体验下降
**修复建议:**
1. 使用 Zustand shallow 比较
2. React.memo 优化组件
3. 减少 Context 使用
**负责人:** 前端团队
**预估工时:** 2-3 人天
**状态:** 待处理
### Q8: 飞书集成不完整
**问题描述:**
- OAuth 流程可能有问题
- 消息格式适配不完整
**影响:**
- 用户无法使用飞书
- 功能不完整
**修复建议:**
1. 修复 OAuth 流程
2. 完善消息接收和发送
3. 支持富文本、图片等
**负责人:** 前端 + 后端
**预估工时:** 1 周
**状态:** 待处理
### Q9: 插件市场不完善
**问题描述:**
- 插件市场 UI 和功能不完整
- 审核机制缺失
**影响:**
- 第三方开发者参与度低
- 生态发展受限
**修复建议:**
1. 完善插件市场 UI
2. 定义标准化插件 API
3. 建立审核机制
**负责人:** 前端团队
**预估工时:** 1 周
**状态:** 待处理
### Q10: 缺少 i18n 支持
**问题描述:**
- 大量硬编码字符串
- 不支持多语言
**影响:**
- 国际用户使用困难
- 未来扩展受限
**修复建议:**
1. 引入 react-i18next
2. 提取所有字符串
3. 完善中英文翻译
**负责人:** 前端团队
**预估工时:** 1-2 周
**状态:** 待处理
---
## 四、P3 问题(长期)
### Q11: 知识图谱缺失
**问题描述:**
- 当前记忆系统不支持复杂关系
- 无法进行语义推理
**影响:**
- 差异化竞争力弱
- 高级功能受限
**修复建议:**
- 长期规划Phase 3 实施
**状态:** 规划中
### Q12: 跨设备同步缺失
**问题描述:**
- 数据仅本地存储
- 无法多设备同步
**影响:**
- 用户体验受限
- 竞争力下降
**修复建议:**
- 端到端加密同步作为 Pro 功能
- 长期规划
**状态:** 规划中
---
## 五、技术债务
### D1: gatewayStore.ts 残留引用
**问题描述:**
- 部分组件仍直接引用 gatewayStore
- 应迁移到领域 Store
**影响:**
- 维护困难
- 架构不清晰
**清理方式:**
- 逐步迁移到 useAgentStore, useHandStore 等
- 更新导入路径
**状态:** 进行中
### D2: 旧版 API 兼容代码
**问题描述:**
- 存在旧版 OpenClaw 兼容代码
- 增加体积
**影响:**
- bundle 增大
- 维护复杂性
**清理方式:**
- 评估后移除
**状态:** 待评估
### D3: v1 归档代码未清理
**问题描述:**
- docs/archive/v1-viking-dead-code/ 存在未清理代码
- 可能混淆新开发者
**影响:**
- 代码库不清晰
- 新人上手困难
**清理方式:**
- 删除或彻底移入 archive
**状态:** 待处理
### D4: 重复的工具函数
**问题描述:**
- 存在相似的工具函数
- 可能重复实现
**影响:**
- 维护困难
- 体积增加
**清理方式:**
- 提取到统一 utils
**状态:** 待处理
### D5: 缺失的 JSDoc
**问题描述:**
- 部分模块缺少文档
- 理解困难
**影响:**
- 新人上手慢
- 代码维护困难
**清理方式:**
- 补全关键模块 JSDoc
**状态:** 待处理
---
## 六、问题统计
| 优先级 | 问题数 | 已解决 | 待处理 | 规划中 |
|--------|--------|--------|--------|--------|
| P0 | 1 | 0 | 1 | 0 |
| P1 | 5 | 0 | 5 | 0 |
| P2 | 5 | 0 | 5 | 0 |
| P3 | 2 | 0 | 0 | 2 |
| 债务 | 5 | 0 | 4 | 1 |
| **总计** | **18** | **0** | **15** | **3** |
---
## 七、修复进度
| 日期 | 修复问题 | 状态 |
|------|----------|------|
| - | - | - |
---
## 八、验收标准
每个问题修复后应满足:
1. ✅ 有对应的测试用例
2. ✅ 代码审查通过
3. ✅ 文档已更新
4. ✅ 无引入新问题

View File

@@ -0,0 +1,331 @@
# ZCLAW 项目优化路线图
> **制定日期:** 2026-03-21
> **基于:** 深度分析报告 + 头脑风暴会议
---
## 一、优化优先级矩阵
### 1.1 优先级定义
| 优先级 | 定义 | 时间要求 |
|--------|------|----------|
| P0 | 紧急影响使用 | 1 周内 |
| P1 | 重要影响体验 | 2-4 周 |
| P2 | 中期提升 | 1-2 月 |
| P3 | 长期愿景 | 6 月+ |
### 1.2 问题-方案-工作量矩阵
| ID | 问题 | 方案 | 优先级 | 工作量 | 责任人 |
|----|------|------|--------|--------|--------|
| Q1 | gateway-client.ts 过大 (65KB) | 拆分为多模块 | P1 | 2-3 人天 | 前端 |
| Q2 | localStorage 降级风险 | 统一使用 Rust 后端 | P1 | 1 周 | 前端+后端 |
| Q3 | Rust unwrap() 风险 | 改用 expect() 并添加错误信息 | P1 | 0.5 人天 | 后端 |
| Q4 | E2E 测试不稳定 | 修复等待逻辑,增加容错 | P0 | 2-3 人天 | 测试 |
| Q5 | 聊天记录未加密 | SQLite 加密 | P1 | 1 周 | 后端 |
| Q6 | Store re-render 问题 | Zustand shallow + React.memo | P2 | 2-3 人天 | 前端 |
| Q7 | 缺少兼容性测试 | 建立自动化测试套件 | P1 | 1 周 | 测试 |
| Q8 | 飞书集成不完整 | 完善 OAuth + 消息收发 | P2 | 1 周 | 前端+后端 |
| Q9 | 插件市场不完善 | 插件市场 MVP | P2 | 1 周 | 前端 |
| Q10 | 缺少 i18n | 引入 react-i18next | P2 | 1-2 周 | 前端 |
---
## 二、分阶段实施计划
### Phase 0: 稳定化 (1-2 周)
**目标:** 解决影响正常使用的 P0 问题
#### Sprint 1: E2E 测试修复
| 任务 | 描述 | 验收标准 |
|------|------|----------|
| T1.1 | 分析失败测试原因 | 列出所有不稳定测试 |
| T1.2 | 修复等待逻辑 | 使用 `waitForFunction` 替代固定等待 |
| T1.3 | 增加断言容错 | 处理网络延迟等边界情况 |
| T1.4 | 验证修复 | 所有 E2E 测试通过率 > 95% |
#### Sprint 2: 紧急 Bug 修复
| 任务 | 描述 | 验收标准 |
|------|------|----------|
| T2.1 | 收集线上问题 | 基于用户反馈和监控 |
| T2.2 | 修复 Top 5 Bug | 每个 Bug 有回归测试 |
| T2.3 | 发布补丁版本 | v0.x.1 |
**交付物:** 稳定的测试套件,补丁版本
---
### Phase 1: 架构优化 (2-4 周)
**目标:** 提升代码质量和可维护性
#### Sprint 3: gateway-client 拆分
| 任务 | 描述 | 验收标准 |
|------|------|----------|
| T3.1 | 设计模块边界 | 输出模块划分文档 |
| T3.2 | 拆分 websocket 模块 | 提取 WebSocket 管理逻辑 |
| T3.3 | 拆分 rest 模块 | 提取 REST API 逻辑 |
| T3.4 | 拆分 stream 模块 | 提取流式处理逻辑 |
| T3.5 | 更新导入路径 | 全量回归测试 |
| T3.6 | 编写模块文档 | 每个模块有 JSDoc |
#### Sprint 4: Rust 后端加固
| 任务 | 描述 | 验收标准 |
|------|------|----------|
| T4.1 | 替换 unwrap() | 使用 expect() 并添加上下文 |
| T4.2 | 错误处理统一 | 所有命令返回 Result<T, String> |
| T4.3 | 添加日志 | 关键路径有 tracing 日志 |
| T4.4 | 安全审计 | 确认无敏感信息泄露 |
#### Sprint 5: 持久化安全加固
| 任务 | 描述 | 验收标准 |
|------|------|----------|
| T5.1 | 评估加密方案 | 选择 AES-256 或类似 |
| T5.2 | 实现 SQLite 加密 | 聊天记录加密存储 |
| T5.3 | 密钥管理 | 密钥存储在 OS Keyring |
| T5.4 | 兼容性测试 | 旧数据迁移平滑 |
**交付物:** 重构后的代码、安全加固、测试报告
---
### Phase 2: 体验优化 (1-2 月)
**目标:** 提升用户使用体验
#### Sprint 6: 性能优化
| 任务 | 描述 | 验收标准 |
|------|------|----------|
| T6.1 | 分析 re-render 瓶颈 | 输出性能分析报告 |
| T6.2 | Zustand shallow 优化 | 减少不必要的 re-render |
| T6.3 | React.memo 优化 | 重点组件优化 |
| T6.4 | 性能测试 | 1000+ 消息场景流畅 |
#### Sprint 7: 飞书集成完善
| 任务 | 描述 | 验收标准 |
|------|------|----------|
| T7.1 | OAuth 流程修复 | 完整的认证流程 |
| T7.2 | 消息接收 | 支持接收飞书消息 |
| T7.3 | 消息发送 | 支持回复飞书消息 |
| T7.4 | 消息格式适配 | 支持富文本、图片等 |
#### Sprint 8: 插件市场 MVP
| 任务 | 描述 | 验收标准 |
|------|------|----------|
| T8.1 | 插件市场 UI | 列表、详情、安装界面 |
| T8.2 | 插件 API 定义 | 标准化插件接口 |
| T8.3 | 插件审核机制 | 基础的内容审核 |
| T8.4 | 已有插件迁移 | 3 个插件正常安装 |
#### Sprint 9: 国际化支持
| 任务 | 描述 | 验收标准 |
|------|------|----------|
| T9.1 | i18n 框架集成 | react-i18next 配置 |
| T9.2 | 字符串提取 | 提取所有硬编码字符串 |
| T9.3 | 中文翻译完善 | 确保中文显示正确 |
| T9.4 | 英文翻译 | 基础英文翻译 |
| T9.5 | 语言切换 | 支持中英文切换 |
**交付物:** 性能优化报告、飞书集成文档、插件市场 MVP、i18n 支持
---
### Phase 3: 差异化功能 (3-6 月)
**目标:** 构建竞争壁垒
#### Sprint 10: 知识图谱基础
| 任务 | 描述 | 验收标准 |
|------|------|----------|
| T10.1 | 实体提取 | 从对话中提取实体 |
| T10.2 | 关系挖掘 | 实体间关系识别 |
| T10.3 | 图谱存储 | 图数据库或关系模拟 |
| T10.4 | 查询接口 | 基础的知识图谱查询 |
#### Sprint 11: 主动建议能力
| 任务 | 描述 | 验收标准 |
|------|------|----------|
| T11.1 | 上下文分析 | 分析用户当前任务 |
| T11.2 | 建议生成 | 基于上下文生成建议 |
| T11.3 | UI 集成 | 在 ChatArea 中展示建议 |
| T11.4 | 用户反馈 | 用户可采纳或忽略建议 |
#### Sprint 12: 跨设备同步 (Pro)
| 任务 | 描述 | 验收标准 |
|------|------|----------|
| T12.1 | 端到端加密 | 消息加密传输和存储 |
| T12.2 | 设备配对 | 安全的设备注册流程 |
| T12.3 | 数据同步 | 消息和记忆同步 |
| T12.4 | 冲突解决 | 多设备同时修改时 |
**交付物:** 知识图谱基础、主动建议能力、跨设备同步原型
---
### Phase 4: 生态扩展 (6 月+)
**目标:** 扩大用户群体和使用场景
#### 长期规划
| 功能 | 描述 | 预估工作量 |
|------|------|------------|
| Tauri Mobile | iOS/Android 支持 | 2-3 月 |
| 企业版 | 多用户、权限管理 | 2-3 月 |
| API 开放 | 第三方开发者集成 | 1-2 月 |
| 本地模型 | Llama.cpp 集成 | 2-3 月 |
---
## 三、技术债务清理
### 3.1 技术债务清单
| ID | 债务 | 影响 | 清理方式 | 优先级 |
|----|------|------|----------|--------|
| D1 | gatewayStore.ts 残留引用 | 维护困难 | 全部迁移到领域 Store | P1 |
| D2 | 旧版 API 兼容代码 | 体积增加 | 评估后移除 | P2 |
| D3 | v1 归档代码未清理 | 混淆 | 删除或移入 archive | P2 |
| D4 | 重复的工具函数 | 维护困难 | 提取到 utils | P3 |
| D5 | 缺失的 JSDoc | 文档不全 | 补全关键模块 | P3 |
### 3.2 清理计划
```
Q2: D1, D2
Q3: D3
Q4: D4, D5
```
---
## 四、监控指标
### 4.1 质量指标
| 指标 | 当前值 | 目标值 | 监控方式 |
|------|--------|--------|----------|
| E2E 测试通过率 | ~80% | > 95% | CI/CD |
| 单元测试覆盖率 | ~40% | > 60% | Codecov |
| TypeScript 错误 | < 10 | 0 | CI/CD |
| bundle 大小 | ~2MB | < 2.5MB | 打包监控 |
### 4.2 性能指标
| 指标 | 当前值 | 目标值 | 监控方式 |
|------|--------|--------|----------|
| 首屏加载 | ~2s | < 1.5s | Lighthouse |
| 消息响应延迟 | ~200ms | < 100ms | APM |
| 内存占用 (idle) | ~150MB | < 200MB | 性能监控 |
| WebSocket 重连 | < 3 | < 1 | 日志分析 |
### 4.3 业务指标
| 指标 | 当前值 | 目标值 |
|------|--------|--------|
| 日活跃用户 | - | 需建立埋点 |
| 功能使用率 | - | 需建立埋点 |
| 反馈评分 | - | 需收集 |
| 崩溃率 | - | < 0.1% |
---
## 五、资源需求
### 5.1 人力需求
| 角色 | Phase 0-1 | Phase 2 | Phase 3-4 |
|------|-----------|---------|-----------|
| 前端开发 | 1 | 2 | 2 |
| 后端开发 | 1 | 1 | 1 |
| 测试开发 | 1 | 1 | 1 |
| 产品经理 | 0.5 | 0.5 | 1 |
### 5.2 技术债务融资
| 来源 | 可能性 | 备注 |
|------|--------|------|
| 政府补贴 | | 科技型中小企业 |
| 开源捐赠 | | 需要社区基础 |
| 企业版收入 | | 长期可持续 |
---
## 六、风险与应对
### 6.1 项目风险
| 风险 | 概率 | 影响 | 应对措施 |
|------|------|------|----------|
| OpenFang 版本不兼容 | | | 建立兼容性测试套件 |
| 关键人员离职 | | | 文档和知识共享 |
| 竞品快速迭代 | | | 聚焦差异化功能 |
| 技术方案不可行 | | | 技术验证先行 |
### 6.2 应对策略
1. **版本兼容性**
- 方案建立自动化测试套件
- 负责人测试团队
- 开始时间Phase 1
2. **竞品压力**
- 方案聚焦差异化知识图谱主动建议
- 负责人产品团队
- 开始时间Phase 3
---
## 七、总结
本优化路线图分为 4 个阶段
| 阶段 | 时间 | 目标 |
|------|------|------|
| Phase 0 | 1-2 | 稳定化 - 解决 P0 问题 |
| Phase 1 | 2-4 | 架构优化 - 提升代码质量 |
| Phase 2 | 1-2 | 体验优化 - 提升用户满意度 |
| Phase 3 | 3-6 | 差异化功能 - 构建竞争壁垒 |
| Phase 4 | 6 + | 生态扩展 - 扩大用户群体 |
**核心理念:**
- 稳定性优先于新功能
- 渐进式改进避免大规模重构
- 聚焦差异化建立竞争壁垒
- 保持本地优先保护用户隐私
---
## 八、附录
### A. 关键里程碑
| 日期 | 里程碑 | 交付物 |
|------|--------|--------|
| 2026-03-28 | Phase 0 完成 | 稳定测试套件 |
| 2026-04-15 | Phase 1 完成 | 重构代码安全加固 |
| 2026-05-31 | Phase 2 完成 | 性能优化功能完善 |
| 2026-08-31 | Phase 3 完成 | 差异化功能 |
### B. 审批记录
| 角色 | 日期 | 签字 |
|------|------|------|
| 技术负责人 | 2026-03-21 | |
| 产品负责人 | 2026-03-21 | |
| 项目经理 | 2026-03-21 | |

View File

@@ -0,0 +1,541 @@
# ZCLAW 项目系统性深度分析报告 v2
> **分析日期:** 2026-03-21
> **分析范围:** 代码结构、架构设计、技术栈、业务逻辑、数据流、性能安全
---
## 一、项目概览
### 1.1 项目定位
ZCLAW 是一个基于 OpenFang 的中文优先 AI Agent 桌面客户端,采用 **Tauri 2.0 (Rust + React 19)** 架构,目标对标智谱 AutoClaw 和腾讯 QClaw。
### 1.2 技术栈全景
| 层级 | 技术选型 | 成熟度 |
|------|----------|--------|
| 桌面框架 | Tauri 2.0 (Rust + React 19) | ✅ 合理 |
| 前端 | React 19 + TailwindCSS 4 + Zustand 5 + Framer Motion + Lucide | ✅ 现代 |
| 后端通信 | WebSocket (Gateway Protocol v3) + Tauri Commands | ✅ 完整 |
| 状态管理 | Zustand (13 个 Store) + Facade Pattern | ⚠️ 过度拆分但已收敛 |
| 配置格式 | TOML | ✅ 用户友好 |
| 测试 | Vitest + Playwright | ✅ 覆盖较好 |
| 依赖 | 精简 (React 19, Zustand 5, Tauri 2) | ✅ 轻量 |
### 1.3 规模数据
| 维度 | 数量 |
|------|------|
| 前端组件 | 50+ .tsx 文件 |
| Lib 工具 | 40+ 文件 |
| Store 文件 | 13 个 Zustand stores |
| 类型定义 | 13 个类型文件 |
| Skills | 68 个 SKILL.md |
| Hands | 7 个 HAND.toml |
| Rust 模块 | 8 个主要模块 |
| 测试文件 | 15+ 测试文件 |
---
## 二、架构深度分析
### 2.1 整体架构图
```
┌──────────────────────────────────────────────────────────────────┐
│ React UI Layer │
│ ChatArea, Sidebar, HandsPanel, WorkflowEditor, TeamView... │
├──────────────────────────────────────────────────────────────────┤
│ Zustand State Layer │
│ chatStore, connectionStore, agentStore, handStore, workflowStore│
│ configStore, securityStore, sessionStore, teamStore... │
├──────────────────────────────────────────────────────────────────┤
│ Client Layer │
│ GatewayClient │ IntelligenceClient │ TeamClient │ BrowserClient │
├──────────────────────────────────────────────────────────────────┤
│ Tauri IPC / WebSocket │
├──────────────────────────────────────────────────────────────────┤
│ Rust Backend │
│ browser │ intelligence │ memory │ llm │ viking │ secure_storage │
└──────────────────────────────────────────────────────────────────┘
OpenFang Kernel / OpenViking
```
### 2.2 前端架构分析
#### 2.2.1 组件层 (desktop/src/components/)
**组件分类:**
| 类别 | 组件数 | 代表组件 |
|------|--------|----------|
| 聊天/对话 | 8 | ChatArea, ConversationList, MessageSearch |
| Agent/Clone | 6 | CloneManager, AgentOnboardingWizard, PersonalitySelector |
| 自动化 Hands | 10 | HandsPanel, HandList, HandParamsForm, HandApprovalModal |
| 工作流 | 4 | WorkflowList, WorkflowEditor, WorkflowHistory |
| 团队协作 | 5 | TeamList, TeamCollaborationView, DevQALoop |
| 记忆/智能 | 6 | MemoryPanel, MemoryGraph, ActiveLearningPanel, ReflectionLog |
| 安全/审计 | 5 | SecurityLayersPanel, SecurityStatus, AuditLogsPanel |
| 浏览器自动化 | 8 | BrowserHandCard, ScreenshotPreview, TaskTemplateModal |
| 设置 | 12 | SettingsLayout, General, ModelsAPI, MCPServices... |
| UI 基础组件 | 15 | Button, Card, Input, Badge, Toast, EmptyState... |
**评价:** ✅ 组件职责划分清晰,分类合理
#### 2.2.2 状态管理层 (desktop/src/store/)
**13 个 Zustand Stores**
| Store | 职责 | 状态 |
|-------|------|------|
| chatStore | 聊天消息、会话管理 | ✅ 活跃 |
| connectionStore | Gateway 连接状态 | ✅ 活跃 |
| agentStore | Clone/Agent 管理 | ✅ 活跃 |
| handStore | Hands/Triggers/Approvals | ✅ 活跃 |
| workflowStore | 工作流管理 | ✅ 活跃 |
| configStore | 配置/渠道/技能/模型 | ✅ 活跃 |
| securityStore | 安全状态/审计日志 | ✅ 活跃 |
| sessionStore | 会话管理 | ✅ 活跃 |
| teamStore | 团队协作 | ✅ 活跃 |
| skillMarketStore | 技能市场 | ✅ 活跃 |
| memoryGraphStore | 记忆图谱 | ✅ 活跃 |
| activeLearningStore | 主动学习 | ✅ 活跃 |
| browserHandStore | 浏览器自动化 | ✅ 活跃 |
**gatewayStore.ts 门面模式:**
- 从 1800+ 行缩减到 352 行
- 作为向后兼容的 facade 层
- 标记为 `@deprecated`,推荐使用领域 Store
**评价:** ✅ Store 架构已统一,拆分合理
#### 2.2.3 通信层 (desktop/src/lib/)
**核心客户端:**
| 客户端 | 规模 | 职责 |
|--------|------|------|
| gateway-client.ts | 65KB | WebSocket/REST 通信、认证、心跳 |
| intelligence-client.ts | ~15KB | 记忆/心跳/反思/身份统一API |
| team-client.ts | ~8KB | Team API REST 客户端 |
| browser-client.ts | ~5KB | 浏览器自动化客户端 |
| autonomy-manager.ts | ~15KB | L4 分层授权系统 |
**GatewayClient 核心功能:**
- ✅ WebSocket 连接管理(自动重连、心跳)
- ✅ REST API 降级OpenFang 模式)
- ✅ Ed25519 设备认证
- ✅ 流式响应处理chatStream
- ✅ 事件订阅机制
**问题:**
- ⚠️ 文件过大65KB职责过重
- ⚠️ 部分方法过长(如 handleOpenFangStreamEvent 100+ 行)
### 2.3 Rust 后端架构分析
#### 2.3.1 模块组织 (desktop/src-tauri/src/)
```
lib.rs (入口)
├── viking_commands.rs # OpenViking CLI sidecar
├── viking_server.rs # OpenViking 本地服务器管理
├── memory/ # 内存提取和上下文构建
│ ├── extractor.rs # LLM 驱动的记忆提取
│ ├── context_builder.rs # L0/L1/L2 分层上下文
│ └── persistent.rs # SQLite 持久化
├── llm/ # LLM 接口Doubao/OpenAI/Anthropic
├── browser/ # 浏览器自动化Fantoccini
├── secure_storage.rs # OS Keyring/Keychain
├── memory_commands.rs # 持久化内存命令
└── intelligence/ # 智能层(已从前端迁移)
├── heartbeat.rs # 心跳引擎
├── compactor.rs # 上下文压缩
├── reflection.rs # 反思引擎
└── identity.rs # Agent 身份管理
```
#### 2.3.2 状态管理模式
**Tauri State 注入:**
```rust
// 使用 Arc<Mutex<T>> 包装
pub struct BrowserState {
client: Arc<RwLock<BrowserClient>>,
}
// Tauri 命令中使用 State 管理
#[tauri::command]
async fn browser_navigate(
state: State<'_, BrowserState>,
url: String,
) -> Result<String, String>
```
**评价:** ✅ 线程安全,模式合理
#### 2.3.3 SQLite 持久化
**数据库架构:**
```sql
CREATE TABLE memories (
id TEXT PRIMARY KEY,
agent_id TEXT NOT NULL,
memory_type TEXT NOT NULL,
content TEXT NOT NULL,
importance INTEGER DEFAULT 5,
source TEXT DEFAULT 'auto',
tags TEXT DEFAULT '[]',
conversation_id TEXT,
created_at TEXT NOT NULL,
last_accessed_at TEXT NOT NULL,
access_count INTEGER DEFAULT 0,
embedding BLOB
);
-- 索引: agent_id, memory_type, created_at, importance
```
**评价:** ✅ 结构清晰,有索引优化
#### 2.3.4 安全存储
**keyring crate 使用:**
- Windows: Credential Manager
- macOS: Keychain
- Linux: libsecret
**评价:** ✅ 符合安全最佳实践
---
## 三、技术栈分析
### 3.1 框架选型
| 框架 | 选择 | 评价 |
|------|------|------|
| 桌面框架 | Tauri 2.0 | ✅ 体积小(~10MB性能好 |
| 前端框架 | React 19 | ✅ 最新特性,但未充分利用 |
| 状态管理 | Zustand 5 | ✅ 轻量、类型安全 |
| 样式 | TailwindCSS 4 | ✅ 原子化,开发效率高 |
| 动画 | Framer Motion | ✅ 声明式动画 |
| 桌面封装 | Tauri 2 | ✅ 成熟稳定 |
### 3.2 依赖管理
**package.json 关键依赖:**
```json
{
"dependencies": {
"@tauri-apps/api": "^2",
"react": "^19.1.0",
"zustand": "^5.0.11",
"framer-motion": "^12.36.0",
"lucide-react": "^0.577.0"
}
}
```
**Cargo.toml 关键依赖:**
```toml
[dependencies]
tauri = { version = "2", features = [] }
tokio = { version = "1", features = ["full"] }
sqlx = { version = "0.7", features = ["runtime-tokio", "sqlite"] }
fantoccini = "0.21" # Browser automation
keyring = "3" # Secure storage
```
**评价:** ✅ 依赖精简,版本稳定
---
## 四、业务逻辑分析
### 4.1 聊天功能实现
**消息流程:**
```
用户输入 → sendMessage()
→ 上下文压缩检查 (compactor.checkThreshold)
→ 记忆增强 (intelligenceClient.memory.search)
→ 添加用户消息
→ 创建流式占位消息
→ gatewayClient.chatStream()
→ 收集 tool/hand/workflow 事件
→ 流结束 → 提取记忆 (memory-extractor)
→ 触发反思 (intelligenceClient.reflection)
```
**评价:** ✅ 流程完整,异常处理充分
### 4.2 记忆系统实现
**记忆提取模式:**
1. **LLM 提取** - 使用 `llmExtract()` 语义提取
2. **规则提取** - 正则匹配模式
**记忆分类:**
- fact: 用户事实
- preference: 用户偏好
- lesson: 经验教训
- context: 上下文
- task: 任务
**分层上下文加载L0/L1/L2**
```
L0 (Quick Scan): 向量相似度搜索,返回概览
L1 (Standard): 加载 top 候选的 overview
L2 (Deep): 加载最相关项的完整内容
```
**评价:** ✅ 设计完善,已迁移到 Rust 后端
### 4.3 自主能力系统
**L4 分层授权:**
| 级别 | 自动内存保存 | 自动压缩 | 自动反思 |
|------|-------------|---------|---------|
| supervised | ❌ | ❌ | ❌ |
| assisted | ✅ | ✅ | ✅ |
| autonomous | ✅ | ✅ | ✅ |
**风险评估:**
- ACTION_RISK_MAP 定义每种操作的风险等级
- importanceMax + riskMax 双重判断
- 所有操作记录审计日志
**评价:** ✅ 授权机制完善
---
## 五、数据流与接口分析
### 5.1 整体数据流
```
用户操作 → React UI → Zustand Store → GatewayClient
WebSocket / REST
OpenFang Kernel
Skills / Hands 执行
```
### 5.2 Gateway Protocol v3
**消息类型:**
- req/res: 请求/响应模式
- event: 事件推送
- stream: 流式响应
**认证:** Ed25519 签名
### 5.3 Tauri Commands
**70+ Commands 分类:**
| 类别 | 命令数 | 示例 |
|------|--------|------|
| Browser | 18 | browser_navigate, browser_click, browser_screenshot |
| Memory | 12 | memory_store, memory_search, memory_stats |
| Intelligence | 15 | heartbeat_*, reflection_*, identity_* |
| Viking | 9 | viking_status, viking_find, viking_read |
| Gateway | 8 | gateway_start, gateway_stop, gateway_status |
| LLM | 3 | llm_complete |
**评价:** ✅ 接口粒度合理,类型安全
---
## 六、性能与安全分析
### 6.1 性能分析
#### 6.1.1 渲染性能
**虚拟滚动:** 已使用 react-window
**潜在问题:**
- ⚠️ 大量消息时可能 re-render
- ⚠️ 某些 Store selector 未优化
#### 6.1.2 网络性能
**WebSocket 心跳:**
- 间隔30 秒
- 超时10 秒
- 最大丢失3 次
**问题:**
- ⚠️ 单 WebSocket 连接,复用机制可优化
#### 6.1.3 计算性能
**Token 估算:**
```rust
// CJK: ~1.5 tokens/字符
// ASCII: ~0.3 tokens/字符
```
**评价:** ✅ 算法合理
### 6.2 安全分析
#### 6.2.1 认证机制
**Ed25519 设备认证:** ✅ 安全
#### 6.2.2 敏感数据
**存储:**
- API Key: OS Keyring ✅
- Token: OS Keyring ✅
- Theme: localStorage ⚠️
**问题:**
- ⚠️ localStorage 仍用于部分前端配置
- ⚠️ 日志可能包含敏感信息
#### 6.2.3 输入验证
**SQL 注入:** ✅ 使用参数化查询
**XSS** ⚠️ 需要确认输出转义
---
## 七、测试覆盖分析
### 7.1 测试文件分布
| 测试文件 | 覆盖范围 |
|----------|----------|
| autonomy-manager.test.ts | L4 授权逻辑 |
| agent-memory.test.ts | 记忆系统 |
| context-compactor.test.ts | 上下文压缩 |
| heartbeat-reflection.test.ts | 心跳和反思 |
| gatewayStore.test.ts | Store 状态 |
| chatStore.test.ts | 聊天逻辑 |
| teamStore.test.ts | 团队协作 |
| browserHandStore.test.ts | 浏览器手 |
| ws-client.test.ts | WebSocket 客户端 |
**评价:** ✅ 核心逻辑有覆盖,但可增加更多边界测试
### 7.2 E2E 测试
**Playwright 配置:** ✅ 已配置 chromium/chromium-headed
---
## 八、代码质量分析
### 8.1 大型文件
| 文件 | 规模 | 问题 |
|------|------|------|
| gateway-client.ts | 65KB | 职责过重 |
| gatewayStore.ts | 352行 | 已是 facade仍偏大 |
### 8.2 技术债务
**TODO/FIXME**
- intelligence/mod.rs: Phase 3 迁移中
- viking_commands.rs: 平台二进制解析
**Rust unsafe**
- context_builder.rs: 多处 unwrap()
### 8.3 localStorage 使用
**仍在使用 localStorage 的模块:**
- intelligence-client.ts: 降级模式
- skill-discovery.ts: 技能索引缓存
- agent-swarm.ts: 蜂群历史
- gateway-api.ts: 主题等配置
---
## 九、分析维度评分
| # | 维度 | 评分 | 主要发现 |
|---|------|------|----------|
| 1 | 代码结构 | 4/5 | 组件划分清晰,文件组织合理 |
| 2 | 架构设计 | 4/5 | 分层清晰,模块职责明确 |
| 3 | 技术选型 | 4/5 | 框架选择合理,依赖精简 |
| 4 | 业务实现 | 4/5 | 核心流程完整,异常处理充分 |
| 5 | 数据流设计 | 4/5 | 流向清晰,同步机制完善 |
| 6 | 接口设计 | 4/5 | Tauri Commands 粒度合理 |
| 7 | 性能表现 | 3/5 | 存在优化空间re-render、WebSocket |
| 8 | 安全合规 | 4/5 | 认证机制完善,部分数据需加强 |
| 9 | 测试覆盖 | 3/5 | 核心逻辑有覆盖,边界测试不足 |
| 10 | 文档质量 | 4/5 | 文档详尽,部分需更新 |
| 11 | 可维护性 | 4/5 | 架构清晰,部分大文件需重构 |
| 12 | 可扩展性 | 4/5 | Plugin 机制、Skills 系统完善 |
**综合评分3.8 / 5.0**
---
## 十、关键问题清单
### 🔴 P0 - 需立即处理
1. **gateway-client.ts 过大** (65KB)
- 建议:拆分为 gateway-core.ts, gateway-ws.ts, gateway-rest.ts
2. **localStorage 降级风险**
- intelligence-client.ts 在非 Tauri 环境使用 localStorage
- 建议:统一使用 Rust 后端,移除 localStorage 降级
### 🟡 P1 - 应尽快处理
3. **Rust unwrap() 风险**
- context_builder.rs 多处 unsafe unwrap
- 建议:使用 expect() 并添加错误信息
4. **测试覆盖不足**
- E2E 测试不稳定
- 建议:增加边界测试,提高测试稳定性
### 🟢 P2 - 计划处理
5. **Store selector 优化**
- 避免不必要的 re-render
- 建议:使用 Zustand 的 shallow 比较
6. **WebSocket 连接池化**
- 当前单连接,可考虑连接池
- 建议:评估性能瓶颈后优化
---
## 十一、头脑风暴议题
详见 `BRAINSTORMING-SESSION.md`
---
## 十二、附录
### A. 关键文件索引
| 文件 | 位置 | 说明 |
|------|------|------|
| CLAUDE.md | 根目录 | 项目规范文档 |
| gateway-client.ts | desktop/src/lib/ | 核心通信客户端 |
| intelligence-client.ts | desktop/src/lib/ | 智能层统一 API |
| chatStore.ts | desktop/src/store/ | 聊天状态管理 |
| lib.rs | desktop/src-tauri/src/ | Rust 后端入口 |
| intelligence/ | desktop/src-tauri/src/ | 智能层 Rust 实现 |
| memory/ | desktop/src-tauri/src/ | 内存持久化 |
### B. 参考文档
- docs/analysis/ZCLAW-DEEP-ANALYSIS.md (2026-03-20)
- docs/features/00-architecture/
- docs/plans/INTELLIGENCE-LAYER-MIGRATION.md