Skip to content

5. Fable 5 との比較

比較対象は Qiita 記事「Fable 5 による Katamari ゲーム開発」に記録された fable-katamari.pages.dev の実装記録。同じ「ブラウザ動作する 3D 塊魂風ゲーム」ブリーフの別モデル実装であり、マルチモデル能力ベンチマークの兄弟エントリにあたる。

前提: 規模が大きく違う比較であること

Fable 5 版は 5 バージョン(無限スケール → 月エンディング → 東京箱庭 → OpenStreetMap 実データ 14,563 棟 → エンディング強化)を積み上げた累計 約 148 エージェント・約 1,816 万トークン・17 時間超 のプロジェクト。Sonnet 5 版は 単一バージョン・22 エージェント・ワークフロー約 94.6 万トークン・約 71 分。総量比較は約 19 倍差があり、そのまま並べるのはフェアではない。

最も条件が近いのは Fable 5 の v1(初版、48 エージェント・約 377 万トークン・約 134 分)と Sonnet 5 のプロジェクト全体 の比較で、それでもトークンで約 4 倍、時間で約 2 倍の差がある。以下ではこの正規化を基本にしつつ、総量の数字も併記する。

定量比較

項目Sonnet 5(本セッション)Fable 5 v1Fable 5 累計(v1–v5)
エージェント数2248約 148
トークン約 94.6 万(ワークフロー分)約 377 万約 1,816 万
所要時間約 71 分約 134 分17 時間超
レビュー体制4 次元 + 敵対的検証(16 体)4 次元検証 + 敵対検証(36 体)同左を版ごとに実施
レビュー指摘の確定数12 / 12(棄却 0)21 確定 / 偽陽性 9 棄却(棄却率 36%)、16 修正
ヘッドレステストなし(フレームシミュレーション 10 万+ が代替)あり約 3,000 アサート(v4 OSM 検証 2,376 件)
実機ブラウザ検証claude-in-chrome + 本番検証ありagent-browser 25 パス、スクリーンショット 27 枚
精度検証の深さ三乗成長モデルの理論カーブ一致確認KeyR リスケールで 1 ulp(1.7×10⁻¹⁶) 精度確認
コード規模TS 1,469 行、554KB(gzip 141KB)28 モジュール、585.73KB(gzip 154.31KB)+ OSM 地図バイナリ 284KB gz
スコープ手続き生成ワールド 4km²、0.15m→300m無限スケール土台実在東京 14,563 棟 + スカイツリー 634m

テスト戦略の違い: 観測駆動 vs アサート駆動

両者の最も本質的な違いは量ではなくテスト資産の形にある。

Sonnet 5 = 観測駆動。本物の毎フレーム更新関数を dev 専用フックで 10 万フレーム以上駆動し、統計オーバーレイ(描画コール数、maxChunkParts 等)を観測して合否を判断する。検証のために観測メトリクス自体を新設する動きもあった。実プレイヤーと同一コードパスを通る点が強みだが、再実行可能な回帰テストスイートは残らない(ハーネスは dev ビルド限定のフックのみ)。

Fable 5 = アサート駆動 + 実機。約 3,000 件のヘッドレスアサートは仕様を機械検証可能な形で固定し、v2→v5 と版を重ねるたびに回帰を防ぐ資産として機能した。さらに批評エージェントが Overpass API を自律的に叩いて OSM 建物数の設計見積もりを検算し、1.5 倍のズレを発見するなど、コードの外の事実に対する検証まで踏み込んでいる。

この差は各セッションの性質と整合する: 単発 71 分のデモには観測駆動が速く、5 バージョン 17 時間の継続開発にはアサート資産が効く。ただし「どちらのモデルもその判断ができた」ことの証明にはならない点は留意が必要。

レビュー精度の違い: 12/12 と棄却率 36% をどう読むか

一見すると Sonnet 5 の「偽陽性 0」が優秀に見えるが、これは precision / recall のトレードオフの両端と読むべき。

  • Sonnet 5(precision 型): 発見側が確度の高い 12 件だけを報告し、全件が検証を通過。無駄な修正コストはゼロだが、指摘の絶対数は小さく、広い網を張った場合に何件見つかったかは不明
  • Fable 5(recall 型): 発見側が約 30 件の広い網を張り、敵対検証で 9 件(36%)を構造的にふるい落とした。「フレーム 1 の大量吸収」のような一見もっともらしい指摘が反証で棄却された実例があり、検証段階が機能している証拠が棄却率として残っている

Sonnet 5 側で検証段階が機能した証拠は棄却ではなく別の形で残った──検証中に既存修正の二次バグを新規発見したこと。どちらのセッションでも「発見を独立に疑う」構造そのものが価値を出しており、これは記事の主張「敵対的検証の有効性」を別モデルで再現した結果と言える。

見つけた不具合の質の比較

不具合のクラスSonnet 5Fable 5
上限到達後の無限成長(頭打ち条件が二度と真にならない)✅ 埋没間引きが最大半径で破綻 → チャンク肥大(検証段階で発見)
リソースライフサイクル✅ GPU リソース全リーク(three.js ソースまで遡って確認)
数値・物理の実測ズレ—(理論カーブ一致確認まで)✅ 終端速度キャップ不達(ACCEL_K=22、実機で発見)、1 ulp 精度検証
設計見積もりの検算✅ OSM 建物数 1.5 倍ズレ(外部 API 検算で発見)
状態リセット漏れ✅ リスタートでカメラ/HUD 未リセット✅ v3 ランドマークがティア帯外で不可視
人間プレイでのみ発見—(該当フェーズなし)✅ 開幕不可視バグ(JR 総武線高架が視界を塞ぐ。自動検証 0 エラーで通過、実機プレイで初発見)

両者とも「もっともらしく動くが境界条件で破綻する」クラスのバグを自動で捕まえられている。Fable 5 の優位はコードの外(実測値・外部データ・人間の目)に検証を広げた点で、これは投下規模と多バージョン運用が可能にした幅でもある。

共有される盲点: 最後は人間が遊ぶ

Qiita 記事の結論の一つ「総武線高架バグは自動検証を 0 エラーで通過し、実機プレイで初めて見つかった──人間検証は代替不可」は、Sonnet 5 セッションにもそのまま当てはまる。本セッションのテストはすべて自動(シミュレーション + 自動化ブラウザ)で、人間プレイフェーズは記録されていない。リポジトリに後日 playdemo.mov が置かれていることから、実プレイは事後に行われたと見られる。「自動検証の網羅性はプレイフィールの検証を含まない」という限界は、モデルに依らず共通している。

コスト効率の粗い見積もり

厳密な比較は不可能(検出難度も検証深度も違う)だが、オーダー感として:

  • Sonnet 5: 確定 14 件 / ワークフロー 94.6 万トークン ≒ 6.8 万トークン/件
  • Fable 5 v1: 確定 21 件 / レビューフェーズ 255.3 万トークン ≒ 12.2 万トークン/件(ただし偽陽性 9 件の棄却コスト=回帰防止の保険料を含む)

Fable 5 の単価には「広い網 + ふるい落とし」の保険料が乗っており、単価の差は性能差というよりも戦略の違いの反映と読むのが妥当。

本サイトは Claude (Fable 5) がセッションログ・devlog・Qiita 記事を突き合わせて作成した分析ドキュメントです。