8月2日、Arjun Prabhulaが「Building a RAG Agent with Google ADK, Antigravity SDK, Agent Skills, A2UI, and Gemini Enterprise…」と題した記事を公開した。Google ADK・Antigravity SDK・Agent Skills・A2UI・GEAPを組み合わせてサーバーレスなエンタープライズRAGエージェントを構築する手順を詳解した内容で、ベクターDBのプロビジョニングやスケーリングをマネージドサービスに委譲しつつ、AIコーディングアシスタントへの1プロンプトでアプリ全体を自律生成するアプローチが注目に値する。
RAGシステムの構築において、ベクターデータベースの調達・スケーリング・セキュリティ管理は依然として大きな運用負荷となっている。GoogleはこれまでもVertex AI Vector SearchやVertex AI RAG Engineといったマネージドサービスを提供してきたが、本記事で紹介されるGEAPのServerless RAG Engineはさらに一段抽象化が進んでおり、インフラ操作をほぼ意識せずにRAGパイプラインを立ち上げられる点が特徴だ。
ベクターDB管理の抽象化——GEAP Serverless RAG Engineが核心
RAGシステム構築で最も運用コストがかかるのが、ベクターデータベースの調達・スケーリング・セキュリティ管理だ。本記事で紹介されるアーキテクチャでは、この負荷をGemini Enterprise Agent Platform(GEAP)のServerless RAG Engineがマネージドサービスとして引き受ける。
ドキュメントをGCSにアップロードすると、以下のパイプラインが自動で走る:
- Document Parsing — PDF・TXT・MD・CSV・DOCXからテキストを抽出
- Chunking — 512トークン単位、100トークンオーバーラップで分割
- Embedding生成 —
text-embedding-005で密ベクトルに変換 - Serverless Vector Search —
RagManagedVertexVectorSearchによって自動インデックス化
開発者がベクターDBクラスタをプロビジョニングする必要はない。インデックス完了後のquery_readiness_statusがREADYになった時点でクエリ可能になる仕組みだ。なお、ベクターストアそのものが消えるわけではなく、その管理操作がサービス側に委譲される形であることは補足しておきたい。
検索時のコードはシンプルで、類似度上位5件を取得する:
res = rag.retrieval_query(
rag_resources=[rag.RagResource(rag_corpus=corpus_name)],
text=user_query,
similarity_top_k=5
)
取得したコンテキストは、そのままGemini 2.5 Flashへのプロンプトに注入され、[Doc 1: cloud_security_handbook.txt]形式の明示的な引用タグ付きで回答が生成される。
Agent Skillsという発想——プロンプトの肥大化を防ぐ
本記事のもう一つの軸がAgent Skillsだ。通常のRAGシステムではSDKのドキュメントや操作手順をシステムプロンプトに詰め込むが、Agent SkillsはこれをSKILL.mdファイルとして外部化し、必要なときだけ動的にロードする設計だ。
各Skillは以下の構成を持つ:
SKILL.md— YAMLフロントマター付きのメイン指示ドキュメント(APIパターン、エラーリカバリー、セキュリティルール)scripts/— 補助実行スクリプトreferences/— 技術仕様・アーキテクチャ参照シート
インストールはnpxベースのCLIで完結する:
# GEAP RAGエンジン管理スキルをインストール
npx skills add google/skills -s agent-platform-rag-engine-management -g
# GCSの基本操作スキルをインストール
npx skills add google/skills -s google-cloud-storage-basics -g
インストール時には99種類のスキルが検出され、Amp・Antigravity・Cursor・Gemini CLI・GitHub Copilot・Warpなど13種類のAIコーディングエージェントに対応している点も特徴的だ。
A2UIによるリアルタイム テレメトリ表示
フロントエンドにはA2UI(Agent-to-UI)プロトコルが採用されている。通常のチャットUIと異なり、バックエンドのエージェントが動的にUIコンポーネントを制御できる仕組みで、以下を実現している:
- インタラクティブなCitation Pills —
[Doc 1: filename.pdf]形式の引用をクリック可能なバッジとしてレンダリング - Collapsible Thinking Trace — Geminiの内部推論ステップを折りたたみ表示
- ステップ別パフォーマンステレメトリ — GCSアップロード(ms)・コーパスプロビジョニング(ms)・ベクターインデックス(ms)・クエリ応答ステータス・プロンプト/思考/候補トークン数をHTMLテーブルで表示し、CSVエクスポートも可能
アプリ全体の自律生成
本記事が興味深いのは、このアーキテクチャ全体をAgent Skillsを装備したAIコーディングアシスタントへの1つのプロンプトで自律生成した点だ。生成されたのは4ファイルで、それぞれが独立した役割を担う:
1. app/rag_engine.py → GCSバケット & GEAP RAGコーパスのプロビジョニング
2. app/agent_wrapper.py → Antigravity Agent & Gemini 2.5 Flash の設定
3. app/main.py → FastAPI サーバー & A2UIエンドポイント
4. static/js/app.js → クライアント側A2UI・引用・テレメトリ表示
プロンプト内で「mock dataやシミュレーションデータを一切書くな」と明示的に指示している点は、RAGシステム構築でよくある落とし穴——ダミーデータで動作確認して本番で破綻するケース——を意識したものと読める。AIコーディングアシスタントへの指示設計そのものがノウハウとして記事に組み込まれており、再現性の高い構成になっている。
環境セットアップ
前提条件として、以下の設定が必要だ:
# GCPプロジェクトを設定
gcloud config set project <your-project-id>
# Application Default Credentialsで認証
gcloud auth application-default login
Antigravity SDKのエージェント設定では、ADCがgoogle.auth.default()で自動検出されるため、認証コードを別途記述する必要はない:
config = LocalAgentConfig(
model="gemini-2.5-flash",
vertex=True,
project=project_id,
location="us-central1",
save_dir="./storage/sessions",
skills_paths=["./skills"]
)
なお、Agent SkillsのCLIを使うにはNode.jsと、AntigravityやClaude CLIなどのAIコーディングエージェントが別途必要となる。GCPプロジェクトの準備についてはGoogle Cloudの公式ドキュメントも参照されたい。
詳細はBuilding a RAG Agent with Google ADK, Antigravity SDK, Agent Skills, A2UI, and Gemini Enterprise…を参照していただきたい。