Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

ペアーズにおけるAIエージェント 基盤とText to SQLツールの紹介

ペアーズにおけるAIエージェント 基盤とText to SQLツールの紹介

2025.12.20 JAWS-UG AI Builders DAY

Avatar for Hikaru Sasamoto

Hikaru Sasamoto

December 20, 2025
Tweet

More Decks by Hikaru Sasamoto

Other Decks in Technology

Transcript

  1. About Me Nari | Takashi Narikawa(@fukubaka0825) • 株式会社エウレカ ◦ 2020年に⼊社

    ▪ SRE Team -> AI Team ssmt | Hikaru Sasamoto(@hisamouna34) • 株式会社エウレカ ◦ 2022年に⼊社 ▪ SRE & Data Platform Team
  2. 1. AIエージェントおよびLLMOps基盤の設計と運⽤体制について紹介 2. 具体的な活⽤事例として社内向けText to SQLツールを紹介 a. 背景 / 課題

    b. Text to SQL Workflow の紹介 c. AWS サービスを使うことで実現できたこと d. 品質を継続的に評価‧改善する仕組み e. Text to SQL によるチーム別課題への貢献 f. 今後の展望 3. まとめ Agenda
  3. ペアーズでのLLM基盤② 内製MCP Server Tools • MCPは、アプリケーションがLLMにコンテキストを提供する⽅法を標準化する オープンプロトコルです。 • ペアーズでは、プロダクトのバックエンドでメインで採⽤しているGo⾔語を中 ⼼に、内製のMCP

    Server Toolsを作ってCursor/Claude Code/Codex CLI/Gemini CLI経由で使ったりAI Agentから使⽤している ◦ 弊社は主要AI Coding Toolがほぼ全て⾃由に選択可能な状態 (※1) (※1) https://docs.anthropic.com/ja/docs/agents-and-tools/mcp Claude Code
  4. [背景] 分析業務におけるチームの⽴ち回り • PDM Team ◦ プロダクトの計画‧結果確認のためにデータ分析をしたい ◦ これまでは⾃らで SQL

    を作成して実⾏することは少なかった • BI Team ◦ 分析依頼を受けて BigQuery にクエリを実⾏し、結果を依頼者へ共有 • SRE & Data Platform: 分析基盤の運⽤を担当 • このようにチームが分かれて分析を⾏っていたがいくつかの課題があった
  5. データ活⽤におけるチーム別の課題 チーム 課題 説明 PDM → BI リードタイムが長い 分析依頼が集中し、結果を得るまで時間がかかる BI

    分析の属人化 得意分野が異なり、担当外分析で時間を要した 全体 ナレッジ共有の不足 ドキュメントが少なく、暗黙知に依存していた
  6. • 質問⽂と⽣成 SQL をドメインエキスパート (BI チーム)に確認したところ実 務で使える品質ではなかった • 1. 分析テーブルの特定

    の問題点 ◦ テーブル・カラムの名前やDescriptionだけでは対象テーブルの特定ができない ケースがあった • 2. コンテキスト取得 の問題点 ◦ スキーマ情報だけでは判断できない、ドメイン知識を要するケースが多かった • 浮かんだ疑問 ◦ 「普段 BI チームはどうやって対象のテーブルを推定し、必要なコンテ キストを取得‧把握しているのか?」 期待に添えるアウトプットを⽣成できなかった
  7. Step: 分析対象テーブルを決める ① ワークスペース選択 - ワークスペースとは、事業ドメインやデータ利用目的ご とに分かれた分析領域 (例: ログイン、決済) -

    ユーザーの質問文から、LLM が最も関連度が高い ワークスペースを選定し、クエリ生成の候補となるテー ブルを選択する ② テーブル検索 - ①で選択できなかった場合、DataCatalog のデータを セマンティック検索できるように Knowledge Bases に 保存しているテーブル情報データから質問文に関連し ていそうなテーブルを選択 テーブル・カラム名だけでは対象テーブ ルの特定ができないケースがあった へ の対策 // ワークスペース定義例 // 内容を全てプロンプトに含めて // LLMで適切な対象テーブルを選択 const WORKSPACE_DEFINITIONS = { Login: { description: 'User login activity related queries', tables: { 'login_a': ['keyward_a', 'keyward_b'], 'login_b': ['keyward_a', 'keyward_c'], }, }, …
  8. Step: 対象テーブル関連の情報を取得 ③ DDL 取得 - 選択されたテーブルのスキーマ情報を BigQuery API経由で取得 ④

    サンプル SQL 取得 - GitHub上の再利用可能なSQL(定期分析・BI用など)をKnowledge Base化 - 質問文と意味的に近い SQLを検索して取得 ⑤ Doc取得 - コード規約や各テーブルのドキュメントを取得 スキーマ情報だけでは判断できな い、ドメイン知識を要するケースが多 かった への対策
  9. Step: SQL ⽣成の⾃動化と⾃⼰修正 ⑥ SQL 生成 - 取得したコンテキストをもとに SQL を生成

    ⑦ 検証 - BigQuery API で生成 SQL を dry-run して、構文チェック ⑧ 自己修正 - dry-run 失敗時は、エラーログをコンテキストに詰めて再度 SQL 生成を行う
  10. • Lambda, Bedrock, S3, IAM などを組み合わせて、インフラからLLMまで AWS上で完結できる • LambdaからBedrock呼び出しまでIAMロールで⼀元管理できるため、 APIキー不要

    • Amazon Bedrock Knowledge Bases を使うことで簡単にセマンティッ ク検索可能に AWS を使うことで実現できたこと
  11. • オフライン評価 ◦ PR をイベントに実⾏される評価バッチ on Github Actions ◦ テストインプットデータで⽣成されたアウトプット

    SQL を正解 SQL と⽐較する ◦ 評価プロンプトが両⽅のクエリを⾒て採点 ◦ 評価プロンプトの精度チェック⽤にもテストデータを⽤意 • オンライン評価 ◦ クエリ⽣成後に Slack Chat 上で質問者に採点するボタンを提⽰ ◦ Langfuse からトレースデータをエクスポートして分析 ▪ 利⽤数/⽇、利⽤ユニークユーザ数/⽇ 品質を継続的に評価‧改善する仕組み
  12. Text to SQL によるチーム別課題への貢献 チーム 課題 Text to SQL 導入による貢献

    PDM → BI リードタイムが長い PDM 自身が SQL を生成し 自走して分析できるようになった BI 分析の属人化 特定の分析者に依存せず必要な分析用 SQL を自分たちで生成できるようになった 全体 ナレッジ共有の不足 ドキュメント整備が Text to SQL の精度・パフォーマンス向上につ ながることでドキュメントを整備する動機が高まった
  13. • テーブルメタデータの拡充 ◦ 出⼒精度をさらに⾼めたい ◦ データ量が膨⼤なため、まずは頻出ユースケースに絞って対応する • Slack Chat 以外のインターフェース提供

    ◦ エンジニア向けにローカル実⾏環境を整備し、⾼速なやり取りを可能にする • 複数ラリーでの応答改善 ◦ 1回⽬の⽣成結果が不⼗分な場合、修正点を提⽰して再⽣成できるようにする • AI Agent 化 ◦ ケースに応じた柔軟なタスク実⾏を⾏い、精度を向上させる 今後の展望