欢迎光临
我们一直在努力

AI产品从0到1的PMF验证checklist:30天快速验证的工程方法

AI产品从0到1的PMF验证checklist:30天快速验证的工程方法

作者:钟伊人 | 日期:2026-07-29 | Week5 总结与趋势判断


模块一:PMF验证的核心框架

什么是PMF(Product-Market Fit)?

PMF是产品与市场匹配的缩写。Sean Ellis定义:40%以上的用户"非常失望"如果没有你的产品,就达到了PMF。对于AI产品,PMF的定义更严格:

  • 用户是否愿意为AI功能付费?
  • AI功能是否显著优于传统方案?
  • 用户使用频率是否足够高?

AI产品PMF验证的特殊性:

  • 技术演示≠产品价值(很多AI产品在Demo时惊艳,实际使用时问题多)
  • 用户期望值高(AI产品常被寄予不切实际的期望)
  • 成本结构影响商业模式(API成本可能超过用户付费意愿)
  • """
    PMF验证数据模型
    追踪关键指标,量化PMF进度
    """

    from dataclasses import dataclass
    from typing import List, Dict, Optional
    from datetime import datetime, timedelta
    import json

    @dataclass
    class PMFMetrics:
    """PMF关键指标"""
    # 用户指标
    total_users: int
    active_users_7d: int # 7日活跃
    active_users_30d: int # 30日活跃
    retention_day1: float # 次日留存率
    retention_day7: float # 7日留存率
    retention_day30: float # 30日留存率

    # 参与度指标
    avg_sessions_per_user: float
    avg_session_duration_min: float
    feature_usage_rate: Dict[str, float] # 功能使用率

    # 满意度指标
    nps_score: float # Net Promoter Score
    very_disappointed_pct: float # "非常失望"百分比(Sean Ellis指标)

    # 商业指标
    free_to_paid_conversion: float
    monthly_churn_rate: float
    ltv_cac_ratio: float # 生命周期价值 / 获客成本

    # AI特有指标
    ai_usage_per_user: float # 人均AI功能使用次数
    ai_cost_per_user: float # 人均AI成本
    ai_accuracy_satisfaction: float # AI准确度满意度

    class PMFValidator:
    """
    PMF验证器
    30天快速验证框架
    """

    def __init__(self, product_name: str):
    self.product_name = product_name
    self.start_date = datetime.now()
    self.metrics_history: List[PMFMetrics] = []
    self.user_feedback: List[Dict] = []

    def day_1_setup(self) -> Dict:
    """
    Day 1:设置验证框架

    任务:
    1. 定义假设(Hypothesis)
    2. 设计MVP功能范围
    3. 确定目标用户画像
    4. 设置追踪指标
    """
    checklist = {
    "hypothesis_defined": False, # 假设已定义
    "mvp_scope_defined": False, # MVP范围已定义
    "target_users_defined": False, # 目标用户已定义
    "tracking_setup": False, # 数据追踪已设置
    "feedback_channel_setup": False, # 反馈渠道已设置
    }

    print("=" * 60)
    print(f"Day 1:{self.product_name} PMF验证启动")
    print("=" * 60)
    print("\\n任务清单:")
    print(" [ ] 定义核心假设(最多3个)")
    print(" [ ] 定义MVP功能范围(最多3个核心功能)")
    print(" [ ] 定义目标用户画像(最多2类)")
    print(" [ ] 设置数据追踪(埋点)")
    print(" [ ] 设置用户反馈收集渠道")
    print("\\n核心假设模板:")
    print(" 我们相信 [目标用户] 需要 [产品功能]")
    print(" 因为 [问题/痛点]")
    print(" 我们将通过 [关键指标] 来验证")

    return checklist

    def day_7_first_users(self, metrics: PMFMetrics) -> Dict:
    """
    Day 7:首批用户反馈

    关键问题:
    1. 用户是否理解了产品价值?
    2. 用户是否愿意继续使用?
    3. AI功能的准确度是否满足期望?
    """
    evaluation = {}

    # 检查1:是否有用户注册
    evaluation["has_users"] = metrics.total_users > 0

    # 检查2:次日留存率
    evaluation["good_retention_d1"] = metrics.retention_day1 >= 0.4 # 40%+

    # 检查3:AI功能是否被使用
    evaluation["ai_used"] = metrics.ai_usage_per_user > 0

    # 检查4:成本是否合理
    evaluation["cost_reasonable"] = metrics.ai_cost_per_user < 1.0 # 人均成本<$1

    # 综合判断
    passed = sum(evaluation.values())
    evaluation["day7_passed"] = passed >= 3

    if not evaluation["day7_passed"]:
    print("⚠️ Day 7评估:未通过,需要调整方向")
    print("建议:")
    if not evaluation["has_users"]:
    print(" – 问题:没有用户注册")
    print(" – 建议:检查产品定位和价值传达")
    if not evaluation["good_retention_d1"]:
    print(" – 问题:次日留存率低")
    print(" – 建议:访谈流失用户,了解原因")
    else:
    print("✅ Day 7评估:通过,继续验证")

    return evaluation

    def day_14_iteration(self, metrics: PMFMetrics) -> Dict:
    """
    Day 14:第一次迭代

    基于前7天的数据和反馈,进行第一次产品迭代
    """
    insights = {
    "top_feature": max(metrics.feature_usage_rate,
    key=metrics.feature_usage_rate.get),
    "retention_trend": "improving" if metrics.retention_day7 > metrics.retention_day1 else "declining",
    "ai_cost_trend": "acceptable" if metrics.ai_cost_per_user < 0.5 else "too_high"
    }

    print("\\nDay 14 洞察:")
    print(f" 最受欢迎功能:{insights['top_feature']}")
    print(f" 留存趋势:{insights['retention_trend']}")
    print(f" AI成本趋势:{insights['ai_cost_trend']}")

    return insights

    def day_30_pmf_assessment(self, metrics: PMFMetrics) -> Dict:
    """
    Day 30:PMF评估

    判断是否达到PMF(Sean Ellis标准)
    """
    result = {}

    # 标准1:Sean Ellis指标(40%以上用户"非常失望")
    result["sean_ellis_pass"] = metrics.very_disappointed_pct >= 0.4

    # 标准2:留存率(7日留存>30%,30日留存>15%)
    result["retention_pass"] = (metrics.retention_day7 >= 0.3 and
    metrics.retention_day30 >= 0.15)

    # 标准3:NPS(Net Promoter Score > 40)
    result["nps_pass"] = metrics.nps_score >= 40

    # 标准4:付费意愿(免费到付费转化率>5%)
    result["monetization_pass"] = metrics.free_to_paid_conversion >= 0.05

    # 标准5:LTV/CAC > 3(生命周期价值/获客成本)
    result["unit_economics_pass"] = metrics.ltv_cac_ratio >= 3

    # AI产品特有:成本可控
    result["ai_cost_pass"] = metrics.ai_cost_per_user < 2.0

    # 综合判断
    passed_count = sum([
    result["sean_ellis_pass"],
    result["retention_pass"],
    result["nps_pass"],
    result["monetization_pass"],
    result["unit_economics_pass"],
    result["ai_cost_pass"]
    ])

    result["pmf_achieved"] = passed_count >= 4 # 至少通过4个标准
    result["passed_count"] = passed_count

    if result["pmf_achieved"]:
    print("🎉 恭喜!产品已达到PMF!")
    print("建议:开始规模化增长")
    else:
    print(f"⚠️ PMF未达到(通过{passed_count}/6项标准)")
    print("建议:继续迭代产品或调整方向")
    self._print_improvement_suggestions(result)

    return result

    def _print_improvement_suggestions(self, result: Dict):
    """打印改进建议"""
    if not result["sean_ellis_pass"]:
    print(" – 改进方向:提升产品核心价值(用户访谈)")
    if not result["retention_pass"]:
    print(" – 改进方向:提升用户参与度(新功能/通知)")
    if not result["nps_pass"]:
    print(" – 改进方向:提升用户体验(UI/性能优化)")
    if not result["monetization_pass"]:
    print(" – 改进方向:调整定价策略或提升价值感知")
    if not result["unit_economics_pass"]:
    print(" – 改进方向:降低获客成本或提升LTV")
    if not result["ai_cost_pass"]:
    print(" – 改进方向:优化AI成本(缓存/模型选择)")

    Mermaid:30天PMF验证时间线


    模块二:AI产品MVP的工程实现

    AI产品MVP的特殊考虑

    AI产品的MVP比传统产品更复杂:

  • 需要真实AI能力(不能只是假按钮)
  • 需要处理AI的不确定性(准确度、延迟)
  • 需要控制成本(API调用可能很贵)
  • """
    AI产品MVP脚手架
    快速搭建可验证的AI产品原型
    """

    from abc import ABC, abstractmethod
    from typing import List, Dict, Any, Optional
    import time
    import json

    class AIMVPBase(ABC):
    """
    AI产品MVP基类
    提供通用的PMF验证功能
    """

    def __init__(self, product_name: str):
    self.product_name = product_name
    self.users: Dict[str, Dict] = {} # user_id -> user_data
    self.usage_logs: List[Dict] = []
    self.feedback: List[Dict] = []
    self.start_time = time.time()

    @abstractmethod
    def process_user_request(self, user_id: str, request: str) -> Dict:
    """
    处理用户请求(AI核心功能)
    每个AI产品必须实现此方法
    """
    pass

    def track_usage(self, user_id: str, action: str, metadata: Dict = None):
    """追踪用户行为"""
    log = {
    "user_id": user_id,
    "action": action,
    "timestamp": time.time(),
    "metadata": metadata or {}
    }
    self.usage_logs.append(log)

    def collect_feedback(self, user_id: str, feedback: Dict):
    """收集用户反馈"""
    feedback["user_id"] = user_id
    feedback["timestamp"] = time.time()
    self.feedback.append(feedback)

    def get_metrics(self) -> PMFMetrics:
    """计算当前PMF指标"""

    total_users = len(self.users)

    # 计算留存率(简化)
    now = time.time()
    day1_active = sum(
    1 for u in self.users.values()
    if now – u.get("last_active", 0) <= 86400
    )
    day7_active = sum(
    1 for u in self.users.values()
    if now – u.get("last_active", 0) <= 7 * 86400
    )

    retention_d1 = day1_active / total_users if total_users > 0 else 0
    retention_d7 = day7_active / total_users if total_users > 0 else 0

    # 计算AI使用指标
    ai_usage = {}
    for log in self.usage_logs:
    action = log["action"]
    ai_usage[action] = ai_usage.get(action, 0) + 1

    avg_ai_usage = sum(ai_usage.values()) / total_users if total_users > 0 else 0

    # 计算NPS(简化)
    promoters = sum(1 for f in self.feedback if f.get("rating", 0) >= 4)
    detractors = sum(1 for f in self.feedback if f.get("rating", 0) <= 2)
    nps = ((promoters – detractors) / len(self.feedback) * 100) if self.feedback else 0

    return PMFMetrics(
    total_users=total_users,
    active_users_7d=day7_active,
    active_users_30d=day7_active, # 简化
    retention_day1=retention_d1,
    retention_day7=retention_d7,
    retention_day30=retention_d7 * 0.5, # 估算
    avg_sessions_per_user=len(self.usage_logs) / total_users if total_users > 0 else 0,
    avg_session_duration_min=5.0, # 简化
    feature_usage_rate=ai_usage,
    nps_score=nps,
    very_disappointed_pct=0.0, # 需要通过问卷收集
    free_to_paid_conversion=0.0,
    monthly_churn_rate=0.0,
    ltv_cac_ratio=0.0,
    ai_usage_per_user=avg_ai_usage,
    ai_cost_per_user=0.0, # 需要从账单计算
    ai_accuracy_satisfaction=0.0
    )

    # 示例:AI写作助手MVP
    class AIWritingAssistantMVP(AIMVPBase):
    """
    AI写作助手MVP
    用于演示PMF验证流程
    """

    def __init__(self, llm_client, api_cost_per_1k_tokens: float = 0.01):
    super().__init__("AI写作助手")
    self.llm = llm_client
    self.api_cost = api_cost_per_1k_tokens
    self.total_api_cost = 0.0

    def process_user_request(self, user_id: str, request: str) -> Dict:
    """
    处理写作请求

    MVP阶段的核心功能:
    1. 根据提示词生成文章大纲
    2. 根据大纲生成正文
    """

    # 追踪开始时间(用于测量延迟)
    start_time = time.time()

    # 功能1:生成大纲
    if request.startswith("大纲:"):
    topic = request[3:].strip()
    result = self._generate_outline(user_id, topic)
    # 功能2:生成正文
    elif request.startswith("生成:"):
    outline = request[3:].strip()
    result = self._generate_content(user_id, outline)
    else:
    result = {"error": "未知请求类型"}

    # 追踪使用
    latency = time.time() – start_time
    self.track_usage(user_id, "ai_request", {
    "latency": latency,
    "request_type": "outline" if "大纲" in request else "content"
    })

    # 更新用户最后活跃时间
    if user_id in self.users:
    self.users[user_id]["last_active"] = time.time()

    return result

    def _generate_outline(self, user_id: str, topic: str) -> Dict:
    """生成文章大纲"""

    prompt = f"""请为以下主题生成一个详细的文章大纲:

    主题:{topic}

    要求:
    1. 包含5-8个主要章节
    2. 每个章节有2-3个子点
    3. 逻辑清晰,层次分明

    输出格式:Markdown格式的大纲"""

    try:
    # 调用LLM(简化:实际应使用self.llm)
    # response = self.llm.generate(prompt)
    response = f"# {topic}\\n\\n## 引言\\n## 主体\\n## 结论"

    # 模拟API成本
    estimated_tokens = len(prompt) / 4 + len(response) / 4
    cost = estimated_tokens / 1000 * self.api_cost
    self.total_api_cost += cost

    return {
    "success": True,
    "outline": response,
    "estimated_cost_usd": round(cost, 4)
    }

    except Exception as e:
    return {
    "success": False,
    "error": str(e)
    }

    def _generate_content(self, user_id: str, outline: str) -> Dict:
    """根据大纲生成正文"""

    prompt = f"""请根据以下大纲生成文章正文:

    大纲:
    {outline}

    要求:
    1. 每个章节展开为200-300字
    2. 语言流畅,逻辑清晰
    3. 使用简体中文

    输出格式:完整的Markdown文章"""

    try:
    # 调用LLM
    response = f"根据大纲生成的文章内容…\\n\\n{outline}"

    # 模拟API成本
    estimated_tokens = len(prompt) / 4 + len(response) / 4
    cost = estimated_tokens / 1000 * self.api_cost
    self.total_api_cost += cost

    return {
    "success": True,
    "content": response,
    "estimated_cost_usd": round(cost, 4)
    }

    except Exception as e:
    return {
    "success": False,
    "error": str(e)
    }

    def register_user(self, user_id: str, email: str):
    """注册用户"""
    self.users[user_id] = {
    "email": email,
    "registered_at": time.time(),
    "last_active": time.time()
    }
    print(f"用户 {user_id} 注册成功")

    def get_cost_report(self) -> Dict:
    """获取成本报告"""
    total_users = len(self.users)
    return {
    "total_api_cost_usd": round(self.total_api_cost, 2),
    "cost_per_user_usd": round(self.total_api_cost / total_users, 4) if total_users > 0 else 0,
    "total_users": total_users
    }


    模块三:用户访谈与反馈分析

    为什么用户访谈比数据更重要?

    数据是后视镜,访谈是探照灯。数据告诉你"什么"发生了,访谈告诉你"为什么"。

    """
    用户访谈框架
    AI产品PMF验证的核心活动
    """

    from typing import List, Dict
    import json

    class UserInterviewFramework:
    """
    用户访谈框架

    访谈的核心目标:
    1. 验证核心假设
    2. 发现未满足的需求
    3. 了解用户真实使用场景
    4. 收集改进建议
    """

    def __init__(self):
    self.interviews: List[Dict] = []

    def prepare_interview_guide(self, product_stage: str = "mvp") -> List[str]:
    """
    准备访谈提纲

    Args:
    product_stage: 产品阶段(mvp / iteration / scaling)
    """

    if product_stage == "mvp":
    # MVP阶段:验证核心假设
    questions = [
    # 开场(建立信任)
    "请介绍一下你自己和你的工作?",
    "你目前是如何解决[我们解决的问题]的?",
    "",
    # 产品体验
    "你第一次使用我们的产品时,感觉如何?",
    "哪个功能最有用?为什么?",
    "哪个功能最没用?为什么?",
    "",
    # 核心价值
    "如果你不能再使用这个产品,会有什么影响?",
    "你会向朋友推荐这个产品吗?为什么?",
    "",
    # 改进建议
    "如果可以添加一个功能,你希望是什么?",
    "有什么让你感到困惑或沮丧的地方?"
    ]
    elif product_stage == "iteration":
    # 迭代阶段:深入了解使用细节
    questions = [
    "你最近一次使用产品是为了什么?",
    "产品是否满足了你的期望?",
    "与其他工具相比,我们的产品有什么优势/劣势?",
    "你希望我们在哪方面改进?"
    ]
    else:
    # 增长阶段:了解扩展需求
    questions = [
    "你是否在团队中分享了这个产品?",
    "你的团队有什么特殊需求?",
    "你愿意为哪些功能付费?"
    ]

    return questions

    def conduct_interview(self,
    user_id: str,
    user_background: str,
    interview_notes: str) -> Dict:
    """
    记录访谈结果

    Returns: 访谈洞察
    """

    interview = {
    "user_id": user_id,
    "background": user_background,
    "notes": interview_notes,
    "timestamp": time.time(),
    "insights": {}
    }

    # 提取关键洞察(简化:实际应人工分析)
    insights = self._extract_insights(interview_notes)
    interview["insights"] = insights

    self.interviews.append(interview)

    return insights

    def _extract_insights(self, notes: str) -> Dict:
    """从访谈笔记中提取洞察(简化)"""
    # 实际应使用NLP或人工分析
    insights = {
    "pain_points": [], # 痛点
    "delights": [], # 满意点
    "feature_requests": [], # 功能请求
    "confusion": [] # 困惑点
    }
    return insights

    def analyze_all_interviews(self) -> Dict:
    """分析所有访谈,提取模式"""

    if not self.interviews:
    return {"error": "尚无访谈数据"}

    # 汇总洞察
    all_pain_points = []
    all_delights = []
    all_feature_requests = []

    for interview in self.interviews:
    insights = interview.get("insights", {})
    all_pain_points.extend(insights.get("pain_points", []))
    all_delights.extend(insights.get("delights", []))
    all_feature_requests.extend(insights.get("feature_requests", []))

    # 找出最常见的模式
    from collections import Counter

    return {
    "total_interviews": len(self.interviews),
    "top_pain_points": Counter(all_pain_points).most_common(5),
    "top_delights": Counter(all_delights).most_common(5),
    "top_feature_requests": Counter(all_feature_requests).most_common(5),
    "pmf_signal": self._calculate_pmf_signal()
    }

    def _calculate_pmf_signal(self) -> str:
    """计算PMF信号(基于访谈)"""
    very_disappointed_count = 0

    for interview in self.interviews:
    notes = interview.get("notes", "")
    # 简化:检查是否包含"非常失望"或类似表达
    if any(word in notes for word in ["非常失望", "离不开", "必不可少"]):
    very_disappointed_count += 1

    pct = very_disappointed_count / len(self.interviews) if self.interviews else 0

    if pct >= 0.4:
    return "强PMF信号(>=40%用户非常失望)"
    elif pct >= 0.2:
    return "中等PMF信号(20-40%用户非常失望)"
    else:
    return "弱PMF信号(<20%用户非常失望)"

    Mermaid:用户访谈流程


    模块四:AI产品特有的验证挑战

    挑战1:AI准确度与用户期望的差距

    AI产品的准确度很难达到100%。但用户往往期望AI是"全知全能"的。需要在产品中管理用户期望。

    """
    AI产品中的期望管理
    """

    class AIExpectationManager:
    """
    AI期望管理器

    策略:
    1. 在UI中明确告知AI的局限性
    2. 提供置信度评分
    3. 允许用户纠正错误
    4. 持续展示改进
    """

    def __init__(self):
    self.confidence_threshold = 0.7 # 置信度阈值

    def add_expectation_management_ui(self, response: Dict) -> Dict:
    """
    在AI响应中添加期望管理元素

    返回更新后的响应,包含:
    – 置信度指示
    – 免责声明
    – 反馈按钮
    """

    confidence = response.get("confidence", 0.5)

    # 添加置信度指示
    if confidence >= 0.8:
    confidence_label = "高置信度"
    confidence_color = "green"
    elif confidence >= 0.5:
    confidence_label = "中置信度"
    confidence_color = "orange"
    else:
    confidence_label = "低置信度"
    confidence_color = "red"

    response["ui_metadata"] = {
    "confidence_label": confidence_label,
    "confidence_color": confidence_color,
    "disclaimer": "AI生成内容可能不准确,请谨慎参考",
    "feedback_buttons": ["准确", "不准确", "部分准确"]
    }

    return response

    def generate_disclaimer_text(self, use_case: str) -> str:
    """生成针对特定用例的免责声明"""

    disclaimers = {
    "medical": "本AI不提供医疗建议,请咨询专业医生",
    "legal": "本AI不提供法律建议,请咨询专业律师",
    "financial": "本AI不提供投资建议,投资有风险",
    "general": "AI生成内容可能包含错误,请自行核实"
    }

    return disclaimers.get(use_case, disclaimers["general"])

    挑战2:AI成本与用户付费意愿的差距

    这是2026年AI创业公司失败的主要原因。API成本远超用户付费意愿。

    """
    AI成本与定价分析工具
    """

    class AICostPricingAnalyzer:
    """
    AI成本与定价分析器

    核心问题:
    – 每个用户的AI使用成本是多少?
    – 用户愿意支付多少?
    – 如何实现盈利?
    """

    def __init__(self):
    self.cost_data = []
    self.pricing_data = []

    def analyze_unit_economics(self,
    avg_ai_cost_per_user: float,
    avg_subscription_price: float,
    gross_margin_pct: float) -> Dict:
    """
    分析单位经济模型

    Args:
    avg_ai_cost_per_user: 人均AI成本(美元/月)
    avg_subscription_price: 平均订阅价格(美元/月)
    gross_margin_pct: 毛利率(扣除AI成本后)
    """

    # 计算毛利率
    gross_profit = avg_subscription_price – avg_ai_cost_per_user
    actual_margin_pct = (gross_profit / avg_subscription_price
    if avg_subscription_price > 0 else 0)

    result = {
    "ai_cost_per_user": avg_ai_cost_per_user,
    "subscription_price": avg_subscription_price,
    "gross_profit_per_user": gross_profit,
    "gross_margin_pct": round(actual_margin_pct * 100, 1),
    "is_profitable": gross_profit > 0
    }

    # 建议
    if not result["is_profitable"]:
    result["recommendations"] = [
    "降低AI成本(使用更便宜的模型、缓存、批处理)",
    "提高订阅价格",
    "限制免费用户的AI使用次数",
    "引导用户使用低成本功能"
    ]
    else:
    result["recommendations"] = [
    "单位经济健康,可以考虑增长投入"
    ]

    return result

    def suggest_pricing_strategy(self,
    product_type: str,
    target_users: str) -> Dict:
    """
    建议定价策略

    AI产品的常见定价模式:
    1. 按使用量计费(如API调用次数)
    2. 订阅制(如每月$10)
    3. 混合模式(基础订阅+超额计费)
    """

    strategies = {
    "api_usage": {
    "name": "按使用量计费",
    "pros": ["用户只付使用的部分", "成本可控"],
    "cons": ["收入不稳定", "需要防止滥用"],
    "example": "每次AI调用$0.01"
    },
    "subscription": {
    "name": "订阅制",
    "pros": ["收入可预测", "用户粘性高"],
    "cons": ["需要控制重度用户成本", "可能有亏损用户"],
    "example": "每月$10,包含100次AI调用"
    },
    "freemium": {
    "name": "免费增值",
    "pros": ["快速获取用户", "降低试用门槛"],
    "cons": ["免费用户成本高", "转化率低"],
    "example": "免费用户每天3次,付费无限制"
    }
    }

    return strategies.get(product_type, strategies["freemium"])


    模块五:决策框架与Next Steps

    PMF验证后的决策树

    30天验证结束后,需要根据结果做出决策:

    """
    PMF验证后决策框架
    """

    class PostPMFDecisionFramework:
    """
    PMF验证后决策框架
    """

    def __init__(self):
    self.decision_options = {
    "scale": "规模化增长",
    "iterate": "继续迭代产品",
    "pivot": "调整方向",
    "pause": "暂停项目"
    }

    def make_decision(self, pmf_result: Dict, resources: Dict) -> Dict:
    """
    基于PMF结果和资源情况做出决策

    Args:
    pmf_result: PMF评估结果
    resources: 资源情况(资金、团队等)
    """

    # 决策矩阵
    if pmf_result["pmf_achieved"]:
    # 达到PMF
    if resources.get("funding_months", 0) > 6:
    decision = "scale"
    reason = "PMF已达成,资源充足,开始规模化增长"
    else:
    decision = "iterate"
    reason = "PMF已达成,但资源有限,先优化单位经济"
    else:
    # 未达到PMF
    passed_count = pmf_result["passed_count"]

    if passed_count >= 3:
    decision = "iterate"
    reason = f"接近PMF(通过{passed_count}/6项),继续迭代"
    elif passed_count >= 2:
    if resources.get("funding_months", 0) > 3:
    decision = "pivot"
    reason = "PMF较远,但资源充足,可以考虑调整方向"
    else:
    decision = "pause"
    reason = "PMF较远,资源不足,建议暂停"
    else:
    decision = "pause"
    reason = "PMF非常远,建议暂停并反思核心假设"

    return {
    "decision": decision,
    "reason": reason,
    "next_steps": self._get_next_steps(decision)
    }

    def _get_next_steps(self, decision: str) -> List[str]:
    """获取决策后的下一步行动"""

    steps = {
    "scale": [
    "制定增长策略(付费获客 vs 有机增长)",
    "扩大团队(重点是增长和运维)",
    "确保单位经济健康(LTV/CAC > 3)",
    "建立客户成功团队"
    ],
    "iterate": [
    "深度用户访谈(找出未满足需求)",
    "快速迭代MVP(2周一个版本)",
    "优化AI成本(如果成本是问题)",
    "重新定义价值主张"
    ],
    "pivot": [
    "重新审视核心假设",
    "访谈潜在新用户",
    "开发新的MVP(快速验证)",
    "考虑是否更换问题领域"
    ],
    "pause": [
    "总结教训(为什么没达到PMF)",
    "评估是否值得继续投入",
    "考虑开源或出售技术",
    "团队成员转移到其他项目"
    ]
    }

    return steps.get(decision, [])

    Mermaid:PMF验证决策树

    30天PMF验证Checklist汇总

    """
    30天PMF验证完整Checklist
    """

    FULL_CHECKLIST = {
    "Day 1-3:准备阶段": [
    "() 定义核心假设(最多3个)",
    "() 定义MVP功能范围(最多3个功能)",
    "() 确定目标用户画像(最多2类)",
    "() 搭建MVP原型(可用AI脚手架)",
    "() 设置数据追踪(埋点)",
    "() 设置用户反馈收集(问卷+访谈)",
    ],
    "Day 4-7:首批用户": [
    "() 获取首批10-20个用户",
    "() 观察用户注册流程",
    "() 收集第一批使用数据",
    "() 进行第一批用户访谈(3-5人)",
    "() 计算Day 7指标",
    ],
    "Day 8-14:第一次迭代": [
    "() 分析首批用户反馈",
    "() 确定最需改进的1-2个问题",
    "() 快速迭代MVP",
    "() 扩大测试用户到50-100人",
    "() 开始追踪AI成本和准确度",
    ],
    "Day 15-21:深度验证": [
    "() 进行更多用户访谈(累计10-15人)",
    "() 计算留存率和参与度指标",
    "() 测试不同定价策略(如果准备商业化)",
    "() 收集Sean Ellis问卷数据",
    ],
    "Day 22-30:PMF评估": [
    "() 计算所有PMF指标",
    "() 进行PMF达标评估",
    "() 做出决策(规模化/迭代/调整/暂停)",
    "() 制定下一步计划",
    ]
    }

    def print_full_checklist():
    print("=" * 70)
    print("AI产品PMF验证30天完整Checklist")
    print("=" * 70)
    for period, items in FULL_CHECKLIST.items():
    print(f"\\n【{period}】")
    for item in items:
    print(f" {item}")
    print("\\n完成所有Checklist项目后,再进行PMF决策!")


    纯技术总结

    • PMF定义:Sean Ellis标准(40%用户"非常失望"),AI产品需额外关注成本可控性和准确度满意度
    • 30天验证框架:Day1-3准备(假设+MVP+埋点),Day4-7首批用户,Day8-14第一次迭代,Day15-21深度验证,Day22-30 PMF评估决策
    • AI产品MVP要点:真实AI能力(非假按钮)、成本控制(API成本追踪)、期望管理(置信度UI+免责声明)
    • 用户访谈核心:验证假设+发现未知需求+收集改进建议;访谈后提取痛点/满意点/功能请求模式
    • 成本与定价:单位经济必须正向(订阅价>AI成本);推荐免费增值模式(免费限次+付费无限制)
    • 决策框架:PMF达成且资金>6月→规模化;PMF未达但通过≥3项→继续迭代;通过<2项→暂停反思
    赞(0)
    未经允许不得转载:171主机测评 » AI产品从0到1的PMF验证checklist:30天快速验证的工程方法
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址