1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Jev・OpenAI・Claudeでリバーシ対戦させてみた

1
Posted at

概要

最近話題のTypeSafe JevとOpenAI、Claudeをリバーシで対戦させてみました。

各AIに同じ盤面と合法手を渡し、選んだ位置へ石を置きます

比較用のRandomも加え、4種類によるリーグ戦を12試合行いました

使用したモデル

今回使用したモデルは下記の3種類です

AI モデル
Jev jev-latest
OpenAI gpt-5.6-luna
Claude claude-sonnet-5

Claudeは当初Haikuを使う想定でしたが、Haikuがしばらく更新されていないため、コストと速度のバランスを考えてclaude-sonnet-5へ変更しました

そのため、以降に記載するClaudeの勝敗と応答時間はHaikuではなくSonnet 5の結果です

Jevは複数の候補から1つを選ぶChoiceを使用しました

OpenAIとClaudeにも同じ盤面と合法手を渡し、候補の中から着手位置を返すようにしています

この3種類に加えて、比較基準としてRandomを用意しました

RandomはAIモデルではなく、その時点の合法手から暗号学的乱数で1手を選ぶローカル処理です

作ったもの

人間対AIとAI対AIの両方で遊べるリバーシを作りました

AI対AIでは黒と白に別のモデルを設定できます

リーグ戦では参加するAIと巡数を選択し、各組み合わせについて先手と後手を入れ替えて対戦します

画面には下記の情報を表示しています

  • 現在の盤面
  • 黒と白の石数
  • 選択した手
  • APIの応答時間
  • 黒と白それぞれの合計思考時間
  • モデルごとの勝敗、石差、平均応答時間
  • APIから返った生のレスポンス

対局結果はブラウザに保存されるため、リーグ戦が終わったあとに成績を比較できます

AIに渡したプロンプト

各AIには現在の盤面と、ルール上置くことのできる位置を渡しています

AIが盤面を画像として見ているわけではありません

ゲーム側が盤面を8行の文字列へ変換し、候補となる合法手を作っています

Jev、OpenAI、Claudeへ渡した共通部分は下記です

You are playing Reversi/Othello. Choose the strongest legal move for the current player.
Current player: Black (B).
Rows are 1-8 and columns are A-H. Consider corners, mobility, stability, and avoid dangerous squares.

..WWWW..
..WWWWWW
...BBWW.
...WWWW.
..WBBBW.
...WBW..
....B...
....B...

Legal moves: A3 (flips 1), B3 (flips 2), C3 (flips 1), H3 (flips 3), ...

手番が白の場合はCurrent playerをWhite (W)に変更します

単に盤面と座標を渡すだけでなく、角、相手の合法手の数、石の安定性、危険なマスを考慮するように指示しました

また各合法手について、その手で何個の石が返るかも渡しています

3モデルで共通部分は揃えましたが、APIごとに構造化出力の仕組みが異なるため、追加指示は下記のようにしています

AI 追加した指示・出力方法
Jev ChoiceのinstructionsにChoose the strongest legal Reversi moveを指定。合法手ごとにPlay D3; flips 2 disc(s)のようなcriteriaを作成
OpenAI The move must be one of the legal moves.と指示。合法手だけを列挙したplay_move関数を必ず呼び出させ、reasoning effortはlowに設定
Claude 共通プロンプトをユーザーメッセージとして送信。合法手だけを列挙したplay_moveツールを必ず呼び出すように設定

OpenAIとClaudeでは、返せる座標を合法手のenumに限定しています

JevでもChoiceの候補を合法手だけにしているため、3モデルとも候補外の位置は選べません

モデルごとに専用の攻略プロンプトを作ることはせず、同じ情報から1手を選ぶ条件に揃えました

一方で、JevはChoice、OpenAIとClaudeはツール呼び出しを使っているため、入力と出力の形式が完全に同一というわけではありません

この違いも含めた実装上の比較として結果を見る必要があります

RandomだけはAPIを使わず、その時点の合法手から一様ランダムに選びます

AIにルール違反の位置を自由に生成させるのではなく、ゲーム側で候補を限定する構成です

そのため今回測っているのは、盤面を見て合法手の中から良い位置を選べるかどうかです

4種類でリーグ戦を行う

Jev、OpenAI、Claude Sonnet 5、Randomの4種類で総当たり戦を行いました

全6組み合わせについて先手と後手を1試合ずつ、合計12試合です

順位 AI 試合 勝 分 敗 石差 平均応答時間
1 OpenAI 6 6 0 0 +150 2,169 ms
2 Jev 6 4 0 2 -22 287 ms
3 Claude Sonnet 5 6 1 0 5 -2 2,866 ms
4 Random 6 1 0 5 -126 0 ms

four-model-league.png

OpenAIは6戦全勝でした

Jev、Claude、Randomのすべてに対して、先手と後手の両方で勝っています

今回の条件ではOpenAIが最も強い結果になりました

JevはOpenAIに2敗しましたが、ClaudeとRandomには先手・後手ともに勝ちました

ClaudeとRandomはどちらも1勝5敗です

ただし石差はClaudeが-2、Randomが-126でした

勝敗だけを見ると同じですが、対局内容まで同じとは言えません

ClaudeはJevとの2試合がどちらも2石差で、Randomより接戦が多い結果でした

Jevの応答は速かった

4種類のリーグ戦で、盤面を送ってから合法手を受け取るまでの平均時間を比較しました

response-time.png

Jevは平均287msでした

OpenAIは2,169ms、Claude Sonnet 5は2,866msです

JevはOpenAIの約7.6倍、Claudeの約10倍高速でした

リバーシは相手の手を待ってから考えるゲームなので、2〜3秒でもプレイ自体は成立します

ただ、AI対AIを大量に実行すると、この差がそのままリーグ戦の所要時間に効いてきます

Jevは最も強いモデルではありませんでしたが、対局性能と速度のバランスは良いと感じました

1試合あたりのAPI費用

1試合にかかるAPI費用も概算しました

今回の実装では1手ごとにAPIを呼び出します

リバーシは初期配置の4個を除くと最大60手なので、1試合で各AIが約30回ずつ判断する前提です

初期盤面で1回ずつ呼び出したときのトークン使用量は下記でした

AI 入力token 出力token 1手の概算費用 1試合・片側約30手
Jev 540 50 $0.000023 $0.0007
OpenAI 254 46 $0.000106 $0.0032
Claude 823 98 $0.002626 $0.0788

単価は2026年9月21日時点で、Jevが入力100万tokenあたり$0.042で出力無料、OpenAIのGPT-5.6 Lunaが入力$0.20・出力$1.20、Claude Sonnet 5が入力$2・出力$10です

公式情報はTypeSafe AI、OpenAI API、Claude Sonnet 5を参照しました

リーグ戦のように異なるAIを対戦させる場合は、黒と白の費用を足します

組み合わせ 1試合の概算費用
Jev vs OpenAI $0.0039
Jev vs Claude $0.0795
OpenAI vs Claude $0.0820

同じAI同士で1試合60手を打つと仮定した場合は、Jevが約$0.0014、OpenAIが約$0.0064、Claudeが約$0.158です

cost-per-game.png

Jevは出力が課金対象にならず、今回の短い盤面入力では1試合あたりの費用がかなり小さくなりました

ただし、これは初期盤面の1手を基準にした概算です

中盤は合法手の数が増える場合があり、ツール定義に含める候補数やモデルごとのtokenizerも異なるため、実際の請求額とは差が出ます

付加試験としてRandomと比較する

4種類のリーグ戦では、JevはRandomに2勝しました

ただし2試合だけでは、たまたま勝った可能性を否定できません

そこで付加試験としてJevとRandomだけで100試合行ったところ、Jevは69勝29敗2分、合計石差+1,079でした

少なくとも、Jevが合法手を単純にランダム選択しているわけではないことを確認する材料にはなりました

この試験の詳しい集計と統計評価は別の検証記録にまとめています

Jevを使ってよかったところ

一番よかったのは、合法手を候補としてそのまま渡せることです

JevのChoiceは返り値が候補の中に収まるため、文章から座標を抽出したり、存在しない位置を弾いたりする処理を増やさずに済みました

応答が速い点も今回の用途に合っていました

1試合では数十回APIを呼び出します

平均287msで返ってくるため、複数試合を連続実行する用途にも向いていました

また、Randomを追加して直接比較したことで、画面上はそれらしく動いているだけなのか、盤面に応じた選択ができているのかを数字で確認できました

まとめ

Jev、OpenAI、Claude、Randomが対戦するリバーシを作りました

4種類のリーグ戦ではOpenAIが6戦全勝で、今回の条件では最も強い結果でした

Jevは4勝2敗で2位となり、平均応答時間は287msでした

OpenAIより約7.6倍、Claude Sonnet 5より約10倍高速です

1試合で片側を担当する費用は、Jevが約$0.0007、OpenAIが約$0.0032、Claudeが約$0.0788と見積もりました

一方でOpenAIとの直接対戦には負けているため、今回分かったのはJevが最強ということではありません

低い待ち時間で一定の対局性能を出せることが今回の収穫でした

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?