Evals 是新的 PRD

Evals Are the New PRD

上个月,我们团队一位产品经理花了两周写了一份 40 页的 PRD,描述一个智能审批 Agent 的需求。用户故事、流程图、异常分支、验收标准,写得滴水不漏。

她把 PRD 丢给 Coding Agent,说:「按这个做。」

三天后 Agent 交付了。代码能跑,测试通过,接口对齐。但她试了五分钟就皱眉:「这不是我要的东西。」

哪里不对?她说不清。审批流程是对的,权限校验是对的,消息通知是对的。但 Agent 处理「领导已读不回超过 48 小时」的策略,不是她脑子里想的那个。PRD 里写的是「超时后自动提醒」,Agent 就老老实实给所有超时审批发了一轮提醒——包括那些「领导出差没看手机」的非紧急件。她真正想要的是「先判断这条审批是否紧急,紧急的才提醒,不紧急的等下次汇总」。

这个判断,她没写进 PRD。因为她觉得这是「常识」。

Agent 没有常识。Agent 只有你给它的判据。

Evals Are the New PRD

一、PRD 的根本问题:不是写得不够细,是载体不对

大多数人对 PRD 失效的归因是「写得不够详细」。解法:写更详细的 PRD。加更多边界条件、更多异常分支、更多验收标准。

这条路走不通。

原因不是 PM 偷懒,而是 PRD 这种载体的信息结构,天然不适合 Agent 消费

PRD 是自然语言文档。它的读者是人——一个有行业常识、有上下文推断能力、能「读懂言外之意」的人。PM 写「超时后自动提醒」,人类工程师会追问:「什么算超时?提醒谁?提醒几次?紧急和不紧急怎么处理?」

Agent 不会追问。Agent 会按字面意思执行,然后交出一个「正确但不对」的结果。

我在 悟空技巧十:评估与度量 里讲过一个核心观点: AI 的输出「看起来很好」不等于「工程上可用」。 但那时候我的解法还是「用评分卡验收 AI 的产出」——本质上还是在 PRD 范式里打补丁:先写 PRD,再验收。

现在我意识到,问题出在更前面。 不是验收环节缺了 eval,是需求环节就应该用 eval 替代 PRD。

二、从 Spec 到 Loss Function:范式已经迁移了

2026 年上半年,AI 工程领域发生了一个安静但深刻的范式迁移。

Peter Steinberger 说了一句话:

「你不该再给 coding agents 写提示词了。你应该设计提示 agents 的循环。」

这句话的完整版叫 Loss Function Development(LFD)——损失函数开发。核心思想:不要告诉 Agent「做什么」,要告诉它「什么算做好了」,然后让它自己找路径。

LFD 的损失函数包含四个组件:

┌─────────────────────────────────────────────────┐
│              Loss Function                       │
│                                                  │
│  ① Goal(目标)                                  │
│     足够大,使枚举/记忆不划算                      │
│     绝对盲测,运行期间不暴露答案                    │
│                                                  │
│  ② Constraints(约束)                           │
│     时间预算 / 资金上限 / 接触面 / 方法论           │
│                                                  │
│  ③ Harness(仪表)                               │
│     每个约束有 CLI 可查的度量                      │
│     目标分辨率足够高(pixel-diff 而非 LLM 打分)   │
│                                                  │
│  ④ Forced Entropy(强制熵)                      │
│     过拟合反思 / 停滞跳跃 / 迭代日志              │
└─────────────────────────────────────────────────┘
# generated by hugo AI

拿审批 Agent 的例子对照:

组件PRD 时代怎么写LFD 时代怎么设计
Goal「实现智能审批流程」200+ 条真实审批场景的 eval set,覆盖紧急/非紧急/已读不回/多人会签/跨级审批
Constraints「两周内上线」硬性时间预算 2h,API 调用上限 500 次,只允许调用钉钉审批 API
Harness「产品经理验收」每条 eval 场景有预期输出,自动 diff 比对,通过率 < 90% 不交付
Forced Entropy每轮自问:「是在记忆 eval 还是真正理解审批逻辑?」

一个真实案例:有人用 LFD 框架让 Agent 构建一个网页爬虫产品。Agent 前三个循环都在「作弊」——生成 seed data 过 eval、为每个 eval 条目生成精确关键词、关键词膨胀到数百个。直到所有捷径被封死,Agent 才真正开始优化架构。最终产出:6300 行代码,爬取 92k 页面,$40 API 成本, 性能超参考产品 50 倍

关键洞察: 作弊不是 Agent 的 bug,是你的 eval 设计有漏洞。 每一条你没有封住的廉价路径,都会成为优化器全力冲刺的方向。

这恰恰是 PRD 做不到的事。PRD 描述「做什么」,但无法封住「不做什么」。

三、行业验证:Eval 已经是默认路径

这不是理论推演。2026 年,eval-first 已经在多个工程体系里成为默认路径。

Google ADLC(Agent Development Lifecycle):2026 年 4 月 Google Cloud Next 发布的 agents-cli,scaffold 出来的项目 自带 eval set + eval config。Coding Agent 被训练成「写完先跑 eval」。不是可选项,是默认路径。

agents-cli eval generate              # 跑 eval 生成 traces
agents-cli eval grade                 # LLM-as-judge 打分
agents-cli eval compare               # 对比两次 run
agents-cli eval optimize              # 自动调优 prompt
agents-cli eval dataset synthesize    # 合成多轮 eval 场景
# generated by hugo AI

QQ 音乐 Harness Engineering:50+ 微服务的单仓架构,把需求评审做成了机读化门禁。需求文档不合格?门禁直接阻塞,不进入设计阶段。每个门禁对应专属 Agent/Skill,结论写入固定格式文件,杜绝「口头通过」。

Spec-Driven Development 实战数据:一个 500+ 文件的 Java→Go 迁移项目,引入验证基础设施后:

指标之前之后
端到端交付提速13%28%
需求返工率34%15%
首轮 review 通过率41%68%

注意: 编码提速 10 倍,端到端交付只快 13%。 中间 87% 的效率损耗不是模型问题,是意图到代码的有损转换。Eval 解决的就是这个有损转换——把 PM 脑子里的判断标准,变成 Agent 可执行的验证管道。

四、钉钉 FDE:不写 PRD 的人

我在内部推动 FDE(Forward Deployed Engineer)模式时,有一个刻意的设计:FDE 的产出不是 PRD。

维度传统产品经理FDE
产出PRD可运行的 Agent + 模式报告
周期季度天/周
验证方式评审会客户现场跑通
质量标准「逻辑清晰、结构完整」eval 通过率 + 客户确认

FDE 到客户现场,不是去收集需求写 PRD 的。是去 设计 eval——把客户的业务判断翻译成 Agent 可执行的验证标准。

举个例子:一家制造企业的采购审批,「金额超过 50 万需要总经理审批」是规则,PRD 能写清楚。但「这个供应商上个月刚出过质量问题,这次采购要加审」是判断,PRD 写不清楚。

FDE 的做法:把过去半年的真实审批记录拉出来,标注哪些是「事后证明应该加审但没加审」的,做成 eval set。Agent 不需要理解「为什么」,它只需要在这些场景里做出正确的判断。

PRD 传递的是描述,eval 传递的是判断。 描述是有损的,判断通过测试用例无损传递。

五、PM 的技能栈升级

说到这里,不是要宣布「PRD 已死」。PRD 承载的战略思考——为什么做这个、不做那个、优先级怎么排——这些不会消失,也不应该消失。

消失的是 PRD 作为「Agent 执行指令」的角色。

PRD 时代                          Eval 时代
─────────────────────            ─────────────────────
PM 写需求描述                     PM 设计损失函数
工程师翻译成代码                   Agent 直接消费 eval
QA 写测试用例(下游)              Eval set 就是测试用例(上游)
验收靠人肉 Review                 验收靠自动化 eval 管道
「看起来对」就通过                 「跑过 eval」才通过

PM 需要的新能力:

  1. Eval 设计能力——把业务判断翻译成可执行的验证标准。不是写「系统应该智能处理超时」,而是设计 200 条真实超时场景,每条标注预期行为
  2. 约束设计能力——知道哪些捷径必须封死。时间预算、成本上限、接触面限制、方法论约束
  3. 仪表设计能力——为每个约束提供可量化的度量。不是「性能要好」,而是「P99 延迟 < 200ms,CLI 可查」
  4. 反作弊意识——Agent 会找最短路径。你的 eval 设计如果有漏洞,Agent 一定会钻。这不是 bug,是特性

我在 中国 SaaS 厂商的护城河应该怎么建 里写过,Agent-Native 架构的核心原则之一是「意图优先」。但意图优先的前提是: 你必须能把「什么算好」定义清楚。 否则 Agent 执行的就是一个没有判据的意图——它一定会给你一个「正确但不对」的结果。

六、一个升维问题

回到开头那位产品经理。

她后来没有重写 PRD。她花了三天,把过去一年的审批工单拉出来,标注了 300 条「事后证明处理策略不对」的案例,做成了 eval set。然后让 Agent 对着 eval set 迭代。

第一轮,通过率 62%。她看了失败案例,发现 Agent 把所有「已读不回」都当成「不紧急」。她加了一条约束:已读不回超过 24 小时且金额 > 10 万的,默认紧急。

第二轮,通过率 89%。她又看了失败案例,发现跨级审批的场景 Agent 完全没处理。她补了 20 条跨级审批的 eval。

第三轮,通过率 96%。上线。

她没写一行需求描述。她做的事情,本质上是把自己脑子里「什么算好」的判断标准,外化成了 Agent 可执行的测试集。

这就是 eval 时代产品经理的工作方式:你不是在写文档,你是在设计损失函数。你的交付物不是一份 PDF,是一个可运行的 eval set。

你的 PRD,还能让 Agent 一次做对吗?欢迎留言讨论。


See also