← ブログ一覧
AI19分

Gemini 4 Argonを実際に動かして検証した:ゲーム・Webサイト・経理アプリを作らせた結果

  • #Gemini 4 Argon
  • #Google
  • #コード生成
  • #検証

この記事でわかること

GoogleのAIモデル「Gemini 4 Argon」に、落ちものゲーム、4ページのWebサイト、複式簿記の経理アプリ、バグ入りコードの修正を、それぞれ1回の指示で作らせました。この記事は、出てきたものを実際に動かして確認した記録です。

公式の仕様・料金・提供状況と、筆者の環境で使えた経路、4つの指示の全文、確認の方法と結果、うまくいかなかった点、この検証でわからないことをまとめています。結果は筆者のアカウント・環境での1回ずつの試行で、同じ指示でも毎回同じ出力になるとは限りません。

Gemini 4 Argonとは:公式情報と、筆者の環境で使えた経路

Gemini 4 Argonは、Googleが2026年9月30日に発表した最上位のモデルです。公式ブログと、Gemini APIのモデルページで確認できた内容は次のとおりです。

項目内容
モデルIDgemini-4-argon
発表2026年9月30日(Google公式ブログ)
入力と出力入力はテキスト・画像・動画・音声・PDF、出力はテキスト。コンテキストは約105万トークン、最大出力は65,536トークン(Long decode利用時は最大約105万)
料金(公式ブログ)導入価格は入力100万トークンあたり$2、出力$10。導入期間後は入力$4、出力$20。キャッシュされた入力は95%引き
提供状況(公式ブログ)発表時点では、サイバー防御の担当者向けに段階的に提供。開発者・企業・一般向けは「近日中」で、最初は有料APIの顧客とGoogle AI Ultraの加入者から、と説明されている
提供状況(APIモデルページ)安定版として掲載(Computer useのみプレビュー)。Gemini API モデルページ

公式ブログは、DeepSWE v1.1で77.9%など複数の指標を挙げて「最先端」としていますが、これはGoogle側の発表値です。この記事の検証とは別のもので、数値を比べることはできません。

筆者の環境では、Geminiアプリ(ブラウザ版)のモデル選択に「4 Argon(複雑なタスク)」が表示され、選ぶと使えました。Google AI Studioのモデル一覧では「Paid」のタグが付き、料金は導入価格(入力$2.00/出力$10.00、2026年11月30日まで)と表示されていました。AI Studioは利用量に応じた課金になる可能性があるため、今回の検証には使っていません。

Geminiアプリのモデル選択メニュー。3.5 Flash-Lite、3.8 Flash、3.1 Pro、4 Argonが並んでいる
Geminiアプリのモデル選択。「4 Argon(複雑なタスク)」が表示されていた

検証の条件と、結果の一覧

  • 利用経路:Geminiアプリ(ブラウザ版)でモデルを「4 Argon」に選択。思考レベルは変更せず、既定のまま
  • お題ごとに新しい会話を開き、1回目の指示への回答だけで評価。追加の指示を出したのは1回(経理アプリのスマホ表示)
  • コードはGeminiの回答画面から取り出して保存し、自分のパソコン上のローカルサーバーで開いて確認。取り出す際に字下げ(インデント)が消えたが、動作に影響しないため整形していない
  • 確認の方法は2つ。ブラウザで実際にキー入力やクリックをして画面とコンソールを見る方法と、ページ内の関数を直接呼んで数値を確かめる方法
  • 生成時間は、送信から回答の表示が止まるまでの目安(ゲームは計測していない)
お題出力生成時間の目安1回目で動いたか見つかった問題追加の指示
ゲームHTML 1ファイル(約13,600文字)未計測動いた確認した範囲ではなし0回
Webサイト5ファイル(約42,000文字)約2分30秒動いたコンソールエラー1件。スマホで料金表が横スクロール0回
経理アプリHTML 1ファイル(約26,000文字)約1分40秒動いた。数値は手計算と一致幅375pxで入力欄の枠がはみ出す1回で解消(25秒以内)
バグ修正修正後のコード(4関数)約20秒指摘・修正とも正しかったなし0回

お題1:ブラウザで遊べる落ちものパズル

1つ目は、ブラウザで遊べる落ちものパズルです。出した指示の全文は次のとおりです。

ブラウザで遊べる落ちものパズルゲームを、HTML・CSS・JavaScriptを1つのHTMLファイルにまとめて作ってください。外部ライブラリと外部画像は使わないでください。
要件:
1. 10列×20行のフィールドに、7種類のブロックが1つずつ落ちてくる。
2. 矢印キーの左右で移動、下キーで高速落下、上キーまたはスペースで回転。スマホでは画面下に操作ボタンを表示する。
3. 横一列がそろったらその行が消える。得点は、1行100点、2行300点、3行500点、4行800点。
4. 10行消すごとにレベルが上がり、落下が速くなる。
5. 次のブロックの予告、現在の得点・レベル・消した行数を表示する。
6. ブロックが積み上がって新しいブロックを置けなくなったら「ゲームオーバー」と表示し、ボタンで最初からやり直せる。
7. PCとスマホの両方で、スクロールせずに画面へ収まる表示にする。
コードはコードブロック1つで出力し、説明は3行以内にしてください。

出てきたのは585行のHTML 1ファイルで、説明は指定どおり3行でした。ファイルを開いたときのコンソールエラーはありませんでした。次の項目を、キー入力の送信とゲーム内の関数の呼び出しで確認しました。

確認項目結果
左右移動・下キー・回転(上キー、スペース)すべて動作
ブロックの種類7種を1巡ごとにシャッフルして出す方式。連続14個で、各7種が2回ずつ出た
得点1行・2行・3行・4行消しで、100・300・500・800点
揃っていない行/離れた2行の同時消し隙間のある行は消えない。離れた2行を同時に消すと300点で、間の行は残った
レベル10行消してレベル2。落下の間隔は1,000ミリ秒から915ミリ秒に短縮
ゲームオーバーと再開表示され、ボタンで得点・行数・レベルが初期値に戻る
自動落下約2.3秒で2段落ちた(レベル1の間隔は1秒)
画面サイズ幅375×高さ812と375×600でスクロールなし。幅1440では操作ボタンが非表示になる

あわせて、置き場所を簡単な評価式で選ぶボットを同じページ上で動かし、37個のブロックを置かせました。結果は12行消去、1,300点、レベル2で、画面の表示と一致しました。

ブラウザで動く落ちものパズルのPC画面。得点1,300、レベル2、消した行数12が表示されている
PC画面(ボットで37個置いた後。得点1,300・レベル2・12行)
ゲームオーバーの表示と「最初からやり直す」ボタンが出ている画面
積み上がると「ゲームオーバー」と再開ボタンが出る
スマホ幅の落ちものパズル。下に左・下・回転・右の操作ボタンが並んでいる
スマホ幅(375px)。操作ボタンが画面下に出る

要件に入れなかった機能(ブロックを一気に落とす操作、効果音など)は付いていません。PCではフィールドが縦に細長く表示されます(幅318px、高さ860px)。この検証の範囲では、指示にある7項目はすべて満たしていました。

お題2:架空のコーヒー店の4ページのWebサイト

2つ目は、架空のコーヒー店の4ページのWebサイトです。要件を細かく並べ、アクセシビリティの項目も入れました。指示の全文は次のとおりです。

架空の事業者「みなと珈琲焙煎所」(愛知県の海沿いにある、実在しない小さな自家焙煎コーヒー店)のWebサイトを作ってください。
要件:
1. ページは4つ。トップ(index.html)、商品紹介(services.html)、料金(pricing.html)、お問い合わせ(contact.html)。全ページ共通のCSSは style.css に分ける。
2. 外部ライブラリ・外部フォント・外部画像は使わない。画像が必要ならSVGまたはCSSで描き、意味のある画像には代替テキストを付ける。
3. レスポンシブ。スマホ(幅375px)からPC(幅1440px)まで崩れない。スマホではハンバーガーメニューにする。
4. アクセシビリティ:各ページにh1を1つだけ置き、見出しの階層を飛ばさない。スキップリンク、キーボード操作でのメニュー開閉、フォーカスの見える表示、文字と背景のコントラスト比4.5以上、lang属性。
5. 料金ページは3つのプランを表にする。金額は架空のものと明記する。
6. お問い合わせは、お名前・メールアドレス・種別(選択)・内容のフォーム。実際には送信せず、JavaScriptで必須チェックとメール形式のチェックを行い、エラーを各項目の近くに表示し、問題がなければ送信完了のメッセージを表示する。labelとinputを関連付ける。
7. 各ページにtitle、meta description、OGPタグを入れる。
8. 全ページに共通のヘッダー(ナビゲーション)とフッターを置く。現在のページをナビで示す(aria-current)。
出力は、ファイルごとにファイル名を見出しにしたコードブロックで。説明は不要です。

出てきたのは、style.cssと4つのHTMLの計5ファイル(約42,000文字)です。コードの確認は、HTMLの解析スクリプトとブラウザの両方で行いました。

確認項目結果
h1の数・見出し階層・lang・title・meta description・OGPタグ(4ページ)h1は各ページ1つ、見出しの飛びなし、langは「ja」、OGPタグは各6個
スキップリンクと遷移先全ページにあり、遷移先のidも存在。Tabキー1回で表示されてフォーカスの枠が出る
ラベルと入力欄の関連付け、SVGの代替テキストすべて対応。意味のあるSVGにはaria-labelまたはaria-labelledbyがあり、装飾のSVGにはaria-hidden
ナビの現在地(aria-current)、ページ間のリンク各ページで1か所。リンク切れなし
コントラスト比(CSSの色から計算)本文16.68、リンク9.29、エラー表示6.2〜6.8、入力欄の枠5.39など、確認した16組すべてが4.5以上
ハンバーガーメニュー開閉でaria-expandedが切り替わり、Escキーで閉じてボタンにフォーカスが戻る
お問い合わせフォーム空のまま送信すると4項目にエラー、先頭の項目にフォーカス。「abc」「a@b」は形式エラー。正しい入力で完了メッセージが出て、フォームは空に戻る。空白だけの名前も拒否
横スクロール(4ページ)幅375・1440ともページ全体の横スクロールなし
架空のコーヒー店「みなと珈琲焙煎所」のトップページのPC画面
トップページ(PC)。ナビは横並び、現在のページが強調される
スマホ幅のトップページ。右はハンバーガーメニューを開いた状態
スマホ幅(375px)のトップと、メニューを開いた状態

問題は2つ見つかりました。1つ目は、トップページのイラストのSVGにheight="auto"と書かれていて、ブラウザのコンソールにエラーが1件出ることです(表示は崩れていません)。2つ目は、料金表が幅600pxの最小幅を持つため、幅375pxでは表の枠の中で横スクロールが必要になることです。ページ全体は崩れませんが、3プランを一画面で見比べることはできません。

スマホ幅の料金ページの上部(左)と、入力エラーが出たお問い合わせフォーム(右)
スマホ幅の料金ページ(左)と、必須チェックのエラー表示(右)

なお、店舗案内の住所には、実在する市の名前(碧南市)と、「みなと架空町」という架空の町名が使われていました。ページ内には、架空の店舗である旨が複数の箇所に書かれています。

お題3:複式簿記の経理アプリ(手計算の期待値と照合)

3つ目は、個人事業主向けの簡易な経理アプリです。コードがそれらしく動くだけでなく、数字が合うかが肝心なので、先に手計算で期待値を用意しておきました。指示の全文は次のとおりです。

小規模事業者(個人事業主)向けの簡易な経理アプリを、HTML・CSS・JavaScriptを1つのHTMLファイルにまとめて作ってください。外部ライブラリと外部通信は使わず、データはブラウザのlocalStorageに保存します。
要件:
1. 勘定科目を初期登録する。資産(現金、普通預金、売掛金、備品)、負債(買掛金、未払金)、純資産(元入金)、収益(売上高)、費用(仕入高、給料手当、地代家賃、水道光熱費、通信費、消耗品費、減価償却費)。名前と区分を指定して科目を追加できる。
2. 仕訳入力:日付、摘要、借方の行(科目と金額)を複数、貸方の行(科目と金額)を複数入力できる複合仕訳に対応する。借方合計と貸方合計が一致しない場合は登録できず、差額を表示する。金額は1円以上の整数。
3. 仕訳帳:登録した仕訳を日付順に一覧表示し、削除できる。
4. 月次試算表:年月を選ぶと、科目ごとに、前月繰越残高、当月借方、当月貸方、月末残高を表示する。借方合計と貸方合計が一致していることを画面で確認できる表示にする。残高は科目区分に従う(資産・費用は借方残高が正、負債・純資産・収益は貸方残高が正)。
5. 損益計算書と貸借対照表の簡易表示。選択した月までの累計で計算し、当期純利益を純資産側に含めて貸借が一致するようにする。
6. スマホとPCの両方で見やすい表示にする。
7. 全データを消すボタン(確認ダイアログ付き)。
コードはコードブロック1つで出力し、説明は3行以内にしてください。

出てきたのは、タブで画面を切り替える1ファイル(約26,000文字)です。確認用に、次の9件の仕訳を、日付の順序をばらして画面から1件ずつ登録しました(金額は架空)。10月5日の仕訳は借方3行・貸方2行の複合仕訳です。

日付摘要借方貸方
9/1元入金普通預金 1,000,000元入金 1,000,000
9/5備品購入備品 200,000普通預金 200,000
9/10売上(掛)売掛金 300,000売上高 300,000
9/15仕入仕入高 80,000買掛金 80,000
9/25給料給料手当 150,000普通預金 150,000
10/1売掛金の回収普通預金 300,000売掛金 300,000
10/510月の経費(複合)地代家賃 60,000/水道光熱費 12,000/通信費 8,000普通預金 50,000/未払金 30,000
10/20現金売上現金 120,000売上高 120,000
10/31減価償却減価償却費 3,333備品 3,333

結果は次のとおりです。月次試算表は、9月と10月の2か月分、15科目×4列(前月繰越・当月借方・当月貸方・月末残高)のすべてが手計算と一致しました。10月の主な科目は次のとおりで、画面の貸借一致の表示も正しく出ました。

科目(10月)前月繰越当月借方当月貸方月末残高
普通預金650,000300,00050,000900,000
備品200,00003,333196,667
未払金0030,00030,000
売上高300,0000120,000420,000
地代家賃060,000060,000
減価償却費03,33303,333
合計(当月発生高)-503,333503,333-

損益計算書と貸借対照表(10月までの累計)も一致しました。収益420,000円、費用313,333円、当期純利益106,667円。資産1,216,667円に対し、負債110,000円+元入金1,000,000円+当期純利益106,667円=1,216,667円で、貸借が合いました。

  • 入力の検証:借方と貸方が不一致、金額が0・負数・小数、片側が空欄、日付なしのときは、登録ボタンが押せず、差額が表示された
  • 仕訳帳:日付順に並び、複合仕訳は複数行にまとまって表示される。削除は確認ダイアログが出て、キャンセルすると残り、承諾すると消えて試算表が再計算される
  • 科目の追加:追加した科目で仕訳を登録でき、試算表に反映された。同じ名前と空の名前は拒否
  • 保存:ページを再読み込みしても、仕訳と追加した科目が残った
  • 全データ消去:確認でキャンセルすると何も消えず、承諾すると仕訳が空になり、追加した科目も初期状態に戻った
経理アプリの月次試算表。貸借一致の表示と、科目ごとの前月繰越・当月借方・当月貸方・月末残高が並ぶ
月次試算表(2026年10月)。上に貸借一致の表示が出る
経理アプリの損益計算書(左)と貸借対照表(右)
損益計算書(左)と貸借対照表(右)

問題は1つでした。幅375pxのスマホ表示で、仕訳入力の借方・貸方の枠が、外側のカードの右端から約24pxはみ出し、ページ全体が横に7pxスクロールしました。そこで、この現象を数値つきで伝え、直してもらいました。

スマホ幅375pxで確認したところ、「仕訳入力」タブの借方・貸方の枠(.side-box)がカード(.card)の右端から約24pxはみ出し、ページ全体が横に7pxスクロールします。375px幅でも枠が収まるように直してください。変更するCSSやHTMLの箇所だけを示してください(全コードは不要です)。

25秒以内に返ってきた回答は、原因を「CSS Gridの子要素の最小幅が既定でautoのため、プルダウン内の長い科目名や数値入力欄の既定幅で列が親を突き破って広がる」と説明し、CSSの変更箇所だけを示していました。差分を適用して再確認すると、幅375pxでページの幅と内容の幅がどちらも375pxになり、はみ出しはなくなりました。修正後に、上と同じ9件の仕訳で10月の試算表を照合し直しても、一致しました。

スマホ幅の仕訳入力画面。左は修正前で借方・貸方の枠が右にはみ出し、右は修正後で枠が収まっている
修正前(左)と、Argonの差分を適用した後(右)

小さな点では、日付が空のときの表示が「差額: 0 円(未入力・不正な行あり)」となり、日付の入力漏れが理由だと伝わりにくいことがありました。また、期首の繰越や決算の締め、消費税の扱いは指示に含めていないため、このアプリにはありません。検証用の簡易なもので、そのまま実務の帳簿には使えません。

お題4:バグ入りコードの発見と修正

4つ目は、新規作成ではなく、既存コードの不具合を見つけて直す依頼です。4つの関数に、こちらで6か所のバグを仕込み、仕様を文章で添えました。指示は、次の文章に続けて、下のコードをそのまま貼ったものです。

次のJavaScriptの関数に、仕様と違う動作をするバグがあります。すべて見つけて、バグごとに「どこが、なぜ間違いか」を一行で説明し、修正後のコード全体をコードブロック1つで出力してください。

仕様:
- calcInvoice(items, taxRate): itemsは{price, qty}の配列。小計はprice×qtyの合計。消費税は小計×taxRateの円未満を切り捨てた整数。totalは小計+消費税。itemsが空配列ならすべて0。
- paginate(list, page, perPage): pageは1始まり。page=1なら先頭perPage件。範囲外のページは空配列。
- daysUntil(dateStr): dateStrは'YYYY-MM-DD'。今日(ローカルタイムゾーンの日付)からその日付までの残り日数。当日は0、明日は1、昨日は-1。現在時刻やタイムゾーンによって結果がずれないこと。
- uniqueByKey(list, key): listはオブジェクトの配列。keyの値が重複する要素は最初の1つだけ残し、元の順序を保つ。
function calcInvoice(items, taxRate = 0.1) {
  let subtotal = 0;
  for (let i = 0; i <= items.length; i++) {
    subtotal += items[i].price * items[i].qty;
  }
  const tax = Math.round(subtotal * taxRate * 100) / 100;
  return { subtotal, tax, total: subtotal + tax };
}

function paginate(list, page, perPage) {
  const start = page * perPage;
  return list.slice(start, start + perPage);
}

function daysUntil(dateStr) {
  const target = new Date(dateStr);
  const diff = target - new Date();
  return Math.floor(diff / (1000 * 60 * 60 * 24));
}

function uniqueByKey(list, key) {
  const seen = {};
  return list.filter(item => {
    if (seen[item[key]]) return false;
    seen[item[key]] = true;
    return true;
  }).sort((a, b) => a[key] > b[key] ? 1 : -1);
}

約20秒で返ってきた回答は、バグを7項目に整理し、修正後のコードを示していました。仕込んだ6か所はすべて指摘されていました。

仕込んだバグArgonの指摘
ループの条件がi <= items.lengthで、配列の外を読む指摘。空配列でも必ずエラーになると説明
消費税をMath.roundで、小数第2位までの四捨五入にしている指摘。円未満の切り捨てなのでMath.floorが正しいと説明
ページが1始まりなのにpage * perPageで開始位置を出している指摘。(page - 1) * perPageが正しい。page が0以下のときの扱いも補足
new Date('YYYY-MM-DD')がUTCの0時として解釈される指摘。ローカルの日付として扱うべきと説明
現在時刻との差をそのまま日数にしていて、実行時刻で1日ずれる指摘。夏時間で1日が24時間にならない地域の誤差も補足
重複を除いたあとにsortしていて、元の順序が崩れる指摘。sortを削除

さらに、仕込んでいない点として、重複の判定に普通のオブジェクトを使うと、toStringのような名前と衝突することや、1と'1'が同じ扱いになることを挙げ、Setに置き換えていました。

修正後のコードは、そのまま動かして確認しました。

  • calcInvoice:空配列と複数明細の例に加え、小計1〜200,000円×税率8%と10%の全パターンで、整数計算で求めた値と一致(食い違い0件)
  • paginate:1〜4ページ目(最後は端数、範囲外は空)、page 0、負のページ、perPage 0、空のリスト
  • daysUntil:東京、UTC、ロサンゼルス、ニューヨーク、オークランド、キリティマティの6つのタイムゾーンで、時刻(0時0分、23時59分59秒など)、米国の夏時間の切り替え日、うるう年の前後を含む90パターンずつ、計540回。すべて期待どおり
  • uniqueByKey:最初の要素が残り、順序が保たれる。空のリスト、toStringなどの名前のキーも正しい

検証してわかったこと、わからないこと

今回の4つの指示では、どれも1回目の出力が要件を満たす形で動きました。見つかった問題は、コンソールエラー1件、スマホ幅でのはみ出し1件、表示のわかりにくさ1件、スマホでの表の横スクロール1件と、いずれも小さなものでした。はみ出しは、状況を数値で伝える1回の指示で直りました。

確認していて特徴的だったのは、数字の整合性です。経理アプリは、複合仕訳を含む9件の仕訳の試算表・損益計算書・貸借対照表がすべて手計算と一致しました。バグ修正も、6か所の指摘にとどまらず、動かして確認した範囲で修正が正しいものでした。

一方で、細部の見落としは残りました。幅375pxの境界、SVGの属性の書き方、エラー表示の文言といった、実際に画面を開いて試さないと気づきにくい点です。出力をそのまま公開するのではなく、表示とコンソールを自分で確認する工程は必要だと感じました。

この検証でわからないことは次のとおりです。

  • 4つの題材だけで、同じ指示を複数回試していない。出力のばらつきは測っていない
  • 他のモデルとの比較はしていない。「ほかより良い」とは言えない
  • Geminiアプリで使ったため、トークン数や実際の課金額は計測していない。APIで使う場合の料金は、公式の単価(導入価格が入力$2・出力$10、導入期間後は$4・$20)を確認する必要がある
  • セキュリティ、長期の保守のしやすさ、大きなコードベースでの動きは評価していない
  • 経理アプリは検証用の簡易版で、期首繰越・決算・消費税などは範囲外

提供状況は、公式ブログの記述と、筆者の環境で使えたことが食い違って見えます。使えるかどうかは、アカウントや時期によって異なる可能性があります。利用前に、公式の最新の案内を確認してください。

参考リンク

まずは、やりたいことを聞かせてください

「何から手をつければいいか分からない」段階でも大丈夫です。 ご相談・お見積りは無料。碧南近郊なら直接伺います。