From 62df7feac18d8a2e07d70ffd7b3f44ad9ccea7c3 Mon Sep 17 00:00:00 2001 From: iven Date: Wed, 1 Apr 2026 23:21:22 +0800 Subject: [PATCH] docs(spec): switch payment integration from Stripe to Alipay/WeChat Pay direct MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Target market is domestic China users only — integrate Alipay Face-to-Face Payment and WeChat Native Pay directly instead of Stripe as intermediary. Updated billing module structure, risk table, and verification criteria. Co-Authored-By: Claude Opus 4.6 --- .../2026-04-01-zclaw-next-phase-strategy.md | 486 ++++++++++++++++++ 1 file changed, 486 insertions(+) create mode 100644 docs/superpowers/specs/2026-04-01-zclaw-next-phase-strategy.md diff --git a/docs/superpowers/specs/2026-04-01-zclaw-next-phase-strategy.md b/docs/superpowers/specs/2026-04-01-zclaw-next-phase-strategy.md new file mode 100644 index 0000000..0bb44b0 --- /dev/null +++ b/docs/superpowers/specs/2026-04-01-zclaw-next-phase-strategy.md @@ -0,0 +1,486 @@ +# ZCLAW 下一阶段战略设计:双轨增长计划 + +> **日期**: 2026-04-01 +> **状态**: Review (Addressing feedback) +> **范围**: 90 天双轨推进(产品力 + 商业化) + +--- + +## 先决条件 + +本 90 天计划的 Day 1 以下列 pre-launch 门槛为前提: + +- [ ] `docker compose up` 完整启动成功 +- [ ] Admin V2 > 10 个测试通过 +- [ ] Desktop > 5 个 store 测试通过 +- [ ] Scheduler 是真实实现(非 stub) +- [ ] 零个 TypeScript/Rust 编译错误 +- [ ] 反向代理 + 限流修复到位 + +**当前状态**:大部分已完成(参见 pre-launch dual-track design 2026-03-31)。若有个别未完成项,纳入 Day 1 的首批修复工作。 + +--- + +## 资源假设 + +- **开发模式**:AI 辅助开发(Claude Code + Claude Agent SDK),人力非瓶颈 +- **并行能力**:Track A 和 Track B 可完全并行推进 +- **工程量估算**:见每阶段后附的预估时间 +- **依赖关系**:Track B 的 B3(上线验证)条件性依赖 Track A 的 A1(Hand 验证)完成 + +--- + +## Context + +ZCLAW 技术基础设施已建成 ~90%(11 个 Rust crate + Tauri 桌面端 + SaaS 后端),但商业变现路径从 0→1 尚未打通。当前系统拥有 9 个已启用 Hands(另有 2 个已禁用)、75 个 SKILL.md 技能定义、Pipeline DSL、完整的安全体系和 SaaS 后端——但这些能力尚未串联成一个让用户愿意付费的产品体验。 + +**核心问题**:技术基建完善,但用户无法在首次使用中体验到 ZCLAW 的核心价值(AI 真正干活),且缺乏从免费到付费的转化路径。 + +--- + +## 1. 战略定位 + +### 1.1 产品定义 + +**ZCLAW = 面向中文知识工作者的 AI Agent OS** + +不是"又一个 ChatGPT 套壳",而是"AI 真正帮你干活的操作系统"。 + +### 1.2 目标用户 + +**三大目标群体**(按优先级排序): + +**群体一:教育行业**(老师、教培机构) +- 场景:Quiz 生成、课件制作(Slideshow)、学生答疑、教案研究 +- 痛点:重复性备课工作量大,个性化教学内容制作耗时 +- 付费驱动力:提效降本,提升教学质量差异化 +- 适配功能:Quiz Hand + Slideshow Hand + Researcher Hand + Pipeline 模板(教研→课件→测验) + +**群体二:医疗行业**(行政管理工作为主) +- 场景:政策文件解读、会议纪要整理、数据报告生成、制度合规检查 +- 痛点:行政文书工作繁重,政策更新频繁需快速跟进 +- 付费驱动力:合规效率、减少人工错误、提升行政响应速度 +- 适配功能:Collector Hand + Researcher Hand + 记忆系统 + Pipeline 模板(政策→摘要→报告) + +**群体三:设计行业**(汕头特色产业:制衣、玩具的设计相关工作) +- 场景:竞品调研、趋势分析、设计素材收集、客户沟通辅助 +- 痛点:信息分散,趋势追踪耗时,设计素材管理混乱 +- 付费驱动力:加快设计决策,集中管理灵感来源,提升客户沟通效率 +- 适配功能:Browser Hand + Collector Hand + Researcher Hand + Pipeline 模板(趋势→素材→方案) + +**共同特征**: +- 对价格敏感但愿意为效率工具付费 +- 发现工具的路径:同行推荐 > 社群分享 > 搜索 +- 需要"开箱即用"的体验,不愿折腾技术配置 + +### 1.3 核心差异化 + +| 差异点 | ZCLAW | 竞品 | +|--------|-------|------| +| 性能 | Rust 原生 ~40MB RAM | Electron 400MB+ | +| 自主能力 | 9 个已启用 Hands 真正执行任务 | 纯对话 | +| 工作流 | Pipeline DSL 12 种 Action | 无 | +| 中文生态 | 27+ LLM Provider 含国产模型 | 主要支持海外模型 | +| 安全 | 16 层防御,渗透测试通过 | 基础安全 | + +### 1.4 混合战略路径 + +``` +阶段 1 (0-3月): 产品力验证 + 计费闭环 + → 证明 Hands 真实可用 + 用户愿意付费 + +阶段 2 (3-6月): 规模化获客 + Token 加价 + → SaaS 网关做增量收入 + 知识工作者社区渗透 + +阶段 3 (6-12月): 生态构建 + → 技能市场 + Pipeline 模板社区 + 开发者平台 +``` + +--- + +## 2. 6 个月目标 + +### 2.1 产品目标 + +- 用户首次 Hand 执行成功率 > 80% +- 7 天留存率 > 40% +- NPS > 30 +- 5 个 Hands 通过 20+ 真实场景验证 +- 20 个面向知识工作者的 Pipeline 模板 + +### 2.2 商业目标 + +- 免费→付费转化率 > 5% +- 10 个付费客户 +- 首月 MRR 覆盖服务器成本 +- 3 层订阅上线(Free / Pro / Team) + +--- + +## 3. 90 天双轨工作计划 + +### Track A:产品力(让用户"啊"的一刻可靠发生) + +#### 阶段 A1(Day 1-30):首 60 秒体验 + +**目标**:新用户下载后 60 秒内看到 Hand 执行真实任务。 +**预估工程量**:~40-50 小时 + +| # | 工作项 | 具体内容 | 关键文件 | 预估 | +|---|--------|---------|---------|------| +| A1.1 | Hand 真实场景验证 | 验证 Researcher/Collector/Browser 在 20+ 真实场景下的执行成功率,记录失败模式 | `crates/zclaw-hands/src/hands/researcher.rs`, `collector.rs`, `browser.rs` | 15h | +| A1.2 | 引导式 Onboarding 串联 | 串联 AgentOnboardingWizard → SaaS 注册 → 首次 Hand 执行 | `desktop/src/components/AgentOnboardingWizard.tsx`, `desktop/src/components/FirstConversationPrompt.tsx` | 10h | +| A1.3 | 首次对话优化 | FirstConversationPrompt 从闲聊提示改为可执行的 Hand 任务触发(如"帮我研究这个话题") | `desktop/src/components/FirstConversationPrompt.tsx` | 5h | +| A1.4 | 关键路径排错 | 消灭从安装到首次 Hand 执行链路上的所有崩溃和错误 | 全栈 | 10-20h | + +> **"成功率"定义**:Hand 执行无错误完成,且生成符合预期 schema 的非空输出。 + +#### 阶段 A2(Day 31-60):让魔法可重复 + +**目标**:用户能独立完成端到端任务,记忆系统开始产生价值。 +**预估工程量**:~35-45 小时 + +| # | 工作项 | 具体内容 | 关键文件 | 预估 | +|---|--------|---------|---------|------| +| A2.1 | Hand 场景扩展 | 验证 Twitter/Slideshow/Clip 三个 Hand 的真实场景覆盖 | `crates/zclaw-hands/src/hands/twitter.rs`, `slideshow.rs`, `clip.rs` | 10h | +| A2.2 | Pipeline 模板库 | 构建 10 个面向目标群体的模板:教育(教研→课件→测验、学情分析→报告)×3、医疗(政策→摘要→合规报告、会议→纪要→待办)×3、设计汕头(趋势→素材→方案、竞品→分析→推荐)×4 | `pipelines/` 目录扩展 | 8h | +| A2.3 | 记忆检索质量 | Fact 提取 → 检索相关性的端到端优化,增加基准测试 | `crates/zclaw-growth/src/retrieval/`, `crates/zclaw-memory/src/fact.rs` | 10h | +| A2.4 | Pipeline 结果预览 | 输出格式化打磨(图表/文档/幻灯片渲染) | `desktop/src/components/pipeline/`(待创建完善组件) | 8-12h | + +> **注意**:`crates/zclaw-kernel/src/export/` 当前仅支持 Classroom(幻灯片)导出。Pipeline 输出导出需要扩展该模块。 + +#### 阶段 A3(Day 61-90):增长飞轮 + +**目标**:外部用户验证,收集真实反馈,启动增长循环。 +**预估工程量**:~25-30 小时(不含 Beta 运营时间) + +| # | 工作项 | 具体内容 | 关键文件 | 预估 | +|---|--------|---------|---------|------| +| A3.1 | 20 人外部 Beta | 真实用户全流程验证(见 Beta 计划附录) | — | 运营工作 | +| A3.2 | 结果导出/分享 | Pipeline 输出生成可分享页面或 PDF(扩展 export 模块) | `crates/zclaw-kernel/src/export/` | 10h | +| A3.3 | 轻量配额提示 | 基于 `usage_quotas` 的用量追踪,接近配额时友好提示 | `crates/zclaw-saas/src/telemetry/` + `billing/quotas.rs` | 5h | +| A3.4 | 失败模式迭代 | 收集 Beta 失败场景,定向修复最高频问题 | — | 10-15h | + +> **Beta 招募计划**: +> - 渠道:教育(教师社群、教培机构直推)× 8 人 + 医疗(医院行政科室直推)× 6 人 + 设计汕头(制衣/玩具设计公司直推)× 6 人 +> - Onboarding:使用 A1.2 构建的新用户引导流程 +> - 数据收集:Telemetry 自动采集 + 结束后 NPS 问卷(1-10 分 + 开放反馈) +> - 成功标准:> 12/20 人评分 ≥ 7 + 提出具体改进建议 + +### Track B:商业化(SaaS 从成本中心变成利润中心) + +#### 阶段 B1(Day 1-30):计费基础设施 + +**目标**:数据库和后端支持订阅、计费、配额。 +**预估工程量**:~60-80 小时(Track B 的关键路径,复杂度最高) + +| # | 工作项 | 具体内容 | 关键文件 | 预估 | +|---|--------|---------|---------|------| +| B1.1 | 计费表结构 | 新增 5 张表 + 索引 + 种子数据 | `crates/zclaw-saas/src/db.rs` + migration | 8h | +| B1.2 | 支付宝/微信支付集成 | Webhook 回调处理(含签名验证和幂等性)、支付订单创建、支付状态查询、退款 | 新增 `crates/zclaw-saas/src/billing/`(7 个文件) | 30-40h | +| B1.3 | 配额中间件 | Relay 请求前检查订阅状态和配额,未订阅/超限则拒绝 | `crates/zclaw-saas/src/relay/service.rs` | 10h | +| B1.4 | 计划定义 API | CRUD for subscription plans, 与 RBAC 权限联动 | `crates/zclaw-saas/src/auth/` | 8h | +| B1.5 | 用量聚合 Worker | 从 `usage_records` 聚合到 `usage_quotas` 的后台任务 | `crates/zclaw-saas/src/workers/` 新增 | 5h | + +> **⚠️ 关键路径警告**:B1.2(Stripe 集成)是整个 Track B 的瓶颈。建议优先完成 B1.1 表结构后立即开始 B1.2,与 B1.3/B1.4 并行。 + +#### 阶段 B2(Day 31-60):付费前端 + +**目标**:桌面端和 Web 端都能完成订阅购买和管理。 + +| # | 工作项 | 具体内容 | 关键文件 | +|---|--------|---------|---------| +| B2.1 | 定价页 + 结账 | 桌面端内的订阅购买体验(嵌入式 Stripe Checkout) | `desktop/src/components/` 新增 | +| B2.2 | 订阅管理 | 扩展 SaaS Settings 组件,显示当前计划、用量、账单历史 | `desktop/src/components/` SaaS 相关组件 | +| B2.3 | Admin 用量分析 | Admin Dashboard 增加 Usage 分析、收入追踪 | `admin-v2/src/pages/Usage.tsx` 扩展 | +| B2.4 | 14 天试用流程 | 注册即开 Pro 功能,14 天后降级 | `crates/zclaw-saas/src/auth/` + 桌面端 | + +#### 阶段 B3(Day 61-90):上线验证 + +**目标**:真实付费验证,获取第一批付费客户。 + +| # | 工作项 | 具体内容 | 关键文件 | +|---|--------|---------|---------| +| B3.1 | 3 层订阅上线 | Free / Pro / Team 三层定价正式发布 | — | +| B3.2 | 10 个付费 Beta | 定向邀请 + 折扣价验证付费意愿 | — | +| B3.3 | 转化分析 | 追踪哪些功能驱动付费转化,优化漏斗 | `crates/zclaw-saas/src/telemetry/` | +| B3.4 | 发票生成 | 月度自动发票,支持中文发票信息 | `crates/zclaw-saas/src/billing/` | + +--- + +## 4. 三层定价设计 + +### 4.1 订阅层级 + +| 层级 | 月价 | 年价(8折) | 包含 | +|------|------|------------|------| +| **Free** | ¥0 | ¥0 | 本地模型对话 + 2 个 Hand (Quiz/Speech) + 3 个 Pipeline 模板 + 基础记忆 | +| **Pro** | ¥49 | ¥470 | SaaS Relay 代理 + 所有 Hands + 无限 Pipeline + 记忆系统 + 优先模型 + 14 天试用 | +| **Team** | ¥199/人 | ¥1,900/人 | Pro 全部 + 多人管理 + Admin 面板 + API Key 统管 + 优先支持 + 团队共享模板 | + +### 4.2 Token 用量计费(叠加在 Pro/Team 上) + +- Relay 代理的 Token 用量按模型定价元数据(`models.pricing_input` / `pricing_output`)计算 +- 每月包含基础额度(Pro: 100 万 input tokens) +- 超出部分按成本 + 20% 加价 +- 用量实时追踪,接近额度时提醒 + +### 4.3 Free → Pro 转化策略 + +- 注册即开 14 天 Pro 试用(无需信用卡) +- 试用期内体验完整功能 +- 到期前 3 天 + 1 天发送提醒 +- 降级后保留数据,仅限制功能访问 +- Free 用户在触发 Pro 功能时显示升级提示(非阻断) + +### 4.4 Free 层功能限制执行策略 + +**核心问题**:Hands 在 Tauri 桌面端本地执行,SaaS 后端无法直接拦截。需采用客户端许可证检查策略。 + +**执行方案:桌面端 SaaS 许可证检查** + +1. **启动时验证**:桌面端启动时调用 SaaS API `/api/v1/account/subscription` 获取当前订阅状态 +2. **本地缓存**:订阅状态缓存在本地(TTL 24 小时),离线时使用缓存 +3. **功能门控**:根据订阅计划的 `features` JSONB 字段决定哪些 Hands/Pipeline 可用 +4. **不阻断本地模型**:Free 用户可使用本地模型(Ollama)和所有本地功能,仅限制 SaaS 依赖功能 +5. **信任模型**:初期采用"软限制"——功能标记 + 提示升级,不做硬阻断。硬限制仅对 SaaS Relay 请求执行 + +**具体限制矩阵**: + +| 功能 | Free | Pro | Team | +|------|------|-----|------| +| 本地模型对话 | ✅ 无限 | ✅ 无限 | ✅ 无限 | +| SaaS Relay 代理 | ❌ 硬限制 | ✅ 含额度 | ✅ 含额度 | +| Hands(本地执行) | 2 个(Quiz/Speech),其余软限制提示 | ✅ 全部 | ✅ 全部 | +| Pipeline 模板 | 3 个基础模板 | ✅ 无限 | ✅ 无限 + 团队共享 | +| 记忆系统 | 基础(最近 30 天) | ✅ 完整 | ✅ 完整 | +| Admin 面板 | ❌ | ❌ | ✅ | + +### 4.5 试用期降级行为 + +| 场景 | 行为 | +|------|------| +| 试用期间创建的 Pro 数据(Pipeline、Agent 模板) | 降级后变为只读(可查看不可编辑),升级后恢复 | +| 试用期间执行的 Hand 结果 | 永久保留,不删除 | +| 用户注册后从未登录 | 14 天后试用到期,下次登录看到 Free 体验 + 升级提示 | +| 用户卸载重装 | 试用期绑定 account(非 device),不可重复获取 | +| 用户信用卡被拒 | 7 天宽限期(past_due),之后降级为 Free | + +--- + +## 5. 技术架构变更 + +### 5.1 新增数据库表 + +> **金额单位约定**:所有金额以人民币分(1/100 CNY)存储。人民币为双小数货币。 +> **迁移命名约定**:遵循现有格式 `YYYYMMDDHHMMSS_name.sql`(如 `20260402000001_billing_tables.sql`)。 + +```sql +-- 订阅计划 +CREATE TABLE plans ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + name VARCHAR(50) NOT NULL UNIQUE, -- free, pro, team + display_name VARCHAR(100) NOT NULL, + price_monthly INTEGER NOT NULL, -- 单位:人民币分 + price_yearly INTEGER NOT NULL, -- 单位:人民币分,舍入规则:向上取整到分 + features JSONB NOT NULL, -- {"hands": ["quiz","speech"], "pipelines": 3, "memory": false, "relay": false} + token_quota_monthly BIGINT, -- 每月 Token 额度(null = 无限) + hand_limit INTEGER, -- 可用 Hand 数量(null = 全部) + pipeline_limit INTEGER, -- 可用 Pipeline 模板数(null = 无限) + created_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW() +); + +-- 用户订阅 +CREATE TABLE subscriptions ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + account_id UUID NOT NULL REFERENCES accounts(id), + plan_id UUID NOT NULL REFERENCES plans(id), + status VARCHAR(20) NOT NULL, -- active, trialing, past_due, canceled + stripe_customer_id VARCHAR(100), + stripe_subscription_id VARCHAR(100), + current_period_start TIMESTAMPTZ, + current_period_end TIMESTAMPTZ, + trial_end TIMESTAMPTZ, + canceled_at TIMESTAMPTZ, + created_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW() +); + +-- 防止同一用户多个活跃订阅 +CREATE UNIQUE INDEX idx_subscriptions_one_active + ON subscriptions (account_id) WHERE status IN ('active', 'trialing'); + +-- 发票 +CREATE TABLE invoices ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + account_id UUID NOT NULL REFERENCES accounts(id), + subscription_id UUID REFERENCES subscriptions(id), + stripe_invoice_id VARCHAR(100), + amount INTEGER NOT NULL, -- 单位:人民币分 + currency VARCHAR(3) DEFAULT 'CNY', + status VARCHAR(20) NOT NULL, -- draft, open, paid, void, refunded + billing_period_start TIMESTAMPTZ, + billing_period_end TIMESTAMPTZ, + -- 中文发票信息 schema: {"title": "公司名", "tax_id": "税号", "email": "接收邮箱", "address": "地址", "phone": "电话"} + invoice_data JSONB, + created_at TIMESTAMPTZ DEFAULT NOW() +); + +-- 支付记录 +CREATE TABLE payments ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + invoice_id UUID NOT NULL REFERENCES invoices(id), + stripe_payment_intent_id VARCHAR(100), + amount INTEGER NOT NULL, -- 单位:人民币分 + method VARCHAR(20), -- card, alipay, wechat_pay + status VARCHAR(20) NOT NULL, -- pending, succeeded, failed, refunded + refund_amount INTEGER, -- 退款金额(分),null = 未退款 + paid_at TIMESTAMPTZ, + created_at TIMESTAMPTZ DEFAULT NOW() +); + +-- 用量配额追踪(按自然月聚合,数据源:usage_records) +-- 注意:period_start 统一使用 UTC 当月 1 日 00:00:00 +CREATE TABLE usage_quotas ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + account_id UUID NOT NULL REFERENCES accounts(id), + period_start TIMESTAMPTZ NOT NULL, -- UTC 当月 1 日 00:00:00 + period_end TIMESTAMPTZ NOT NULL, -- UTC 下月 1 日 00:00:00 + input_tokens_used BIGINT DEFAULT 0, -- 从 usage_records 聚合 + output_tokens_used BIGINT DEFAULT 0, + relay_calls_used INTEGER DEFAULT 0, + hand_executions_used INTEGER DEFAULT 0, + UNIQUE(account_id, period_start) +); +``` + +**与现有系统的数据流关系**: +``` +usage_records (per-request telemetry) + → Worker 聚合 → usage_quotas (per-month aggregation for billing) + → 配额中间件检查 usage_quotas vs plans.token_quota_monthly +``` + +### 5.2 新增 SaaS 模块 + +``` +crates/zclaw-saas/src/billing/ +├── mod.rs -- 模块入口 +├── alipay.rs -- 支付宝 API 集成 +├── wechat_pay.rs -- 微信支付 API 集成 +├── plans.rs -- 计划定义和管理 +├── subscriptions.rs -- 订阅生命周期管理 +├── invoices.rs -- 发票生成和管理 +├── quotas.rs -- 配额检查和追踪 +└── callback.rs -- 支付回调处理(统一支付宝/微信通知) +``` + +### 5.3 中间件链变更 + +在 Relay 请求处理链中新增配额检查中间件: + +``` +请求 → Rate Limit → Auth → Subscription Check → Quota Check → Relay Proxy → Usage Record +``` + +现有 `relay/service.rs` 的 StreamBridge 处理逻辑中,在 `proxy_request` 前增加订阅和配额验证步骤。 + +--- + +## 6. 关键决策记录 + +### 6.1 为什么选择知识工作者而非开发者作为首批用户 + +- Hands(Researcher/Collector/Twitter/Slideshow)天然面向内容创作者 +- 开发者市场已有 Cursor/Copilot,差异化空间小 +- 知识工作者对 AI 自主能力的需求更迫切,付费意愿验证更快 + +### 6.2 为什么 Freemium 而非纯 Token 加价 + +- 知识工作者对按量计费有心理抗拒("不知道要花多少钱") +- 订阅制提供可预期成本,降低决策门槛 +- Token 加价作为增量收入叠加在订阅上,而非独立模式 + +### 6.3 为什么先做 Hands 验证再做 Marketplace + +- 空市场困境:Marketplace 需要用户量,用户量需要产品力 +- Hands 真实可用是所有后续价值的前提 +- Marketplace 放在三阶段变现的最后阶段 + +### 6.4 支付集成策略:微信支付 + 支付宝直连 + +**面向国内客户,直接集成微信支付和支付宝:** + +- 系统面向国内用户,无需考虑国际支付 +- 使用支付宝当面付(Face-to-Face Payment)/ 手机网站支付 API +- 使用微信 Native Pay / JSAPI Pay API +- 用户无需离开应用,直接扫码或调起支付 +- 货币单位统一为人民币分(CNY,双小数精度) +- 金额舍入规则:向上取整到分(如 49×12×0.8 = 470.4 → ¥470.40 = 47040 分) +- 异步回调(支付宝/微信均为 POST 回调通知)处理支付结果 + +**技术方案:** +- 支付宝:使用 `alipay-sdk-rust` 或直接 HTTP 调用支付宝开放平台 API +- 微信支付:使用 `wechat-pay-rust` 或直接 HTTP 调用微信支付 API v3 +- 共用 Webhook 模式:统一回调端点 `/api/v1/billing/callback/{provider}` 处理支付通知 +- 签名验证:RSA2 (支付宝) + RSA (微信) 确保回调安全 + +--- + +## 7. 风险与缓解 + +| 风险 | 概率 | 影响 | 缓解措施 | +|------|------|------|---------| +| Hand 执行在真实场景不可靠 | 高 | 致命 | A1.1 优先验证,每周记录成功率,< 70% 则暂停其他工作 | +| 知识工作者不愿付费 | 中 | 高 | 14 天免费试用降低门槛,追踪使用功能→付费转化路径 | +| 支付宝/微信支付集成复杂度 | 中 | 高 | 使用 Rust SDK 封装,优先支持扫码支付(最简单) | +| Billing 模块工期超预期 | 高 | 高 | B1.2 是关键路径,优先启动;分阶段交付(先订阅后发票) | +| Free 用户绕过本地 Hand 限制 | 中 | 低 | 初期软限制,核心付费价值在 SaaS Relay 而非本地功能 | +| Beta 揭示基础性 bug | 中 | 高 | A1.4 关键路径排错在 Beta 前完成 | +| 国产 LLM 提供商 API 变更 | 中 | 中 | Driver 层抽象隔离,API 变更仅需修改对应 driver | +| 安全漏洞导致用户流失 | 低 | 致命 | 持续安全审计,渗透测试每季度一次 | +| 竞品跟进类似 Hands 功能 | 低 | 中 | 先发优势 + 深度场景验证建立壁垒 | + +--- + +## 8. 验证方式 + +### 8.1 Track A 产品验证 + +- [ ] Researcher Hand 在 20 个真实研究话题中成功率 > 80% +- [ ] Collector Hand 在 20 个真实采集场景中成功率 > 80% +- [ ] Browser Hand 在 20 个真实网站操作中成功率 > 70% +- [ ] 新用户从下载到首次 Hand 执行 < 60 秒 +- [ ] 20 人 Beta 中 > 12 人认为"比现有工具好" + +### 8.2 Track B 商业验证 + +- [ ] Stripe Checkout 端到端跑通(订阅创建 → Webhook → 数据库更新)→ 改为支付宝/微信支付端到端跑通 +- [ ] 配额中间件正确拦截超限请求 +- [ ] Admin Dashboard 显示实时收入和转化数据 +- [ ] 10 个付费 Beta 中 > 5 人在试用结束后选择续费 +- [ ] Free → Pro 转化率 > 5% + +### 8.3 回归验证 + +每次改动后必须验证: +- 聊天 / 流式响应正常 +- Store 状态更新正确 +- 配置读写持久化 +- Hand 触发执行正常 +- SaaS Relay 代理正常 + +```bash +# TypeScript 类型检查 +pnpm tsc --noEmit + +# 单元测试 +pnpm vitest run + +# Rust 测试 +cargo test --workspace + +# 启动开发环境 +pnpm start:dev +```