AIオーケストレーションをブラウザに実装する理由
本記事では、ArcGIS Maps SDK for JavaScript v5.0のAIコンポーネントのアーキテクチャを解説し、オーケストレーションをサーバーからブラウザに移行した理由を説明します。ブラウザにはすでに豊富なランタイムコンテキスト(マップ状態、ユーザー操作)が存在し、ブラウザネイティブのオーケストレーションにより、AIアシスタントがマップと直接対話でき、バックエンドへの依存を減らせます。ベクトル検索でコンテキストを最適化し、ハイブリッドアーキテクチャでブラウザオーケストレーションとサーバーホストモデルを組み合わせます。
現在、ほとんどのAIアシスタントはサーバー側で動作しています。ユーザーがWebアプリケーションを操作すると、リクエストがバックエンドに送信され、バックエンドがオーケストレーション、エージェント、ツール、アプリケーションロジック、LLMとの対話を処理します。しかし、ArcGIS Maps SDK for JavaScriptで構築されたWebマッピングアプリケーションは異なります。これらのアプリケーションはブラウザ側で高度にリッチなクライアントであり、現在のマップ範囲、表示/非表示レイヤー、レンダラーと凡例、選択フィーチャとポップアップ、ユーザー操作、アプリケーション状態とビジネスロジックなど、大量のランタイムコンテキストをブラウザが既に保持しています。さらに、SDKはクエリ、ジオメトリ処理、GPU加速WebGLレンダリングなどの豊富なクライアントサイドAPIとワークフローを提供します。
Web GISアプリケーション向けのAIアシスタントの構築にあたり、開発チームは単純な疑問を抱きました。「マップ、状態、コンテキストがすでにブラウザにあるのに、なぜすべてをサーバーに移動してAIを実行する必要があるのか?」そこで、ブラウザ内でAIオーケストレーションとエージェントを直接実行し、マップと共存させる新しいアプローチを模索しました。
このアーキテクチャは、ブラウザネイティブのオーケストレーション、ブラウザ実行エージェントとツール、ライブマップ状態との直接対話、ハイブリッドブラウザ/サーバーAIワークフローを中心に構築されています。これにより、追加のバックエンドオーケストレーションサービスの必要性を減らしながら、AIアシスタントをWebマッピングアプリケーションに統合できます。
「テキサス州のナーシングホームを表示」というリクエストを例に考えます。リクエストはブラウザ側のオーケストレーターで処理され、利用可能なエージェントとその能力に基づいてデータ探索エージェントが選択されます。LLMにコンテキストを送信する前に、アプリケーションはブラウザ内でベクトル検索を実行し、リクエストに最も関連するレイヤーとフィールドを特定します。これにより、モデルに送信するコンテキスト量を絞り込みます。選択されたエージェントは適切なクエリを生成し、マップを更新し、該当フィーチャをハイライト表示し、結果をユーザーに要約します。オーケストレーションがブラウザのランタイムコンテキストの近くで実行されるため、エージェントは重いバックエンド層なしにライブマップ状態と直接対話できます。
ベクトル検索は、ブラウザネイティブオーケストレーションを実用的にする鍵です。埋め込みはセマンティック類似性比較を可能にするベクトル表現です。ArcGIS Webマップには多くのレイヤーが含まれ、各レイヤーには多くのフィールドがあります。これらすべてのメタデータを毎回LLMに送信するのは非効率であり、モデルが誤ったコンテキストを使用する可能性が高まります。代わりに、ブラウザ内で埋め込みとベクトル検索を使用して、ユーザーのリクエストに最も関連するレイヤーとフィールドを特定します。これにより、プロンプトを小さく、焦点を絞り、実際のマップに基づいたものに保ちます。
ブラウザネイティブオーケストレーションは、すべてをブラウザで実行することを意味するわけではありません。ブラウザはアプリケーションコンテキスト、オーケストレーション、エージェント、マップインタラクションを担当しますが、アーキテクチャはサーバーホストモデル、エンタープライズAPI、長時間実行AIタスクを引き続き利用できます。大規模バッチ処理、長時間ワークフロー、プロプライエタリなプロンプトなどの機密性の高いオーケストレーションロジックは、サーバー側実行に適している場合があります。
ArcGIS Maps SDK for JavaScriptで構築するWeb開発者にとって、このアーキテクチャはAIワークフローの多くをマップがすでに動作している同じブラウザランタイムに保持します。個別のワークフローごとに別のバックエンドオーケストレーションサービスを作成する代わりに、開発者はアプリケーションと直接対話するエージェントとツールを登録できます。オーケストレーション、エージェント、ツール、マップインタラクションがブラウザネイティブであるため、AI支援マップアプリケーションはCodePenのような環境でもプロトタイピング可能です。
ブラウザネイティブオーケストレーションは、マップ、アプリケーション状態、ユーザーコンテキストがすでにブラウザにあるWeb GISに特に有用です。このパターンはGISに限定されず、複雑な状態、ドメイン固有ツール、インタラクティブワークフローを持つリッチブラウザアプリケーションにも恩恵をもたらす可能性があります。将来はハイブリッド型になると予想されます。ブラウザ側オーケストレーションとサーバーホストモデル、エンタープライズAPI、長時間実行AIタスクが連携する形です。