鶴田研究所 Tsuruta Laboratory

調査ノート 2026-09-16

権威サーバー型の状態同期をAIエージェントとWebへ転用する設計の、8,100試行による比較

共有予算を変更する8,100試行で、重複実行・状態破綻・体感待ち時間を比較する

要旨

『THE FINALS』で公開説明されている「サーバーを正しい世界の所有者にし、クライアントは薄く予測する」設計を、AIエージェントのツール実行とWebアプリの共有状態へ転用できるか検討した。8クライアントが有限の共有予算を変更する合成シミュレーションを8,100回実行した結果、権威サーバーとidempotency keyを使う2方式では予算超過と二重実行が0になった。さらに楽観表示を組み合わせた方式は、代表条件で画面の初動を0msにしながら訂正率を0.283%に抑えた。

方法8クライアントが共有予算500に対して各20件、消費量1〜5の操作意図を送る離散事象シミュレーションを作成した。往復遅延20・80・200ms、再送率0・2・10%、3方式、各条件300回を比較し、合計8,100試行を記録した。合成データのみを使い、外部サービスやユーザーデータは変更していない。
結果往復80ms・再送率10%では、クライアント側だけで状態を持つ比較方式に平均29.253単位の予算超過と15.817件の二重実行が生じた。サーバー確定を待つ方式と、サーバーを正本にして先行表示する方式はいずれも予算超過0、二重実行0だった。待つ方式の体感待ち時間は82.583ms、先行表示方式は0msで、後から表示を訂正した割合は0.283%だった。
知見転用できるのは物理演算そのものではなく、状態の所有権を一か所へ集め、クライアントから結果ではなく操作意図を送り、手元の予測を確定結果へ合わせる構造である。AIではTool Gateway、WebではAPIとDBを正本にし、再送にはidempotency key、画面にはoptimistic UIを使う構成が対応する。
限界今回の結果は合成した共有予算モデルに限られ、実ネットワーク、実LLM、実サービスの性能を測ったものではない。訂正率は資源量、要求分布、競合率で変わる。画面の初動0msは先行表示の時刻であり、サーバー確定が0msという意味ではない。Event Sourcingや権威サーバーの運用・監視・schema移行コストも別途評価が必要である。
THE FINALS型設計のAIとWebへの転用 クライアントの操作意図を中央の権威サーバーで確定し、結果をAIエージェントとWeb画面へ返す構成図。 共有状態の正解を中央に置き、手元は薄く予測する THE FINALS 入力を送る 移動・破壊を先に表示 prediction wrapper AIエージェント tool intent・pending表示 計画は予測、tool結果が確定 Webアプリ command・optimistic UI API応答で確定または巻き戻し 権威サーバー 現在状態とversion 権限・入力検証 idempotency key rate limit 確定結果・event log 一つの正しい世界 事前準備 schema・権限 状態遷移・cache 確定結果 tool result state patch・event intent reconcile
THE FINALSの公開説明から抽出した設計原理と、AIエージェント・Webアプリへの対応関係。端末は操作意図を送り、正しい状態は中央で確定し、手元の先行表示をあとから一致させる。
共有予算シミュレーションの代表結果 往復80ミリ秒、再送率10パーセント、300試行における三方式の予算超過、二重実行、画面初動、訂正率の比較。 往復80ms・再送率10%・各300試行の平均 8クライアント × 20操作、共有予算500、全体では8,100試行 予算超過 二重実行 画面の初動 訂正率 クライアント正本 共有検証なし 29.253 15.817 0ms 0% 誤りを検出しない サーバー待機 確定後に表示 0 0 82.583ms 0% サーバー正本 +先行表示 0 0 0ms 0.283% 0msは先行表示の時刻。サーバーの確定時間が0msという意味ではない。
往復80ms・再送率10%における300試行の平均。楽観表示は初動を待たせず、サーバー検証と重複排除によって共有状態を保った。

調査の問い

『THE FINALS』では、移動や環境破壊など試合結果に関わる世界状態をサーバー側で進め、クライアントは入力を送り、薄い予測で通信待ちを隠すと開発者が説明している。この構造を、複数のAIエージェントが同じ予算・ファイル・タスクを操作する環境や、予約・在庫・共同編集を扱うWebアプリへ移せるかを調べた。

転用する対象は物理エンジンではない。共有状態の正解を一か所に置き、端末やAIからは「変更後の状態」ではなく「変更したい意図」を送り、手元の予測を確定結果へ合わせる設計である。

三つの対応関係

THE FINALSAIエージェントWebアプリ
サーバー上の正しい世界Tool Gatewayが持つ業務状態APIとDBが持つ正しい状態
プレイヤー入力tool intentユーザーのcommand
薄い移動予測実行予定・pending表示optimistic UI
サーバーとの照合tool結果で計画と画面を訂正API応答で確定または巻き戻し
事前に壊し方を準備schema・権限・状態遷移を事前定義validation・cache・materialized view
物体状態の配信event stream・tool resultWebSocket・SSE・state patch

共有予算モデルで実験した

8クライアントが共有予算500を使うツール呼び出しを各20件送るモデルを作った。1件の消費量は1〜5、往復遅延は20・80・200ms、同じ操作を再送する割合は0・2・10%とした。3方式を各条件300回ずつ実行し、合計8,100試行をCSVへ保存した。

  • クライアント正本:各クライアントの状態をそのまま実行し、共有側で残額や重複を検証しない比較用モデル。
  • サーバー待機:サーバーが残額とidempotency keyを検証し、返答後に画面を変える。
  • サーバー正本+先行表示:検証はサーバーで行うが、画面は先に反応し、拒否されたときだけ訂正する。

代表条件の結果

往復80ms・再送率10%の300試行では次の平均になった。

方式予算超過二重実行画面の初動訂正率
クライアント正本29.253単位15.817件0ms0%(検出しない)
サーバー待機0082.583ms0%
サーバー正本+先行表示000ms0.283%

往復200ms・再送率10%でも、サーバーを正本にした2方式の予算超過と二重実行は0だった。待機方式の初動は202.406ms、先行表示方式は0msで、訂正率は0.302%だった。つまり、このモデルでは共有状態の正しさをサーバーで守りながら、先行表示によって待つ感覚を減らせた。

AIへ移すならTool Gatewayを正本にする

LLMがDBや外部APIの状態を直接決めるのではなく、intent ID、実行主体、期待するversion、tool名、schemaに沿った引数をTool Gatewayへ送る。Gatewayは権限、現在状態、idempotency key、rate limitを検証し、受理した操作を記録する。エージェントの文章や内部計画は予測であり、実世界の確定状態にはしない。

先行できるのは「実行中」「この変更を予定」「残り予算は推定何件」といった表示である。メール送信、購入、削除、権限変更などの副作用はGatewayの確定結果を基準にし、再送されても同じintent IDを一度だけ実行する。MCPの仕様も、server側での入力検証、アクセス制御、rate limit、出力の無害化を求め、client側には敏感な操作の確認を推奨している。

Webへ移すならoptimistic UIとAPI検証を組み合わせる

ReactのuseOptimisticは、サーバー処理中に一時的な状態を表示し、実際の更新結果へ合わせる仕組みを提供する。コメント、タスク、予約、在庫、共同編集などで、ボタンを押した瞬間の反応を作れる。ただし残数、権限、重複、versionの最終判定はAPIとDBで行い、画面側の値だけを信用しない。

操作履歴そのものを正本にするEvent Sourcingは、監査や状態再構築が重要な領域に向く。一方、Microsoftの解説も実装、eventual consistency、schema変更、移行の複雑さを挙げている。通常のCRUDで十分な機能まで全面的に置き換えるのではなく、競合と監査が重要な境界へ限定して試すのが現実的である。

この結果の限界

これは離散事象シミュレーションであり、『THE FINALS』のサーバー、実ネットワーク、実LLM、実サービスを測定したものではない。クライアント正本方式は共有検証を持たない単純な比較モデルである。訂正率は要求量と資源の余裕、競合率で変わる。また、画面の初動0msは先行表示を意味し、サーバー処理が0msで完了する意味ではない。

再現用ZIPにはシミュレーター、検算コード、集計JSON、全8,100行の試行CSVを収録した。外部サービスとユーザーデータは使わず、作業用フォルダーの合成データだけで実験している。

資料