ADK + Toolbox を使ってデータマネジメントを効率化するAIエージェントを作ってみた
はじめに
この記事では、Google製のAIエージェント開発フレームワークであるADK(Agent Development Kit)と、データベース操作のためのツールセットであるMCP Toolbox for Databaseを連携させ、データマネジメントを効率化するAIエージェントを開発した事例についてご紹介します。
データマネジメントの重要性は多くの方が認識されていると思いますが、その運用には多くの課題が伴います。本記事が、AIエージェントを活用してそれらの課題を解決するための一助となれば幸いです。
開発の背景
近年、AIエージェントはデータ分析の分野で活躍を見せていますが、その一方で、データ活用の基盤となる「データマネジメント」への応用はあまり進んでいないように感じています。
データマネジメントとは、データの登録、更新、蓄積、活用、そして最終的な破棄といったライフサイクル全体を適切に管理し、データの価値を最大化するための活動です。しかし、このライフサイクルを回し続けるには、多くの課題が伴います。
- 登録: 意図したルール通りにデータが入力されない。
- 更新: 一度入力されたデータが古くなり、最新の状態に保たれない。
- 蓄積: データが決められた場所に保存されず、サイロ化してしまう。
- 破棄: 不要になったデータが削除されず、ストレージを圧迫し続ける。
これらのルールやオペレーションを人手で徹底するには多大なコストがかかります。そこで、「これらの煩雑な作業をAIエージェントに任せることで、もっと簡単に、そして低コストに実現できるのではないか?」と考えたのが、今回の開発の出発点です。
アーキテクチャと使用技術
今回開発したエージェントは、Google製の「ADK(Agent Development Kit)」と「MCP Toolbox for Database」という2つの主要な技術を組み合わせて構築しました。
ADK (Agent Development Kit)
ADKは、AIエージェントの開発と展開を支援する柔軟なフレームワークです。GoogleのGeminiモデルに最適化されていますが、特定のモデルやデプロイ環境に縛られることなく、複雑なワークフローを持つエージェントを効率的に構築できる点が魅力だと感じています。
ADKの大きな特徴は、わずかなコードでエージェントを開発できる点です。以下のサンプルコードのように、基本的なエージェントであれば、本当に少ない行数で記述できてしまいます。

ごくシンプルなADKエージェントのサンプルコード
MCP Toolbox for Database
MCP Toolbox for Databaseは、MySQL, PostgreSQL, BigQuery, Lookerといった様々なデータベースやサービスと連携するためのツールセットです。あらかじめ定義されたツール(pre-built tools)と自作のツールを組み合わせて、データベース操作を簡単に行うためのMCP(Model-Centric Platform)サーバーを構築できます。
ツールの定義は、以下のようにYAMLファイルに記述するだけで完了します。SQLを直接記述できるため、エージェントの誤動作(ハルシネーション)を防ぎ、意図通りのデータベース操作を確実に行わせることが可能です。

YAMLによるツール定義の例
ADKとToolboxの連携
今回は、これら2つを連携させることで、自然言語によるデータマネジメントエージェントを開発しました。アーキテクチャは以下の通りです。
- Toolbox: データマスタの登録・更新・削除・参照といったライフサイクルを管理するためのSQLをツールとして定義し、MCPサーバーとしてホスティングします。
- ADK: ToolboxのMCPサーバーをクライアントとして利用するエージェントを開発します。このエージェントが、ユーザーからの自然言語の指示を解釈し、対応するToolboxのツールを実行するという仕組みです。
ユーザーとのインターフェースには、adk web コマンドで簡単に起動できるWeb UIを利用しました。これにより、開発したエージェントを即座に利用可能な状態にできるため、プロトタイピングが非常に捗りました。

ADKとMCPの連携イメージ
デモ:AIエージェントによる企業マスタメンテナンス
ここで、今回開発したAIエージェントが実際にどのように動作するのかをご紹介します。
題材として、多くの企業で課題となる「企業マスタのメンテナンス」を取り上げました。
まずは現状の企業リストを表示します。エージェントに「企業リストを見せて」とお願いするだけで、現在のマスタの内容を返してくれます。

次に、このマスタに対して、以下のような一般的なメンテナンス作業をエージェントに依頼してみます。
1. 新しい企業の登録
「ファインディ株式会社を登録して」のように、自然言語で企業名や情報を伝えるだけで、エージェントがマスタに新しいレコードを追加してくれます。
ADKにはToolboxだけでなくプリビルドされている「Google Search」のツールも搭載しているためウェブ上から登録に必要な住所や法人番号を調べて埋めてくれます。

2. 情報の更新
例えば「移転や社名変更により住所や名称を変更する」という運用が生じた際にもGoogle Searchによって正しい名称・住所を調べることもできますし、定期的に見直すことをエージェントにお願いすることも可能です。
3. 重複レコードの削除
意図せず重複して登録されてしまったレコードも、エージェントが検知して削除します。
「重複レコードを削除して」と依頼すると、以下のように処理を実行してくれました。

4. 所在地による営業リストの抽出
「"五反田"に本社がある企業のリストをください」といった具体的な条件で、マスタからデータを抽出することも可能です。これにより、営業リスト作成などの業務を効率化できると期待しています。

このように、これまで人手や複雑なツールを介して行っていたデータマネジメント作業を、自然言語で対話するだけで簡単に実行できるようになります。
本稿で紹介したエージェントのソースコードは、以下のGitHubリポジトリで公開しています。スターをいただけると大変励みになります!
開発で工夫した点と今後の改善点
今回の開発で、特に工夫したと感じている点と、今後の改善点をまとめました。
工夫した点
- SQLの事前定義による安全性確保: データベースを操作するSQLをあらかじめYAMLに記述しておくことで、エージェントが意図しない動作をするリスクを低減できたのは大きなポイントでした。
-
迅速なプロトタイピング: ADKと
adk webコマンドのおかげで、WebのUIを持つエージェントを非常に高速に開発することができました。 - クライアントの自由度: ToolboxはMCPサーバーとして独立しているため、ADK以外のクライアントからも利用可能です。これにより、将来的な拡張性も確保できたと思います。
- 運用負荷の軽減: 自然言語で操作できるため、非エンジニアの方でも簡単にデータマネジメントが可能になり、運用負荷を大幅に削減できると期待しています。
改善点
現状、ツールを実行する際に都度ユーザーの承認を求める機能がありません。ADK v1.14.0で導入されたTool Confirmationのような、Human-in-the-Loopの仕組みを導入することで、より安全な運用が可能になると考えています。この点は今後のアップデートで対応したいです。
おわりに
本記事では、ADKとMCP Toolbox for Databaseを組み合わせることで、データマネジメントを効率化するAIエージェントを迅速に開発できることをご紹介しました。
価値あるデータを蓄積し続けるためには、データマネジメントの継続的な運用が不可欠です。しかし、その運用コストは決して小さくありません。
今回紹介したようなAIエージェントのアプローチは、そのコストを大幅に削減し、データマネジメントをより身近なものにする可能性を秘めていると思います。この記事が、皆さんのデータマネジメント業務のヒントになれば幸いです。
Discussion