# ZCLAW 完整开发文档 **版本**: v1.0 **日期**: 2026-03-11 **状态**: 开发前梳理 --- ## 📋 项目概述 ### 核心定位 **ZCLAW 是什么?** - 基于 OpenClaw 的 AI 代理平台 - 不是重新造轮子,而是**扩展 OpenClaw 的能力** - 目标:随时随地、一个 IM 入口搞定一切 ### 与 OpenClaw 的关系 ` OpenClaw (基础能力层) ↓ ZCLAW (增强层) ↓ 场景化解决方案 ` **关键理解**: - OpenClaw 提供:浏览器控制、文件操作、终端命令、记忆系统、技能系统 - ZCLAW 提供:远程执行、任务编排、多 Agent 协作、持续记忆、主动服务 - ZCLAW **复用 OpenClaw SDK**,不是重写 --- ## 🎯 用户的核心需求 ### 1. 远程操控 **场景**: ` 用户在地铁上 → 手机发微信 → 家里电脑执行任务 → 结果返回微信 ` **痛点**: - 必须坐在电脑前才能用 OpenClaw - 手机只能查看,不能操控 - 无法随时随地处理任务 **解决方案**: - IM 消息触达 → Gateway → 本地执行 → 结果回流 IM ### 2. 复杂任务自动化 **场景**: ` 用户:"帮我做市场调研" ZCLAW:自动拆解 10 步 → 逐步执行 → 完整报告 ` **痛点**: - 单步命令无法完成复杂任务 - 需要人工拆解和协调 - 没有进度可视化 **解决方案**: - AI 规划任务 - 多步骤编排 - 进度实时推送 ### 3. 持续记忆 **场景**: ` 用户上次说"我喜欢简洁的回复" ZCLAW 记住 → 下次自动简洁回复 ` **痛点**: - 每次对话都是新的,没有记忆 - 需要重复说明偏好 - 无法跨会话学习 **解决方案**: - 用户画像存储 - 行为模式学习 - 跨会话记忆 ### 4. 主动服务 **场景**: ` 设置每天 8 点推送天气 ZCLAW:主动推送,无需询问 ` **痛点**: - 只能被动响应 - 无法设置定时任务 - 缺少主动提醒 **解决方案**: - Cron 定时任务 - 主动消息推送 - 智能提醒 --- ## 🏗️ 技术架构 ### 整体架构 ` ┌─────────────────────────────────────────────────────────────┐ │ 用户入口层 │ │ 飞书 | 企业微信 | Telegram | QQ | Tauri 桌面端 │ └────────────────────┬────────────────────────────────────────┘ │ ┌────────────────────▼────────────────────────────────────────┐ │ ZCLAW 网关层 │ │ - 消息路由 │ │ - 认证授权 │ │ - 限流控制 │ └────────────────────┬────────────────────────────────────────┘ │ ┌────────────────────▼────────────────────────────────────────┐ │ ZCLAW 核心系统层 │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ 远程执行系统 │ │ 任务编排引擎 │ │ 多Agent协作 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ 持续记忆系统 │ │ 主动服务系统 │ │ 上下文回流 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ │ └────────────────────┬────────────────────────────────────────┘ │ ┌────────────────────▼────────────────────────────────────────┐ │ OpenClaw 基础能力层 │ │ 浏览器 | 文件系统 | 终端 | AI模型 | Skills | 记忆 │ └────────────────────┬────────────────────────────────────────┘ │ ┌────────────────────▼────────────────────────────────────────┐ │ 数据存储层 │ │ SQLite (结构化) | sqlite-vec (向量) | Redis (缓存) │ └─────────────────────────────────────────────────────────────┘ ` ### 核心系统详解 #### 1. 远程执行系统 **职责**: - 设备注册与管理 - 任务队列调度 - 执行状态同步 - 结果推送 **关键接口**: ` ypescript interface RemoteExecutionSystem { // 设备管理 registerDevice(device: Device): Promise; heartbeat(deviceId: string): Promise; // 任务管理 submitTask(task: Task): Promise; cancelTask(taskId: string): Promise; // 状态同步 getStatus(taskId: string): Promise; subscribe(taskId: string, handler: StatusHandler): void; // 结果推送 pushResult(taskId: string, result: Result): Promise; } ` **数据模型**: ` ypescript interface Device { id: string; name: string; userId: string; platform: 'macos' | 'windows' | 'linux'; capabilities: string[]; status: 'online' | 'offline' | 'busy'; lastHeartbeat: Date; } interface Task { id: string; userId: string; deviceId: string; channel: string; // 来源渠道(飞书/微信/...) type: 'immediate' | 'scheduled'; priority: 'high' | 'normal' | 'low'; payload: any; status: TaskStatus; result?: any; createdAt: Date; startedAt?: Date; completedAt?: Date; } ` **实现要点**: - 使用 BullMQ 任务队列(支持优先级、重试、延迟) - WebSocket 实时状态同步 - 多渠道结果推送(飞书/微信/...) #### 2. 任务编排引擎 **职责**: - 任务规划(AI 拆解) - 多步骤编排 - 依赖管理 - 进度可视化 - 错误恢复 **关键接口**: ` ypescript interface TaskOrchestrationEngine { plan(goal: string, context: Context): Promise; execute(plan: TaskPlan): Promise; getProgress(planId: string): Promise; pause(planId: string): Promise; resume(planId: string): Promise; cancel(planId: string): Promise; } ` **AI 规划 Prompt**: ` 你是一个任务规划专家。请将以下目标拆解为可执行步骤: 目标: {goal} 可用工具: - browser: 浏览器操作(访问网页、截图、填表) - file: 文件操作(读写、搜索、整理) - terminal: 终端命令(代码执行、系统操作) - api: API 调用(搜索、查询、推送) 上下文: {context} 要求: 1. 每个步骤明确、可执行 2. 标注步骤之间的依赖关系 3. 标注每个步骤需要的工具 输出格式 (JSON): { "steps": [ { "id": "step_1", "description": "步骤描述", "tool": "browser", "params": {...}, "dependencies": [] } ] } ` **执行流程**: ` 1. AI 规划 → 生成任务图 2. 拓扑排序 → 确定执行顺序 3. 检查依赖 → 等待前置步骤 4. 执行步骤 → 调用 OpenClaw 工具 5. 更新上下文 → 传递结果 6. 推送进度 → IM 渠道 7. 错误恢复 → 重试/跳过/失败 ` #### 3. 多 Agent 协作系统 **职责**: - Agent 生命周期管理 - 任务分配 - Agent 间通信 - 结果整合 **Agent 类型**: ` ypescript type AgentType = | 'planner' // 规划 Agent | 'browser' // 浏览器 Agent | 'file' // 文件 Agent | 'terminal' // 终端 Agent | 'combiner' // 整合 Agent | 'custom'; // 自定义 Agent ` **协作模式**: ` 用户:"做市场调研" ↓ Planner Agent:拆解任务 ↓ ┌─────────┬─────────┬─────────┐ │Browser │ Browser │ Browser │ ← 并行执行 │Agent │ Agent │ Agent │ └─────────┴─────────┴─────────┘ ↓ Combiner Agent:整合结果 ↓ 最终报告 → 推送给用户 ` #### 4. 持续记忆系统 **职责**: - 用户画像管理 - 行为模式学习 - 长期记忆存储 - 关系图谱构建 - 主动推荐 **数据模型**: ` ypescript interface UserProfile { userId: string; // 偏好记忆 preferences: { language: 'zh' | 'en'; model: string; responseStyle: 'concise' | 'detailed'; timezone: string; }; // 上下文记忆 contexts: { lastTopic: string; ongoingTasks: Task[]; recentFiles: string[]; }; // 行为模式 patterns: { activeHours: number[]; frequentCommands: string[]; preferredChannels: string[]; }; } ` **实现要点**: - SQLite 存储结构化数据 - sqlite-vec 向量搜索 - 定期分析用户行为模式 #### 5. 主动服务系统 **职责**: - 定时任务调度 - 智能提醒 - 主动推荐 - 异常预警 **关键接口**: ` ypescript interface ProactiveServiceSystem { scheduleTask(task: ScheduledTask): Promise; cancelTask(taskId: string): Promise; listTasks(userId: string): Promise; // 智能提醒 smartReminder(): Promise; // 主动推荐 proactiveRecommendation(userId: string): Promise; } ` **定时任务示例**: ` ypescript const task: ScheduledTask = { id: 'daily_weather', userId: 'user_123', channel: 'feishu', schedule: { type: 'daily', time: '08:00', timezone: 'Asia/Shanghai', }, task: { type: 'weather', prompt: '推送今天的天气', }, status: 'active', }; ` --- ## 🎨 Tauri 桌面端设计 ### 界面布局 ` ┌────────────────────────────────────────────────────────────────┐ │ ZCLAW 🦞 [分身] [IM 频道] [定时任务] [—] [□] [×] │ ├──────────────┬──────────────────────────┬─────────────────────┤ │ │ │ │ │ 左侧边栏 │ 中间对话区域 │ 右侧边栏 │ │ (240px) │ (自适应) │ (320px) │ │ │ │ │ │ ┌──────────┐ │ ┌──────────────────────┐ │ ┌─────────────────┐ │ │ │ Agent 列表│ │ │ 消息列表 │ │ │ 任务进度 │ │ │ │ │ │ │ │ │ │ │ │ │ │ 🦞 ZCLAW │ │ │ 🦞: 收到消息... │ │ │ ████████░░ 80% │ │ │ │ 🔍 沉思 │ │ │ │ │ │ │ │ │ │ 🌐 浏览器 │ │ │ 👤: 做市场调研 │ │ │ 今日统计 │ │ │ │ 📊 监控 │ │ │ │ │ │ • 任务: 8 │ │ │ └──────────┘ │ │ 🦞: 正在规划... │ │ │ • 成功: 6 │ │ │ │ │ │ │ │ │ │ │ ┌──────────┐ │ ┌──────────────────────┐ │ │ 下一步行动 │ │ │ │ 用户信息 │ │ │ 输入框 │ │ │ ☐ 初始化项目 │ │ │ └──────────┘ │ └──────────────────────┘ │ │ ☐ 集成 SDK │ │ │ │ │ └─────────────────┘ │ └──────────────┴──────────────────────────┴─────────────────────┘ ` ### 技术栈 - **框架**: Tauri 2.0 (Rust + React) - **前端**: React 18 + TypeScript - **样式**: Tailwind CSS - **图标**: Lucide React - **状态**: Zustand - **构建**: Vite ### 核心组件 #### 1. Sidebar (左侧边栏) - Agent 列表 - IM 频道列表 - 定时任务列表 - 用户信息 #### 2. ChatArea (中间对话区域) - 消息列表 - 消息气泡(用户/AI) - 输入框 - 模型选择器 #### 3. RightPanel (右侧边栏) - 任务进度条 - 今日统计 - 下一步行动 - 文件预览 ### 与 OpenClaw 的集成 ` ypescript // OpenClaw 客户端 class OpenClawClient { private rpcUrl: string; async send(message: string): Promise { const response = await fetch(this.rpcUrl, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message, sessionId: this.sessionId, }), }); return response.json(); } } ` --- ## 📅 开发计划 ### 阶段 1: MVP (Week 1-2) **目标**: 最小可用版本 | 功能 | 优先级 | 工作量 | |------|--------|--------| | 项目初始化 | P0 | 0.5 天 | | 远程执行系统基础 | P0 | 2 天 | | 飞书集成 | P0 | 1 天 | | 基础 IM 消息处理 | P0 | 1 天 | | Tauri 桌面端基础 | P0 | 2 天 | | 持续记忆基础 | P0 | 1 天 | | 测试 & 优化 | P0 | 1 天 | **交付物**: - ✅ 远程执行系统可用 - ✅ 飞书可发送消息并执行 - ✅ Tauri 桌面端可运行 - ✅ 基础记忆功能 ### 阶段 2: 增强 (Week 3-4) **目标**: 完善核心功能 | 功能 | 优先级 | 工作量 | |------|--------|--------| | 任务编排引擎 | P1 | 3 天 | | 多 Agent 协作 | P1 | 3 天 | | 企业微信集成 | P1 | 1 天 | | Telegram 集成 | P1 | 1 天 | | 主动服务系统 | P1 | 2 天 | **交付物**: - ✅ 复杂任务可拆解执行 - ✅ 多 Agent 可协作 - ✅ 多 IM 渠道支持 - ✅ 定时任务可用 ### 阶段 3: 场景化 (Week 5-6) **目标**: 场景解决方案 | 功能 | 优先级 | 工作量 | |------|--------|--------| | 社媒运营方案 | P2 | 3 天 | | 学术研究方案 | P2 | 2 天 | | 自动开发方案 | P2 | 3 天 | | 文档 & 优化 | P2 | 2 天 | **交付物**: - ✅ 3 个场景化方案 - ✅ 完整文档 - ✅ 用户测试 --- ## 🔧 技术栈详解 ### 后端 | 类别 | 技术 | 版本 | 用途 | |------|------|------|------| | **语言** | TypeScript | 5.x | 类型安全 | | **运行时** | Node.js | 22 LTS | 稳定 | | **框架** | OpenClaw SDK | latest | 复用基础能力 | | **数据库** | SQLite | 9.x | 本地存储 | | **向量** | sqlite-vec | 0.1.x | 向量搜索 | | **队列** | BullMQ | 5.x | 任务队列 | | **缓存** | Redis (可选) | 7.x | 缓存 | | **定时** | node-cron | 3.x | Cron 调度 | | **IM** | Koishi | 4.x | IM 集成 | ### 前端 (Tauri) | 类别 | 技术 | 版本 | 用途 | |------|------|------|------| | **框架** | Tauri | 2.0 | 桌面应用 | | **前端** | React | 18 | UI 框架 | | **样式** | Tailwind CSS | 4.x | 快速开发 | | **图标** | Lucide React | latest | 图标库 | | **状态** | Zustand | 5.x | 状态管理 | | **构建** | Vite | 7.x | 构建工具 | --- ## 📂 项目结构 ` G:\ZClaw/ ├── src/ # 后端代码 │ ├── core/ # 核心系统 │ │ ├── remote-execution/ # 远程执行 │ │ ├── task-orchestration/ # 任务编排 │ │ ├── multi-agent/ # 多 Agent 协作 │ │ ├── memory/ # 持续记忆 │ │ └── proactive/ # 主动服务 │ ├── im/ # IM 集成 │ │ ├── feishu/ # 飞书 │ │ ├── wecom/ # 企业微信 │ │ ├── telegram/ # Telegram │ │ └── koishi/ # Koishi 适配器 │ ├── skills/ # 场景化 Skills │ │ ├── social-media/ # 社媒运营 │ │ ├── research/ # 学术研究 │ │ └── development/ # 自动开发 │ ├── api/ # API 接口 │ ├── db/ # 数据库 │ └── index.ts # 入口 │ ├── desktop/ # Tauri 桌面端 │ ├── src/ │ │ ├── components/ # React 组件 │ │ ├── hooks/ # React Hooks │ │ ├── store/ # Zustand Store │ │ ├── utils/ # 工具函数 │ │ ├── App.tsx # 主应用 │ │ └── main.tsx # 入口 │ ├── src-tauri/ # Rust 后端 │ │ ├── src/ │ │ │ ├── main.rs # 入口 │ │ │ ├── commands.rs # Tauri 命令 │ │ │ └── openclaw.rs # OpenClaw 集成 │ │ ├── Cargo.toml │ │ └── tauri.conf.json │ ├── package.json │ └── vite.config.ts │ ├── tests/ # 测试 ├── docs/ # 文档 ├── package.json # 后端依赖 ├── tsconfig.json # TS 配置 ├── README.md # 项目说明 └── PROGRESS.md # 开发进度 ` --- ## 🚀 快速开始 ### 后端开发 `ash # 1. 安装依赖 cd G:\ZClaw pnpm install # 2. 配置环境变量 cp .env.example .env # 编辑 .env 填入 API keys # 3. 启动开发服务器 pnpm dev # 4. 运行测试 pnpm test ` ### Tauri 桌面端 `ash # 1. 安装依赖 cd G:\ZClaw\desktop pnpm install # 2. 启动开发服务器 pnpm tauri dev # 3. 构建生产版本 pnpm tauri build ` --- ## 🎯 成功指标 ### 技术指标 | 指标 | 目标 | |------|------| | 响应延迟 (P95) | < 3s | | 可用性 (SLA) | > 99% | | 任务成功率 | > 95% | | 并发用户数 | > 100 | ### 产品指标 | 指标 | 目标 | |------|------| | DAU (MVP) | > 100 | | 用户留存 (7日) | > 40% | | 任务完成率 | > 90% | | NPS | > 50 | --- ## 📝 关键决策 ### 决策 1: 渐进式开发 - **理由**: 快速验证,降低风险 - **方案**: MVP → 增强 → 场景化 ### 决策 2: 复用 OpenClaw - **理由**: 不重复造轮子 - **方案**: 使用 OpenClaw SDK ### 决策 3: Tauri 桌面端 - **理由**: 跨平台、性能好 - **方案**: Tauri 2.0 + React ### 决策 4: Koishi IM 集成 - **理由**: 成熟的 IM 适配器 - **方案**: Koishi + 自定义插件 --- ## ⚠️ 风险与缓解 | 风险 | 概率 | 影响 | 缓解措施 | |------|------|------|----------| | OpenClaw SDK 不稳定 | 中 | 高 | 多 Provider fallback | | IM 平台封号 | 中 | 高 | 使用官方 API、合规使用 | | 性能瓶颈 | 中 | 中 | 异步处理、缓存优化 | | 需求变更 | 高 | 中 | 敏捷开发、MVP 优先 | --- ## 📚 参考资料 - [OpenClaw 文档](C:\Program Files\AutoClaw\resources\gateway\openclaw\docs) - [Tauri 文档](https://tauri.app) - [Koishi 文档](https://koishi.chat) - [BullMQ 文档](https://docs.bullmq.io) --- **维护者**: ZCLAW 团队 **最后更新**: 2026-03-11 22:10