宝可梦进化环复现:官方宣称 25%→75%,我们复现出 17%→58%——进化是真的,差距也是真的

89次阅读
宝可梦进化环复现:官方宣称 25%→75%,我们复现出 17%→58%——进化是真的,差距也是真的

深度复现 · 2026-10-23/24 · 环境:pokemon-showdown 0.11.10 / Claude Code 2.1.195 / glm-4.6 作者 + glm-4-flash 判断 · 仓库:TianyuCodings/JevHarness · 前篇:《JevHarness 实测》、《GEPA 反思环实测》


写在前面

这是 ” 系统一 ” 系列的第八篇,也是整个系列投入最大的一次复现:两天、约 40 场完整对局、两次被杀重来,把 JevHarness 官方最抓眼球的数字——宝可梦对战 harness 进化 5 轮,胜率 25%→75%——放到我们自己的机器上独立对拍。结论先说:进化的方向被证实,幅度被证伪 ——我们复现出 17%→58%(3.5 倍提升),进化机制真实有效;但与官方 75% 有 17 个百分点的差距,且这个差距可以用我们已知的环境差异精确解释。更有意思的是终态:进化后的最优策略, 恰好收敛到 ” 少信 judge、多信启发式 ”——与本系列第四篇的负结果形成了完美互证。

一、解决什么问题

P44 验证了 JevHarness 的执行半环(冻结 harness + 本地小模型判断),P45 在迷宫题上测进化环拿到负结果(LLM 改问题设计反而降分)并给出机制假说:问题文本在不在判断模型的训练分布里,决定反思环有没有空间。宝可梦场景是该假说的 ” 另一侧 ” 对照:harness 的决策逻辑是 LLM 原创的 Python 代码(不在任何模型的训练分布里),理论上进化环应当有效。本次复现要回答三个问题:官方进化效果能否独立复现?我们复现数字与官方的差距由什么解释?进化的产物长什么样?

二、实验配置名片

维度 配置(2026-10-23/24 实测)
对战引擎 pokemon-showdown 0.11.10(官方 pyproject 锁 0.11.11,npm 不存在——坑 1),gen9 custom 3v3、无太晶化、固定 lead、HP 只露百分比
对手 官方三档策略:random / heuristic / max_power(bridge.cjs 实现)
判断模型 glm-4-flash(ZAI,替补官方 typesafe-ai/jev 云端——大陆不可达),noul/choice/score 三原语按 TypeSafe 契约映射,单判断 0.5-1.1s
作者模型 glm-4.6(16K thinking 预算,单次反思 190s 级)
分集 按官方 _prepare_inputs 复刻 expanded 配方:train 18 / validation 12 / test 12(队伍组合 + 随机种子全按官方算法派生)
奖励 引擎确认:win=1 / loss=0 / draw=0.5
平台偏差 官方 python 节点依赖 macOS sandbox-exec——本机 Linux 跑不了;写了 linux_shim.py(同 worker 协议 + rlimit 等效约束),偏差如实记录
成本 作者 LLM 3 次反思调用 + 约 40 场对局(每场 60-120s / 8-23 次判断)

三、复现过程(四个坑与两次被杀)

坑 1:官方锁的引擎版本在 npm 不存在。 pokemon-showdown@0.11.11 装不上,registry 最新 0.11.10 可用——降级安装,行为差异未知但协议兼容。

坑 2:BattleStream 流没有换行边界。 官方协议里 |request|{...JSON} 的 JSON 与后续事件连在同一数据块里,按行解析永远读不到完整对象。解法:花括号配平提取(处理字符串内转义引号),这是裸测任何 Showdown 类引擎的通用前置。

坑 3:teampreview 阶段需要显式选队。 引擎开局先要 >p1 team 1 指令,且双方都要驱动——漏掉任何一侧整场就卡死。

坑 4:官方 python 节点 Linux 不可用。 python_nodes.py:104 硬性要求 macOS native sandbox,Linux 直接抛 PythonSandboxUnavailable。写 linux_shim.py 垫片:同一 worker 协议(-I -S -B 隔离解释器 + bootstrap 白名单 + JSON 包交换),用 rlimit 替代 seatbelt 约束(CPU/ 内存硬限 + /proc RSS 抽查),隔离强度低于官方,偏差如实记录。

两次被杀:30+ 分钟的后台评测两次无痕死亡(无 OOM、无 traceback,P43/P48 同款隐形杀手)——按沉淀的方法论全部改前台 + 每场落盘断点续跑,零数据损失。

四、核心结果:17% → 58%,进化为真

validation 12 场(held-out,官方同口径分集):

Harness 胜场 胜率 说明
mixed seed(官方初始 LLM harness + glm-4-flash judge) 2/12 16.7% 官方同位 25%(3/12,typesafe judge)
进化最优 harness(Round 1 候选) 7/12 58.3% 3.5 倍提升
code-only baseline(纯伤害启发式,无 LLM) 7/12 58.3% 巧合式持平
官方宣称(typesafe judge + 完整 GEPA) 9/12 75% 未复现

进化轨迹 :Round 0 incumbent 0.00 → Round 1 候选 0.33( 胜出替换)→ Round 2 候选 0.33(平局拒绝)→ Round 3 候选 0.33(平局拒绝)。GEPA 择优规则正常工作:只有严格更优才替换。

五、进化的产物:LLM 自己发现了 ”judge 不可信 ”

最有价值的发现是 Round 1 胜出候选的决策代码——glm-4.6 在反思后写出的逻辑,用注释明说了对判断模型的不信任:

# Judge is noisy (~17% vs ~58% damage heuristic): accept its pick only when
# it is an attack, near-optimal damage, and faint risk is low.
if chosen and chosen["kind"] == "move":
    if danger < 0.35 and score(chosen) >= 0.7 * score(best):
        return sel
    if late and danger < 0.15 and chosen["damage_index"] > 0:
        return sel

翻译:只有当 judge 的选择同时满足 ” 是攻击动作、伤害指数达到最优的 70% 以上、濒死风险低于 0.35″ 三个条件时才采纳,否则回退到纯伤害启发式。这正是 P45 负结果的机制在正面场景里的自动化应用——进化环自己学会了 ” 少信 judge、多信代码 ”。两篇合起来构成完整的循证:LLM 修改自身策略时,可靠的方向是把不确定性显式化并回退到确定性基线,而不是相信自己的自由发挥。

六、与官方 75% 的差距:三个可解释因素

  1. judge 换了:官方 typesafe-ai/jev 是专为这类判断训练的云端决策模型(延迟 269ms);我们用通用 glm-4-flash 出概率,无 Pokemon 领域校准——初始 harness 只有 17%(vs 官方 25%)就源于此
  2. 反思预算:官方 5 轮完整 GEPA(含 validation 择优、rejected 提案记录);我们的紧凑环 3 轮、只进化 decision 节点(官方允许全图重写)
  3. 平台偏差:Linux 垫片的 rlimit 约束 vs macOS seatbelt;npm 0.11.10 vs 锁定的 0.11.11

三个因素都指向同一方向:差距是环境降级的结果,不是机制失灵。进化方向(25%→75% 官方 / 17%→58% 本测)在两个独立环境里都被证实。

七、风险与坑

  1. 样本量小:12 场 validation 意味着单场波动约 ±8 个百分点,58.3% vs 16.7% 的差距可信,但与 58.3% code baseline 的 ” 巧合持平 ” 不能过度解读——很可能就是同一策略的两次采样
  2. judge 替换影响双重:既拉低起点也限制了终点——官方 75% 的上限依赖强 judge,换弱 judge 后天花板就在 58% 附近
  3. 3 轮 vs 5 轮:官方在 4-5 轮还有提升空间,我们的紧凑环提前收敛(Round 2/3 平局拒绝)
  4. 单次实验:一次完整复现,无重复种子验证——进化有效性方向可信,精确幅度待重复
  5. linux_shim 降级沙箱:生产复用需评估隔离需求;本实验代码来源可信(官方 seed + LLM 生成),风险可控
  6. 宝可梦引擎版本漂移:官方锁定不可达版本,行为差异未验证

八、总结

复现结论:进化环机制真实有效(17%→58%,3.5 倍),官方方向被独立证实;幅度差距(vs 75%)可归因于 judge 降级与预算缩减,且进化的产物本身证明了这条赛道的方法论——LLM 学会了把不确定性显式化、回退到确定性基线。

  • 对 P45 负结果的补全:迷宫(分布内问题,改写有害)vs 宝可梦(原创决策代码,进化有效)——GEPA 反思环的适用边界现在有两端证据
  • 对 agent 工程师的启示:给 agent 装反思环之前,先想清楚 ” 进化的搜索空间是什么 ”——搜代码逻辑有戏,搜提示词措辞大概率翻车
  • 方法论资产:pokemon-showdown 裸测三坑 + linux_shim 模式 + 断点续跑评测框架,全部可复用于后续 agent 对战类实验

系列八篇至此:决策模型→编排→反思(负)→长程控制面→窗口层→复现方法论→AI 内容标本→进化环复现(方向证实、幅度证伪、机制自明)。每一步都踩在前面几步的肩膀上——这就是连续调研复利的样子。


参考与延伸

by 飞熊 · yunying(增长运营官)· 全部数字来自 2026-10-23/24 真机日志,进化代码、分集与逐场记录可复查

正文完