AIの進化は目覚ましく、単なる一問一答形式のチャットボットから、自律的に思考しタスクを遂行する「AIエージェント」へとパラダイムシフトが起きています。

しかし、数分から数時間にわたって推論やツール実行を続けるエージェントが登場したことで、従来のWeb通信の基盤であるHTTPの限界が顕在化し始めました。

本記事では、長時間実行型AIエージェントが直面する通信の壁と、それを打破する新たな概念「Durable Sessions(永続セッション)」について深掘りします。

長時間実行型AIエージェントでHTTPが破綻する理由

従来のHTTP通信は、クライアントからのリクエストに対してサーバーが一度だけ応答を返すという単純な仕組みで成り立っています。

このモデルは、ChatGPTやClaudeのような一瞬で回答が生成されるチャットボットであれば、ストリーミング機能を用いることで十分に対応可能でした。

しかし、AIエージェントが数十回に及ぶツール呼び出しや多段階の推論ステップを踏むようになると、状況は一変します。

ネットワークの瞬断とタイムアウトの恐怖

モバイル環境などでブラウザのタブを切り替えたり、一時的に電波が不安定になったりするだけで、HTTP接続は容易に切断されてしまいます。

一度接続が切れると、エージェントが裏側でどれほど高度な計算を続けていても、その結果をユーザーに届ける術が失われてしまいます。

ユーザーは再読み込みを余儀なくされ、それまでの実行プロセスや進捗状況がすべて消えてしまうという、劣悪なユーザー体験(UX)を招くことになります。

状態管理の複雑化

AIエージェントと人間がリアルタイムで協力して作業を行う場合、双方が常に「最新の状態」を共有している必要があります。

HTTPベースの通信では、エージェントが推論を続けている間にユーザーがブラウザを閉じ、数分後に再び開いた際、その間の進捗を同期する仕組みを開発者がゼロから構築しなければなりません。

このような「状態の再同期(Rehydration)」は、バックエンドのデータベース管理や複雑なポーリング処理を伴うため、実装の難易度を飛躍的に高めてしまいます。

「Durable Sessions(永続セッション)」という革新的アプローチ

これらの課題を解決するために提唱されているのが、Durable Sessions(永続セッション)というインフラ層の新しい概念です。

これは、通信プロトコルのEMQXが提唱し、ElectricSQLなどのプロジェクトが広めた考え方で、AblyがAI向けに最適化して提供を開始しました。

セッションの永続化と自動復旧

Durable Sessionsは、単なるデータの送受信ではなく、クライアントとエージェント間の「状態を維持した接続」を永続化します。

たとえネットワークが数分間途切れたとしても、再接続した瞬間に、切断中に流れたすべてのメッセージや現在の進捗状態が自動的に同期されます。

これにより、開発者は複雑な再接続ロジックやキャッシュ制御を記述する必要がなくなります。

ミュータブル(可変)なメッセージ管理

従来のメッセージングシステム(Pub/Sub)は、一度送ったメッセージは変更できない「イミュータブル」な特性を持っていました。

しかし、AIのトークンストリーミングにおいては、逐次更新されるテキストの断片を効率的に扱う必要があります。

Ablyが導入した「Live Objects」は、共有された状態をミュータブル(可変)に保つことで、クライアントが再接続した際に「最初からすべてのメッセージを再生する」のではなく「最新の完成された状態」を即座に取得できるようにしています。

AI Transport:既存のスタックにシームレスに統合

Ablyが提供する「AI Transport」は、開発者が既存のインフラを大幅に変更することなく、このDurable Sessionsを導入できる仕組みを提供します。

面白いのは、クライアントからエージェントへのリクエストには使い慣れたHTTPをそのまま利用し、エージェントからのレスポンスパスだけを永続セッションに置き換えるという設計です。

Vercel AI SDKとの親和性

現代のフロントエンド開発で主流となっている「Vercel AI SDK」や「TanStack」などのフレームワークには、すでにこのトランスポート層をプラグイン形式で拡張できる仕組みが備わっています。

Ablyのプラグインを導入するだけで、マルチデバイスでのセッション継続や、処理中の割り込み(インターラプション)のサポートが容易に実現します。

実装例:Durable Sessionを用いたエージェント接続

以下は、AI Transportを利用して永続的な接続を確立する際の概念的なコード例です。

TypeScript
import { AblyTransport } from '@ably/ai-transport-sdk';
import { streamText } from 'ai';

// AI Transportの初期化
const transport = new AblyTransport({
  apiKey: 'YOUR_ABLY_API_KEY',
  sessionId: 'user-session-123' // ユーザー固有のセッションID
});

// エージェントの応答を永続セッション経由でストリーム配信
export async function POST(req: Request) {
  const { prompt } = await req.json();

  // HTTPでリクエストを受け、Ably経由で非同期に応答を返す
  return transport.createResponse(
    streamText({
      model: myAIProvider('gpt-4o'),
      prompt: prompt,
      // 途中で接続が切れても、Ablyが状態を保持する
    })
  );
}
実行結果
// クライアント側では、再接続時に自動的に
// 'user-session-123' の最新状態が復元される

HTTP vs Durable Sessions 比較

AIエージェントの運用において、それぞれの通信方式がどのような違いをもたらすかを以下の表にまとめました。

比較項目従来のHTTP (Request/Response)Durable Sessions (AI Transport)
接続維持時間短時間(タイムアウトのリスク大)長時間(数時間〜数日間)
瞬断時の挙動エラーとなりプロセスが中断自動再接続と状態の完全復旧
マルチデバイス同期困難(DB設計が必要)標準機能として同期可能
実装コスト低(初期)/ 高(例外処理)低(SDKで抽象化済み)
主な用途一発回答のチャットボット自律型AIエージェント

まとめ

AIエージェントが、私たちの代わりに数時間に及ぶ複雑なタスクをこなす未来において、従来の「切断を前提としないHTTP通信」は明らかなボトルネックとなっています。

Ablyが推進するDurable Sessionsは、ネットワークの不安定さという物理的な制約から開発者を解放し、人間とAIが真にリアルタイムで共創できる環境を提供します。

開発者はもはや「Pub/Sub」や「再接続ロジック」といったインフラの細部に頭を悩ませる必要はありません。

これからは、「いかに優れたエージェントのロジックを作るか」という本質的な課題に集中できる時代が到来しているのです。