AIエージェントによるデータ分析|「SQL Bot」の実践例(Linkedin)
どういうAIエージェント?
自然言語をSQLに変換し、社員が自然言語で質問すると自動的にSQLクエリを生成・修正できるエージェント。
LangChain, LangGraphがベースとなっている。
このアカウントでは、AIエージェントの事例や実装方法を整理していますので、興味がある方はXもフォローいただけると役立ちます。
概要
テック企業において、ビジネス部門がデータチームに「このデータが欲しい」「このクエリを書いてほしい」と依頼する状況はよくある話です。
しかし、データ専門家が単純なクエリ作成やテーブル探しに時間を取られると、戦略的な分析や高度な知見の創出へリソースを割けなくなってしまいます。
そんな課題を解決すべく、LinkedInでは社内のデータサイエンスプラットフォーム「DARWIN」にAIを統合した「SQL Bot」を開発し、社員が自然言語で質問すると自動的にSQLクエリを生成・修正できる仕組みを実装しました。ここでは、AIを活用したText-to-SQLの事例として、LinkedInがどのように大規模データウェアハウスから適切なテーブルを見つけ、クエリ生成まで行う仕組みを構築したかをご紹介します。
1. SQL Botの概要と導入背景
自然言語からのクエリ生成
社員が「昨日のCTRの平均は?」などと自然言語で聞くと、SQL Botが該当テーブルを探し出し、適切なSQLクエリを自動作成。AI×検索の組み合わせ
LangChainやLangGraphといったフレームワークを土台に、複数のエージェントを駆使してユーザー質問をSQLに変換。大規模データウェアハウスへの対応
LinkedInの内部には数百万ものテーブルが存在。その膨大なデータから、正しい情報を持つテーブルを探し当てる必要がある。
もともと多くのテック企業では、データ活用のボトルネックとして「必要なテーブルが見つからない」「SQLが書けない」という非効率が存在しました。LinkedInは、これをAIによるText-to-SQLで解消し、データ分析の民主化を進めています。
2. 実現の鍵:高品質なメタデータとパーソナライズ検索
(1) テーブルメタデータの充実
データセット認定(Certification)
ドメイン専門家が重要テーブルを特定し、必須の説明文や項目の意味を明確化。AI生成の注釈を追加
既存ドキュメントやSlackの議論などから補足説明を作成し、検索精度を向上。メタデータ管理の自動化
LinkedIn内で頻繁に利用され、かつ新たに人気が出たテーブルを自動で検知・登録し、逆に非推奨となったテーブルは除外。
(2) 組織構造を用いたパーソナライズ
「CTR」と言っても、部署によって意味合いが異なる(メール通知のCTR、広告のCTR、検索UIのCTRなど)。
ユーザーの所属部署やグループの利用実績を元に、初期候補のテーブルを絞り込む。
エンベディング検索(EBR)に加えて、ユーザー×テーブルのアクセス履歴を独自の手法で解析し、検索結果に優先度を付与。
こうした工夫により、大量のテーブルの中からユーザーが本当に欲しいデータに最短でたどり着ける仕組みを構築しています。
3. LLMを活用したランキング・クエリ作成・自己修正
(1) ナレッジグラフとLLMの組み合わせ
テーブル選定
エンベディング検索(EBR)でトップ20ほどのテーブルをまず抽出し、その後LLMによる再ランキングをかけて最終的に7テーブル程度に絞る。フィールド選定
テーブルに含まれるカラム(フィールド)の説明や人気度などもLLMで評価・ランク付け。
さらに、成功したクエリログや内部Wikiのサンプルコードなどを取り込み、クエリ生成の精度を上げています。
(2) 段階的なクエリ作成と自己修正
計画(Plan)→実行(Generate)→検証(Validate)→修正(Self-correction) のステップを繰り返す。
テーブル・カラムが見つからない場合は、LLMが新たにテーブルを探すなどの追加アクションを実行。
EXPLAINステートメントを使ったシンタックスエラー検出など、実データを触る前にクエリを検証して自動修正。
4. UX設計:DARWINへの統合とガイド付きチャット
(1) 「Fix with AI」で気軽にリカバリー
失敗したクエリがあると、DARWINの画面に「Fix with AI」ボタンを表示。
これを押すだけでSQL Botがエラーを解析し、修正版のクエリを返す。
80%ものセッションがこの「Fix with AI」機能経由で利用されており、開発コストの割にリターンが大きい。
(2) ガイド付きフローとリッチUI
ステップごとの確認
「テーブル選択→フィールド選択→クエリ生成」とユーザーと対話しながら段階的に進められる。リッチなテーブル表示
テーブルが「認定済み」か「人気度が高い」かなどのタグが表示され、DataHubへのリンクもある。アクセス権限のチェック
実行前にユーザーの所属グループを確認し、クエリがアクセス拒否されるのを防止。
5. 自律的なカスタマイズを可能にする機能
SQL Botの性能向上や業務特化に対応するため、ユーザー自身が以下の3つのレバーで調整できるようにしています。
データセットのカスタマイズ
メールグループやユーザーIDを指定し、「この製品領域ではこれらのテーブルを主に使う」と定義。カスタム指示文
ユーザーがSQL Botに追加で教えたい知識や、動作のルールをテキストで指定。サンプルクエリの登録
「認定」マークを付けたノートブックをアップロードし、学習用のサンプルとして再利用。
6. ベンチマークと改善サイクル
(1) 専用ベンチマークの構築
約130の代表的な質問に対し、正解となるテーブル・フィールドを複数パターン用意。
テーブル・フィールドのリコール率やハルシネーション率、クエリ実行の正確性などを計測。
SQL Botが複数の有効解を生む可能性を考慮し、定期的に専門家が回答セットを更新。
(2) LLM評価の活用
人手評価だけでなく、LLMに回答をチェックさせる仕組み(LLM-as-a-judge)も導入。
LLMと人間の評価を突き合わせることで、新たな正解パターンの発見や改善ポイントの明確化を行う。
7. 今後の展望と学び
更なる高速化・体験向上
レスポンス時間の短縮や、ユーザーが文中でクエリを直接修正できる仕組みなどを検討中。文脈を可視化する機能
「SQL Botがどういうテーブル情報を使ってクエリを作成したのか」をユーザーが把握しやすくする。継続的なドメイン知識のアップデート
製品領域ごとの“チャンピオン”を設定し、テーブルの登録・更新を定期的に行う。
LinkedInの事例からわかるのは、単純にText-to-SQLを導入するだけではなく、メタデータの整備・パーソナライズ・UI/UXの工夫などが不可欠という点です。特に「Fix with AI」という小さな機能が大きなROIを生んだ事例は、導入初期の「痛点」を見極めてAIを組み込むことの重要性を示しています。
まとめ
LinkedInが開発した「SQL Bot」は、大量のテーブルが存在する複雑なエンタープライズ環境でも自然言語からのクエリ生成を実現し、社員が自分の力でデータにアクセスできる体験を提供しています。その裏には、
高品質なメタデータとパーソナライズされた検索
LangChain/LangGraphを活用した複数エージェント構成
ガイド付きUXや「Fix with AI」に代表される利便性の追求
ベンチマーク・LLM評価を併用した継続的な改善
といった仕組みがあることが大きなポイントです。
「テーブルが見つからない」「SQLが難しい」というハードルをAIが取り払い、ビジネス成果に直結するスピード感あるデータ分析を実現している本事例は、企業のデータ活用や社内DXの一つのモデルケースといえるでしょう。
このアカウントでは、AIエージェントの事例や実装方法を整理していますので、興味がある方はXもフォローいただけると役立ちます。