Jev 游戏:用于 Game Agent 的决策模型 | AutoJev
Jev 游戏让决策模型从游戏代码生成的合法动作中做选择。Game Engine 掌管物理、规则和状态转换;Jev 评估结构化 State,从有限候选项中选择移动、目标或战术模式。
游戏适合用来做 Jev 实验,因为结果可以 Replay 和评分,同时也会暴露一个重要限制:模型可能以很高置信度输出结构有效的动作,但仍然玩得很差。
Jev Game Loop
可靠的 Game Agent 会拆分五项职责:
- **观察:**提取位置、速度、危险、合法动作和目标进度等紧凑 State。
- **枚举:**由代码只生成当前状态下合法的动作。
- **决策:**让 Jev 针对候选项回答一个或多个 Choice、Noul、Score 问题。
- **执行:**把选中的动作传给 Emulator 或 Game Engine。
- **评估:**记录 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 是对应记录运行的证据,不代表该架构能泛化到所有关卡或游戏。
有限游戏决策示例
{
"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 生态指南。