ANTIGRAVITY LABEN
記事一覧/Agents & Manager
Agents & Manager/2026-05-07上級

AIエージェントのリプレイ設計 — 過去のセッションを再現する時間旅行デバッグの作法

本番のAIエージェントで一度きり起きた不具合を、開発機で完全に再現する。Antigravity の Manager Surface とイベントログを組み合わせた、決定論的リプレイ・因果リプレイ・監査リプレイの3層設計を、TypeScript の実装コードで解説します。

agents90replaydebugging12observability17advanced19premium15

プレミアム記事

数ヶ月前、ある自社プロダクトに組み込んだエージェントが、深夜に一度だけ妙な振る舞いをしました。本来は呼び出すべきでないツールを連続で呼び、最終的に空のレスポンスを返して止まったのです。ログには結果しか残っておらず、再実行しても再現しません。手元に残されたのは、結果の文字列と、首をかしげる自分だけでした。

このときに痛感したのは、AIエージェントの不具合は「コードのバグ」というよりも、ある瞬間の入力・モデル応答・ツール状態が偶然そろったときにだけ立ち上がる「現象」に近い、ということでした。スタックトレースは助けてくれません。再現できなければ、直すことすらできません。

ここでは私自身が本番運用のなかで少しずつ整理してきた「リプレイ設計」、つまり過去のセッションを開発機で再生するための3層モデルと、それを Antigravity の Manager Surface 上で実装するときのコード例を、迷う人がもう迷わなくて済むように書き残しておきます。

なぜAIエージェントは「再現性」を失いやすいのか

通常のWebアプリケーションでは、入力と現在のDB状態が同じなら、出力もほぼ同じになります。トランザクションの分離レベルや時刻関数のように非決定的な要素はありますが、限定的です。再現できないバグはレアケースです。

エージェントはそうではありません。同じプロンプトでも、モデルの確率的サンプリング、ツール呼び出しの順序、外部APIのレイテンシ、その時の天気のような外部状態 — これらが組み合わさって、出力が毎回少しずつ違います。私はこれを「再現可能性のない上に成り立っている動的システム」と呼んでいます。

temperature: 0 にすれば決定論的になる、という説明をよく見ますが、現実はもう少し複雑です。同じ温度でも、ツール呼び出しの結果が違えば次の応答も変わります。マルチエージェントだと、エージェント間の通信順序がスケジューラの都合で揺らぎます。完全な決定論を諦めて、「どこまで再現すれば十分か」を設計判断として線引きすること。これがリプレイ設計の出発点です。

リプレイ設計の3層モデル

私が運用のなかで辿り着いた整理が、リプレイを「イベント層」「状態層」「決定層」の3層に分けて考えることでした。それぞれが何を再現するためのものか、はっきり区別すると設計が一気に楽になります。

  • イベント層(Event Layer): ユーザー入力・ツール呼び出し・モデル応答など、エージェントが受け取った/発した出来事の生ログ。SQLでいうWALに近い役割で、これがあれば後段は再構築できる
  • 状態層(State Layer): ある時点でのエージェントの内部状態(メモリ、コンテキストウィンドウ、ツール接続状態など)のスナップショット。イベントを順に再生して同じ状態に到達できることを検証する基準点
  • 決定層(Decision Layer): 「なぜそのツールを呼んだのか」「なぜそのプロンプトを生成したのか」というモデルの判断根拠。LLMの内部処理は覗けないので、判断の入力(プロンプト全文・ツールスキーマ・温度・seed)と出力(生成テキスト・logprobs)をそのままペアで保存する

この3層を分離すると、デバッグ時に「どの層を再生すれば不具合が再現するか」を順に切り分けられます。イベント層だけで再現できるならそれは決定論的なバグ、決定層を再生しないと出ないならモデルの確率的挙動が原因 — というように、原因の所在が手早く絞り込めます。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
本番でしか再現しない『一度きりの不具合』を、開発機で再生して原因を突き止められるようになる
イベント・状態・決定の3層を分けて記録するリプレイ基盤を、TypeScript で動かしながら自分のプロダクトに組み込める
個人開発者が今日から始められる最小構成と、本番でスケールしたときに必要になる設計判断を、両方の地点から迷わずに選べる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Agents & Manager2026-05-27
Antigravity Agent の Record & Replay — 失敗を3分で再現する本番運用パターン
Antigravity の自律エージェントが本番で失敗した瞬間を、後からオフラインで決定的に再生する Record & Replay の設計と実装。Dolice Labs 4 サイトを並行運用してきた経験から、ストレージ設計・PII マスク・ハーネスのコードまで具体的に解説します。
Agents & Manager2026-03-14
マルチエージェント・オーケストレーション実践ガイド — 設計パターンから実装まで
複数のAIエージェントを協調動作させるオーケストレーション手法を解説。ルーティング、パイプライン、競合解決の設計パターンと実装コードを紹介します。
Agents & Manager2026-05-29
Antigravity 長時間実行エージェントの監視設計 — watchdog と段階的リカバリ
AdMob 収益最適化を 8 週間バックグラウンドエージェントに任せて見えた、長時間タスクが静かに停止する 3 つの故障モード。watchdog タイマーと段階的リカバリの実装メモを残します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →