首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >AI 产品经理:交付可验收的工程契约,而非愿望清单

AI 产品经理:交付可验收的工程契约,而非愿望清单

原创
作者头像
资源大佬 jzit-top
发布于 2026-11-02 17:04:16
发布于 2026-11-02 17:04:16
1110
举报

AI 产品经理与传统产品经理的分界线,不在于是否会写 Prompt,而在于当被问“新版到底比旧版好还是坏”时,能否立刻给出指标对比与置信判断。传统 PM 交付 PRD,AI PM 交付的是“评测集 + 约束定义 + 降级策略”三件套。传统软件的质量是二元的——功能跑通或没跑通;AI 产品的质量是概率性的——多大比例的结果是好的,以及在什么条件下会变坏。这个差异决定了 AI PM 的第一项工程动作,不是设计界面,而是把模糊的“更智能”编译成可评测、可回归、可上线的契约。

需求编译:从“更智能”到“指标 + 阈值 + 数据集”

“回答要准确、要有帮助”不是需求,是愿望。可验收的需求必须写成三元组,并且由 PM 独立维护,而不是等算法团队给数字。blocking 字段区分硬指标与软指标,让发布决策有优先级;改需求即改代码,走 review,而非散落在文档里各自理解。

代码语言:javascript
复制
# evals/spec.py —— PM 维护的需求规格,算法与测试共用
from dataclasses import dataclass

@dataclass
class Requirement:
    name: str; metric: str; threshold: float
    cases_path: str; blocking: bool = True

SPECS = [
    Requirement("答案事实正确", "factual_acc",   0.92, "evals/gold/facts.jsonl"),
    Requirement("引用可追溯",   "citation_rate", 0.98, "evals/gold/cite.jsonl"),
    Requirement("拒答越界问题", "refusal_acc",   0.95, "evals/gold/refuse.jsonl"),
    Requirement("首字延迟",     "p95_ttft_ms",  1200, "evals/gold/perf.jsonl", blocking=False),
]

这份 SPECS 是 AI PM 最核心的交付物之一。评测集不是附属文档,而是唯一会持续增值的资产:线上每一条高价值 badcase 回流进黄金集,下一次回归就覆盖它。行业实践给出的最小规模是 50–100 条代表性 Case,覆盖高频场景、长尾困难场景和对抗样本。

结构化输出与降级:让产品形态由 Schema 决定

LLM 产品的可靠性,很大程度上取决于输出是否被 Schema 约束。PM 决定产品“长什么样”,本质是决定 Schema 长什么样。evidence 的 min_length=1 把“可追溯”从愿望变成强制字段;confidence 为后续分档和人工介入提供依据;重试耗尽后返回显式降级结果,而不是放任模型编造——这是 LLM 产品与普通 API 最大的体验差异:失败也要体面。

代码语言:javascript
复制
from pydantic import BaseModel, Field, ValidationError
import json

class Answer(BaseModel):
    conclusion: str = Field(max_length=200)
    evidence: list[str] = Field(min_length=1, max_length=3)
    confidence: float = Field(ge=0, le=1)

def generate(llm, question, retries=2) -> Answer:
    for _ in range(retries + 1):
        raw = llm.complete(
            f"问题:{question}\n按 schema 输出 JSON: {Answer.model_json_schema()}",
            temperature=0)
        try:
            return Answer(**json.loads(raw))
        except (json.JSONDecodeError, ValidationError):
            continue
    return Answer(conclusion="暂时无法可靠回答",
                  evidence=["系统降级"], confidence=0.0)

成本、延迟与路由:PM 的第三个约束维度

AI PM 必须同时优化质量、成本、延迟,三者常冲突,职责是定义分档策略,而不是让模型对所有请求一视同仁。路由用规则而非模型,因为规则可解释、可写测试、零边际成本;confidence < 0.6 触发转人工,把“模型不确定”转化为明确的产品动作,这是建立用户信任的关键设计。成本口径也不能只看单价:几乎所有厂商的输出单价是输入单价的 5–6 倍,单次请求的真实账单必须用输入、输出的实际 token 量分别测算,而不是拿一个平均数拍脑袋。

代码语言:javascript
复制
ROUTE = {
    "simple":  {"model": "small", "max_tokens": 300,  "budget_ms": 800},
    "complex": {"model": "large", "max_tokens": 2000, "budget_ms": 6000},
}

def route(question: str) -> dict:
    if len(question) < 60 and "为什么" not in question:
        return ROUTE["simple"]
    return ROUTE["complex"]

def handle(llm, question) -> Answer:
    cfg = route(question)
    ans = generate(llm.bind(cfg["model"], cfg["max_tokens"]), question)
    if ans.confidence < 0.6:
        ans.followup = "是否需要转人工确认?"
    return ans

灰度与回滚:用契约决定能不能上线

LLM 的版本差异是“软”的:接口没变,行为可能全变。灰度门禁必须直接消费 SPECS,硬指标不达标即阻断,软指标不得显著劣化。没有这道闸门,“新版感觉更好”就永远是一个不可证伪的判断。

代码语言:javascript
复制
def canary_gate(old: dict, new: dict, specs: list) -> bool:
    for s in specs:
        if not s.blocking:
            continue
        v = new.get(s.metric)
        if v is None:
            return False
        if s.metric.endswith("_ms"):
            if v > s.threshold: return False
        else:
            if v < s.threshold: return False
            if v < old.get(s.metric, 0) - 0.02: return False
    return True

上线后的留存:不要用 DAU 证明成功

AI 功能上线后最常见的误判,是把 DAU 上涨当成成功。DAU 回答的是“今天有多少人碰到了功能”,回答不了“这些人是否得到了可复用的价值”。新奇效应冲高、重试膨胀、强入口绑架,都会让 DAU 看起来漂亮,而真实留存和任务成功并未改善。更可靠的判据是死亡路径:触达 → 有效启动 → 任务成功 → 采纳/回访 → 业务结果,逐个断点配主指标,而不是一上来换模型。留存的分母和回访事件也必须先定义清楚——“再次完成同类任务”远比“再次登录”更接近核心价值。

AI 产品经理的工程性,体现在每一层决策都可以被代码断言:需求有阈值,输出有 Schema,路由有预算,上线有门禁,留存有路径。做到这些,当老板问“新版到底比旧版好还是坏”时,答案是一个可复现的指标对比,而不是一句“感觉好多了”。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 需求编译:从“更智能”到“指标 + 阈值 + 数据集”
  • 结构化输出与降级:让产品形态由 Schema 决定
  • 成本、延迟与路由:PM 的第三个约束维度
  • 灰度与回滚:用契约决定能不能上线
  • 上线后的留存:不要用 DAU 证明成功
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档