Documentación del TFG: Interconexión entre Espacios de Datos e Inteligencia Artificial Generativa について
LLMエージェントを連携させ、ローカルのDuckDBとApache Icebergのデータレイクを照会する研究用の概念実証です。MCPによるデータアクセスとJAR-A2Aメッセージングを組み合わせ、エージェントの検出や配信確認に対応します。
主な機能
- 01自然言語の質問からSQLを生成
- 02DuckDBとApache Icebergの照会
- 03エージェントの動的登録と検出
- 04メッセージ確認と再送
- 05構造化されたA2Aエージェント通信
活用シーン
- 01自然言語による売上データの照会
- 02分散エージェントの連携と配信状況の追跡
MCP 対応
MCPサーバーはデータベースのブローカー兼アクセスゲートウェイとして機能し、エージェントにコンテキスト付きのサービスを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
JAR-A2A:MCP および A2A プロトコルによる主権型マルチエージェント通信
このリポジトリには、言語モデル(LLM)をベースとしたマルチエージェント通信システムの実装が含まれています。これは、JAR-A2A(Any-to-Any)プロトコルの概念実証として構築されたものです。このシステムは、近年の文献に着想を得た2つのプロトコル、MCP(Model Context Protocol)とA2Aを統合し、将来的に主権型アイデンティティフレームワークや連合型データスペースと統合できるよう、モジュール式に設計されています。
🔍 プロジェクトの目的
この取り組みは、以下の交差領域に焦点を当てた研究プロジェクトの一環です。
- 分散型インテリジェントエージェント間の通信
- 連合環境(Data Spaces)におけるデータへの主権的アクセス
- Google A2AやGaia-X Trust Frameworkなどの新興標準
主な目的は、相互運用性、トレーサビリティ、アイデンティティ制御の原則に対応した、自律型エージェント間のメッセージングのためのオープンで拡張可能なアーキテクチャを提供することです。
🧱 システム構造
システムは、次の3つの主要なマイクロサービスで構成されています。
- LLM Agent:自然言語の質問から SQL クエリを生成します。
- MCP Server:ブローカー、レジストラー、データベースへのアクセスゲートウェイとして機能します。
- Ventas Agent:SQL クエリを実行し、構造化された結果を返します。
-
- 🧪 DuckDB + Apache Iceberg:
iceberg_space.ventasテーブルを含むローカルのレイクハウスを使用しています。このテーブルには次の列があります。 fecha(DATE)producto(TEXT)cantidad(INTEGER)precio(DOUBLE)
- 🧪 DuckDB + Apache Iceberg:
すべてのサービスは、JAR-A2Aプロトコルを使用して通信します。このプロトコルは、Google が定義したエンベロープモデルを拡張し、非同期制御、再送信、セマンティックディスカバリー、サービスの論理的な分離の仕組みを備えています。
🧪 実装済みの機能
- エージェントの動的な登録と、機能に基づくディスカバリー
- 配信確認(ACK)と、障害発生時の再送信
- 可用性監視のための定期的なハートビート
correlation_idによるメッセージの相関付け- MCP プロトコルによるコンテキストに応じたサービスの公開
- ローカル LLM を使用した自然言語からの SQL 自動生成
- 構造化された JSON メッセージによるエージェント間の A2A 通信
⚙️ 使用技術
- Python 3.11
- FastAPI
- Docker & Docker Compose
- DuckDB
- Apache Iceberg
- TinyLlama(ローカル LLM モデル)
- JWT(将来的な連合型セキュリティ統合に向けて検討)
🚀 ローカルでのデプロイ
このプロジェクトは Docker Compose を使用してローカルにデプロイします。
docker compose build
docker compose up
プロジェクトのドキュメント作成時に実施した通信フローのテストを再現するには、cli.py スクリプトを使用できます。
python scripts/cli.py "Introduzca-consulta-al-LLM"
ポート 8000、8002、8003 が空いていることを確認してください。クエリインターフェースはポート 8003 の /query エンドポイントで公開されています。
セキュリティに関する考慮事項
このシステムにはデフォルトで暗号化の仕組みは含まれていませんが、将来的に以下を導入できるよう設計されています。
-
メッセージ署名(JWT + RS256)
-
分散型アイデンティティ(DID + Verifiable Credentials)
-
認可ポリシーの検証とトレーサビリティ
このアプローチの実装に関する調査については、securityブランチをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。