# sgClaw 项目团队分工 ## 总览 | 角色 | 负责人 | 技术栈 | 工作量估算 | 产出物 | |-----|--------|--------|-----------|--------| | **P1a 核心通信** | 赵义仑 | Rust, ZeroClaw | ~900 行代码 | 管道通信 + 浏览器工具 | | **P1b 业务支持** | TBD | Rust, ZeroClaw | ~600 行代码 | Skill 加载 + 记忆管理 | | **P2 浏览器对接** | TBD | C++, Chromium | ~600 行代码 | 浏览器端桥接模块 | | **P3 业务技能** | TBD | JavaScript, 提示词工程 | AI 辅助迁移 400+ 场景 | Skill 仓库管理 | | **P4 前端发布** | TBD | Vue, DevOps | ~150 行 + 工具链 | UI 面板 + Skill 后台 + 打包 | **总代码量**:约 2250 行(自研部分),基于 ZeroClaw 框架 **84% 复用** **团队规模**:5 人 **交付周期**:2 周 --- ## P1a · 核心通信开发(关键路径) **角色定位**:Rust 全栈工程师,负责 sgClaw 与浏览器的核心通信链路 **负责人**:赵义仑 ### 主要职责 1. **管道通信层** (Pipe Protocol) - 实现 STDIO Pipe 双向通信协议 - JSON Line 编解码 - 序列号 (sequence_id) 递增校验 - 握手协议和版本校验 - 消息大小限制(≤1MB) 2. **浏览器操作工具** (BrowserPipeTool) - 实现 ZeroClaw 的 `Tool` trait - 封装 15 个浏览器 Action: - 导航:navigate, reload, goBack, goForward - 交互:click, type, select, scrollTo - 读取:getText, getHtml, getAomSnapshot, pageScreenshot - 等待:waitForSelector, waitForNavigation - 存储:storageSet, storageGet - 错误处理和重试机制 3. **安全策略层** (MAC Policy) - 实现域名白名单校验 - Action 白名单校验 - Human-in-the-loop 确认机制 - 熔断器(连续失败 > 10 次自动停止) - HMAC 签名校验 ### 技术栈 - **语言**:Rust (edition 2021) - **框架**:ZeroClaw 0.x - **异步**:tokio - **序列化**:serde, serde_json - **加密**:ed25519-dalek, hmac, sha2 ### 产出物 ``` sgClaw/ src/ main.rs # 入口,管道初始化 pipe/ protocol.rs # Pipe 协议定义 reader.rs # STDIN 读取 writer.rs # STDOUT 写入 tool/ browser_pipe.rs # BrowserPipeTool (Tool trait impl) security/ mac_policy.rs # MAC 白名单策略 hmac.rs # HMAC 校验 config/ settings.rs # 配置文件解析 ``` **代码量**:约 900 行(不含 ZeroClaw 框架复用代码) ### 关键接口 ```rust // ZeroClaw 定义的 Tool trait pub trait Tool { async fn execute(&self, input: &str) -> Result; } // sgClaw 实现 pub struct BrowserPipeTool { pipe_writer: PipeWriter, mac_policy: MacPolicy, sequence_id: AtomicU64, } impl Tool for BrowserPipeTool { async fn execute(&self, input: &str) -> Result { // 1. 解析 JSON 命令 // 2. MAC 校验 // 3. 写入 Pipe // 4. 等待响应 // 5. 返回结果 } } ``` ### 里程碑 | 时间 | 任务 | 验收标准 | |-----|------|---------| | Day 1-2 | Pipe 通信打通 | STDIN/STDOUT 双向收发 JSON | | Day 3-4 | BrowserPipeTool 实现 | 完成 click/type/navigate 三个 Action | | Day 5 | **W1 里程碑** | LLM → Pipe → Browser 链路全通 | | Day 6-7 | MAC 策略集成 | 白名单校验生效,人工确认流程通 | | Day 8-9 | 联调测试 | 与 P1b、P2 联调,与 P3 联调 Skill 加载 | | Day 10 | **W2 里程碑** | 交付完整通信模块 | --- ## P1b · 业务支持开发 **角色定位**:Rust 工程师,负责 Skill 系统和记忆管理 ### 主要职责 1. **Skill 加载器** (SkillLoader) - 扫描 Skill 目录,解析元数据 - Ed25519 签名验证 - JavaScript 沙箱执行环境 - Skill 注册到 Agent 工具列表 2. **记忆管理** (CompositeMemory) - L0 即时记忆(LLM Context) - L1 短期记忆(Ring Buffer,50 条 / 8000 tokens) - L2 长期记忆(SQLite + 向量索引) - 记忆检索和压缩 3. **评估器** (Critic) - 质量评估逻辑(成功 / 失败 / 需重试) - 失败计数和熔断触发 - 执行日志记录 4. **主循环** (AgentRuntime) - 集成 ZeroClaw 的 ReAct Loop - 协调各模块运行 - 异步任务调度(tokio) ### 技术栈 - **语言**:Rust (edition 2021) - **框架**:ZeroClaw 0.x - **异步**:tokio - **数据库**:rusqlite (SQLite) - **向量**:faiss-rs 或 hnswlib(可选) - **JS 运行时**:rusty_v8 或 boa_engine ### 产出物 ``` sgClaw/ src/ agent/ runtime.rs # AgentRuntime,ReAct 循环 critic.rs # 评估器 skill/ loader.rs # Skill 发现与加载 executor.rs # JavaScript 沙箱执行 signature.rs # Ed25519 签名验证 memory/ composite.rs # CompositeMemory (Memory trait impl) ring_buffer.rs # L1 短期记忆 sqlite_store.rs # L2 长期记忆 llm/ provider.rs # LLM Provider 抽象 (ZeroClaw) ``` **代码量**:约 600 行(不含 ZeroClaw 框架复用代码) ### 协作依赖 - **依赖 P1a**:等 Day 5 后 Pipe 通信链路打通,再集成 AgentRuntime - **支持 P3**:提供 Skill 签名验证和加载能力,Day 6-7 联调 - **支持 P4**:Memory 模块的 SQLite 操作可由 P4 协助(如有余力) ### 里程碑 | 时间 | 任务 | 验收标准 | |-----|------|---------| | Day 1-3 | SkillLoader 开发 | 能扫描、解析、签名验证 Skill | | Day 4-5 | Memory 开发 | Ring Buffer + SQLite 存取正常 | | Day 6-7 | AgentRuntime 集成 | 集成 P1a 的 BrowserPipeTool | | Day 8-9 | Critic + 测试 | 评估器生效,联调测试 | | Day 10 | **W2 里程碑** | 交付完整 Agent 引擎 | --- ## P2 · 浏览器对接 **角色定位**:C++ Chromium 工程师,负责浏览器端桥接 ### 主要职责 1. **进程宿主** (SgClawProcessHost) - Singleton 单例模式 - 启动 sgclaw Rust 二进制进程 - 使用 `base::LaunchProcess` 创建子进程并传递 STDIO Pipe fd/HANDLE - 进程状态管理:Idle → Starting → Running → Stopping → Stopped / Crashed - 崩溃检测与自动重启(可选) - 优雅停止(发送 SIGTERM / CloseHandle) 2. **管道监听器** (PipeListener) - 监听 STDOUT fd,异步读取 JSON Line - 解析 JSON 命令(action + params) - 消息大小检查(≤1MB) - 分发给 CommandRouter 3. **MAC 白名单检查** (MacWhitelistCheck) - 读取 `rules.json` 配置文件 - 检查域名白名单(当前 Tab URL 是否在允许列表) - 检查 Action 白名单(是否允许执行该操作) - 返回:`Allow` | `NeedConfirm` | `Deny` 4. **与现有系统集成** - **CommandRouter**(已有 70+ 命令):零修改,sgClaw 只是一个新的命令来源 - **FunctionsUI**:新增 Side Panel UI 入口,调用 sgClaw API - **CdpBridgeManager / ZombiePageManager**:复用现有能力,无需修改 - **RpaGlobalStorage**:复用存储接口 ### 技术栈 - **语言**:C++17 - **框架**:Chromium base library - **IPC**:STDIO Pipe (fd / HANDLE) - **JSON**:base::JSONReader / base::JSONWriter - **线程**:base::SequencedTaskRunner ### 产出物 ``` src/chrome/browser/superrpa/sgclaw/ sgclaw_process_host.h # 进程宿主头文件 sgclaw_process_host.cc # 实现 (~200-300 行) pipe_listener.h # 管道监听器头文件 pipe_listener.cc # 实现 (~150 行) mac_whitelist_check.h # MAC 检查头文件 mac_whitelist_check.cc # 实现 (~100 行) rules.json # 白名单配置 BUILD.gn # 编译规则 src/chrome/browser/ui/views/side_panel/sgclaw/ sgclaw_panel_view.h # Side Panel UI (可选,P4 主导) sgclaw_panel_view.cc ``` **代码量**:约 500-600 行 C++(新增),**现有代码零修改** ### 关键接口 ```cpp // SgClawProcessHost.h class SgClawProcessHost { public: static SgClawProcessHost* GetInstance(); void Start(); void Stop(); enum class ProcessState { kIdle, kStarting, kRunning, kStopping, kStopped, kCrashed }; ProcessState GetState() const; private: SgClawProcessHost(); base::Process process_; std::unique_ptr listener_; ProcessState state_; }; // PipeListener.h class PipeListener { public: explicit PipeListener(base::ScopedFD stdout_fd); void StartListening(); using MessageCallback = base::RepeatingCallback; void SetMessageCallback(MessageCallback callback); private: void ReadLoop(); base::ScopedFD fd_; MessageCallback callback_; }; // MacWhitelistCheck.h enum class MacResult { kAllow, kNeedConfirm, kDeny }; class MacWhitelistCheck { public: static MacWhitelistCheck* GetInstance(); MacResult Check(const std::string& domain, const std::string& action); private: void LoadRules(); std::set allowed_domains_; std::set allowed_actions_; }; ``` ### 与现有系统关系 ``` FunctionsUI (Vue) ↓ IPC SgClawProcessHost (C++ Singleton) ↓ STDIO Pipe sgclaw (Rust 进程) ↓ JSON 命令 via Pipe PipeListener → MacWhitelistCheck → CommandRouter (已有 70+ 命令) ↓ CdpBridge / Zombie / Session ... ``` **零侵入设计**:sgClaw 不在时,浏览器完全正常工作 ### 里程碑 | 时间 | 任务 | 验收标准 | |-----|------|---------| | Day 1-2 | ProcessHost 基础框架 | 能启动 dummy 进程 | | Day 3-4 | Pipe 双向通信 | 能收发 JSON 消息 | | Day 5 | **W1 里程碑** | 与 P1a 联调成功 | | Day 6-7 | MAC 白名单 + CommandRouter 对接 | 安全策略生效 | | Day 8-9 | 集成测试 | 浏览器端稳定运行 | --- ## P3 · 业务技能开发 **角色定位**:业务 + AI 工程师,负责 400+ 场景迁移和 Skill 仓库管理 ### 主要职责 1. **黄金样本制作(Day 1-3)** - 精选 **10-15 个代表性场景** - 覆盖各种模式:表单填写、审批流、数据采集、跨系统同步、定时巡检 - 手工编写为**标准 Skill 格式** + 详细注释 - 作为 Few-shot 范例 2. **提示词工程(Day 3-4)** - 设计 System Prompt:agent-vue → sgClaw Skill 翻译专家 - 在 10 个样本上测试,迭代到 **90%+ 准确率** - 约束:只能用沙箱 API,禁止 fetch/require/eval 3. **批量 AI 翻译(Day 5-7)** - 用 **Qwen-72B** 或 **DeepSeek** 批量处理 400+ 场景 - 每批 20-30 个场景 - 输出:400+ 个 Skill 候选文件 - 自动生成元数据 + 参数 Schema 4. **自动化测试与质量把控(Day 7-9)** - 静态检查:元数据完整性、签名格式、参数 Schema - 语法检查:JS 语法、沙箱 API 合规性 - Mock 执行:不连真实系统,只测结构 - **人工抽检**:每 20 个抽 1 个深度测试 5. **业务验证(Day 10+)** - 交给业务方按场景分批验证 - 错误反馈 → 人工修正 → 更新提示词 - 持续自进化 6. **Skill 仓库管理** - 建立 Skill 目录结构 - 编写 Skill 开发文档 - 制作签名工具脚本 - Skill 版本管理 ### 技术栈 - **语言**:JavaScript (ES6+) - **AI**:内网大模型(Qwen-72B / DeepSeek) - **提示词工程**:Few-shot learning, System Prompt 设计 - **业务系统**:OA、ERP、财务、HR 等 - **工具**:Node.js (签名工具), JSON Schema - **加密**:Ed25519 (通过 Node.js crypto) ### Skill 定义格式 ```javascript /** * @skill erp-monthly-report * @version 1.0.0 * @author P3 * @domains erp.example.com * @params { * "month": { "type": "string", "pattern": "^\\d{4}-\\d{2}$" }, * "format": { "type": "string", "enum": ["pdf", "excel"] } * } * @description 导出 ERP 月度合规报表 * @signature */ async function execute(params, browserAction) { // 1. 导航到 ERP 报表页 await browserAction('navigate', { url: 'https://erp.example.com/report' }); // 2. 等待页面加载 await browserAction('waitForSelector', { selector: '#report-form', timeout: 5000 }); // 3. 填写月份 await browserAction('type', { selector: '#month-input', text: params.month }); // 4. 选择格式 await browserAction('select', { selector: '#format-select', value: params.format }); // 5. 点击导出 await browserAction('click', { selector: '#export-button' }); // 6. 等待下载完成 await browserAction('waitForSelector', { selector: '.success-message', timeout: 30000 }); return { success: true, message: '报表已导出' }; } ``` ### 产出物 ``` sgClaw/skills/ built-in/ 黄金样本/ # 10-15 个手工精制 erp-monthly-report.js oa-batch-approve.js ... AI生成/ # 400+ 个 AI 翻译 财务合规/ OA审批/ 风险监测/ 人资社保/ 营销数据/ 跨系统同步/ ... prompts/ translation-system.txt # System Prompt few-shot-examples.json # Few-shot 范例 tools/ sign-skill.js # 签名工具脚本 verify-skill.js # 验证工具 batch-translate.js # 批量翻译脚本 schema/ skill-metadata.json # 元数据 JSON Schema README.md # Skill 开发指南 ``` **工作量**:10-15 个黄金样本(手工)+ 400+ 个 AI 生成 + 提示词工程 ### 沙箱约束 **允许使用**: - `browserAction(action, params)` — 调用浏览器操作 - `console.log()` — 日志输出 - `JSON.*` — JSON 处理 - `Promise` / `async/await` — 异步操作 - `setTimeout` / `setInterval` — 定时器 **禁止使用**: - `fetch()` / `XMLHttpRequest` — 网络请求 - `require()` / `import()` — 模块加载 - `process.*` — 进程操作 - `fs.*` — 文件系统 - `eval()` / `Function()` — 动态代码执行 ### AI 辅助迁移工作流 | 阶段 | 方式 | 工作量 | 输出 | |-----|------|--------|------| | **Phase 1 · 黄金样本** | 人工精制 | Day 1-3 | 10-15 个代表性 Skill | | **Phase 2 · 提示词工程** | 迭代优化 Prompt | Day 3-4 | 翻译准确率 >90% | | **Phase 3 · 批量翻译** | 内网大模型处理 | Day 5-7 | 400+ Skill 候选 | | **Phase 4 · 质量把控** | 自动检查 + 抽检 | Day 7-9 | 通过率 >85% | | **Phase 5 · 业务验证** | 分批上线 | Day 10+ | 持续迭代 | ### 里程碑 | 时间 | 任务 | 验收标准 | |-----|------|---------| | Day 1-3 | 黄金样本制作 | 10-15 个手工 Skill 完成 | | Day 4 | 提示词工程 | 翻译准确率 >90% | | Day 5-7 | 批量翻译 | 400+ Skill 文件生成 | | Day 8-9 | 质量把控 | 自动检查通过率 >85% | | Day 10 | **W2 里程碑** | 交付 Skill 仓库 + 文档 | --- ## P4 · 前端与发布 **角色定位**:前端工程师 + DevOps,负责 UI、Skill 后台和打包发布 ### 主要职责 1. **Side Panel UI 开发** - Vue 2.6 + Element UI - AI 助手对话界面 - 指令输入框 - 执行进度显示 - 日志输出面板 - 启停按钮 2. **Skill 管理后台(新增)** - Skill 列表 CRUD 界面 - 管理 400+ Skill 的启用/禁用 - Skill 签名验证状态显示 - Skill 执行统计和日志查看 - 元数据编辑和版本管理 3. **与浏览器集成** - 通过 FunctionsUI IPC 与 C++ 通信 - 调用 SgClawProcessHost 接口(Start / Stop) - 接收执行状态更新 4. **测试框架搭建** - 单元测试(Jest) - 集成测试(Puppeteer / Playwright) - E2E 场景测试(6 大业务场景) - 测试报告生成 5. **CI/CD 流水线** - Rust 编译脚本(Linux + Windows) - C++ 编译集成到现有 Chromium 构建 - 自动化测试执行 - 打包生成安装包 6. **双平台打包** - **银河麒麟 V10 SP1**:.deb 包 - **Windows 10/11**:.exe 安装包 - 版本号管理 - 发布说明文档 7. **协助 P1b(可选)** - Memory 模块的 SQLite 数据库操作(如有余力) ### 技术栈 - **前端**:Vue 2.6, Element UI, JavaScript - **测试**:Jest, Puppeteer - **构建**:Node.js, Bash, Python - **打包**:dpkg-deb (Linux), NSIS (Windows) - **CI/CD**:GitLab CI / Jenkins ### 产出物 ``` agent-vue/src/view/sgclaw/ AgentControlPanel.vue # AI 助手面板 (~100 行) SkillManager.vue # Skill 管理后台 (~150 行) sgClaw/ tests/ unit/ # Rust 单元测试 integration/ # Rust + C++ 集成测试 e2e/ # E2E 场景测试 财务合规.spec.js OA审批.spec.js ... scripts/ build-linux.sh # Linux 编译脚本 build-windows.sh # Windows 交叉编译 build-chrome.sh # Chromium 编译 package-deb.sh # 打包 .deb package-exe.sh # 打包 .exe .gitlab-ci.yml # CI/CD 配置 Dockerfile # 构建环境镜像(可选) release/ sgclaw-v1.0.0-kylin-v10-amd64.deb sgclaw-v1.0.0-windows-x64.exe CHANGELOG.md INSTALL.md ``` **代码量**:约 150 行 Vue(UI + Skill 后台)+ 若干脚本 ### UI 设计 #### AI 助手面板 ``` ┌─────────────────────────────────────┐ │ AI 助手 [ X ]│ ├─────────────────────────────────────┤ │ │ │ 🤖 sgClaw 就绪 │ │ │ │ ┌───────────────────────────────┐ │ │ │ 请输入指令... │ │ │ └───────────────────────────────┘ │ │ [发送] [停止] │ │ │ │ ─────── 执行日志 ─────── │ │ ✓ 已登录 ERP │ │ ✓ 导航到报表页 │ │ ⏳ 正在导出... │ │ │ └─────────────────────────────────────┘ ``` #### Skill 管理后台 ``` ┌─────────────────────────────────────┐ │ Skill 管理 [ X ]│ ├─────────────────────────────────────┤ │ [搜索] [刷新] [批量启用/禁用] │ ├─────────────────────────────────────┤ │ ✅ erp-monthly-report [详情] [禁用]│ │ ✅ oa-batch-approve [详情] [禁用]│ │ ⏸️ risk-monitor [详情] [启用]│ │ ... │ └─────────────────────────────────────┘ ``` ### 测试金字塔 ``` E2E (5%) ──────── Integration (10%) ────────────────── C++ Unit (15%) ──────────────────── Rust Unit (70%) ────────────────────────── ``` - **70% Rust 单元测试**:mock LLM + mock Pipe - **15% C++ 单元测试**:ProcessHost / Listener / MAC - **10% 集成测试**:真实 sgclaw 进程 + mock Browser - **5% E2E 测试**:完整场景 + mock LLM ### 部署目标 | 平台 | 操作系统 | 架构 | 包格式 | 大小 | |-----|---------|------|--------|------| | 主要 | 银河麒麟 V10 SP1 | x86_64 | .deb | ~456 MB (浏览器 447MB + sgClaw 9MB) | | 次要 | Windows 10/11 | x86_64 | .exe | ~460 MB | ### 里程碑 | 时间 | 任务 | 验收标准 | |-----|------|---------| | Day 1-3 | Side Panel UI + Skill 后台 | 界面可用,能发送指令和管理 Skill | | Day 4-5 | 测试框架搭建 | 单元测试覆盖率 > 70% | | Day 6-7 | 编译脚本 + CI/CD | 自动化编译成功 | | Day 8-9 | 打包测试 | 两平台安装包生成 | | Day 10 | **W2 里程碑** | 正式发布 v1.0.0 | --- ## 协作接口 ### P1a ↔ P2 接口 **Pipe 协议规范**(JSON Line over STDIO) **Request** (C++ → Rust, via STDIN): ```json { "sequence_id": 1, "action": "click", "params": { "selector": "#submit-button", "button": "left" }, "timestamp": 1709499600000 } ``` **Response** (Rust → C++, via STDOUT): ```json { "sequence_id": 1, "status": "success", "result": { "clicked": true }, "error": null, "timestamp": 1709499601000 } ``` ### P1a ↔ P1b 接口 **模块依赖关系**: - P1b 的 `AgentRuntime` 依赖 P1a 的 `BrowserPipeTool` - P1b 的 `SkillLoader` 提供 Skill 列表给 `AgentRuntime` - P1a 的 `MacPolicy` 在 `BrowserPipeTool` 内部调用 **接口约定**: ```rust // P1a 提供 pub struct BrowserPipeTool; impl Tool for BrowserPipeTool { ... } // P1b 使用 let browser_tool = BrowserPipeTool::new(...); agent_runtime.register_tool(Box::new(browser_tool)); ``` ### P2 ↔ P4 接口 **FunctionsUI IPC**(Vue ↔ C++) ```javascript // Vue 调用 C++ 接口 window.superrpa.sgclaw.start() window.superrpa.sgclaw.stop() window.superrpa.sgclaw.sendCommand(text) window.superrpa.sgclaw.onStatusChange((status) => { ... }) window.superrpa.sgclaw.onLog((log) => { ... }) // Skill 管理接口 window.superrpa.sgclaw.listSkills() window.superrpa.sgclaw.toggleSkill(skillId, enabled) window.superrpa.sgclaw.getSkillStats(skillId) ``` ### P1b ↔ P3 接口 **Skill 元数据规范** - 元数据头必须是 JSDoc 注释格式 - `@skill` 唯一标识符(必需) - `@version` 语义化版本号(必需) - `@params` JSON Schema(可选) - `@signature` Ed25519 签名(必需) **BrowserAction API**(Skill 调用) ```javascript await browserAction(action, params) // 返回 Promise ``` --- ## 错误码分类 | 类别 | 前缀 | 示例 | 责任方 | |-----|------|------|--------| | 管道层 | PIPE_* | PIPE_BROKEN, PIPE_TIMEOUT | P1a, P2 | | 安全层 | MAC_* | MAC_DENIED, MAC_INVALID_DOMAIN | P1a, P2 | | 命令层 | CMD_* | CMD_INVALID_ACTION, CMD_TIMEOUT | P1a | | 会话层 | SESSION_* | SESSION_EXPIRED | P1b | | 技能层 | SKILL_* | SKILL_SIGNATURE_INVALID, SKILL_NOT_FOUND | P1b, P3 | | 内部层 | INTERNAL_* | INTERNAL_ERROR | 所有 | --- ## 代码复用分析 ### ZeroClaw 提供(84%) - ReAct Loop 循环引擎 - Tool / Provider / Memory trait 定义 - MCP Client (rmcp) - Streaming Output - 多 Provider 支持(Claude / GPT / Ollama) - 配置文件解析 - 日志系统 ### sgClaw 自研(16%) | 模块 | 行数 | 负责人 | |-----|------|--------| | **P1a 核心通信** | | | | Pipe Protocol | ~300 | P1a (赵义仑) | | BrowserPipeTool | ~400 | P1a (赵义仑) | | MAC Policy | ~200 | P1a (赵义仑) | | **P1b 业务支持** | | | | SkillLoader | ~300 | P1b | | CompositeMemory | ~200 | P1b | | Critic | ~100 | P1b | | **P2 浏览器对接** | | | | SgClawProcessHost | ~250 | P2 | | PipeListener | ~150 | P2 | | MacWhitelistCheck | ~100 | P2 | | **P3 业务技能** | | | | 黄金样本 Skill | ~150 | P3 | | AI 翻译 400+ Skill | AI 生成 | P3 | | **P4 前端发布** | | | | Side Panel UI | ~100 | P4 | | Skill Manager | ~150 | P4 | | **总计** | **~2250** | - | **从零开发预估**:~13000 行 → 基于 ZeroClaw 仅需 ~2250 行(**减少 83%**) --- ## 沟通机制 ### 每日站会 - **时间**:每日 10:00 - **时长**:15 分钟 - **内容**:昨日进展 / 今日计划 / 阻塞问题 ### 联调时间 - **P1a + P2**:Day 3-5,重点打通 Pipe 通信(**关键路径**) - **P1a + P1b**:Day 6-7,集成 AgentRuntime - **P1b + P3**:Day 6-7,Skill 加载测试 - **P2 + P4**:Day 4-5,UI 集成测试 - **全员**:Day 8-9,E2E 场景验收 ### 代码审查 - **P1a 审查 P2** 的 C++ 代码(Pipe 协议一致性) - **P2 审查 P1a** 的 Rust 代码(错误处理) - **P1b 审查 P3** 代码(Skill 沙箱安全性) - **P4 UI** 由产品经理审查(UX) ### 文档协作 - **接口文档**:P1a + P2 共同维护(Pipe 协议) - **Skill 文档**:P3 编写,P1b 审核 - **部署文档**:P4 编写 - **用户手册**:产品经理 + P4 --- ## 风险与依赖 ### 技术风险 | 风险 | 影响 | 缓解措施 | 负责人 | |-----|------|---------|--------| | Pipe 通信不稳定 | **极高**(阻塞路径)| 增加重试机制、降级方案 | P1a, P2 | | P1a 工作量过大 | 高 | 拆分为 P1a + P1b,并行开发 | 项目经理 | | AI 翻译质量不稳定 | 中 | 提高黄金样本质量、人工抽检 | P3 | | LLM 推理延迟过高 | 中 | 本地模型优化、缓存策略 | P1b | | Skill 沙箱逃逸 | 高 | 严格白名单、代码审计 | P1b, P3 | | 银河麒麟适配问题 | 中 | 提前在真机测试 | P4 | ### 外部依赖 - **LLM API**:需要确认内网本地模型(Ollama + Qwen)部署方案 - **测试环境**:需要银河麒麟 V10 真机 - **业务系统访问权限**:P3 需要 OA/ERP 测试账号 ### 关键路径 ``` Day 1-2: 环境搭建(所有人) Day 3-5: Pipe 打通(P1a + P2)← **阻塞后续所有工作** Day 6-7: 并行集成(P1a+P1b, P1b+P3, P2+P4) Day 8-9: E2E 测试(所有人) Day 10: 发布(P4) ``` **P1a 是关键路径**,Day 5 前必须完成 Pipe 通信打通 --- ## 交付清单 ### 代码仓库 - `gitlab.com/superrpa/sgclaw` (Rust 引擎) - `gitlab.com/superrpa/chromium` (C++ 集成,分支 `feature/sgclaw`) - `gitlab.com/superrpa/agent-vue` (Side Panel UI + Skill Manager) ### 文档 - [x] 团队分工.md(本文档) - [ ] API 接口文档.md(P1a + P2) - [ ] Skill 开发指南.md(P3) - [ ] Skill 翻译 Prompt 模板.txt(P3) - [ ] 部署手册.md(P4) - [ ] 测试报告.md(P4) - [ ] 用户手册.md(产品 + P4) ### 安装包 - [ ] sgclaw-v1.0.0-kylin-v10-amd64.deb - [ ] sgclaw-v1.0.0-windows-x64.exe ### 演示材料 - [ ] 演示视频(6 大业务场景) - [x] PPT 宣讲材料(已完成) --- ## 附录:工具链 ### P1a 工具链 ```bash # Rust 编译环境 rustup default stable rustup target add x86_64-unknown-linux-musl rustup target add x86_64-pc-windows-msvc # 依赖管理 cargo install cargo-edit cargo install cargo-audit # 测试 cargo test cargo clippy ``` ### P1b 工具链 ```bash # 同 P1a Rust 环境 # SQLite 工具 sudo apt install sqlite3 libsqlite3-dev # JS 运行时(二选一) # rusty_v8 或 boa_engine,通过 Cargo.toml 依赖 ``` ### P2 工具链 ```bash # Chromium 编译环境 depot_tools/ gn ninja # 代码格式化 clang-format # 测试 out/Default/unit_tests --gtest_filter=SgClaw* ``` ### P3 工具链 ```bash # Node.js 环境 nvm install 18 npm install -g ed25519-cli # Skill 签名 node sign-skill.js # Skill 验证 node verify-skill.js # AI 翻译(内网大模型) # 访问内网 Qwen-72B / DeepSeek API ``` ### P4 工具链 ```bash # Vue 开发 npm install npm run dev npm run build # 测试 npm run test:unit npm run test:e2e # 打包 ./scripts/package-deb.sh ./scripts/package-exe.sh ``` --- ## 团队人员配置建议 | 技能要求 | P1a(赵义仑)| P1b | P2 | P3 | P4 | |---------|-------------|-----|----|----|-----| | Rust | ✅✅✅ | ✅✅✅ | - | - | - | | C++ / Chromium | - | - | ✅✅✅ | - | - | | 业务理解 | - | - | - | ✅✅✅ | - | | 提示词工程 | - | - | - | ✅✅ | - | | Vue / 前端 | - | - | - | - | ✅✅✅ | | DevOps | - | - | - | - | ✅✅ | | 工作优先级 | **P0** | P1 | **P0** | P1 | P2 | **推荐招聘策略**: - P1a(赵义仑):项目核心,负责关键路径 - P1b:招聘 Rust 工程师,有 LLM Agent 经验优先 - P2:公司内部调配 C++ 浏览器工程师 - P3:招聘熟悉业务的 RPA 工程师 + 提示词工程经验 - P4:公司内部调配前端工程师 + DevOps --- **文档版本**:v2.0 **最后更新**:2026-03-04 **维护者**:项目经理 **重要变更**: - 团队从 4 人扩展为 5 人 - P1 拆分为 P1a(核心通信)和 P1b(业务支持) - P3 工作方式改为 AI 辅助迁移 400+ 场景 - P4 增加 Skill 管理后台开发 - 代码量从 3100 行调整为 2250 行