初めに
以前書いたGoogleのAgent Development KitでAIエージェント開発に入門するの続きです。今回はVertex AI RAG Engineに構築したRAGを参照するAIエージェントを作成してみようと思います。
ADKとは
ADKとはAgent Development Kit
の略で、AIエージェントを作成するためのフレームワークです。
このフレームワークはGoogleから提供されており、現在はPythonとJavaの2言語で利用することができます。
LLMはGoogleが提供しているモデルをオンラインで利用することが可能です。
Vertex AI
、もしくはGoogle AI Studio
のモデルを利用することができます。
Vertex AI RAG Engine
Vertex AI RAG EngineとはRAGを構築するGoogleのサービスの一つです。
GCS上にアップロードした資料を取り込み、RAGエンジンとしてデプロイしてくれます。
開発してみる
というわけで開発してみましょう。
今回はこちらのサンプルプロジェクトを参考に構築してみます。
RAGの構築
Vertex AI RAG EngineのUI上から構築可能です。
今回はPHPのWebフレームワークFlowの公式ドキュメントをアップロードしました。
※細かい方法は割愛します。
ADKの実装
以前こちらの記事で初歩的な構築方法をまとめました。
環境などは同じものを利用します。
ディレクトリ構成も同じです。
parent_folder/
multi_tool_agent/
__init__.py
agent.py
.env
修正内容はこちら。
-
agent.py
にRAGを参照するツールを作成 -
.env
にRAGの情報を記載
agent.py
にRAGを参照するツールを作成
VertexAiRagRetrieval
で
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,
)
作成したツールはLlmAgent作成のtoolsに追加しましょう。
root_agent = LlmAgent(
name="flow_rag_agent",
model=os.environ.get("MODEL"),
instruction=instruction,
tools=[ask_vertex_retrieval],
)
実際に作成したagent.pyの全体がこちら
Agents.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
load_dotenv()
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を見て、質問に答えてください。
"""
root_agent = LlmAgent(
name="flow_rag_agent",
model=os.environ.get("MODEL"),
instruction=instruction,
tools=[ask_vertex_retrieval],
)
.env
にRAGの情報を記載
RAG_CORPUS
としてRAGのURLのリソース名を追加しました。
リソース名はVertex AI RAG Engine
のUI上から確認できます。
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
コマンドでAIエージェントを立ち上げます。
$ adk web
INFO: Started server process [24864]
INFO: Waiting for application startup.
+-----------------------------------------------------------------------------+
| ADK Web Server started |
| |
| For local testing, access at http://localhost:8000. |
+-----------------------------------------------------------------------------+
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Flowについて質問してみると、ちゃんと答えが返ってきました!
終わりに
今回はADKでVertex AI RAG Engineを参照する方法を解説しました。
本当はVertex AI Agent Engineへデプロイしるところまでやりたかったのですが、デプロイしたエージェントからRAGが呼び出せず詰まってしまったので、それはまた今度にします。
ここまでご覧いただきありがとうございました!