AgenticSqlAgent — Agentic AIで学ぶSQLエージェントの実装例
概要
AgenticSqlAgentは、シンプルなSalesデータベースに対して自然言語の質問を受け、LangChainベースのSQLエージェントが適切なSQLを生成して実行、結果を解釈して返す一連の流れを示すサンプルプロジェクトです。フロントエンドはReact、バックエンドはFastAPI、データはSQLiteで構成され、学習目的でのプロンプト設計やエージェント的意思決定(どのツールを使うか、どのクエリを実行するか)を分かりやすく学べます。Dockerで立ち上げ可能なため、ローカルで動作確認をしながら実装を追うことができます。
リポジトリの統計情報
- スター数: 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を参考に環境変数をセットして起動します。
使い方の概略
- リポジトリをクローンし、ENV_TEMPLATEをコピーして必要な環境変数(APIキーや設定)を設定。
- docker-compose upでフロント/バックエンドを起動(ローカル環境でも個別に実行可能)。
- ブラウザからUIにアクセスして自然言語で質問を入力。バックエンドがLangChainでSQLを作成・実行し、結果を返す。
READMEには詳細な手順とブログ記事へのリンク(https://open.substack.com/pub/dataengineeringcentral/p/building-agentic-ai-fancy)が示されており、実装の背景や設計意図を追いやすくなっています。
拡張・応用例
- PostgreSQLやMySQLに置き換えて本番相当のデータベース接続を検証
- 高度なプロンプト設計やチェーンの分割で複雑な分析クエリに対応
- クエリ実行前後の安全チェック(ホワイトリスト、クエリリパーサ)を導入
- 認証・権限管理を追加して複数ユーザー対応のサービス化
まとめ
教育用途に最適な、Agentic AIでSQL操作を学ぶためのシンプルで実践的なサンプル集。
リポジトリ情報:
- 名前: AgenticSqlAgent
- 説明: Showing how easy Agentic AI is made.
- スター数: 4
- 言語: Python
- URL: https://github.com/danielbeach/AgenticSqlAgent
- オーナー: danielbeach
- アバター: https://avatars.githubusercontent.com/u/34192225?v=4
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…