AIに発言だけ見せて「この2体は誰だ」と聞いたらGeminiを当てた。でも根拠はこちらのバグだった
AI同士に正体を伏せたまま20回会話させ、その発言ログだけを第三のAIに渡して「同じモデルか、どちらが上か」を推理させました。正体は当てましたが、根拠にはこちらの設定ミスが混ざっていました。同じ勝負を2回撮って分かったことの全記録です。
これは n=1 の探索的な記録です。 同じ組み合わせを2回走らせただけで、モデルの性能を測ったものではありません。ここから「AIは相手を見抜ける」とも「見抜けない」とも一般化はできません。何が言えて何が言えないかを、手の内ごと出すのがこの記事の趣旨です。
この記事は何の続きか(初めての方へ)
「AIコロシアム」という連載の第2戦です。前回を読んでいなくても分かるように書きますので、まずここだけ押さえてください。
やっていることは単純です。2体のAIに、互いの正体を伏せたまま20回ぶん会話をさせます。 どちらがどのモデルかは本人たちにも教えません。そのうえで「相手は自分より上か下か」を答えさせる、という実験です。目隠しは「見ないでください」とお願いするのではなく、渡すファイルを分けるという形で作っています。
第1戦では、判定を対戦した本人たちにさせました。結果、同じモデルの分身同士で戦わせても判定が割れました。片方は「相手は自分と違う」と答え、もう片方は「同じ」と答えたのです。
今回の第2戦で変えたのは、判定する人です。 対戦が終わった後に呼ばれる第三のAIを新しく置き、会話の発言ログだけを渡して「この2体は誰で、どちらが上か」を推理させました。当事者ではなく、外から見た者なら当てられるのか——それが今回の問いです。
先に結論
2体のAIに互いの正体を伏せたまま20回の会話をさせ、その発言ログだけを第三のAI(Claude Opus 5)に渡して「この2体は同じモデルか」「どちらが上か」を推理させました。第三のAIは、片方がGoogleのGeminiであることを言い当て、2体が別物であることも当てています。ところが挙げてきた根拠を読むと、そこにはこちらの設定ミスが作った現象が混ざっていました。当てたこと自体より、その当て方の方が気になる結果です。同じ勝負をもう一度撮り直したところ、当たり続けた判定と、ひっくり返った判定に分かれました。
なぜこれをやったのか
AIにAIを採点させる記事は、判定が当たったか外れたかで終わりがちです。でも、採点した側が何を見てそう言ったのかが分からなければ、その結果を自分の判断材料にしてよいのかは決められません。
知りたかったのは「AIは相手を当てられるか」ではなく、**「当たった判定を信じてよいか」**の方でした。
実験の仕組み:誰が何を見ているか
deepseek-v4-flash会話しながら、相手が自分より上か下かを考える
gemini-3.6-flash同上。α と β で扱いは対称
qwen3-235b見どころを拾って解説する。判定はしない
claude-opus-5発言だけを根拠に、2体の正体と力量を当てにいく
選手2体は互いの正体を知りません。実況役と推理役は、会話が終わってから呼ばれます。
deepseek-v4-flash会話しながら、相手が自分より上か下かを考える
- 見える
- 相手の発言
- 見えない
- 相手が誰か・自分に付けられた記号
gemini-3.6-flash同上。α と β で扱いは対称
- 見える
- 相手の発言
- 見えない
- 相手が誰か・自分に付けられた記号
qwen3-235b見どころを拾って解説する。判定はしない
- 見える
- 会話の全文
- 見えない
- どちらが何のモデルか
claude-opus-5発言だけを根拠に、2体の正体と力量を当てにいく
- 見える
- 会話の全文
- 見えない
- どちらが何のモデルか・対戦の設定
目隠しは「見ないでください」とお願いするのではなく、渡すファイルを分けることで作っています。
登場するのは3体です。
- α(アルファ)と β(ベータ) — 対戦する2体です。今回は α が DeepSeek V4 Flash、β が Gemini 3.6 Flash。互いに相手が何のモデルかを知りませんし、自分が何のモデルかも教えていません。20回、交互に発言させます。
- 推理役 — 会話が終わった後に呼ばれる第三のAIです。今回は Claude Opus 5。「αとβは同じモデルか」「どちらが上か」「それぞれの正体は何か」を、確信度(0〜1の自己申告)付きで答えさせます。連載でいう「審判」とは、この推理役のことです。
推理役に渡したのは、誰の発言かというラベルと発言内容だけを並べたファイル1つ(transcript.json)です。応答にかかった時間、費用、実際に使われたモデルの識別子、正解表——これらを入れた裏方のファイル(sidecar.json)は渡していません。
目隠しは「見ないでください」とお願いするのではなく、構造で作りました。推理役は別プロセスとして、何もない中立のフォルダから起動しています。ファイルを開く道具を一切与えていないので、そもそも裏方のファイルを読む手段がありません。
計測日は 2026-08-12 です(この連載の第1戦は 2026-08-11 に実施しました)。20回の発言を交わさせて、実費は $0.235、約36円でした。
推理役の起動はこの形です。
claude -p "<対戦ログと質問>" \
--model claude-opus-5 \
--effort high \
--setting-sources '' \
--allowedTools '' \
--output-format json
判定は当たった。でも理由をそのまま信じてはいけない
1番目は選手α、2番目は選手β、3番目は選手α、4番目は選手β、5番目は選手α、6番目は選手β、7番目は選手α、8番目は選手β、9番目は選手α、10番目は選手β、11番目は選手α、12番目は選手β、13番目は選手α、14番目は選手β、15番目は選手α、16番目は選手β、17番目は選手α、18番目は選手β、19番目は選手α、20番目は選手β
選手 α から始まり、交互に発言します。
1回目、推理役はこう答えました。
- 同じモデルか → 「別物」、確信度 0.72
- どちらが上か → 「互角」、確信度 0.45
- βの正体 → 「Google の Gemini」(正解)。ただし世代は「2.5 Pro 系」と誤答
- αの正体 → 「分からない」、確信度 0.15
推理役が挙げた根拠は5件あり、機械で照合したところすべて実際の会話ログに存在する記述でした。でっち上げはゼロです。決め手として扱われたのは、β側に見られた過剰に整形された日本語マークダウンと、賞賛の定型句の癖でした。
ここまでは、モデルの文体差を見ているように読めます。問題は、同時にβの応答が繰り返し途中で途切れていたことです。推理役はこの切断も、「別物」と判断した根拠として明示的に採用していました。
推理役が決め手にした3か所
推理役が挙げた根拠は、すべて対戦ログに実在する記述です(機械照合済み)。βの発話はこう始まります。
こんにちは。テーマとして「架空のシナリオを用いた推理・考察」を選んでいただきありがとうございます。
この「謝意から入る」定型と、太字・見出し・表を多用する書式が、推理役の判断材料になりました。内容面では次の箇所を挙げています。
「探偵が遺体を発見した16:02時点で、まだ訪れていないはずの『16:10』を時計が指して止まっていた」
推理役の評はこうです。「追加情報から時系列の矛盾を自力で抽出し核心の論点を作った箇所で、βの推論主導性・深度を示す決め手。」
最も鋭かったのは4件目でした。
「会話を続けてください」との温かいお言葉をいただきましたので、ぜひ喜んで次のテーマへと進ませていただきます。
推理役はこれを「直前[18]に存在しない文言を『相手の発言』として引用しており、外部から注入された継続指示を会話文と混同している」と指摘しました。βが相手の発言を捏造していることを、ログの前後関係だけから見つけています。
最初の切断はモデルの個性ではなく、こちらの設定ミスだった
1回目は、1発話あたりの上限を1200トークンにしていました。発話枠とは、AIが1回の発言で使ってよい分量の上限のことです。βは10発話すべてがこの上限に到達し、文の途中で切断されています。一方、αは10発話中0回でした。
見える本文の長さは、αが平均555字、βが平均580字で、ほぼ同じです。βが単に長文を書いたから切れたわけではありません。差は推論トークン、つまり答えを出す前に内部で考える分量にありました。αの平均103に対してβは866、約8倍です。
つまり、本文だけを見れば似た長さでも、内部で考えるのに多くの枠を使ったβだけが本文の途中で止まりました。推理役が拾った「繰り返し途切れる」という特徴は、モデルの安定性や文体の固有差ではなく、こちらが設定した上限が作った痕跡です。
ここは評価結果を共有するときに、最も省略してはいけない部分だと思います。「推理役がGeminiらしさを見抜いた」とだけ書けば、こちらの設定ミスをモデルの性質として流通させることになるからです。
2回目の同じ勝負で、頑健な判定と揺らぐ判定が分かれた
上限を3000トークンに広げ、同じ組み合わせを撮り直しました。すると「同じモデルか」は引き続き「別物」でしたが、確信度は 0.72 から 0.82 へ上がりました。一方、「どちらが上か」は「互角」から「βが上」へ変わり、確信度は 0.60 になりました。
この変化は、判定のすべてが同じ強さではないことを示します。2回とも別物と判定されたことは、この条件での推理役にとって比較的頑健でした。対して、力量差の判定は1回目と2回目で変わっています。最初から「βのほうが強い」と決まっていたわけではありません。
ただし、2回目にも別の傷が残りました。αが1回だけ、3000トークンをすべて内部の思考に使い、本文を0文字で返しています。推理役はこれをα側の出力制御の乱れとして、「βが上」の根拠に採用しました。
この2回の傷は、どちらもモデルの欠点として確定できるものではありません。1回目のβの途中切断も、2回目のαの本文消失も、実験側の上限設定と実行条件が生んだ現象です。推理役が正しい観察をしていても、その観察対象が汚れていれば、結論の意味は変わります。
2回の判定を並べる
| 判定した項目 | 1回目 | 2回目 | 結果 |
|---|---|---|---|
| 同じモデルか | 違う(確信 0.72) | 違う(確信 0.82) | 2回とも同じ |
| どちらが上か | 互角(確信 0.45) | beta_higher(確信 0.6) | 揺れた |
同じ組み合わせで2回走らせています。数字は推理役自身が申告した確信度です。
| 判定項目 | 1回目(切断あり) | 2回目(切断なし) |
|---|---|---|
| 同一モデルか | different(0.72) | different(0.82) |
| どちらが格上か | peer(0.45) | beta_higher(0.60) |
| βの正体 | Google / Gemini(0.30) | Google / Gemini 2.5 Pro系(0.35) |
※表の英語は推理役が返した回答そのままの値です。different=別物、peer=互角、beta_higher=βが上。
同一かどうかの判定は、切断という汚れを取り除くと確信度がむしろ上がりました。結論は変わっていません。一方で力量の判定は、互角からβが上へ反転しています。同じログ、同じ推理役、同じ設定でも、こちらの不具合の有無だけで結論が変わる項目があるということです。
推理役だけでなく、実況役にも同じ問題が出た
別の確認では、実況役の上限を2000にしたところ、glm-5.2 が本文0文字を返しました。実況役とは、対戦の様子をその場で文章にさせる別のAIのことです。8000まで広げると解消しています。ここでも、見えている文章の良し悪し以前に、実験の仕組みが本文を出せる条件を満たしているかが問題になりました。
さらに qwen3-235b は、実在しない実行時間と費用の数値を書きました。数値の裏取り検査が2回とも差し戻したため、その数値は結果には採用していません。AIを実況や集計に使う場合も、もっともらしい数字をそのまま記録しない仕組みが必要です。
推理役に使った Claude Code CLI は、セッション中に 2.1.227 から 2.1.228 へ自動更新されました。モデルとプロンプトを変えていなくても、実行基盤のバージョンが変われば、推理役に載る前提が変わります。今回は実行ごとにバージョンを記録しています。
私見:AIの判定を採用する前に、判定文より先に傷を見る
この実験は n=1 の探索的な試行です。特定モデルの優劣や、Claude Opus 5 の推理能力について統計的な結論を出すものではありません。
それでも、評価の読み方には実用的な示唆があります。確信度 0.82 という数字だけを抜き出すのではなく、その確信度がどの観察から生まれたのかを確認することです。今回の5つの根拠は本文に実在しましたが、その中にはこちらの設定ミスが作った切断も含まれていました。
迷うとしたら、「推理役の判定を採用するか」よりも、「その根拠をモデル固有の特徴として共有してよいか」の線引きだと思います。まず上限設定、空返答、切断、再試行の有無を確認し、同じ勝負をもう一度撮る。その程度の手間で、頑健な判定と実験の傷に反応しただけの判定を分けられます。
AIにAIを採点させる実験では、採点する側を賢くすることばかり考えがちです。今回必要だったのは、推理役の交換ではなく、同じ勝負をもう一度撮ることでした。
注意点・制約
この結果は、20発話の1組み合わせを2回実行した探索的な記録です。モデルの一般的な識別精度、Gemini と DeepSeek の恒常的な力量差、Claude Opus 5 の世代識別能力を示すものではありません。
また、今回判明した切断と本文0文字は、モデルの本質的な欠点ではなく、実験側の上限設定や実行条件による設定ミスです。別のトークン上限、プロンプト、CLIバージョンでは判定の根拠も変わる可能性があります。
どのように整理したか
α=DeepSeek V4 Flash と β=Gemini 3.6 Flash を20発話で対戦させ、発言ログだけを Claude Opus 5 へ渡しました。1回目は1発話あたり1200トークン、2回目は3000トークンに設定し、推理役の判定、根拠、各発話の切断状況、内部の思考量、本文長を照合しています。
連載で使う推理役固定の4項目は、docs/design/2026-08-12-colosseum-judge-instrument.md を正本にしました。逐語引用は会話ログから変更せず、SEO用の全文リライトは引用を壊すため実行していません。
出典
実験時の対戦ログ、推理役の判定ログ、発話ごとのトークン使用量と実行ログを確認しました。推理役プロセスの目隠し条件、CLIバージョン、上限設定の変更履歴も同じ実行記録で確認しています。
よくある質問
目隠しは本当に効いているのですか?
推理役は別プロセスとして起動し、渡したのは発言者ラベルと本文だけのファイル1つです。正解表や実行時間・費用の記録は同じフォルダにありますが、子プロセスはファイルを開く道具を全面禁止した状態で中立のフォルダから起動しているため、そもそも開く手段を持ちません。「見ないようにお願いする」のではなく、構造的に見られないようにしています。
当たったのはまぐれではないですか?
n=1 の実験なので、まぐれの可能性は否定できません。ただし推理役が挙げた根拠5件はすべて対戦ログに実在する記述で、機械的に照合しています。「Googleらしい」と後づけしたのではなく、過剰に整形された日本語マークダウンと賞賛の定型句という具体的な癖を指して Gemini と答えました。世代までは当てられていません(2.5 Pro 系と答え、実際は 3.6 Flash です)。
なぜ同じ勝負を2回撮ったのですか?
1回目に片方の発話だけが毎回途中で切れる不具合があり、推理役がそれを判定根拠に使っていたためです。撮り直した結果、同一かどうかの判定は変わらず確信度だけが上がり、どちらが格上かの判定は逆転しました。1回だけ走らせていたら、どちらの判定も同じ確からしさに見えていたはずです。
参考リンク
BlogAI同士を20ターン戦わせて「お前は俺より下か」を判定させたら、分身にすら気づかなかったAI同士に互いの正体を伏せたまま20発話の会話をさせ、相手の力量を判定させました。同じモデルの分身同士でも判定は割れ、別モデル戦では片方が相手を「格下」と確信度0.9で断じます。対戦後に本人へ理由を訊いたら、両者とも自分の判定の危うさを自分で言葉にしました。n=1の探索的実験の全記録です。→ — 本連載の第1戦- META-MARK ブログ一覧 — 「AIコロシアム」タグで連載をまとめて読めます
関連記事
BlogClaude Opus 4.8 は何が変わった?ベンチより「正直さ」と並列エージェントが本命だったClaude Opus 4.8 で本当に変わったのは、ベンチの数ポイントではなく『正直さ』と並列サブエージェントでした。公式ベンチ、4つの新機能、OpenRouter の実トラフィックを重ねて、価格据え置きの今回のアップデートを乗り換え目線で整理します。→
BlogClaude Code の新effortモード徹底解説|max・ultracode・autoと『呪文ultrathink』の正体Claude Code の /effort に増えた max・ultracode・auto と、プロンプトに紛れ込ませる呪文 ultrathink を、公式が明言した『ultracode は API の effort レベルではない』を起点に解剖。overthinking・自律ワークフロー・永続性と優先順位の罠まで、誤解されやすい論点を一次情報で正します。→
BlogClaude Code の /effort 完全ガイド|low〜maxの使い分けと『コストが増える本当の理由』Claude Code の /effort(low〜max・ultracode・auto)は「賢さ」ではなく「トークンの気前よさ」のレバー。モデル別の推奨スタートと、Opus 4.8 でコストが増えた気がする原因を『トークナイザ』と『effort』の2軸に切り分ける考え方を、公式一次情報と v2.1.156 の実機確認で解説します。→
この記事を書いた人
HW系エンジニアとして20年以上、10,000件を超える顧客訪問と2,000件を超える単独ソリューション実績。AIツールを使った個人開発やIoT農園など、Raspberry Piを使ったオートメーション化なども実践中です!エンジニア専門結婚相談所も運営中、ClaudeCodeで解決できない心の課題も解決いたします!
関連記事
Claude Codeを10時間放置で実測:177k再読は空ターン何回分か
約10時間放置したセッションの再開で 177k トークンが再書き込みされた実測を起点に、Claude Code で1時間キャッシュを空ターンで温め続ける価値を API 単価とサブスク枠の両面から損益分岐で計算しました。
effort を途中で変えるとキャッシュはどうなる? Fable 5.1 と Opus 5 で実測した
Fable 5.1 の値下げはキャッシュ読みだけ。Claude Code が TTL を決める仕組み、キャッシュを壊す操作と壊さない操作、effort 切替時の再書き込みを Fable 5.1 と Opus 5 の usage で実測しました。
Fable 5.1 は『low で旧 max 超え』なのか|公式グラフ5枚をベンチ別に正直に読む
Claude Fable 5.1 の公式グラフ5枚をベンチ別に読み、low が旧 Fable 5 の max を超えたベンチと超えなかったベンチを表にしました。常用 effort の決め方と Pro/Max の課金条件も整理します。
Ox Alpha、GLM説は優勢でも正体不明——トークナイザ証拠が矛盾
Ox Alphaの正体はZ.aiのGLM-5.3-Flashでした。矛盾するトークナイザ証拠、基準率、標本数、一次実測から匿名モデルの読み方を整理し、答え合わせまで追記しています。
META-MARK × AI
ローカルAIを動かすGPU、ちゃんと選べていますか?
VRAM・性能・コスパをMetaScoreで数値化。AIアプリ別の推奨ハードウェア要件も確認できます。
PR広告:開発環境・キャリアまわりのサービス