docs(levels): report what round 2 measured, including the number it overturns
The round accidentally ran every level twice, which turned into the most useful thing it produced: 45 retest pairs on this exact set. 84% of them replayed the identical action sequence, so the agent is near-deterministic and a second run of a level buys almost nothing — the mechanical metrics retest at r = 1.00 for that reason, not because they survived a hard test. The ratings do not. Difficulty retests at r = 0.55 here, against the 0.93 this project had on record from a smaller sample, and every pair that disagreed had played the same trajectory: same moves, same outcome, different number. The report now prints the reliability it measured rather than quoting the older figure, and says which one it replaces. Averaged by band over ~20 runs, though, the ratings finally track the curve — 2.00 / 2.05 / 2.40 with stuck at 1.21 / 1.15 / 1.74, where round 1 was a flat line. So the rule is not "ratings are useless", it is "ratings are a band statistic, never a per-level rank", and that is what the rules section says. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+63
-21
@@ -57,33 +57,75 @@ a{color:var(--rail)}
|
||||
<div class="wrap">
|
||||
<h1>关卡制作流程复盘</h1>
|
||||
<p class="lede">这一轮做 50 关的过程里,最有用的结论是一个<b>否定结论</b>:原计划的「agent 打分 → 拟合权重 → 重选关卡」这个闭环<b>合不上</b>,而且不是样本量的问题。下面是它为什么合不上,以及流程该改成什么样。</p>
|
||||
<p class="meta">实测批次 R1 · grok-4.6 xhigh · 50 关 · 生成于 2026-09-14 17:06</p>
|
||||
<p class="meta">实测批次 R2 · grok-4.6 xhigh · 99 局(50 关,多数跑了两次)· 对照批次 R1 50 局 · 生成于 2026-09-14 17:15</p>
|
||||
|
||||
<h2>R1 实测到了什么</h2>
|
||||
<h2>第二轮实测到了什么</h2>
|
||||
<div class="tiles">
|
||||
<div class="tile ok"><div class="k">通关</div><div class="v">50/50</div><div class="n">无死局</div></div>
|
||||
<div class="tile ok"><div class="k">通关</div><div class="v">99/99</div><div class="n">无死局</div></div>
|
||||
<div class="tile ok"><div class="k">空点 / 关</div><div class="v">0.00</div><div class="n">目标 0</div></div>
|
||||
<div class="tile ok"><div class="k">盲转 / 关</div><div class="v">0.24</div><div class="n">目标 0</div></div>
|
||||
<div class="tile ok"><div class="k">转错 / 关</div><div class="v">0.14</div><div class="n">目标 0</div></div>
|
||||
<div class="tile miss"><div class="k">难度评分</div><div class="v">46/50</div><div class="n">都是 2 分 — 不区分</div></div>
|
||||
<div class="tile ok"><div class="k">盲转 / 关</div><div class="v">0.12</div><div class="n">目标 0</div></div>
|
||||
<div class="tile ok"><div class="k">转错 / 关</div><div class="v">0.12</div><div class="n">目标 0</div></div>
|
||||
<div class="tile miss"><div class="k">难度评分</div><div class="v">83/99</div><div class="n">都是 2 分 — 不区分</div></div>
|
||||
</div>
|
||||
<p>机械面干净,说明生成期的闸门是有效的:「动了很多次没结果」这类结构缺陷已经被挡在关卡集之外。<b>难度评分那一格是这一轮真正的发现</b>——它不是不准(复测 r = 0.93,相当稳),它是<b>不区分</b>:机械上差着三倍的关卡,它一律给 2 分。</p>
|
||||
<p>机械面干净,说明生成期的闸门是有效的:「动了很多次没结果」这类结构缺陷已经被挡在关卡集之外。<b>难度评分那一格是这两轮真正的发现</b>:机械上差着三倍的关卡,它一律给 2 分。更早的记录里这项的复测可信度是 0.93,那是个更小的样本——在这一批 49 对复测上实测是 0.55,所以它既不区分、也不像以为的那么稳。</p>
|
||||
|
||||
<h2>两轮之间改了什么,效果如何</h2>
|
||||
<p>第一轮唯一可用的读数是「整批偏易」,加上抱怨里反复出现的「转了没反应」。据此只改了两件事:给<b>连续空转</b>设闸门(最多一次转动没反应,此前有 11 关能连着两次),以及把难度曲线<b>写成旋转深度的配额</b>而不是指望它从排序里自己长出来。</p>
|
||||
<table>
|
||||
<thead><tr><th>同一个规则机器人,两套关卡集</th><th class="n">第一版</th><th class="n">第二版</th></tr></thead>
|
||||
<tbody>
|
||||
|
||||
<tr><td>盲转 / 关</td><td class="n">0.24</td><td class="n yes">0.12</td></tr>
|
||||
<tr><td>最长连续盲转</td><td class="n">4</td><td class="n yes">1</td></tr>
|
||||
<tr><td>空点 / 关</td><td class="n">0.00</td><td class="n">0.00</td></tr>
|
||||
<tr><td>决策 / 关(要做的事)</td><td class="n">10.3</td><td class="n">10.3</td></tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<p>要做的事一样多,浪费掉的动作少了一半。这是同一个玩家的对照,所以变的是关卡不是模型的心情。</p>
|
||||
<table>
|
||||
<thead><tr><th>grok 实测,按档</th><th class="n">难度</th><th class="n">无解感</th><th class="n">盲转/关</th><th class="n">旋转深度</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>前档 L1–L12</td><td class="n">2.00</td><td class="n">1.21</td><td class="n">0.17</td><td class="n">1.8</td></tr>
|
||||
<tr><td>中档 L13–L32</td><td class="n">2.05</td><td class="n">1.15</td><td class="n">0.00</td><td class="n">3.0</td></tr>
|
||||
<tr><td>后档 L33–L50</td><td class="n">2.40</td><td class="n">1.74</td><td class="n">0.23</td><td class="n">4.1</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>第一轮三档的难度评分是一条平线。第二轮后档升到了 2.40,无解感也跟着抬起来——<b>这是评分第一次表现出梯度</b>,但只在按档平均之后。</p>
|
||||
|
||||
<h2>哪些信号复测得住</h2>
|
||||
<p>下面的 r 是在<b>这一批关卡</b>上现算的:同一个 agent 把每关玩了两次,49 对。不是引用更早、更小的样本。</p>
|
||||
<table>
|
||||
<thead><tr><th>信号</th><th class="n">复测 r</th><th class="n">n</th><th>怎么用</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>盲转次数</td><td class="n yes">1.00</td><td class="n">49</td><td>可用:驱动了真实修复</td></tr>
|
||||
<tr><td>转错方向次数</td><td class="n yes">1.00</td><td class="n">49</td><td>可用</td></tr>
|
||||
<tr><td>实际旋转数</td><td class="n yes">1.00</td><td class="n">49</td><td>可用</td></tr>
|
||||
<tr><td>步数</td><td class="n yes">1.00</td><td class="n">49</td><td>可用</td></tr>
|
||||
<tr><td>决策数</td><td class="n yes">0.90</td><td class="n">49</td><td>可用</td></tr>
|
||||
<tr><td>无解感评分</td><td class="n ">0.48</td><td class="n">49</td><td>只按档看</td></tr>
|
||||
<tr><td>难度评分</td><td class="n ">0.55</td><td class="n">49</td><td>只按档看,约 20 局起</td></tr>
|
||||
<tr><td>好玩评分</td><td class="n no">0.34</td><td class="n">49</td><td>不可用</td></tr>
|
||||
<tr><td>清晰度评分</td><td class="n no">0.11</td><td class="n">49</td><td>不可用</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>机械指标全部 r ≈ 1.00,但那多半是因为 agent <b>84% 的情况下重放了完全相同的动作序列</b>——这本身才是有用的那条结论:重复跑同一关买不到新信息。评分则相反:同一条轨迹,6 对给出了不同的难度分。</p>
|
||||
|
||||
<h2>五条规则,各自的证据</h2>
|
||||
<div class="rule">
|
||||
<h3><span class="no">1</span>agent 轮次用来抓缺陷,不用来排难度</h3>
|
||||
<h3><span class="no">1</span>难度评分只能按档看,不能逐关看</h3>
|
||||
<dl>
|
||||
<dt>证据</dt><dd class="ev">R1 的 50 关里有 46 关难度评分是 2 分,而这些关卡的决策数从 3 到 15。评分不是不准,是不区分。</dd>
|
||||
<dt>为什么</dt><dd>文字盘面把每颗棋子的路线、挡路者、紧贴者列成清单,agent 不必用眼睛顺线走一遍——而那正是这游戏的难点。agent 自己写过:「挡路名单已经写全,不用顺着格子数」。</dd>
|
||||
<dt>现在怎么做</dt><dd>难度排序改为机械假设(旋转深度、棋子数、互锁),由人工审核裁定;agent 轮次只看死局、盲转、转错、空点、演出。</dd>
|
||||
<dt>证据</dt><dd class="ev">99 局里有 83 局打的是 2 分,而这些关卡的决策数从 3 到 15。逐关复测 r = 0.55,而且 6 对分歧里有 6 对<b>走的是同一条轨迹</b>——同样的动作、同样的结果,模型给自己打了不同的分。但按档平均约 20 局后,曲线第一次显形了(见上表)。</dd>
|
||||
<dt>为什么</dt><dd>文字盘面把每颗棋子的路线、挡路者、紧贴者列成清单,agent 不必用眼睛顺线走一遍——而那正是这游戏的难点。agent 自己写过:「挡路名单已经写全,不用顺着格子数」。剩下的评分噪声,只有靠聚合才压得下去。</dd>
|
||||
<dt>现在怎么做</dt><dd>逐关排序改为机械假设(旋转深度、棋子数、互锁),由人工审核裁定;评分只用来读整档的高低。</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="rule">
|
||||
<h3><span class="no">2</span>先用规则机器人扫,再花 agent 时间</h3>
|
||||
<h3><span class="no">2</span>先用规则机器人扫,再花 agent 时间;同一关不要跑两遍</h3>
|
||||
<dl>
|
||||
<dt>证据</dt><dd class="ev">机械旋转指标已被证明测的是关卡而不是玩家:4 次运行、3 家厂商,18 关里 17 关结论一致。</dd>
|
||||
<dt>为什么</dt><dd>既然同一关在不同模型下得出同样的机械读数,那这个读数不需要模型来产生。</dd>
|
||||
<dt>现在怎么做</dt><dd>12 秒的规则机器人扫描替代一整轮 agent 跑批;agent 只用于抽样确认和读自由文本抱怨。</dd>
|
||||
<dt>证据</dt><dd class="ev">第二轮意外把每关跑了两次,得到 49 对复测:其中 41 对(84%)重放了<b>完全相同</b>的动作序列,机械指标复测 r = 1.00。规则机器人跑完 50 关只要 1 秒。</dd>
|
||||
<dt>为什么</dt><dd>agent 近乎确定性,重复同一关几乎不产生新信息。为「提高可信度」而重复跑,是把预算花在已经知道的答案上。</dd>
|
||||
<dt>现在怎么做</dt><dd>全量验收交给规则机器人;agent 每关只跑一次,省下的预算用来多覆盖关卡。</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="rule">
|
||||
@@ -105,7 +147,7 @@ a{color:var(--rail)}
|
||||
<div class="rule">
|
||||
<h3><span class="no">5</span>抱怨要对照基线,不要直接当缺陷</h3>
|
||||
<dl>
|
||||
<dt>证据</dt><dd class="ev">agent 33 条抱怨里最集中的是「路线太长读不完」。但已上线的 v0.5 最长路线 88 格,比这批新关卡的 84 格还长。</dd>
|
||||
<dt>证据</dt><dd class="ev">agent 33 条抱怨里最集中的是「路线太长读不完」。但已上线的 v0.5 最长路线 74 格,比这批新关卡的 74 格还长。</dd>
|
||||
<dt>为什么</dt><dd>那是这个游戏本来的性格。把它当缺陷修掉,改的是游戏而不是关卡。</dd>
|
||||
<dt>现在怎么做</dt><dd>只在审核页标出,交给人裁定。</dd>
|
||||
</dl>
|
||||
@@ -115,12 +157,12 @@ a{color:var(--rail)}
|
||||
<table>
|
||||
<thead><tr><th>指标</th><th class="n">可用</th><th>依据</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>盲转 / 多余转 / 转错方向</td><td class="n yes">可用</td><td>复测 r ≈ 0.82–0.92;驱动了真实修复(1.17 / 1.22 / 0.44 → 0)</td></tr>
|
||||
<tr><td>盲转 / 多余转 / 转错方向</td><td class="n yes">可用</td><td>本批复测 r = 1.00;驱动了真实修复(盲转 1.17 → 0.12)</td></tr>
|
||||
<tr><td>是否通关、空点次数</td><td class="n yes">可用</td><td>直接观察,无主观成分</td></tr>
|
||||
<tr><td>自由文本抱怨</td><td class="n yes">可用</td><td>33 条里两个主题高度重复,指标抓不到;但须对照基线(规则 5)</td></tr>
|
||||
<tr><td>难度评分</td><td class="n no">只能看总体</td><td>稳定但不区分;单关排序不可用,整批读数(偏易一档)可用</td></tr>
|
||||
<tr><td>无解感评分</td><td class="n">谨慎</td><td>复测 r = 0.85,与无效动作相关 0.66,可当挫败感的代理</td></tr>
|
||||
<tr><td>好玩 / 清晰度 / 旋转评分</td><td class="n no">不可用</td><td>复测 r ≤ 0.56,是模型噪声</td></tr>
|
||||
<tr><td>难度评分</td><td class="n no">只按档看</td><td>逐关复测 r = 0.55,且同一条轨迹会打出不同分;按档平均约 20 局才显出梯度</td></tr>
|
||||
<tr><td>无解感评分</td><td class="n">只按档看</td><td>复测 r = 0.48;按档看时与难度同向抬升,可当挫败感的代理</td></tr>
|
||||
<tr><td>好玩 / 清晰度评分</td><td class="n no">不可用</td><td>复测 r = 0.34 / 0.11,是模型噪声</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -138,7 +180,7 @@ a{color:var(--rail)}
|
||||
<table>
|
||||
<thead><tr><th>试过什么</th><th>结果</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>拟合 difficulty ~ 机械特征,用来重选关卡</td><td>响应几乎无方差(46/50 同分),回归的是常数</td></tr>
|
||||
<tr><td>拟合 difficulty ~ 机械特征,用来重选关卡</td><td>响应几乎无方差(83/99 同分),回归的是常数</td></tr>
|
||||
<tr><td>legibility(一眼看穿的成本)解释难度评分</td><td>相关 -0.02,无效;降级为纯测量</td></tr>
|
||||
<tr><td>路线交叠度当难度轴</td><td>中位已达 89%,没有上升空间</td></tr>
|
||||
<tr><td>换开局朝向来提高判断成本</td><td>127 个候选里只有 7 个变好</td></tr>
|
||||
|
||||
Reference in New Issue
Block a user