Gemini CLI × ADK(Agent Development Kit) × Vertex AI Search で社内ナレッジを素早くRAG化したい

DTダイナミクス代表取締役社長の道廣です。

社内の問い合わせ対応や技術ノウハウの共有は、多くの組織で「気づけば属人化しがちな業務」の代表です。とりわけセキュリティ実装や運用ノウハウのような領域では、担当者の経験に依存した暗黙知が蓄積されてしまい、情報が散在して放置されることもしばしば起こります——その結果、同じ説明を何度も繰り返す必要が生じたり、新任メンバーのキャッチアップが遅延したりと、業務効率や組織学習に悪影響が出てしまいます。

こうした課題に対して RAG(Retrieval Augmented Generation) が注目されており、検索と生成を組み合わせることで、ナレッジベースからの回答をより正確かつ信頼性の高い形で提供できます。OSS の実装例やテンプレートも増え、いまや「RAG を組むこと自体」のハードルは確実に下がっています。しかし実業務で素早く仕上げるには、検索基盤の設計、ドキュメント管理、フロントエンドとの統合 といった周辺要素に依然として工数が掛かりがちです。

そこで今回、Gemini CLIADK(Agent Development Kit)、Vertex AI Search、そして Streamlit を組み合わせ、短期間で実戦投入可能な社内ナレッジRAGシステムを構築しました。特に ADK に含まれる VertexAISearchTool を利用すると、検索機能を「エージェントのツール」として自然に統合でき、RAG の実装が大幅に簡素化されます。公式ドキュメントはこちらです。

本記事は2026年1月時点の情報に基づいています。記事内の各種ドキュメントへのURL、API等は変更される可能性があります。

Vertex AI Search Grounding(VertexAISearchTool)
https://google.github.io/adk-docs/grounding/vertex_ai_search_grounding/

また、ADK で作成したエージェントは REST API から呼び出すことも可能で、外部システムや UI から直接統合できます(ドキュメント):
https://google.github.io/adk-docs/api-reference/rest/

さらにフロントエンドには Streamlit を採用しました。Python だけで UI を構築できるため、フロント実装の負担が格段に軽くなります。Gemini CLI でプロトタイプを対話的に検証し、そのまま Streamlit へ移行・拡張できる点も非常に相性が良いです。

なお、本記事の内容はこちら(製造業DX「meviy」の開発現場におけるAIエージェント活用)の記事でも触れられていますので、合わせてご参照ください。

それでは、次の章から具体的なシステム構成とRAGの呼び出しフロー、それぞれのモジュールの実装例について紹介したいと思います。

システム構成と RAG フロー

構成:図の右側参照 構成:図の右側参照

IAP(Identity‑Aware Proxy)は、アプリケーションレベルでアクセス制御を提供する Google Cloud の仕組みで、VPN に依存せずユーザー認証機能を適用できます:
https://cloud.google.com/iap/docs/concepts-overview

このIAPも実装したアプリケーションを素早くデプロイして社内のチームに共有するという意味では堅牢かつお手軽な方法だと思います。

root_agent + VertexAISearchTool:検索統合コード例

Root AgentのTool部分にVertexAISearchToolを指定し、その引数にDATASTORE_IDを指定するだけになります。

from google.adk.agents import Agent
from google.adk.tools import VertexAiSearchTool

# Configuration
DATASTORE_ID = "projects/YOUR_PROJECT_ID/locations/global/collections/default_collection/dataStores/YOUR_DATASTORE_ID"

root_agent = Agent(
    name="vertex_search_agent",
    model="gemini-2.5-flash",
    instruction="Answer questions using Vertex AI Search to find information from internal documents. Always cite sources when available.",
    description="Enterprise document search assistant with Vertex AI Search capabilities",
    tools=[VertexAiSearchTool(data_store_id=DATASTORE_ID)]
)

REST API からエージェントを呼び出すコード例

ドキュメントに沿ってADK Serverのエンドポイントを叩きます。

import requests

BASE_URL = "http://localhost:8000" #ADK API server

url = f"{BASE_URL}/run"
payload = {
    "app_name": app_name,
    "user_id": user_id,
    "session_id": session_id,
    "new_message": {"role": "user", "parts": message_parts}
}
r = requests.post(url, headers=_headers(), data=json.dumps(payload), timeout=120)
return r.json()

REST API 仕様: https://google.github.io/adk-docs/api-reference/rest/

Streamlit による UI 実装例

Streamlitを使えばPython だけで 入力フォーム + 回答表示 + 反復開発 が可能となり、フロントエンド実装コストが劇的に下がります。Streamlitの詳しい説明は公式のページを参照お願いします。

import streamlit as st

st.title("社内ナレッジRAGアシスタント")

user_input = st.text_input("質問を入力してください")

if st.button("送信") and user_input:
    result = agent.run(user_input)
    st.write(result.text)

Cloud Run × IAP によるセキュア公開

IAP を有効化することで:

  • VPN なしで社内認証を強制
  • IAM によりアクセス権を一元管理
  • アプリケーション側の認証実装が不要

PoC から運用移行までの摩擦を最小化できます。

期待できる導入効果と学び

  • 属人化していたナレッジの可視化
  • 問い合わせ回答時間の短縮
  • 新任メンバーの立ち上がり効率向上
  • UI/UX と運用性の両立

特に、VertexAISearchTool による検索統合Streamlit + Gemini CLI による高速フロント実装 が開発効率に大きく寄与しました。

今後の展開

RAG とエージェントは、属人知識を組織知へ転換しますが、今後は以下の展開が考えられます。

  • ドキュメント更新の自動パイプライン化
  • メタ情報付与による検索精度向上
  • 利用ログに基づく改善サイクル
  • 他業務領域への横展開

Gemini CLI x ADK x VertexAISearchTool、Cloud Runを始めとするGoogle Cloudのエコシステムは非常に強力な基盤であり、今後も継続的に活用、検証していく価値はあると感じています。