AgenticSqlAgent — Agentic AIで学ぶSQLエージェントの実装例

AI/ML

概要

AgenticSqlAgentは、シンプルなSalesデータベースに対して自然言語の質問を受け、LangChainベースのSQLエージェントが適切なSQLを生成して実行、結果を解釈して返す一連の流れを示すサンプルプロジェクトです。フロントエンドはReact、バックエンドはFastAPI、データはSQLiteで構成され、学習目的でのプロンプト設計やエージェント的意思決定(どのツールを使うか、どのクエリを実行するか)を分かりやすく学べます。Dockerで立ち上げ可能なため、ローカルで動作確認をしながら実装を追うことができます。

GitHub

リポジトリの統計情報

  • スター数: 4
  • フォーク数: 2
  • ウォッチャー数: 4
  • コミット数: 2
  • ファイル数: 10
  • メインの言語: Python

主な特徴

  • LangChainを用いたSQLエージェント実装(自然言語→SQL→実行→解釈のフロー)
  • Reactフロントエンド + FastAPIバックエンドによるサンプルアプリ構成
  • SQLiteを使った軽量なサンプルデータセット(販売データ)で即試用可能
  • Docker-composeでの立ち上げサポート、教育目的に特化した簡潔なコード

技術的なポイント

このプロジェクトの中心は「Agentic AI」概念の実践です。LangChainのエージェントフレームワークを使い、自然言語の質問を受けて適切なツール(ここではSQL実行環境)を選び、SQL文を生成してSQLiteに投げ、得られた結果を元に最終回答を生成します。設計上はプロンプトテンプレートとツールの組合せにより、エージェントがどのように一連のアクションを計画・実行するかを可視化できます。

バックエンドはFastAPIでAPIエンドポイントを提供し、LangChainのチェーン/エージェントロジックを呼び出します。フロントエンドはReactでユーザー入力を受け取り、結果表示を行います。ローカル実行用にdocker-compose.ymlが用意され、バックエンド、フロントエンド、SQLiteコンテナや必要なサービスを一括起動可能です。

注意点として、自然言語→SQLの自動生成はSQLインジェクションや不適切なクエリ生成のリスクを伴うため、安全策(最小権限のDBユーザー、クエリ検査、ホワイトリスト化など)が必要です。また、教育用の簡易実装であるため、スケールや複雑クエリ対応、トランザクション制御、ログ管理などは実運用前に拡張が必要です。環境変数によるAPIキー管理やENV_TEMPLATEによる設定ガイドが提供されており、実験→拡張の流れを取りやすい構成になっています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • ENV_TEMPLATE: file
  • README.md: file
  • backend: dir
  • data: dir
  • docker-compose.yml: file
  • frontend: dir(Reactアプリ)
  • requirements.txt: file
  • Dockerfile: file
  • scripts: dir(起動/初期化用)
  • .gitignore: file

…他 5 ファイル

プロジェクトはフロントエンド(React)とバックエンド(FastAPI)を分離し、バックエンド側でLangChainを動かす構成が基本です。dataディレクトリにサンプルのSQLite DBやCSVが置かれており、backend内部でこれを参照してSQL実行を行います。ENV_TEMPLATEを参考に環境変数をセットして起動します。

使い方の概略

  1. リポジトリをクローンし、ENV_TEMPLATEをコピーして必要な環境変数(APIキーや設定)を設定。
  2. docker-compose upでフロント/バックエンドを起動(ローカル環境でも個別に実行可能)。
  3. ブラウザからUIにアクセスして自然言語で質問を入力。バックエンドがLangChainでSQLを作成・実行し、結果を返す。

READMEには詳細な手順とブログ記事へのリンク(https://open.substack.com/pub/dataengineeringcentral/p/building-agentic-ai-fancy)が示されており、実装の背景や設計意図を追いやすくなっています。

拡張・応用例

  • PostgreSQLやMySQLに置き換えて本番相当のデータベース接続を検証
  • 高度なプロンプト設計やチェーンの分割で複雑な分析クエリに対応
  • クエリ実行前後の安全チェック(ホワイトリスト、クエリリパーサ)を導入
  • 認証・権限管理を追加して複数ユーザー対応のサービス化

まとめ

教育用途に最適な、Agentic AIでSQL操作を学ぶためのシンプルで実践的なサンプル集。

リポジトリ情報:

READMEの抜粋:

SQL Agent - Agentic AI Example

A comprehensive example application demonstrating Agentic AI concepts using LangChain, React, FastAPI, and SQLite. This project teaches how to build an intelligent SQL agent that can answer natural language questions about a sales database.

Full blog post here -> https://open.substack.com/pub/dataengineeringcentral/p/building-agentic-ai-fancy

Features

  • 🤖 LangChain SQL Agent: Uses LangChain to create an intelligent agent that translates natural langua…