zizi 5c54289b56 docs(eval)+fix(orchestrator): 三模型评估矩阵收口——主力 M2.7 留任/裁判 v4-flash + llm_client 固化显式 max_tokens
- 评估矩阵全档入库: M3 结构层 22/52(30 失败全为 <think> 泄漏进 content, 通道纪律非能力,
  接入前置=解析侧剥 think) / v4-pro 52/52 持平但'质量不劣/时延可对照'两证据缺口→头号替补
  / 裁判对决 flash 23/25=92% 四维全胜(pro 击穿正向守卫=过杀复发)
- 第二批配置定型: 主模型 MiniMax-M2.7 + AUDIT deepseek-v4-flash + max_tokens=4096 固化
- llm_client.py: 显式 max_tokens=4096(推理型空 content 22 次重试实证根治)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 04:52:59 +00:00

115 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 策划质量探针designer-probe—— MiniMax-M3 vs deepseek-v4-pro
> 模型评估矩阵 leg 之一 · 2026-06-10 · repo @ d268f50
> 问题:**策划位换模型后,一次产出的 GameDesign 文本面有多干净?**P0/P1 检出率越低越干净)
> 方法Registry 策划 prompt `config.clicker-designer` **v1.1.0** × 13 条 clicker 创意C1 spike IDEAS 原样保序)× 2 候选模型各生成一轮 → 全部产物统一用 **MiniMax-M2.7 + 对抗 `quality.adversary-review` v1.1.1** 评审 → 对比 P0/P1 检出率与 designIntent 质量。
## 一、结论先行
| 指标(分母均 13 | MiniMax-M3 | deepseek-v4-pro | M2.7 基线batch-001口径见 §2 注) |
|---|---|---|---|
| **P1 检出** | **2/13** | **2/13** | 3/13v1.0.0 双 prompt 旧口径) |
| **P0 检出** | 0/13 | 0/13 | 0/13 |
| 生成 JSON 合法 | 13/13**6 条需剥 `<think>`**,见 §6 | 13/13content 纯净) | 12/13 首发1 条非 JSON重出后过 |
| schema 全过(含 designIntent≤100/eps 正整数/config 逐字段) | 13/13 | 13/13 | —(口径不同不直比) |
| P2 随行建议 | 1 条 | 2 条 | — |
| designIntent 均长/最长(字) | 42.8 / 52 | 42.3 / 51 | 66.2 / 85 |
| designIntent 超 100 字 | 0 | 0 | 0 |
| 越模板机制承诺(评审检出) | 0 | 0 | 基线 3 条 P1 全为此类(旧口径) |
| 生成均时延 | 24.6s | 22.7s | —(无同口径数据) |
| 输出纪律(额外键/自评字样) | 0 | 0 | — |
**判读(诚实口径)**
1. **两候选文本面干净度同量级**P1 各 2/13P0 均 0与 M2.7 基线大致相当——**没有一边倒的优胜者**。基线 3/13 是 designer v1.0.0 + adversary v1.0.0 旧口径:那 3 条 P1 全是「designIntent 越模板机制」类,其中 2 条在现行 v1.1.1 细则①下大概率降 P2**2/13 vs 3/13 不能读成"候选优于 M2.7",只能读成同量级**
2. **真正的分化不在质量在通道与风格**M3 经网关 6/13 响应把 `<think>` 推理块直接混进 `message.content`需解析侧剥离工程前置条件v4-pro 通道全程纯净、均时延略低但文案模式化明显8/13 以「快速点击/连续点击」开头句式。M3 文案表现力/题材化更强(「烟火翻串手」「看台轰鸣的红色弯道」「静谧失重的太空舱」)。
3. **两候选在 v1.1.0 新增的 designIntent 模板内约束上全部守住**零越界承诺——该约束batch-001 冻结告警的回应)对新模型同样有效。
4. **共同压力位**:两者在 #07「海底捞珍珠同时躲开鲨鱼」上双双 P1——「躲避」机制超出 clicker 模板表达力(黄金集 kill 守卫 k-0cfbc296 同源场景。M3 选择丢弃躲避语义题文脱节、v4-pro 在 theme 里暗示机制未兑现(承诺未兑现),**殊途同归说明这是模板边界问题而非模型问题**,需意图路由或 prompt 增「不可表达机制的文案化解」规则。
## 二、口径与方法
| 项 | 值 |
|---|---|
| 生成 prompt | `config.clicker-designer` **v1.1.0**Registry 渲染frontmatter/registry 双核验;渲染变量=batch 首轮口径template_schema=`contracts/templates/clicker.schema.json` 原文、banned_list=[]、findings="" |
| 评审 prompt | `quality.adversary-review` **v1.1.1**细则①②③P0/P1 口径写死) |
| 评审模型 | MiniMax-M2.7(与 batch-001/golden 同测量面),温度 0.2 |
| 生成温度 | 0.4(与 C1 spike/batch 主流水一致) |
| 通道 | 全部调用显式 `max_tokens=4096`≥2048 铁律),空 content/think 截断自动提额 8192 重试;`response_format=json_object`;解析只读 `message.content`;重试 ×2 + 节流 0.3s + 超时 180s |
| 探针口径 | **各生成一轮**:不做 schema 重出、不做 P1-fix 回炉(与 batch-001「重出后通过」口径的差异点banned_list 恒空=无批内禁重压力,逐条独立无顺序耦合 |
| 评审重试 | findings 形状异常应用层重试(首轮 2 → 续跑 3理由见 §6评审是测量基础设施重试不影响被测对象 |
| P0/P1 检出率口径 | 13 条中被评审出 ≥1 条该级 finding 的条目数(分母固定 13 |
**基线口径注**batch-0012026-06-10 跑批)= M2.7 生成 + M2.7 评审,但 prompt 组为 **designer v1.0.0 + adversary v1.0.0**(当时 v1.1.x 尚未落地且为全闭环流程schema 重出/回炉额度 1 轮)。基线 13 条 spike 创意 round0 的 P1 检出 3/13太空舱/接力赛/捞珍珠3 条全是「designIntent 越模板机制」类P0 0/13「猫咖」首发非 JSON 重出后过。**仅作量级参考,不作同口径对比。**
## 三、明细表13 创意 × 2 候选)
th = 该响应 `<think>` 混入 content离线剥离后解析产出本体未动P2 数=随行建议条数(不拦截)。
| # | 创意 | 模型 | title | target | eps(s) | intent 字数 | schema | P0 | P1 | P2 | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 00 | 王蓝莓的小卖部收银台 | M3 | 王蓝莓小卖部结账 | 15 | 25 | 50 | 过 | — | — | 0 | |
| 00 | 〃 | v4-pro | 王蓝莓收银忙 | 20 | 20 | 49 | 过 | — | — | 0 | |
| 01 | 太空舱里捡星星补给能量 | M3 | 舱内拾星充能 | 12 | 15 | 44 | 过 | — | — | 0 | |
| 01 | 〃 | v4-pro | 星舱拾光 | 10 | 25 | 49 | 过 | — | — | 0 | |
| 02 | 农场里收割成熟的蔬菜 | M3 | 菜园丰收季 | 20 | 25 | 46 | 过 | — | — | 0 | th |
| 02 | 〃 | v4-pro | 丰收菜园 | 12 | 20 | 40 | 过 | — | — | 0 | 评审遇网关三连空,手工同口径重放 1 次取得raw 标 manualReplayRescue |
| 03 | 深夜便利店招待夜宵顾客 | M3 | 深夜便利店打烊记 | 20 | 25 | 40 | 过 | — | **P1** | 0 | 节奏不自洽1.25s/单 vs「值守/从容打烊」 |
| 03 | 〃 | v4-pro | 夜宵便利屋 | 20 | 45 | 51 | 过 | — | — | 0 | |
| 04 | 校园运动会接力赛冲刺 | M3 | 看台轰鸣的红色弯道 | 20 | 20 | 38 | 过 | — | — | 1 | th |
| 04 | 〃 | v4-pro | 校园接力冲刺 | 20 | 15 | 42 | 过 | — | — | 0 | |
| 05 | 猫咖啡馆里撸猫攒爱心 | M3 | 喵屋咖啡馆的爱心协奏 | 20 | 50 | 43 | 过 | — | — | 0 | th |
| 05 | 〃 | v4-pro | 猫咖撸猫攒爱心 | 20 | 15 | 44 | 过 | — | — | 1 | |
| 06 | 春节集市上抢福袋 | M3 | 闹春抢福袋 | 18 | 20 | 44 | 过 | — | — | 0 | th |
| 06 | 〃 | v4-pro | 抢福袋 | 20 | 25 | 38 | 过 | — | — | 0 | 生成时延 65s慢尾样本 |
| 07 | 海底捞珍珠同时躲开鲨鱼 | M3 | 深海捞珠 | 20 | 35 | 44 | 过 | — | **P1** | 0 | designIntent 丢「躲鲨」核心动作→题文脱节 |
| 07 | 〃 | v4-pro | 深海采珠 | 20 | 12 | 35 | 过 | — | **P1** | 0 | theme 暗示躲避机制未兑现 |
| 08 | 烧烤摊翻烤串别烤糊 | M3 | 烟火翻串手 | 22 | 45 | 41 | 过 | — | — | 0 | th |
| 08 | 〃 | v4-pro | 串串翻翻乐 | 20 | 15 | 39 | 过 | — | — | 0 | |
| 09 | 地铁早高峰挤末班车门 | M3 | 关门之前挤上车 | 20 | 35 | 52 | 过 | — | — | 0 | |
| 09 | 〃 | v4-pro | 高峰挤车大作战 | 15 | 20 | 48 | 过 | — | — | 0 | |
| 10 | 做一个很好玩的游戏(模糊) | M3 | 晨曦点灯 | 20 | 15 | 45 | 过 | — | — | 0 | 细则②生效,未误判脱节 |
| 10 | 〃 | v4-pro | 快乐气泡大收集 | 20 | 20 | 24 | 过 | — | — | 0 | 〃 |
| 11 | 解压点点点(极简模糊) | M3 | 泡泡捏爆屋 | 20 | 25 | 32 | 过 | — | — | 0 | 〃 |
| 11 | 〃 | v4-pro | 解压泡泡乐 | 20 | 30 | 41 | 过 | — | — | 1 | 〃 |
| 12 | 中秋帮嫦娥送月饼上月宫 | M3 | 广寒传饼 | 10 | 20 | 38 | 过 | — | — | 0 | th |
| 12 | 〃 | v4-pro | 月宫传情 | 20 | 15 | 50 | 过 | — | **P1** | 0 | 0.75s/块 vs「轻松」节奏矛盾 |
## 四、P1 命中明细与归因
| 条目 | 评审 issueM2.7 × v1.1.1 原文摘) | 归因类型 |
|---|---|---|
| m3-03 深夜便利店 | target(20 单)与 expectedPlaySeconds(25 秒)明显不自洽:平均 1.25 秒/单属高强度快节奏,与「值守」「顺利打烊」的从容节奏矛盾 | eps/target 节奏自洽 |
| m3-07 捞珍珠躲鲨鱼 | designIntent 缺失核心动作语义创意明确要求『同时躲开鲨鱼』designIntent 仅描述『点击打捞珍珠』,题文明显脱节 | 模板表达力边界(核心动作丢失) |
| v4p-07 捞珍珠躲鲨鱼 | theme 描述鲨鱼『游弋』并提示『小心不要惊动』暗示躲避机制,实际玩法仅点击收集,描写与核心玩法无关联 | 模板表达力边界(机制暗示未兑现) |
| v4p-12 嫦娥送月饼 | expectedPlaySeconds(15 秒)与 target(20 块)不匹配0.75 秒/次节奏偏快,与『轻松』氛围矛盾 | eps/target 节奏自洽 |
两类归因均与模型无强相关:**节奏自洽**类(各 1 条M2.7 基线同样会犯(基线含 eps=8s/target=15 样本);**模板边界**类是创意本身含 clicker 无法表达的「躲避」机制(黄金集 k-0cfbc296 即此场景的 kill 守卫)。
## 五、designIntent 质量定性(通读 26 条)
- **模板内约束v1.1.0 新增)两候选全守住**:零计时承诺、零失败惩罚、零物理/音效承诺;评审亦零「越模板机制」类 finding。约束条款对新模型迁移有效。
- 边缘观察m3-10「在**限定次数**内连续点击」有轻微越模板语感clicker 无步数限制机制),评审未报,不构成统计项。
- **风格分化明显**M3 题材化/画面感强title 如「看台轰鸣的红色弯道」「烟火翻串手」intent 如「静谧失重的太空舱中轻点漂浮的星屑」13 条句式多样v4-pro 朴素直给,**8/13 条以「快速点击/连续点击/通过点击」句式开头**批量场景下同质化风险更高dedup 门压力)。
- **长度纪律**:两候选均长 ~42 字M2.7 基线 66.2),全部 ≤52 字,距 100 字红线余量大;短而不空,无占位感词汇。
- **expectedPlaySeconds 自洽**:除上表 2 条 P1 外,其余 eps/target 节奏0.8~2.5s/击)均在评审容忍带内。
## 六、通道工程发现(接入前置条件,跨 leg 提示)
1. **M3 think 混入 content高发6/13**:网关对 MiniMax-M3 的部分响应未把推理切到 `reasoning_content`,而是把 `<think>...</think>` 整块拼进 `message.content``</think>` 后才是 JSON 本体同模型不同响应形态不一usage_source 在 anthropic/openai 语义间漂移)。剥离后 JSON 本体 13/13 合法——**M3 上策划位必须先在编排器 `_parse_json_object` 加同款 think 剥离**(本探针已实现,见 `designer_probe.py`),或推动网关侧统一切分。**跨 leg 提示**`struct_eval.py`(结构层 leg无此剥离逻辑其 M3 结构层通过率可能被同因低估,判读前应复核 raw。
2. **M2.7 评审通道间歇空响应/think 混入**:评审 26 条中多条首次尝试返回空/非 JSON content`char 0`),含 1 条三连空rev-v4p-02致首轮进程中止手工同口径重放 1 次即得合法产物、1 条 `<think>中文推理`混入rev-v4p-11 现场捕获。C6.1 同类已知坑。处置:显式 max_tokens + 空响应提额 8192 + 形状重试 2→3 + 耗尽落 infraFail 续跑(不再炸全程)。**最终 26/26 评审完整reviewInfraFail=0**。
3. **v4-pro 通道全程纯净**reasoning 正确走 `reasoning_content`content 13/13 直接合法;慢尾样本 1 条v4p-06 实测 65s探针超时放宽至 180s 覆盖。
## 七、预算与产物
| 项 | 值 |
|---|---|
| 逻辑调用 | 生成 26 + 评审 26其中 1 条为手工同口径重放)= 52 |
| HTTP 尝试总账 | **61 / 70**(账本 58 + 首轮中止条目 3 次失败尝试;含全部重试/提额/诊断) |
| 执行方式 | 本机直连网关(未降级;首轮进程因单条三连空中止 1 次,断点续跑补齐) |
| 产物 | 本文件;`designer_probe.py`(探针脚本);`designer_probe_reparse.py`think 离线重解析工具);`designer-probe-results.json`(结构化结果);`designer-probe-calls.jsonl`52 行调用账本);`raw-designer-probe/`26 gen + 26 rev 全量原始产物,含 think 修复标记 reparsedThinkStrip / 手工重放标记 manualReplayRescue`designer-probe-run.log` |
## 八、建议
1. **策划位选型**:文本面质量不构成换模型的充分理由(同量级);若为成本/速度换 v4-pro需先压它的文案模式化prompt 加句式多样性约束或升温度试点);若取 M3 的表现力,必须先落 think 剥离(编排器级)。
2. **与 struct_eval/judge_duel leg 汇总判读时**,先核 M3 的 think 因素是否影响其口径。
3. **模板边界创意(如「捞珍珠躲鲨鱼」)**:在 02-intent 阶段加「不可表达机制」识别/路由,或在策划 prompt 增一条「创意含模板外核心动作时,须在文案中自然化解而非丢弃或暗示」——两候选与 M2.7 在此场景全数踩坑,是 prompt/流程问题而非模型问题。