1. 소개
이 Codelab에서는 Gemini 파일 검색을 사용하여 에이전트 애플리케이션에서 RAG를 사용 설정하는 방법을 보여줍니다. Gemini 파일 검색을 사용하면 청크, 임베딩 또는 벡터 데이터베이스의 세부정보에 대해 걱정하지 않고도 문서를 수집하고 색인을 생성할 수 있습니다.
실습 내용
- RAG의 기본사항과 RAG가 필요한 이유
- Gemini 파일 검색의 정의와 장점
- 파일 검색 스토어를 만드는 방법
- 맞춤 파일을 파일 검색 스토어에 업로드하는 방법
- RAG를 위한 Gemini 파일 검색 도구를 사용하는 방법
- Google 에이전트 개발 키트 (ADK) 사용의 이점
- ADK를 사용하여 빌드된 에이전트 솔루션에서 Gemini 파일 검색 도구를 사용하는 방법
- Google 검색과 같은 Google '기본' 도구와 함께 Gemini 파일 검색 도구를 사용하는 방법
실습 내용
- Google Cloud 프로젝트를 만들고 개발 환경을 설정합니다.
- Google 검색을 사용할 수 있지만 RAG 기능은 없는 Google 생성형 AI SDK (ADK 제외)를 사용하여 간단한 Gemini 기반 에이전트를 만듭니다.
- 맞춤 정보에 대해 정확하고 고품질의 정보를 제공할 수 없음을 보여줍니다.
- Gemini 파일 검색 스토어를 만들고 관리하기 위한 Jupyter 노트북 (로컬 또는 Google Colab에서 실행 가능)을 만듭니다.
- 노트북을 사용하여 맞춤 콘텐츠를 파일 검색 스토어에 업로드합니다.
- 파일 검색 스토어가 연결된 에이전트를 만들고 더 나은 대답을 생성할 수 있음을 증명합니다.
- Google 검색 도구가 포함된 ADK 에이전트로 초기 '기본' 에이전트를 변환합니다.
- ADK 웹 UI를 사용하여 에이전트를 테스트합니다.
- 파일 검색 도구를 Google 검색 도구와 함께 사용할 수 있도록 에이전트-도구 패턴을 사용하여 파일 검색 저장소를 ADK 에이전트에 통합합니다.
2. RAG란 무엇이며 왜 필요한가요?
와우... 검색 증강 생성
이 페이지를 방문하셨다면 아마도 이 기능을 알고 계실 테지만, 혹시 모르니 간단히 요약해 보겠습니다. LLM (예: Gemini)은 훌륭하지만 몇 가지 문제가 있습니다.
- 항상 최신 상태가 아님: 학습 중에 배운 내용만 알고 있습니다.
- 모든 것을 알지는 못함: 모델이 방대하기는 하지만 전지전능하지는 않습니다.
- 독점 정보를 알지 못함: 광범위한 지식을 보유하고 있지만 내부 문서, 블로그, Jira 티켓을 읽지 않았습니다.
따라서 모델에 대답을 모르는 질문을 하면 일반적으로 잘못된 대답이나 심지어 허구의 대답을 받게 됩니다. 모델은 이 잘못된 답변을 자신 있게 내뱉는 경우가 많습니다. 이를 할루시네이션이라고 합니다.
한 가지 해결 방법은 독점 정보를 대화 컨텍스트에 직접 덤프하는 것입니다. 정보가 적은 경우에는 괜찮지만 정보가 많아지면 문제가 빠르게 발생합니다. 구체적으로 다음과 같은 문제가 발생합니다.
- 지연 시간: 모델의 응답이 점점 느려집니다.
- 신호 손실(일명 '중간 손실'): 모델이 더 이상 관련 데이터를 정크에서 분류할 수 없는 경우입니다. 모델에서 컨텍스트의 많은 부분을 무시합니다.
- 비용: 토큰에는 비용이 발생합니다.
- 컨텍스트 윈도우 소진: 이 시점에서는 Gemini가 요청에 따라 조치를 취하지 않습니다.
이 상황을 해결하는 훨씬 더 효과적인 방법은 RAG를 사용하는 것입니다. 이는 단순히 내 데이터 소스에서 관련 정보를 조회 (시맨틱 매칭 사용)하고 이 데이터의 관련 청크를 질문과 함께 모델에 제공하는 프로세스입니다. 모델을 현실에 그라운딩합니다.
외부 데이터를 가져오고, 데이터를 청크로 자르고, 데이터를 벡터 임베딩으로 변환한 다음, 이러한 임베딩을 적절한 벡터 데이터베이스에 저장하고 색인을 생성하는 방식으로 작동합니다.

따라서 RAG를 구현하려면 일반적으로 다음 사항을 고려해야 합니다.
- 벡터 데이터베이스 (Pinecone, Weaviate, pgvector가 있는 Postgres 등)를 시작합니다.
- 문서 (예: PDF, 마크다운 등)를 잘라내는 청킹 스크립트를 작성합니다.
- 임베딩 모델을 사용하여 이러한 청크의 임베딩 (벡터)을 생성합니다.
- 벡터 데이터베이스에 벡터를 저장합니다.
하지만 친구는 친구가 과도하게 엔지니어링하도록 두지 않습니다. 더 쉬운 방법이 있다면 어떨까요?
3. 기본 요건
Google Cloud 프로젝트 만들기
이 Codelab을 실행하려면 Google Cloud 프로젝트가 필요합니다. 기존 프로젝트를 사용하거나 새 프로젝트를 만들 수 있습니다.
프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 이 가이드에서 프로젝트의 결제 상태를 확인하는 방법을 알아보세요.
이 Codelab을 완료하는 데 비용이 들지 않습니다. 많아야 몇 센트입니다.
프로젝트를 준비합니다. 기다리겠습니다.
데모 저장소 클론
이 Codelab의 가이드 콘텐츠가 포함된 저장소를 만들었습니다. 필요할 거예요!
터미널 또는 Google Cloud Shell 편집기에 통합된 터미널에서 다음 명령어를 실행합니다. Cloud Shell과 편집기는 필요한 모든 명령어가 사전 설치되어 있고 모든 것이 '기본'으로 실행되므로 매우 편리합니다.
git clone https://github.com/derailed-dash/gemini-file-search-demo cd gemini-file-search-demo
이 트리에는 저장소의 주요 폴더와 파일이 표시됩니다.
gemini-file-search-demo/ ├── app/ │ ├── basic_agent_adk/ # Agent with Google Search, using ADK framework │ │ └── agent.py │ ├── rag_agent_adk/ # Agent with Google Search and File Search, using ADK framework │ │ ├── agent.py │ │ └── tools_custom.py │ ├── sdk_agent.py # Agent using GenAI SDK (no ADK) with Google Search tool │ └── sdk_rag_agent.py # Agent using GenAI SDK (no ADK) with Gemini File Search tool ├── data/ │ └── story.md # Sample story with "bespoke content" to use with Gemini File Search Store ├── notebooks/ │ └── file_search_store.ipynb # Jupyter notebook for creating and managing Gemini File Search Store │ ├── .env.template # Template for environment variables - make a copy as .env ├── Makefile # Makefile for `make` commands ├── pyproject.toml # Project configuration and dependencies └── README.md # This file
Cloud Shell 편집기 또는 원하는 편집기에서 이 폴더를 엽니다. (아직 Antigravity를 사용해 보지 않으셨나요? 아직 사용해 보지 않았다면 지금 사용해 보세요.)
저장소에는 data/story.md 파일에 '웜홀 침입'이라는 샘플 스토리가 포함되어 있습니다. Gemini와 공동으로 작성했어요. 지각이 있는 우주선으로 이루어진 다즈보 사령관의 비행대 이야기입니다. (게임 Elite Dangerous에서 영감을 얻었습니다.) 이 스토리는 Gemini가 알지 못하고 Google 검색을 사용하여 검색할 수 없는 구체적인 사실을 포함하는'맞춤형 지식 베이스' 역할을 합니다.
개발 환경 설정
편의를 위해 실행해야 하는 많은 명령어를 간소화하는 Makefile를 제공했습니다. 특정 명령어를 기억하는 대신 make <target>와 같은 명령어를 실행하면 됩니다. 하지만 make은 Linux / MacOS / WSL 환경에서만 사용할 수 있습니다. Windows (WSL 제외)를 사용하는 경우 make 타겟에 포함된 전체 명령어를 실행해야 합니다.
# Install dependencies with make make install # If you don't have make... uv sync --extra jupyter
Cloud Shell 편집기에서 make install를 실행하면 다음과 같이 표시됩니다.

Gemini API 키 만들기
Gemini 파일 검색 도구를 사용하려면 Gemini Developer API (Gemini 파일 검색 도구를 사용하는 데 필요)를 사용해야 하며, 이를 위해서는 Gemini API 키가 필요합니다. API 키를 얻는 가장 쉬운 방법은 Google AI Studio를 사용하는 것입니다. Google AI Studio는 Google Cloud 프로젝트의 API 키를 얻을 수 있는 편리한 인터페이스를 제공합니다. 구체적인 단계는 이 가이드를 참고하세요.
API 키가 생성되면 복사하여 안전하게 보관합니다.
이제 이 API 키를 환경 변수로 설정해야 합니다. .env 파일을 사용하여 이 작업을 수행할 수 있습니다. 포함된 .env.example를 .env이라는 새 파일로 복사합니다. 파일은 다음과 같습니다.
export GEMINI_API_KEY="your-api-key" export MODEL="gemini-2.5-flash" export STORE_NAME="demo-file-store"
your-api-key를 실제 API 키로 바꿉니다. 이제 다음과 같이 표시됩니다.

이제 환경 변수가 로드되었는지 확인합니다. 다음 명령어를 실행하여 이를 확인할 수 있습니다.
source .env
4. 기본 에이전트
먼저 기준을 설정해 보겠습니다. 원시 google-genai SDK를 사용하여 간단한 에이전트를 실행합니다.
코드
app/sdk_agent.py를 살펴보세요. 다음은 최소 구현입니다.
genai.Client를 인스턴스화합니다.google_search도구를 사용 설정합니다.- 이상입니다. RAG 없음
코드를 살펴보고 코드가 수행하는 작업을 이해합니다.
실행하기
# With make make sdk-agent # Without make uv run python app/sdk_agent.py
일반적인 질문을 해 보겠습니다.
> What is the stock price of Google?
Google 검색을 사용하여 현재 가격을 찾아 올바르게 대답해야 합니다.

이제 대답 방법을 모르는 질문을 해 보겠습니다. 에이전트가 Google의 이야기를 읽었어야 합니다.
> Who pilots the 'Too Many Pies' ship?
실패하거나 환각을 일으킬 수 있습니다. 다음과 같습니다.

예상대로 모델이 질문에 답하지 못합니다. 무슨 말을 하는지 전혀 모릅니다.
이제 quit를 입력하여 에이전트를 종료합니다.
5. Gemini 파일 검색: 설명

Gemini 파일 검색은 기본적으로 다음 두 가지의 조합입니다.
- 완전 관리형 RAG 시스템: 파일을 제공하면 Gemini 파일 검색이 청킹, 임베딩, 저장, 벡터 색인 생성을 처리합니다.
- 에이전트의 의미에서 '도구': Gemini 파일 검색 도구를 에이전트 정의에 도구로 추가하고 도구를 파일 검색 저장소로 지정할 수 있습니다.
하지만 중요한 점은 Gemini API 자체에 내장되어 있다는 것입니다. 즉, 이 기능을 사용하기 위해 추가 API를 사용 설정하거나 별도의 제품을 배포할 필요가 없습니다. 따라서 out-of-the-box합니다.
Gemini 파일 검색 기능
몇 가지 기능을 소개해 드리겠습니다.
- 청크, 삽입, 저장, 색인 생성의 세부정보는 개발자로부터 추상화됩니다. 즉, 임베딩 모델(Gemini 임베딩)이나 결과 벡터가 저장되는 위치를 알거나 신경 쓰지 않아도 됩니다. 벡터 데이터베이스를 결정할 필요가 없습니다.
- 기본적으로 수많은 문서 유형을 지원합니다. PDF, DOCX, Excel, SQL, JSON, Jupyter 노트북, HTML, 마크다운, CSV, zip 파일 등이 포함되나 이에 국한되지 않습니다. 전체 목록은 여기에서 확인할 수 있습니다. 예를 들어 텍스트, 사진, 표가 포함된 PDF 파일로 에이전트를 그라운딩하려는 경우 이러한 PDF 파일을 사전 처리할 필요가 없습니다. 원본 PDF를 업로드하기만 하면 나머지는 Gemini가 알아서 처리합니다.
- 업로드된 파일에 커스텀 메타데이터를 추가할 수 있습니다. 이는 런타임에 도구에서 사용할 파일을 필터링하는 데 매우 유용합니다.
데이터는 어디에 있나요?
일부 파일을 업로드합니다. Gemini 파일 검색 도구는 이러한 파일을 가져와 청크와 삽입을 만든 다음 어딘가에 저장했습니다. 하지만 어디에?
답은 파일 검색 스토어입니다. 이것은 삽입을 위한 완전 관리형 컨테이너입니다. 내부적으로 어떻게 처리되는지 알 필요도 없고 신경 쓸 필요도 없습니다. (프로그래매틱 방식으로) 하나를 만든 다음 파일을 업로드하면 됩니다.
저렴합니다.
임베딩 저장 및 쿼리는 무료입니다. 따라서 원하는 만큼 오랫동안 삽입을 저장할 수 있으며 해당 스토리지에 대한 비용은 지불하지 않습니다.
실제로 비용을 지불하는 것은 업로드/색인 생성 시 임베딩 생성뿐입니다. 작성 시점을 기준으로 1백만 토큰당 0.15달러입니다. 꽤 저렴하네요.
6. Gemini 파일 검색은 어떻게 사용하나요?
두 단계가 있습니다.
- 파일 검색 스토어에 임베딩을 만들고 저장합니다.
- 에이전트에서 파일 검색 저장소를 쿼리합니다.
1단계 - Jupyter 노트북으로 Gemini 파일 검색 스토어 만들기 및 관리
이 단계는 처음 실행한 후 스토어를 업데이트할 때마다 실행합니다. 예를 들어 추가할 새 문서가 있거나 소스 문서가 변경된 경우입니다.
이 단계는 배포된 에이전트 애플리케이션에 패키징할 필요가 없습니다. 원한다면 그렇게 할 수 있습니다. 예를 들어 에이전트 애플리케이션의 관리자 사용자를 위한 UI를 만들려는 경우입니다. 하지만 온디맨드로 실행하는 코드가 있으면 충분한 경우가 많습니다. 이 코드를 필요할 때 실행하는 좋은 방법은 무엇일까요? Jupyter 노트북
노트북
편집기에서 notebooks/file_search_store.ipynb 파일을 엽니다. Jupyter VS Code 확장 프로그램을 설치하라는 메시지가 표시되면 설치하세요.
Cloud Shell 편집기에서 열면 다음과 같이 표시됩니다.

셀별로 실행해 보겠습니다. 필요한 가져오기를 사용하여 Setup 셀을 실행하여 시작합니다. 이전에 노트북을 실행한 적이 없다면 필요한 확장 프로그램을 설치하라는 메시지가 표시됩니다. 메시지가 표시되면 안내를 따라 SSH 키를 생성합니다. 그런 다음 커널을 선택하라는 메시지가 표시됩니다. 'Python environments...'을 선택한 다음 앞서 make install를 실행할 때 설치한 로컬 .venv을 선택합니다.

그런 다음 아래를 실행합니다.
- '로컬 전용' 셀을 실행하여 환경 변수를 가져옵니다.
- '클라이언트 초기화' 셀을 실행하여 Gemini 생성형 AI 클라이언트를 초기화합니다.
- 이름으로 Gemini 파일 검색 스토어를 가져오는 도우미 함수를 사용하여 '스토어 가져오기' 셀을 실행합니다.
이제 스토어를 만들 준비가 되었습니다.
- '스토어 만들기 (한 번만)' 셀을 실행하여 스토어를 만듭니다. 이 작업은 한 번만 수행하면 됩니다. 코드가 성공적으로 실행되면
"Created store: fileSearchStores/<someid>"이라는 메시지가 표시됩니다. - 'View the Store' 셀을 실행하여 내용을 확인합니다. 이 시점에서 문서가 0개 포함되어 있음을 확인할 수 있습니다.
좋습니다. 이제 Gemini 파일 검색 스토어가 준비되었습니다.
데이터 업로드
data/story.md을 스토어에 업로드하려고 합니다. 다음 단계를 따르세요.
- 업로드 경로를 설정하는 셀을 실행합니다. 이는
data/폴더를 가리킵니다. - 다음 셀을 실행하여 스토어에 파일을 업로드하는 유틸리티 함수를 만듭니다. 이 셀의 코드에서는 Gemini를 사용하여 업로드된 각 파일에서 메타데이터를 추출합니다. 추출된 값은 스토어에 커스텀 메타데이터로 저장됩니다. (필수는 아니지만 유용한 작업입니다.)
- 셀을 실행하여 파일을 업로드합니다. 이전에 이름이 같은 파일을 업로드한 경우 노트북에서 먼저 기존 버전을 삭제한 후 새 버전을 업로드합니다. 파일이 업로드되었음을 나타내는 메시지가 표시됩니다.

2단계 - 에이전트에 Gemini 파일 검색 RAG 구현
Gemini 파일 검색 스토어를 만들고 스토리를 업로드했습니다. 이제 에이전트에서 파일 검색 저장소를 사용할 차례입니다. Google 검색 대신 파일 검색 스토어를 사용하는 새 에이전트를 만들어 보겠습니다. app/sdk_rag_agent.py를 살펴보세요.
먼저 스토어 이름을 전달하여 스토어를 가져오는 함수를 구현했습니다.
def get_store(client: genai.Client, store_name: str) -> types.FileSearchStore | None:
"""Retrieve a store by display name"""
try:
for a_store in client.file_search_stores.list():
if a_store.display_name == store_name:
return a_store
except Exception as e:
logger.error(f"Error listing stores: {e}")
return None
스토어가 준비되면 다음과 같이 에이전트에 도구로 연결하기만 하면 됩니다.
file_search_tool = types.Tool(file_search=types.FileSearch(file_search_store_names=[store.name]))
RAG 에이전트 실행
다음과 같이 실행합니다.
make sdk-rag-agent # Or, without make: uv run python app/sdk_rag_agent.py
이전 에이전트가 답변할 수 없었던 질문을 해 보겠습니다.
> Who pilots the 'Too Many Pies' ship?
대답은?

완료되었습니다. 대답을 통해 다음을 확인할 수 있습니다.
- 질문에 답하기 위해 파일 스토어가 사용되었습니다.
- 관련 청크 5개가 발견되었습니다.
- 정답입니다.
quit를 입력하여 에이전트를 닫습니다.
7. 에이전트가 ADK를 사용하도록 전환
Google 에이전트 개발 키트 (ADK)는 개발자가 에이전트 및 에이전트 시스템을 빌드할 수 있는 오픈소스 모듈식 프레임워크 및 SDK입니다. 이를 통해 멀티 에이전트 시스템을 쉽게 만들고 조정할 수 있습니다. Gemini 및 Google 생태계에 최적화되어 있지만 ADK는 모델에 구애받지 않고 배포에 구애받지 않으며 다른 프레임워크와의 호환성을 위해 빌드됩니다. 아직 ADK를 사용해 보지 않았다면 ADK 문서에서 자세히 알아보세요.
Google 검색이 포함된 기본 ADK 에이전트
app/basic_agent_adk/agent.py를 살펴보세요. 이 샘플 코드에서는 실제로 두 개의 에이전트를 구현한 것을 확인할 수 있습니다.
- 사용자와의 상호작용을 처리하고 기본 시스템 명령어를 제공한
root_agent입니다. google.adk.tools.google_search을 도구로 사용하는 별도의SearchAgent
root_agent는 실제로 SearchAgent을 도구로 사용하며, 이는 다음 줄을 사용하여 구현됩니다.
tools=[AgentTool(agent=search_agent)],
루트 에이전트의 시스템 프롬프트는 다음과 같습니다.
You are a helpful AI assistant designed to provide accurate and useful information.
If you don't know the answer, use the SearchAgent to perform a Google search.
Do not attempt to search more than ONCE.
If the search yields no relevant results or returns unrelated content, you MUST immediately respond with: "I could not find any information about that."
Do NOT retry the search with different terms. Do NOT ask for clarification. FAIL FAST.
에이전트 사용해 보기
ADK는 개발자가 ADK 에이전트를 테스트할 수 있도록 여러 기본 인터페이스를 제공합니다. 이러한 인터페이스 중 하나가 웹 UI입니다. 이를 통해 사용자 인터페이스 코드를 작성하지 않고도 브라우저에서 에이전트를 테스트할 수 있습니다.
다음을 실행하여 이 인터페이스를 실행할 수 있습니다.
make adk-playground # Or, without make: uv run adk web app --port 8501 --reload_agents
이 명령어는 adk web 도구를 app 폴더로 안내하며, 여기서 root_agent을 구현하는 ADK 에이전트가 자동으로 검색됩니다. 한번 시도해 보겠습니다.

몇 초 후 애플리케이션이 준비됩니다. 코드를 로컬에서 실행하는 경우 브라우저를 http://127.0.0.1:8501로 가리키면 됩니다. Cloud Shell 편집기에서 실행하는 경우 '웹 미리보기'를 클릭하고 포트를 8501로 변경합니다.

UI가 표시되면 드롭다운에서 basic_agent_adk을 선택한 다음 질문을 할 수 있습니다.

지금까지는 잘 진행되고 있습니다. 웹 UI는 루트 에이전트가 SearchAgent에 위임하는 시점도 표시합니다. 매우 유용한 기능입니다.
이제 내 이야기에 대한 지식이 필요한 질문을 해 보겠습니다.

직접 해 보세요. 지시된 대로 빠르게 실패하는 것을 확인할 수 있습니다.
파일 검색 저장소를 ADK 에이전트에 통합
이제 모든 내용을 종합해 보겠습니다. 파일 검색 스토어와 Google 검색을 모두 사용할 수 있는 ADK 에이전트를 실행할 것입니다. app/rag_agent_adk/agent.py의 코드를 살펴보세요.
이 코드는 이전 예와 비슷하지만 몇 가지 중요한 차이점이 있습니다.
- 두 가지 전문 에이전트를 조정하는 루트 에이전트가 있습니다.
- RagAgent: 맞춤형 지식 전문가 - Google의 Gemini 파일 검색 스토어 사용
- SearchAgent: 일반 지식 전문가 - Google 검색 사용
- ADK에는 아직
FileSearch용 기본 래퍼가 없으므로 맞춤 래퍼 클래스FileSearchTool를 사용하여 FileSearch 도구를 래핑합니다. 이 도구는file_search_store_names구성을 하위 수준 모델 요청에 삽입합니다. 이는 별도의 스크립트app/rag_agent_adk/tools_custom.py에 구현되었습니다.
주의해야 할 사항도 있습니다. 작성 시점에는 동일한 요청에서 동일한 에이전트에 네이티브 GoogleSearch 도구와 FileSearch 도구를 사용할 수 없습니다. 시도하면 다음과 같은 오류가 표시됩니다.
오류 - 오류가 발생했습니다. 400 INVALID_ARGUMENT. {‘error': {‘code': 400, ‘message': ‘검색 도구와 파일 검색 도구를 함께 사용할 수 없습니다.', ‘status': ‘INVALID_ARGUMENT'}}
오류: 400 INVALID_ARGUMENT. {‘error': {‘code': 400, ‘message': ‘검색 도구와 파일 검색 도구를 함께 사용할 수 없습니다.', ‘status': ‘INVALID_ARGUMENT'}}
이 문제를 해결하려면 두 전문가 에이전트를 별도의 하위 에이전트로 구현하고 에이전트-도구 패턴을 사용하여 루트 에이전트에 전달해야 합니다. 무엇보다도 루트 에이전트의 시스템 안내는 RagAgent을 먼저 사용하라는 매우 명확한 안내를 제공합니다.
너는 정확하고 유용한 정보를 제공하도록 설계된 유용한 AI 어시스턴트야.
다음 두 명의 전문가 상담사를 이용하실 수 있습니다.
- RagAgent: 내부 기술 자료의 맞춤 정보
- SearchAgent: Google 검색의 일반 정보
항상 RagAgent를 먼저 시도하세요. 유용한 답변을 얻지 못하면 SearchAgent를 사용해 보세요.
최종 테스트
이전과 같이 ADK 웹 UI를 실행합니다.
make adk-playground # Or, without make: uv run adk web app --port 8501 --reload_agents
이번에는 UI에서 rag_agent_adk를 선택합니다. 실제로 어떻게 작동하는지 알아보겠습니다. 
질문에 따라 적절한 하위 에이전트를 선택하는 것을 확인할 수 있습니다.
8. 결론
이 Codelab을 완료하셨습니다.
임베딩 코드를 한 줄도 작성하지 않고 벡터 데이터베이스를 구현하지 않아도 간단한 스크립트에서 멀티 에이전트 RAG 지원 시스템으로 전환했습니다.
다음과 같은 사실을 알게 되었습니다.
- Gemini 파일 검색은 시간과 정신적 부담을 덜어주는 관리형 RAG 솔루션입니다.
- ADK는 복잡한 멀티 에이전트 앱에 필요한 구조를 제공하며 웹 UI와 같은 인터페이스를 통해 개발자 편의성을 제공합니다.
- "Agent-as-a-Tool" 패턴은 도구 호환성 문제를 해결합니다.
이 실습이 도움이 되었기를 바랍니다. 그럼 다른 과정에서 뵙겠습니다.