- 评估矩阵全档入库: 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>
13 KiB
策划质量探针(designer-probe)—— MiniMax-M3 vs deepseek-v4-pro
模型评估矩阵 leg 之一 · 2026-06-10 · repo @
d268f50问题:策划位换模型后,一次产出的 GameDesign 文本面有多干净?(P0/P1 检出率越低越干净) 方法:Registry 策划 promptconfig.clicker-designerv1.1.0 × 13 条 clicker 创意(C1 spike IDEAS 原样保序)× 2 候选模型各生成一轮 → 全部产物统一用 MiniMax-M2.7 + 对抗quality.adversary-reviewv1.1.1 评审 → 对比 P0/P1 检出率与 designIntent 质量。
一、结论先行
| 指标(分母均 13) | MiniMax-M3 | deepseek-v4-pro | M2.7 基线(batch-001,口径见 §2 注) |
|---|---|---|---|
| P1 检出 | 2/13 | 2/13 | 3/13(v1.0.0 双 prompt 旧口径) |
| P0 检出 | 0/13 | 0/13 | 0/13 |
| 生成 JSON 合法 | 13/13(6 条需剥 <think>,见 §6) |
13/13(content 纯净) | 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 | — |
判读(诚实口径):
- 两候选文本面干净度同量级(P1 各 2/13,P0 均 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",只能读成同量级。
- 真正的分化不在质量在通道与风格:M3 经网关 6/13 响应把
<think>推理块直接混进message.content(需解析侧剥离,工程前置条件);v4-pro 通道全程纯净、均时延略低,但文案模式化明显(8/13 以「快速点击/连续点击」开头句式)。M3 文案表现力/题材化更强(「烟火翻串手」「看台轰鸣的红色弯道」「静谧失重的太空舱」)。 - 两候选在 v1.1.0 新增的 designIntent 模板内约束上全部守住(零越界承诺)——该约束(batch-001 冻结告警的回应)对新模型同样有效。
- 共同压力位:两者在 #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-001(2026-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 命中明细与归因
| 条目 | 评审 issue(M2.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 提示)
- 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。 - 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。 - 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 |
八、建议
- 策划位选型:文本面质量不构成换模型的充分理由(同量级);若为成本/速度换 v4-pro,需先压它的文案模式化(prompt 加句式多样性约束或升温度试点);若取 M3 的表现力,必须先落 think 剥离(编排器级)。
- 与 struct_eval/judge_duel leg 汇总判读时,先核 M3 的 think 因素是否影响其口径。
- 模板边界创意(如「捞珍珠躲鲨鱼」):在 02-intent 阶段加「不可表达机制」识别/路由,或在策划 prompt 增一条「创意含模板外核心动作时,须在文案中自然化解而非丢弃或暗示」——两候选与 M2.7 在此场景全数踩坑,是 prompt/流程问题而非模型问题。