ニュース

GeoSQL: LLMを地理空間分析エージェントに変える

GeoSQLは、Claude、Codex、Copilot向けのオープンソーススキルで、データサイエンティストがPostGIS、BigQuery、Snowflake、Wherobots上で地理空間SQLを実行し、マップ・イン・ザ・ループフィードバックシステムを利用できるようにします。

July 8, 2026· 1 min read· 出典: GitHub
GeoSQL: LLMを地理空間分析エージェントに変える

GeoSQLは、Claude、Codex、GitHub CopilotなどのAIコーディングアシスタントを地理空間分析エージェントに変える新しいオープンソーススキルです。PostGIS、BigQuery、Snowflake、Wherobotsで動作し、完全にローカルまたはセルフホストで実行され、SaaSアカウントは不要です。

クイックスタート

pipでインストールし、インタラクティブモードを起動:

pip install geosql && geosql

または、サポートされているエージェントに直接インストール:

geosql install claude\ngeosql install codex\ngeosql install copilot

Claude Codeの場合は、プラグインマーケットプレイスを使用:

/plugin marketplace add dekart-xyz/geosql\n/plugin install geosql

インストール後、次のようなプロンプトを使用できます:

/geosql 主要道路沿いのEV充電器密度を表示し、地図をレンダリング

仕組み

GeoSQLは、地図を含むエージェントループを実行します。プロセスは5つの段階で構成されています:

  1. ディスカバリー。 スキルは、スキーマを推測する代わりに、ウェアハウスのメタデータ(テーブル、カラム、型)を探索します。BigQueryとSnowflake上のOverture Mapsシェア、およびサポートされているデータベース上のプライベートテーブルで動作します。
  2. SQL生成。 エージェントは、エンジンに適した関数(ST_INTERSECTSST_DISTANCE、H3、パーティションプルーニング用のbboxオーバーラップなど)を使用して空間SQLを記述します。
  3. コストチェック。 BigQueryでは、すべてのクエリが最初にドライランされ、スキャンされるバイト数を見積もります。デフォルトで10 GiBの課金上限が適用されます。予算超過のクエリは、実行される代わりに、より安価に書き換えられます(より狭いbbox、より低いH3解像度、より多くのフィルター)。
  4. ジオメトリ検証。 エージェントは、正気度チェックとして総面積(ポリゴン)または総長さ(ライン)を計算し、ドメイン知識と照合します。
  5. マップフィードバック。 利用可能な場合、エージェントはDekartを通じて結果をレンダリングし、レンダリングされた画像を確認し、テキストのみのループでは見逃されるジオメトリの誤りを修正します。これが4倍の改善をもたらすループです。

このスキルは、ローカルのCLI認証(bqsnowdekart)を使用するため、ウェアハウスの認証情報がエージェントに送られることはありません。

ベンチマーク

GeoSQLには、evals/の下に再現可能な評価スイートが付属しています。各ケースは、「エージェントが回答したか」だけでなく、特定の動作(コストガードレール、検証ステップ、正しい結果)をアサートします。含まれているスイートの現在の結果:3ケースで8アサーション、100%合格率。平均:1ターンあたり3,085トークン、1ターンあたり72秒。

4倍の改善チャートは、マップ・イン・ループステップの有無で同じタスクセットを比較しています。マップがない場合、エージェントのテキストのみの検証では、ジオメトリクラスのエラー(近隣ポリゴンを大都市圏の境界線と誤認、重複するフィーチャーの二重カウント、座標参照系で誤った結合キーを選択)を見逃します。レンダリングされたマップをツールコールとして追加することで、エージェントはこれらの間違いを認識し、自己修正できます。

プロンプト例

不動産分析:

/geosql オタワで学校へのアクセスが低い建物を表示し、地図としてレンダリング

サイト選定:

/geosql シアトルで、POIの共在と最寄りの競合他社までの距離に基づいて、スポーツ用品店のトップ10の場所を見つける。地図を作成する。

EV充電インフラ:

/geosql ルーマニアの主要道路沿いのEV充電器密度の地図を作成し、各高速道路、幹線道路、または主要道路セグメントから5 km以内に何台の充電ステーションがあるかを強調表示する。