Jev 游戏:用于 Game Agent 的决策模型 | AutoJev

Jev 游戏让决策模型从游戏代码生成的合法动作中做选择。Game Engine 掌管物理、规则和状态转换;Jev 评估结构化 State,从有限候选项中选择移动、目标或战术模式。

游戏适合用来做 Jev 实验,因为结果可以 Replay 和评分,同时也会暴露一个重要限制:模型可能以很高置信度输出结构有效的动作,但仍然玩得很差。

Jev Game Loop

可靠的 Game Agent 会拆分五项职责:

  1. **观察:**提取位置、速度、危险、合法动作和目标进度等紧凑 State。
  2. **枚举:**由代码只生成当前状态下合法的动作。
  3. **决策:**让 Jev 针对候选项回答一个或多个 Choice、Noul、Score 问题。
  4. **执行:**把选中的动作传给 Emulator 或 Game Engine。
  5. **评估:**记录 State、概率分布、动作和结果,用于 Replay 与比较。

这和让语言模型写游戏攻略不同。决策输出必须能够直接映射成 Controller 理解的动作。

公开 Jev 游戏案例

  • typesafe-snake每个 Tick 运行一次 System One Choice,合法动作和游戏事实由代码生成。
  • typesafe-mario使用结构化 Emulator State 驱动 Super Mario Bros. Agent。
  • NanoJev包含独立的迷宫和 Snake 实验,使用本地类型化决策 Head,并提供浏览器 Replay。
  • TypeSafe 的发布材料也展示了游戏实验;最新的一手案例请以 TypeSafe 官方网站为准。

这些项目使用不同 Provider、Controller 和评估方法。一次成功 Replay 是对应记录运行的证据,不代表该架构能泛化到所有关卡或游戏。

有限游戏决策示例

json
{
  "state": {
    "game": "网格导航",
    "position": [4, 7],
    "goal": [9, 2],
    "blocked": ["north"],
    "visited_recently": [
      [4, 6],
      [4, 7]
    ],
    "steps_remaining": 18
  },
  "questions": {
    "move": {
      "type": "choice",
      "instructions": "选择最可能到达目标并避免循环的合法动作。",
      "criteria": {
        "south": "移动到 [4, 8]。",
        "east": "移动到 [5, 7]。",
        "west": "移动到 [3, 7]。"
      }
    },
    "stuck": {
      "type": "noul",
      "instructions": "Controller 是否陷入了需要重新规划的重复循环?"
    },
    "progress": {
      "type": "score",
      "instructions": "评估接近目标的进展。",
      "criteria": ["正在退步", "没有进展", "有一些进展", "接近目标"]
    }
  }
}

因为 Engine 报告 north 被阻挡,Controller 不应该把它加入候选项。如果 stuck 超过校准后的阈值,确定性代码可以重置历史、调用 Planner 或结束运行,而不是继续发送相同问题。

哪些游戏适合 Jev

满足以下条件时,Jev 更适合游戏或模拟任务:

  • Engine 能提供紧凑且相关的 State。
  • 决策前可以生成合法动作。
  • 一个 Episode 中会重复出现大量类似决策。
  • 结果可以测量和 Replay。
  • Controller 能处理状态失效、Timeout 和不确定性。

回合制策略、网格导航、战术模式选择和模拟控制,通常比“直接根据原始像素生成很长且精确的动作序列”更适合。

哪些职责应该留在代码中

  • 碰撞检测、物理和合法动作生成。
  • 硬安全限制与禁止动作。
  • 资源计算和胜负规则。
  • 必须满足实时 Deadline 的输入时序。
  • Replay 捕获和结果测量。

决策模型应该在有效语义之间做选择,不应该成为未经验证的 Game Engine 替代品。

如何评估 Jev Game Agent

不要只测量精彩视频,还应该记录:

  • 固定 Seed 和未见关卡上的完成率或胜率。
  • 确定性过滤前后的非法动作率。
  • 校准情况,例如 80% 置信度的动作是否大约有 80% 成功。
  • 循环和卡住的频率。
  • 决策延迟、Episode 总时间和 Provider 成本。
  • State 字段被删除、重排或加入噪声后的表现。
  • 与随机策略、Heuristic 和生成式模型 Baseline 的对比。

条件允许时,应在每个 Replay 中公布候选动作与完整概率分布。这样更容易区分错误来自决策、Controller,还是 State 提取。

通过 AutoJev 构建游戏决策

当动作集合会随着状态变化时,可以使用通用 Jev API。把观察放入 state,把合法动作放入 Choice Criteria,并在同一次请求中加入监控问题。AutoJev 返回决策数据,但不会运行游戏,也不会授予模型控制机器的权限。

相关控制循环模式可以阅读 Jev Computer Use。独立模型实验和社区项目目录可以查看 Jev 生态指南