5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ADK入門:Vertex AI RAG Engineを用いたAIエージェントの構築チュートリアル

5
Last updated at Posted at 2025-12-21

はじめに

この記事は ADK Advent Calendar 2025 21日目の記事です。

最近、AIエージェントの話題を至る所で耳にするようになりました。普段Webのバックエンドをメインに書いている私は、なんとなく難しそうだなという印象を抱いていましたが、ADK(Agent Development Kit)を触ってみたところ、驚くほど簡単にAIエージェントを作成することができ、非常に感動しました。

ADKは、AIエージェントの開発経験がない初学者の方にもおすすめできるフレームワークだと感じています。

本記事では、ADKを触ったことがない方に向けて、簡単なRAG接続を行うAIエージェントの作成手順を紹介します。

ADKとは

ADK(Agent Development Kit)は、AIエージェントを構築するためのフレームワークです。

Googleが提供するVertex AI、もしくはGoogle AI Studioのモデルをオンラインで利用することができ、これらを活用したエージェント開発を効率的に行うことが可能です。

Vertex AI RAG Engine

Vertex AI RAG Engineは、RAG(検索拡張生成)の仕組みを構築できるサービスです。 Google CloudのVertex AIが提供する機能の一つで、対象となるドキュメントをアップロードすることで、比較的容易にRAGを構成できます。 一連の作成工程がコンソール(UI)上の操作だけで完結する点も、大きなメリットです。

作ってみる

というわけで作成していきましょう。
今回はVertex AI RAG Engineに構築したRAGを参照して質問に回答するという、シンプルなAIエージェントを作成してみようと思います。

1. RAGの構築

まずはRAGの構築です。
Vertex AI の RAG EngineのTOPページに、RAG Engineを構成するというリンクがあるので、それをクリックします。

image.png

RAG Engineの構成は二種類あります。

  • スケールティア
  • ベーシックティア

詳しい説明は公式ドキュメントに記載されているのでご参照ください。
今回はデモで使いたいだけなので、安いベーシックティアを利用しようと思います。

image.png

続いて、コーパスを作成しましょう。

構築したい内容のドキュメントをUI上でアップロードすることで、RAGを構築することができます。
今回はGCSにアップロードしていた資料を指定しました。

image.png

詳細オプションでは、RAGの設定を細かく指定することができます。
レイアウトパーサーでは、ファイルをチャンキングするパーサーを指定します。アップロードするファイルの形式にあったパーサーを選択しましょう。
今回はデフォルトの解析ライブラリを選択しました。

image.png

最後に、RAGを保存するベクトルデータベースを選択します。

image.png

以上で作成は完了です。
以下のように表示されれば準備完了になります。
image.png

詳細タブにあるリソース名を後程ADKから指定するので、メモしておきましょう。
image.png

ちなみに、Vertex AI Studioでテストするから、実際にRAGを試すこともできます。

image.png

2. ADKの環境構築

続いて、ADKの環境構築を進めましょう。
まずは、venvを使って仮想環境を立ち上げていきます。
(venvは使ったことなかったですが、python用のdockerみたいなイメージなんですかね?便利)

$ python -m venv .venv

その後、venvを有効化しましょう。

$ .venv\Scripts\Activate

続いて、pipでgoogle-adkをインストールします。

$ pip install google-adk

これで準備OKです。

3. AIエージェント作成

続いて、ADKを用いてRAGを構築するAIエージェントを作成していきましょう。

今回作成するコードの最終的なディレクトリ構成は以下になります。

parent_folder/
    rag_agent/
        __init__.py
        agent.py
        .env

agent.py

agent.py では、AIエージェントの核となるロジックを定義します。

まず、AIエージェントが「知識」として利用するRAGの設定を行います。ここでは VertexAiRagRetrieval クラスを使用し、先ほど作成したRAGリソースの指定や、検索の挙動(similarity_top_k や vector_distance_threshold)を定義します。

次に、メインとなる LlmAgent(root_agent)を定義します。このエージェントの tools に、先ほど作成したRAGツール(ask_vertex_retrieval)を登録することで、AIがユーザーの質問に応じて自律的にドキュメントを参照し、回答を生成できるようになります。

agent.py
import os

from google.adk.agents.llm_agent import LlmAgent
from google.adk.tools.retrieval.vertex_ai_rag_retrieval import VertexAiRagRetrieval
from vertexai.preview import rag

from dotenv import load_dotenv

# .envファイルを環境変数に適用
load_dotenv()

# RAG接続用のツールを作成
ask_vertex_retrieval = VertexAiRagRetrieval(
    name="flow_rag_documentation",
    description=(
        'This is documentation od PHP web Framework Flow'
    ),
    rag_resources=[
        rag.RagResource(
            rag_corpus= os.environ.get("RAG_CORPUS"),
        )
    ],
    similarity_top_k=1,
    vector_distance_threshold=0.6,
)

instruction = """
    あなたはPHPフレームワークFlowに関する質問に答えるエージェントです。
    必要に応じてflow_rag_documentationを見て、質問に答えてください。
"""

# ルートエージェントを定義
# エージェントがRAG接続できるよう、toolsに追加
root_agent = LlmAgent(
    name="flow_rag_agent",
    model=os.environ.get("MODEL"),
    instruction=instruction,
    tools=[ask_vertex_retrieval],
)

__init__.py

__init__.pyを使い、作成するエージェントをモジュール化します。

__init__.py
from . import agent

.env

.envには設定値を書きます。
今回はVertexAIを利用するためGOOGLE_GENAI_USE_VERTEXAI=TRUEにしています。
RAG_CORPUSには先ほど作成したRAG Engineのリソース名を指定します。

.env
GOOGLE_GENAI_USE_VERTEXAI=TRUE
GOOGLE_CLOUD_PROJECT=YOUR_PROJECT_ID
GOOGLE_CLOUD_LOCATION=LOCATION

MODEL=gemini-2.5-flash
RAG_CORPUS=projects/hogehoge/locations/us-central1/ragCorpora/fuga

動作確認

ここまでで問題なければ、動作確認をしてみましょう。
プロジェクトのディレクトリ直下でadk webコマンドを実行すると、ローカルホストでUvicornサーバが立ち上がります。

> adk web
INFO:     Started server process [11888]
INFO:     Waiting for application startup.

+-----------------------------------------------------------------------------+
| ADK Web Server started                                                      |
|                                                                             |
| For local testing, access at http://127.0.0.1:8000.                         |
+-----------------------------------------------------------------------------+

INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

http://127.0.0.1:8000にアクセスすると、動作確認用のUIが立ち上がり、そこで作成したAIエージェントの動作確認ができます。

image.png

画面左側のEventタブでは、AIエージェントのレスポンスの情報を確認することができます。
ここを見ると、グラウンディングに使用した情報を確認でき、ちゃんとRAGに接続して回答を生成していることが確認できました!
image.png

image.png

おわりに

今回はADKを使用し、RAG接続するAIエージェントの作成について解説しました。
ADKに入門するまではpythonを触ったことはありませんでしたが、そんな状態でもサクッと作れて、ADKの便利さとVertex AI RAG Engineのすごさに感動しています。

今回はローカルでしたが、実際に使用する場合はVertex AI Agent EngineやCloudRunなどへのデプロイが必要です。
今回は割愛しましたが、以前こちらの記事でVertex AI Agent Engineへのデプロイ方法を載せたので、併せて是非ご覧ください。

ここまでご覧いただきありがとうございました!

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?