社内の問い合わせ対応や技術ノウハウの共有は、多くの組織で「気づけば属人化しがちな業務」の代表です。とりわけセキュリティ実装や運用ノウハウのような領域では、担当者の経験に依存した暗黙知が蓄積されてしまい、情報が散在して放置されることもしばしば起こります——その結果、同じ説明を何度も繰り返す必要が生じたり、新任メンバーのキャッチアップが遅延したりと、業務効率や組織学習に悪影響が出てしまいます。
こうした課題に対して RAG(Retrieval Augmented Generation) が注目されており、検索と生成を組み合わせることで、ナレッジベースからの回答をより正確かつ信頼性の高い形で提供できます。OSS の実装例やテンプレートも増え、いまや「RAG を組むこと自体」のハードルは確実に下がっています。しかし実業務で素早く仕上げるには、検索基盤の設計、ドキュメント管理、フロントエンドとの統合 といった周辺要素に依然として工数が掛かりがちです。
そこで今回、Gemini CLI と ADK(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のエコシステムは非常に強力な基盤であり、今後も継続的に活用、検証していく価値はあると感じています。