# ZCLAW 项目深度分析与头脑风暴 ## 一、项目全景概览 ### 1.1 项目定位 ZCLAW 是一个**基于 OpenClaw 框架的定制化中文 AI 助手平台**,对标 AutoClaw (智谱) 和 QClaw (腾讯)。 **核心价值主张**: ``` OpenClaw Gateway (成熟执行引擎) ↕ WebSocket Protocol v3 ZCLAW Tauri App (轻量桌面 UI) + 中文模型 Provider (GLM/Qwen/Kimi/MiniMax) + 飞书 Channel Plugin + 分身(Clone) 管理系统 + 自定义 Skills ``` ### 1.2 架构演进历程 | 阶段 | 架构方向 | 状态 | |------|----------|------| | v1 | 自建 AI Agent 框架 (src/core/*) | 🗑️ 已归档 | | v2 | 基于 OpenClaw + Tauri | ✅ 当前方向 | **架构转向原因**:v1 偏离初衷约 75%,重复造轮子而非复用 OpenClaw 生态。 ### 1.3 技术栈一览 | 层级 | 技术 | 版本 | |------|------|------| | 执行引擎 | OpenClaw Gateway | Node.js daemon | | 桌面壳 | Tauri | 2.0 | | 前端框架 | React | 19.1.0 | | 状态管理 | Zustand | 5.0.11 | | 样式 | TailwindCSS | 4.2.1 | | 构建工具 | Vite | 7.0.4 | | 语言 | TypeScript | 5.8.3 | | 通信协议 | WebSocket | Gateway Protocol v3 | --- ## 二、当前项目状态 ### 2.1 已完成阶段 | Phase | 内容 | 完成度 | |-------|------|--------| | Phase 1 | 后端 Gateway 层 + 插件 + Skills | ✅ 100% | | Phase 2 | 前端 Settings 页面体系 (10页) | ✅ 100% | | Phase 3 | 聊天对接 + 分身管理 | ✅ 100% | | Phase 3.5 | 前端质量提升 | ✅ 100% | | Phase 4 | OpenClaw 真实集成测试 | ⏳ 待开始 | | Phase 5 | Tauri Rust sidecar + 打包发布 | 📋 规划中 | ### 2.2 代码统计 | 类别 | 文件数 | 说明 | |------|--------|------| | Gateway 层 | 3 | manager.ts, ws-client.ts, index.ts | | 插件 | 6 | 3 plugins × (index.ts + plugin.json) | | Skills | 2 | 2 × SKILL.md | | 配置 | 5 | 1 JSON + 4 MD | | 前端组件 | 15+ | 组件/Store/工具库 | | v1 遗留代码 | 37+ | src/core/* (已归档) | ### 2.3 编译状态 - TypeScript: **0 errors** - Vite build: **成功** (1766 modules, 268 KB JS + 26 KB CSS) --- ## 三、核心模块深度分析 ### 3.1 OpenClaw Gateway 集成层 (src/gateway/) #### manager.ts - 子进程管理器 ``` 功能: 管理 OpenClaw Gateway 子进程生命周期 特性: - 启动/停止 Gateway daemon - 健康检查 (HTTP 探测) - 自动重启 (最多 5 次) - 连接外部已运行实例 ``` #### ws-client.ts - WebSocket 客户端 ``` 功能: 实现 OpenClaw Gateway Protocol v3 特性: - 三步握手 (challenge → connect → hello-ok) - 请求/响应模式 (30秒超时) - 事件订阅 (agent/chat/presence/health/heartbeat) - 自动重连 (指数退避 1.5x, 最大 30s) ``` ### 3.2 自定义插件系统 (plugins/) #### @zclaw/chinese-models - 中文模型 Provider | Provider | 模型 | |----------|------| | 智谱 GLM | glm-5, glm-4.7, glm-4-plus, glm-4-flash | | 通义千问 | qwen3.5-plus, qwen-max, qwen-vl-max | | Kimi | kimi-k2.5, moonshot-v1-128k | | MiniMax | minimax-m2.5, abab6.5s-chat | **设计特点**: 全部使用 OpenAI 兼容 API 格式,支持自定义 Base URL。 #### @zclaw/feishu - 飞书 Channel Plugin ``` 功能: 将飞书注册为 OpenClaw 消息渠道 特性: - OAuth tenant_access_token 管理 (2h 有效期, 1.5h 刷新) - 文本/富文本消息发送 - 多账户支持 ``` #### @zclaw/ui - UI 扩展 RPC | 方法 | 功能 | |------|------| | zclaw.clones.* | 分身 CRUD | | zclaw.stats.* | 用量/会话统计 | | zclaw.config.quick | 快速配置 | | zclaw.workspace.info | 工作区信息 | | zclaw.plugins.status | 插件状态 | ### 3.3 前端架构 (desktop/src/) #### 三层布局 ``` ┌─────────────────────────────────────────────────────────┐ │ Sidebar (w-64) │ ChatArea (flex-1) │ RightPanel (w-72) │ │ 左侧边栏 │ 中间对话区 │ 右侧边栏 │ └─────────────────────────────────────────────────────────┘ ``` #### 状态管理 (Zustand) - **chatStore**: 消息/对话/Agent/流式状态 - **gatewayStore**: 连接/分身/统计/插件状态 #### 关键组件 | 组件 | 职责 | |------|------| | ChatArea | 消息展示 + 流式输出 + Markdown渲染 + 模型选择 | | Sidebar | 四标签 (对话/分身/频道/任务) | | RightPanel | Gateway状态 + 会话统计 + 插件状态 | | Settings/* | 10个设置页面对标 AutoClaw | ### 3.4 v1 遗留代码 (已归档) 以下代码位于 `src/core/` 等目录,已从编译范围排除: | 模块 | 状态 | 替代方案 | |------|------|----------| | 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 配置系统 | | api/ | 🗑️ | WebSocket + Tauri Commands | --- ## 四、头脑风暴:机会与挑战 ### 4.1 架构优势 💪 1. **复用成熟生态** - OpenClaw 28万+ Stars,工具执行/Skills/MCP/心跳引擎成熟 - 避免重复造轮子,专注差异化价值 2. **Tauri 轻量化** - ~10MB vs Electron ~150MB - Rust native 性能优异 - 系统级集成能力 3. **中文优先定位** - 4大中文模型原生支持 - 飞书/微信/QQ 等 IM 渠道 4. **模块化插件设计** - Provider/Channel/RPC 插件独立开发 - 可扩展性强 ### 4.2 潜在风险 ⚠️ 1. **OpenClaw 依赖** - 版本兼容性风险 - 文档/社区支持限制 2. **v1 遗留代码清理** - 37+ 文件需要决策 (保留/删除/重构) - 可能存在可复用的代码片段 3. **Tauri 后端功能有限** - 当前 Rust 代码几乎为空 - 需要实现 sidecar/文件系统/通知等 4. **测试覆盖不足** - 未见测试文件 - 集成测试缺失 ### 4.3 创新机会 💡 #### A. 分身系统增强 ``` 当前: 基础 CRUD 增强方向: - 分身间协作 (多 Agent 编排) - 分身记忆隔离/共享 - 分身能力画像 (擅长领域) - 分身市场 (社区分享) ``` #### B. Skills 生态扩展 ``` 当前: 2 个基础 Skills 扩展方向: - 社媒运营套件 (微博/小红书/抖音) - 学术研究助手 (论文/文献/翻译) - 代码审查专家 (PR Review/安全审计) - 数据分析专家 (SQL/报表/可视化) ``` #### C. IM 渠道深化 ``` 当前: 飞书基础支持 深化方向: - 微信企业号 (WeCom API) - QQ 机器人 (NapCat/Go-CQHTTP) - 钉钉/飞书/企业微信三合一 - 消息路由规则 (关键词/时间/来源) ``` #### D. 工作区智能化 ``` 当前: 基础目录配置 智能方向: - 项目上下文感知 (package.json/README 解析) - 代码库索引 (LSP 集成) - 文件变更监听 (自动同步理解) - 多工作区切换 ``` #### E. 数据分析增强 ``` 当前: 基础用量统计 增强方向: - 对话质量分析 (满意度/解决率) - Token 成本优化建议 - 使用模式洞察 (高峰时段/常用功能) - 导出报告 (PDF/Excel) ``` ### 4.4 技术改进建议 🔧 #### 短期 (1-2周) 1. **完成 Phase 4 集成测试** - 安装并验证 OpenClaw - 测试 Gateway 连接 - 验证插件注册 - 端到端消息收发测试 2. **清理 v1 遗留代码** - 评估每模块的可复用性 - 删除确定无用的代码 - 保留有价值的工具函数 3. **补充基础测试** - Gateway 协议单元测试 - 前端组件测试 - E2E 关键流程测试 #### 中期 (1-2月) 1. **Tauri Rust 后端扩展** - Gateway sidecar 管理 - 系统托盘集成 - 原生通知 - 文件系统访问 2. **微信/QQ Channel Plugin** - 调研 NapCat/Go-CQHTTP - 实现 Channel Plugin 接口 3. **Skills 扩展** - 社媒运营套件 - 代码审查助手 #### 长期 (3-6月) 1. **多 Agent 协作可视化** - 任务依赖图 - 执行进度追踪 - 结果聚合展示 2. **插件市场** - 插件发现/安装/更新 - 社区贡献机制 3. **移动端伴侣 App** - Flutter/React Native - 与桌面端数据同步 --- ## 五、竞品对标分析 | 维度 | AutoClaw (智谱) | QClaw (腾讯) | ZCLAW | |------|----------------|--------------|-------| | 基础框架 | OpenClaw | OpenClaw | OpenClaw | | IM 渠道 | 飞书 | 微信+QQ | 飞书 (计划微信/QQ) | | 桌面框架 | 自研 | Electron | Tauri 2.0 | | 模型支持 | GLM 系列 | 腾讯混元 | GLM/Qwen/Kimi/MiniMax | | 安装包大小 | 未知 | ~150MB | ~10MB (目标) | | 开源状态 | 未开源 | 未开源 | MIT 开源 | **差异化优势**: - 🦀 Tauri 轻量化 - 🌐 多中文模型支持 - 🔓 开源可定制 - 🧩 插件生态开放 --- ## 六、下一步行动计划 ### Phase 4: 真实集成测试 (当前优先级) ``` [ ] 1. 安装 OpenClaw - Windows: iwr -useb https://openclaw.ai/install.ps1 | iex - 验证: openclaw --version [ ] 2. 配置 Gateway - 运行 openclaw configure - 填入 API Key (智谱/通义/Kimi 任选) [ ] 3. 启动 Gateway - openclaw gateway - 验证: curl http://127.0.0.1:18789/health [ ] 4. 注册 ZCLAW 插件 - pnpm setup - 验证插件加载 [ ] 5. 前端连接测试 - cd desktop && pnpm tauri dev - 验证 WebSocket 连接 - 测试消息收发 [ ] 6. 飞书 Channel 测试 - 配置飞书应用凭证 - 测试消息收发 ``` ### Phase 5: 打包发布准备 ``` [ ] Tauri Rust sidecar 实现 [ ] 安装包测试 (Windows/macOS/Linux) [ ] 自动更新机制 [ ] 文档完善 [ ] 发布 v0.1.0 ``` --- ## 七、总结 ZCLAW 是一个定位清晰的 OpenClaw 定制化项目,通过复用成熟生态 + Tauri 轻量桌面 + 中文优先策略,有望成为开源领域的 AutoClaw/QClaw 替代方案。 **核心建议**: 1. 🎯 聚焦 Phase 4 集成测试,打通端到端流程 2. 🧹 清理 v1 遗留代码,减少维护负担 3. ✅ 补充测试覆盖,提升代码质量 4. 🚀 迭代发布,快速验证市场反馈 --- --- ## 八、执行路线图 (用户选择) 基于用户反馈,将并行推进以下四个方向: ### 8.1 Phase 4: 真实集成测试 🔌 **目标**: 打通 OpenClaw Gateway ↔ ZCLAW Tauri 端到端流程 **任务清单**: ``` [ ] 安装 OpenClaw CLI - Windows: iwr -useb https://openclaw.ai/install.ps1 | iex - 验证: openclaw --version [ ] 配置 Gateway - 运行 openclaw configure - 配置 API Key (智谱 GLM 作为首选) [ ] 启动 Gateway daemon - openclaw gateway --port 18789 - 验证: curl http://127.0.0.1:18789/health [ ] 注册 ZCLAW 插件 - pnpm setup (执行 scripts/setup.ts) - 验证插件加载: openclaw plugins list [ ] 前端连接测试 - cd desktop && pnpm tauri dev - 验证 WebSocket 连接成功 - 测试消息发送和流式接收 [ ] 飞书 Channel 测试 (可选) - 配置飞书应用凭证 - 测试飞书消息收发 ``` **验收标准**: - ✅ Gateway 启动成功,健康检查通过 - ✅ 前端显示"已连接"状态 - ✅ 发送消息能收到 AI 流式回复 - ✅ 模型切换功能正常 ### 8.2 清理 v1 遗留代码 🧹 **目标**: 评估并处理 src/core/ 等 37+ 个归档文件 **待处理目录**: | 目录 | 文件数 | 建议操作 | |------|--------|----------| | 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/ai/ | ~6 | ⚠️ 评估 (可能复用 Provider) | | src/im/ | ~4 | 🗑️ 删除 (OpenClaw 替代) | | src/db/ | ~3 | 🗑️ 删除 (OpenClaw 替代) | | src/config/ | ~2 | 🗑️ 删除 (OpenClaw 替代) | | src/api/ | ~1 | 🗑️ 删除 (WebSocket 替代) | | src/app.ts | 1 | 🗑️ 删除 | | src/index.ts | 1 | 🔄 重写为简单入口 | **任务清单**: ``` [ ] 创建 archive/v1-backup 分支保存当前状态 [ ] 评估 src/core/ai/ 的可复用性 - providers/zhipu.ts 可能对插件开发有参考价值 - manager.ts 的 fallback 逻辑可借鉴 [ ] 删除确认无用的目录 [ ] 重写 src/index.ts 为最小化入口 [ ] 更新 tsconfig.json 移除对旧代码的引用 [ ] 验证编译: pnpm build (0 errors) ``` **验收标准**: - ✅ v1 代码已备份到独立分支 - ✅ 主分支代码精简,无死代码 - ✅ TypeScript 编译 0 errors - ✅ 项目结构清晰,符合 v2 架构 ### 8.3 补充测试覆盖 ✅ **目标**: 建立基础测试框架,覆盖关键模块 **测试分层**: ``` tests/ ├── unit/ # 单元测试 │ ├── gateway/ │ │ ├── manager.test.ts # 子进程管理 │ │ └── ws-client.test.ts # WebSocket 客户端 │ └── utils/ │ ├── logger.test.ts │ └── id.test.ts ├── integration/ # 集成测试 │ ├── gateway-protocol.test.ts # Gateway 协议 │ └── plugin-loading.test.ts # 插件加载 └── e2e/ # 端到端测试 └── chat-flow.test.ts # 完整对话流程 ``` **任务清单**: ``` [ ] 配置测试框架 - 安装 Vitest + @testing-library/react - 配置 vitest.config.ts [ ] Gateway 层单元测试 - ws-client.ts: 握手流程、重连逻辑 - manager.ts: 进程管理、健康检查 [ ] 前端组件测试 - chatStore: 消息发送、流式处理 - gatewayStore: 连接状态管理 - ChatArea: 消息渲染、输入处理 [ ] 集成测试 - Gateway Protocol v3 完整握手 - 插件注册和 RPC 调用 [ ] CI 集成 - GitHub Actions 自动运行测试 - 覆盖率报告 ``` **验收标准**: - ✅ 测试框架配置完成 - ✅ 核心模块测试覆盖率 > 60% - ✅ CI 流水线运行成功 ### 8.4 扩展 Skills/插件 🧩 **目标**: 丰富 Skills 生态,增加 IM 渠道支持 **Skills 扩展计划**: | Skill | 触发词 | 功能 | |-------|--------|------| | social-media | 发微博/小红书/抖音 | 社媒内容创作和发布 | | code-review | 审查代码/PR Review | 代码质量分析和建议 | | data-analysis | 分析数据/生成报表 | SQL 查询和可视化 | | translation | 翻译/中译英 | 多语言翻译 | **插件扩展计划**: | 插件 | 类型 | 优先级 | |------|------|--------| | @zclaw/wechat | Channel | 高 | | @zclaw/qq | Channel | 高 | | @zclaw/terminal | Tool | 中 | | @zclaw/advanced-memory | Memory | 中 | **任务清单**: ``` [ ] Skills 开发 - 创建 skills/social-media/SKILL.md - 创建 skills/code-review/SKILL.md - 创建 skills/data-analysis/SKILL.md - 创建 skills/translation/SKILL.md [ ] 微信 Channel Plugin 调研 - 评估 WeCom API 可行性 - 评估 NapCat/Go-CQHTTP 桥接方案 - 输出技术方案文档 [ ] QQ Channel Plugin 调研 - 评估 NapCatQQ 方案 - 输出技术方案文档 [ ] 插件开发 (选一个优先) - 实现微信或 QQ Channel Plugin ``` **验收标准**: - ✅ 至少 2 个新 Skills 可用 - ✅ 微信/QQ 技术方案文档完成 - ✅ 至少 1 个新 Channel Plugin 可测试 --- ## 九、执行优先级排序 基于依赖关系和价值,建议执行顺序: ``` 第 1 周: Phase 4 集成测试 + v1 代码清理 └─ 这两项可以并行,互不依赖 第 2 周: 补充测试覆盖 └─ 在集成测试通过后补充自动化测试 第 3-4 周: Skills/插件扩展 └─ 在稳定基础上扩展功能 ``` **里程碑**: - 🏁 Week 1 结束: 端到端流程打通 + 代码库精简 - 🏁 Week 2 结束: 测试覆盖率 > 60% - 🏁 Week 4 结束: 4+ 新 Skills + 1 新 Channel Plugin --- *分析完成于 2026-03-12* *执行计划更新于 2026-03-12*