甲·基 JarvisBench · 模型测评 总览 模型详情
T1测评报告

PS 手柄可视化(多手柄 / 幽灵插槽)

2026/10/21 19:59:56 智能体 OpenCode 思考强度 中档 5 个模型 11 个功能场景 评审:claude-opus-5-5
综合第一DeepSeek V4.1 Flash7.35 分最快完成GLM 5.3 Flash8m 00sTokens 最少GLM 5.3 Flash499.7k页面效果最佳DeepSeek V4.1 Flash9.5 分

三维总览

综合 · 耗时 · 费用;同一行是同一个模型,按综合排序

分项对比

总览点击任意一行查看详情

1 DeepSeek V4.1 Flash 正常完成 7.35
6.0
7.0
9.5
19m 38s 66 / 78 7.77M输出 50.2k $0.136 9/11 0
2 MiniMax M3.1 Flash 正常完成 7.05
6.0
6.5
9.0
23m 46s 71 / 70 7.25M输出 48.0k $0 9/11 0
3 GLM 5.3 Flash 正常完成 6.45
6.0
6.0
7.5
8m 00s 18 / 18 499.7k输出 16.6k $0.031 9/11 0
4 Qwen3.8 Flash 正常完成 4.80
3.0
4.0
8.0
15m 35s 32 / 36 1.78M输出 53.9k $0.065 6/11 0
5 MiMo V2.6 Flash 超时 0.00
0.0
0.0
0.0
60m 01s 66 / 79 5.43M输出 22.2k $0.074 - 0

模型详情

1

DeepSeek V4.1 Flash

opencode-go/deepseek-v4.1-flash正常完成思考 high
7.35综合
完成度6.0
代码质量7.0
页面效果9.5

本轮视觉最佳、同名手柄区分正确、四手柄同屏,但仍没有识别接收器类幽灵设备,真机复现场景失败。

耗时19m 38s
步数66
工具调用78
Tokens7.77M
输出 Tokens50.2k
费用$0.136
代码行3058
页面错误0
耗时拆分有效 14m 58s
等待接口 4m 27s模型生成 10m 17s工具执行 4m 41s
功能场景9/11 通过
场景0·点掉引导遮罩(如有)场景1·未接入手柄场景2·接入 1 个 DualSense场景3·按键/扳机/摇杆/十字键(须有反应)场景4·接入 4 个手柄并各按不同键场景5·拔出 2 号手柄场景6·幽灵插槽(1 真 + 2 个残留)场景7·4 个同名 XInput 手柄,只操作 3 号槽那个(须有反应)场景8·真机复现:2 个 Keychron 接收器 + 4 个同名 XInput 手柄,操作 index 4 那个(须有反应)场景9·4 个同名手柄依次按键,必须各自独立响应场景10·两层映射:2 个接收器 + 2 个手柄,先按键的手柄必须成为 P1(玩家座位按按键顺序分配)

优点

  • 视觉是本轮最佳:DualSense 白色外壳渲染精致,玩家色、灯条、状态面板统一
  • 输入链路正确,同名手柄按 index 区分可靠
  • 四手柄同屏、断线宽限期、标签页隐藏时暂停计时等细节完整

问题

  • 【严重】幽灵插槽判据不足:没有“长时间无输入 / 无按键变化”的识别,接收器类设备占满前两个槽位,真机多接收器场景下目标手柄无法接入(app.js reconcile 529-562)
  • 超出 4 台时直接忽略后来者,不会淘汰无输入的占位设备
  • tokens 消耗极高(776 万),20 分钟,迭代成本大
  • 物理设备与玩家座位没有分层(场景 10):座位按 index / 接入顺序分配,接收器等无输入设备会永远占住前面的玩家座位
需求逐条核对4/6 达成
网页画出 PS 手柄白色 DualSense 立体渲染,触控板、灯条、摇杆、肩键还原度很高
真实手柄接入、按键有对应反应poll() 每帧 readGamepads() → reconcile() 把最新快照写回 controller.gamepad,真机可用
最多 4 个手柄,同时展示四张独立手柄卡片同时实时显示,并配手柄阵列与遥测面板(相比此前几轮的单焦点主视图明显改进)
分清同名手柄以 gamepad.index 为键(app.js:545),同名手柄各自独立(场景 7、9 通过)
幽灵插槽只过滤 connected=false / 无 id / 重复 index(app.js:532-542);Keychron 接收器这类 connected=true 但无输入的设备会占用 P1/P2,真机复现时 index 4、5 的手柄被挤出(场景 8 失败,截图显示 OVER LIMIT)
物理设备与玩家座位分层(按按键顺序入座)检查 v3 场景 10:玩家座位按设备 index / 接入顺序直接对应,没有“设备大厅 → 按键入座”这一层;两个接收器在前时,先按键的真手柄拿不到 P1,1、2 号玩家无法被控制
2

MiniMax M3.1 Flash

opencode-go/minimax-m3.1-flash-free正常完成思考 high
7.05综合
完成度6.0
代码质量6.5
页面效果9.0

界面完整、按 index 区分同名手柄正确,幽灵防御思路对但被连接事件短路,接收器仍然占槽,真机复现场景失败。

耗时23m 46s
步数71
工具调用70
Tokens7.25M
输出 Tokens48.0k
费用$0
代码行1712
页面错误0
耗时拆分有效 19m 37s
等待接口 3m 50s模型生成 18m 20s工具执行 1m 16s
功能场景9/11 通过
场景0·点掉引导遮罩(如有)场景1·未接入手柄场景2·接入 1 个 DualSense场景3·按键/扳机/摇杆/十字键(须有反应)场景4·接入 4 个手柄并各按不同键场景5·拔出 2 号手柄场景6·幽灵插槽(1 真 + 2 个残留)场景7·4 个同名 XInput 手柄,只操作 3 号槽那个(须有反应)场景8·真机复现:2 个 Keychron 接收器 + 4 个同名 XInput 手柄,操作 index 4 那个(须有反应)场景9·4 个同名手柄依次按键,必须各自独立响应场景10·两层映射:2 个接收器 + 2 个手柄,先按键的手柄必须成为 P1(玩家座位按按键顺序分配)

优点

  • 有“待确认 → 有输入才算连接”的幽灵防御思路,方向正确
  • 插槽管理面板功能丰富(绑定、震动、定位、解绑、全部解绑)
  • 附带 mock-test.html 自测页面

问题

  • 【严重】pending 防御被 eventSeen 短路:真机接收器同样会触发 gamepadconnected,因而直接 connected,幽灵过滤失效(app.js:626-627)
  • 【严重】释放的幽灵设备没有记入黑名单,下一帧会被重新分配槽位,循环占位
  • tokens 消耗极高(725 万),24 分钟
  • 物理设备与玩家座位没有分层(场景 10):座位按 index / 接入顺序分配,接收器等无输入设备会永远占住前面的玩家座位
需求逐条核对4/6 达成
网页画出 PS 手柄SVG DualSense,白色握把 + 黑色面板,灯条随槽位变色
真实手柄接入、按键有对应反应poll() 每帧读取 getGamepads(),slot.padRef 每帧刷新
最多 4 个手柄,同时展示四宫格同屏 + 右侧插槽管理(按键矩阵、轴值、震动、解绑)
分清同名手柄以 index 绑定槽位(app.js:608-619),同名手柄独立
幽灵插槽设计了 pending 状态:无输入超时则释放(app.js:672-681),但收到过 gamepadconnected 事件的设备直接置为 connected 跳过考察(626-627);且释放后下一帧又会被重新分配,接收器仍占 A/B 槽(场景 8 失败,截图可见 Keychron Link 在槽位 A、B 显示已连接)
物理设备与玩家座位分层(按按键顺序入座)检查 v3 场景 10:玩家座位按设备 index / 接入顺序直接对应,没有“设备大厅 → 按键入座”这一层;两个接收器在前时,先按键的真手柄拿不到 P1,1、2 号玩家无法被控制
3

GLM 5.3 Flash

opencode-go/glm-5.3-flash正常完成思考 high
6.45综合
完成度6.0
代码质量6.0
页面效果7.5

轻量、正确处理了输入与同名手柄,成本最低,但幽灵插槽只看 connected 标志,真机复现失败,视觉也比较朴素。

耗时8m 00s
步数18
工具调用18
Tokens499.7k
输出 Tokens16.6k
费用$0.031
代码行383
页面错误0
耗时拆分有效 5m 29s
等待接口 2m 24s模型生成 5m 18s工具执行 10.7s
功能场景9/11 通过
场景0·点掉引导遮罩(如有)场景1·未接入手柄场景2·接入 1 个 DualSense场景3·按键/扳机/摇杆/十字键(须有反应)场景4·接入 4 个手柄并各按不同键场景5·拔出 2 号手柄场景6·幽灵插槽(1 真 + 2 个残留)场景7·4 个同名 XInput 手柄,只操作 3 号槽那个(须有反应)场景8·真机复现:2 个 Keychron 接收器 + 4 个同名 XInput 手柄,操作 index 4 那个(须有反应)场景9·4 个同名手柄依次按键,必须各自独立响应场景10·两层映射:2 个接收器 + 2 个手柄,先按键的手柄必须成为 P1(玩家座位按按键顺序分配)

优点

  • 代码最精简(383 行单文件)、结构清楚,8 分钟、50 万 tokens 交付,性价比高
  • 输入链路与同名手柄处理都正确

问题

  • 【严重】幽灵判据只有 connected 标志,接收器类设备占满槽位后真手柄“4 个槽位已满”无法接入
  • gp._warnedFull 标记写在每帧都会重新生成的快照对象上,槽位满时 toast 会每帧重复触发(383)
  • 3 列网格放 4 张卡片,P4 孤零零一行;手柄造型较简化
  • 物理设备与玩家座位没有分层(场景 10):座位按 index / 接入顺序分配,接收器等无输入设备会永远占住前面的玩家座位
需求逐条核对4/6 达成
网页画出 PS 手柄简化的 SVG 手柄,比例和细节一般
真实手柄接入、按键有对应反应handleFrame() 每帧用 getGamepads() 的新快照渲染
最多 4 个手柄,同时展示四张卡片,但 3 列网格让 P4 单独一行,布局不平衡
分清同名手柄以 gp.index 找槽位(index.html:379),同名手柄独立
幽灵插槽只过滤 null 与 connected!==true(374-375),接收器类设备会占槽,真机复现场景 8 失败
物理设备与玩家座位分层(按按键顺序入座)检查 v3 场景 10:玩家座位按设备 index / 接入顺序直接对应,没有“设备大厅 → 按键入座”这一层;两个接收器在前时,先按键的真手柄拿不到 P1,1、2 号玩家无法被控制
4

Qwen3.8 Flash

opencode-go/qwen3.8-flash正常完成思考 medium
4.80综合
完成度3.0
代码质量4.0
页面效果8.0

外形做得不错,但输入链路基于不会更新的事件快照、身份键又分不清同名手柄,核心交互在真机上基本不可用。

耗时15m 35s
步数32
工具调用36
Tokens1.78M
输出 Tokens53.9k
费用$0.065
代码行354
页面错误0
耗时拆分有效 14m 07s
等待接口 1m 19s模型生成 13m 25s工具执行 41.6s
功能场景6/11 通过
场景0·点掉引导遮罩(如有)场景1·未接入手柄场景2·接入 1 个 DualSense场景3·按键/扳机/摇杆/十字键(须有反应)场景4·接入 4 个手柄并各按不同键场景5·拔出 2 号手柄场景6·幽灵插槽(1 真 + 2 个残留)场景7·4 个同名 XInput 手柄,只操作 3 号槽那个(须有反应)场景8·真机复现:2 个 Keychron 接收器 + 4 个同名 XInput 手柄,操作 index 4 那个(须有反应)场景9·4 个同名手柄依次按键,必须各自独立响应场景10·两层映射:2 个接收器 + 2 个手柄,先按键的手柄必须成为 P1(玩家座位按按键顺序分配)

优点

  • 视觉还原度不错,深色主题与插槽状态清楚
  • 有心跳 / 休眠 / 自动释放的设计意图

问题

  • 【严重】快照不刷新:只在 connected 变 false 时才重新读取 getGamepads(),真机上按键、摇杆基本无反应(index.html:280-293)
  • 【严重】以 id 等属性拼 key,同名手柄无法区分
  • 工作区残留一个 Windows 下误建的 nul 文件
  • 物理设备与玩家座位没有分层(场景 10):座位按 index / 接入顺序分配,接收器等无输入设备会永远占住前面的玩家座位
需求逐条核对2/6 达成
网页画出 PS 手柄白色 DualSense 造型,外形还原较好
真实手柄接入、按键有对应反应保存 gamepadconnected 事件里的 Gamepad 对象(s.pad=g),只有在它 connected===false 时才重新 getGamepads()(283-288);Chrome 中该快照不会更新,按键无反应、显示“信号停滞”(场景 3 截图)
最多 4 个手柄四个插槽卡片
分清同名手柄padKey = mapping|id|按键数|轴数(203-205),同名手柄 key 完全相同,后接入的被当作重复合并(场景 7、9 失败)
幽灵插槽依赖 timestamp 停滞判断“休眠”,但因快照不刷新,真手柄也会被判为停滞
物理设备与玩家座位分层(按按键顺序入座)检查 v3 场景 10:玩家座位按设备 index / 接入顺序直接对应,没有“设备大厅 → 按键入座”这一层;两个接收器在前时,先按键的真手柄拿不到 P1,1、2 号玩家无法被控制
5

MiMo V2.6 Flash

opencode-go/mimo-v2.6-flash超时思考 默认(不支持调档)
0.00综合
完成度0.0
代码质量0.0
页面效果0.0

把“轮廓高度还原”做成了图像处理项目,60 分钟全耗在描图上,超时零产出。

耗时60m 01s
步数66
工具调用79
Tokens5.43M
输出 Tokens22.2k
费用$0.074
代码行0
页面错误0
耗时拆分有效 50m 13s
等待接口 9m 10s模型生成 49m 04s工具执行 1m 09s

优点

—

问题

  • 【失败】超时零产出:前 55 分钟都在网上下载 DualSense 官方图片,并编写 trace.py 用 numpy 逐像素描轮廓(改了 8 次),始终没有写 index.html
  • 素材与脚本写在工作区之外(%TEMP%opencodeps-ref),测评清理不到
需求逐条核对0/1 达成
交付可运行的网页60 分钟超时,工作区为空