Menggunakan Alat Penelusuran File Google Gemini untuk RAG

1. Pengantar

Codelab ini menunjukkan cara menggunakan Penelusuran File Gemini untuk mengaktifkan RAG di Aplikasi Agentik Anda. Anda akan menggunakan Penelusuran File Gemini untuk menyerap dan mengindeks dokumen tanpa perlu mengkhawatirkan detail chunking, embedding, atau database vektor.

Yang Akan Anda Pelajari

  • Dasar-dasar RAG dan alasan kita memerlukannya.
  • Apa itu Penelusuran File Gemini dan keunggulannya.
  • Cara membuat Penyimpanan Penelusuran File.
  • Cara mengupload file khusus Anda sendiri ke File Search Store.
  • Cara menggunakan Alat Penelusuran File Gemini untuk RAG.
  • Manfaat menggunakan Google Agent Development Kit (ADK).
  • Cara menggunakan Alat Penelusuran File Gemini dalam solusi berbasis agen yang dibuat menggunakan ADK.
  • Cara menggunakan Alat Penelusuran File Gemini bersama alat "asli" Google seperti Google Penelusuran.

Yang Akan Anda Lakukan

  • Buat Project Google Cloud dan siapkan lingkungan pengembangan Anda.
  • Buat agen sederhana berbasis Gemini menggunakan Google Gen AI SDK (tetapi tanpa ADK) yang memiliki kemampuan untuk menggunakan penelusuran Google, tetapi tidak memiliki kemampuan RAG.
  • Menunjukkan ketidakmampuannya untuk memberikan informasi yang akurat dan berkualitas tinggi untuk informasi khusus.
  • Buat notebook Jupyter (yang dapat Anda jalankan secara lokal, atau, misalnya, di Google Colab) untuk membuat dan mengelola Penyimpanan Penelusuran File Gemini.
  • Gunakan notebook untuk mengupload konten khusus ke File Search Store.
  • Buat agen yang memiliki Penyimpanan Penelusuran File terlampir, dan buktikan bahwa agen tersebut dapat menghasilkan respons yang lebih baik.
  • Mengonversi agen "dasar" awal kita menjadi agen ADK, lengkap dengan alat Google Penelusuran.
  • Uji agen menggunakan UI Web ADK.
  • Gabungkan File Search Store ke dalam agen ADK, menggunakan pola Agent-As-A-Tool untuk memungkinkan kita menggunakan Alat Penelusuran File bersama dengan alat Google Penelusuran.

2. Apa itu RAG dan Mengapa Kita Membutuhkannya

Jadi... Retrieval-Augmented Generation.

Jika Anda membuka halaman ini, Anda mungkin sudah tahu apa itu, tetapi mari kita ulas kembali secara singkat, untuk berjaga-jaga. LLM (seperti Gemini) sangat canggih, tetapi memiliki beberapa masalah:

  1. Selalu ketinggalan zaman: Model hanya mengetahui apa yang dipelajarinya selama pelatihan.
  2. Model tidak mengetahui segalanya: Memang, modelnya sangat besar, tetapi tidak mahatahu.
  3. Mereka tidak mengetahui informasi eksklusif Anda: Mereka memiliki pengetahuan yang luas, tetapi mereka belum membaca dokumen internal, blog, atau tiket Jira Anda.

Jadi, saat Anda bertanya kepada model tentang sesuatu yang jawabannya tidak diketahui, Anda biasanya akan mendapatkan jawaban yang salah atau bahkan dibuat-buat. Sering kali, model akan memberikan jawaban yang salah ini dengan penuh keyakinan. Hal ini disebut halusinasi.

Salah satu solusinya adalah dengan mengekspor informasi eksklusif kami langsung ke konteks percakapan. Cara ini tidak masalah untuk sejumlah kecil informasi, tetapi akan cepat menjadi masalah jika Anda memiliki banyak informasi. Secara khusus, hal ini menyebabkan masalah berikut:

  1. Latensi: respons yang semakin lambat dari model.
  2. Pembusukan sinyal, alias "hilang di tengah": saat model tidak lagi dapat memilah data yang relevan dari data sampah. Sebagian besar konteks diabaikan oleh model.
  3. Biaya: karena token memerlukan biaya.
  4. Kelelahan jendela konteks: Pada titik ini, Gemini tidak akan menindaklanjuti permintaan Anda.

Cara yang jauh lebih efektif untuk mengatasi situasi ini adalah dengan menggunakan RAG. Proses ini hanyalah proses mencari informasi yang relevan dari sumber data Anda (menggunakan pencocokan semantik) dan memasukkan potongan data yang relevan ini ke model bersama dengan pertanyaan Anda. Fitur ini mendasarkan model pada realitas Anda.

Cara kerjanya adalah dengan mengimpor data eksternal, membagi data menjadi beberapa bagian, mengonversi data menjadi embedding vektor, lalu menyimpan dan mengindeks embedding tersebut ke dalam database vektor yang sesuai.

59f80cd49a8d8fdb.png

Jadi, untuk menerapkan RAG, kita biasanya harus memperhatikan:

  1. Memulai Database Vektor (Pinecone, Weaviate, Postgres dengan pgvector...).
  2. Menulis skrip chunking untuk membagi dokumen Anda (misalnya, PDF, markdown, apa pun).
  3. Membuat embedding (vektor) untuk potongan tersebut, menggunakan model embedding.
  4. Menyimpan vektor di Database Vektor.

Namun, teman tidak membiarkan teman terlalu merekayasa sesuatu. Bagaimana jika kami memberi tahu Anda bahwa ada cara yang lebih mudah?

3. Prasyarat

Buat Project Google Cloud

Anda memerlukan Project Google Cloud untuk menjalankan codelab ini. Anda dapat menggunakan project yang sudah ada, atau membuat project baru.

Pastikan penagihan diaktifkan di project Anda. Lihat panduan ini untuk mengetahui cara memeriksa status penagihan project Anda.

Perhatikan bahwa Anda tidak akan dikenai biaya apa pun untuk menyelesaikan codelab ini. Paling banyak, beberapa sen.

Lanjutkan dan siapkan project Anda. Saya tunggu.

Meng-clone Repo Demo

Saya telah membuat repo dengan konten terpandu untuk codelab ini. Anda akan membutuhkannya.

Jalankan perintah berikut dari terminal Anda, atau dari terminal yang terintegrasi ke Cloud Shell Editor Google. Cloud Shell dan editornya sangat praktis, karena semua perintah yang Anda perlukan sudah terinstal dan semuanya dapat langsung dijalankan.

git clone https://github.com/derailed-dash/gemini-file-search-demo
cd gemini-file-search-demo

Struktur ini menunjukkan folder dan file utama dalam repo:

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

Buka folder ini di Cloud Shell Editor, atau editor pilihan Anda. (Sudahkah Anda menggunakan Antigravitasi? Jika tidak, sekaranglah saat yang tepat untuk mencobanya.)

Perhatikan bahwa repo berisi contoh cerita - "The Wormhole Incursion" - dalam file data/story.md. Saya menulisnya bersama Gemini. Ini tentang Komandan Dazbo dan skuadron kapal antariksa cerdasnya. (Saya mengambil inspirasi dari game Elite Dangerous.) Kisah ini berfungsi sebagai'pusat informasi khusus' kami, yang berisi fakta spesifik yang tidak diketahui Gemini, dan lebih lanjut lagi, tidak dapat dicari menggunakan penelusuran Google.

Menyiapkan Lingkungan Pengembangan Anda

Untuk mempermudah, saya telah menyediakan Makefile untuk menyederhanakan banyak perintah yang perlu Anda jalankan. Daripada mengingat perintah tertentu, Anda cukup menjalankan sesuatu seperti make <target>. Namun, make hanya tersedia di lingkungan Linux / MacOS / WSL. Jika Anda menggunakan Windows (tanpa WSL), Anda harus menjalankan perintah lengkap yang berisi target make.

# Install dependencies with make
make install

# If you don't have make...
uv sync --extra jupyter

Seperti inilah tampilannya saat Anda menjalankan make install di Cloud Shell Editor:

64ed9878be59adad.png

Membuat Kunci Gemini API

Untuk menggunakan Gemini Developer API (yang kita perlukan untuk menggunakan Alat Penelusuran File Gemini), Anda memerlukan kunci Gemini API. Cara termudah untuk mendapatkan kunci API adalah dengan menggunakan Google AI Studio, yang menyediakan antarmuka praktis untuk mendapatkan kunci API bagi project Google Cloud Anda. Lihat panduan ini untuk mengetahui langkah-langkah spesifiknya.

Setelah kunci API Anda dibuat, salin dan amankan.

Sekarang Anda perlu menyetel kunci API ini sebagai variabel lingkungan. Kita dapat melakukannya menggunakan file .env. Salin .env.example yang disertakan sebagai file baru bernama .env. Filenya akan terlihat seperti ini:

export GEMINI_API_KEY="your-api-key"
export MODEL="gemini-2.5-flash"
export STORE_NAME="demo-file-store"

Lanjutkan dan ganti your-api-key dengan kunci API Anda yang sebenarnya. Sekarang akan terlihat seperti ini:

70fba02ac80c3790.png

Sekarang pastikan variabel lingkungan dimuat. Anda dapat melakukannya dengan menjalankan:

source .env

4. Agen Dasar

Pertama, mari tetapkan tolok ukur. Kita akan menggunakan google-genai SDK mentah untuk menjalankan agen sederhana.

Kode

Lihat app/sdk_agent.py. Ini adalah implementasi minimal yang:

  • Membuat instance genai.Client.
  • Mengaktifkan alat google_search.
  • Selesai. Tanpa RAG.

Lihat kode dan pastikan Anda memahami fungsinya.

Menjalankannya

# With make
make sdk-agent

# Without make
uv run python app/sdk_agent.py

Mari kita ajukan pertanyaan umum:

> What is the stock price of Google?

Agen harus menjawab dengan benar menggunakan Google Penelusuran untuk menemukan harga saat ini:

c1b9b6c7b37290ee.png

Sekarang, mari kita ajukan pertanyaan yang tidak bisa dijawabnya. Agen harus sudah membaca cerita kita.

> Who pilots the 'Too Many Pies' ship?

Model akan gagal atau bahkan berhalusinasi. Mari kita lihat:

945003150f7099cd.png

Dan benar saja, model gagal menjawab pertanyaan tersebut. Dia tidak tahu apa yang kita bicarakan.

Sekarang ketik quit untuk keluar dari agen.

5. Penelusuran File Gemini: Penjelasan

a1af82c360b915e9.png

Penelusuran File Gemini pada dasarnya merupakan kombinasi dari dua hal:

  1. Sistem RAG yang terkelola sepenuhnya: Anda menyediakan sejumlah file, dan Gemini Penelusuran File akan menangani pembuatan potongan, penyematan, penyimpanan, dan pengindeksan vektor untuk Anda.
  2. "Alat" dalam arti agentik: Anda cukup menambahkan Alat Penelusuran File Gemini sebagai alat dalam definisi agen, dan mengarahkan alat ke Penyimpanan Penelusuran File.

Namun, yang paling penting: fitur ini sudah ada di Gemini API itu sendiri. Artinya, Anda tidak perlu mengaktifkan API tambahan atau men-deploy produk terpisah untuk menggunakannya. Jadi, ini benar-benar out-of-the-box.

Fitur Penelusuran File Gemini

Berikut beberapa fiturnya:

  • Detail chunking, penyematan, penyimpanan, dan pengindeksan dipisahkan dari Anda, developer. Artinya, Anda tidak perlu mengetahui (atau memedulikan) model embedding (yang merupakan Gemini Embeddings), atau tempat penyimpanan vektor yang dihasilkan. Anda tidak perlu membuat keputusan terkait database vektor.
  • Secara langsung, aplikasi ini mendukung banyak jenis dokumen. Termasuk, tetapi tidak terbatas pada: PDF, DOCX, Excel, SQL, JSON, notebook Jupyter, HTML, Markdown, CSV, dan bahkan file zip. Anda dapat melihat daftar lengkapnya di sini. Jadi, misalnya, jika Anda ingin mendasari agen Anda dengan file PDF yang berisi teks, gambar, dan tabel, Anda tidak perlu melakukan pra-pemrosesan file PDF ini. Cukup upload PDF mentah, dan biarkan Gemini menangani sisanya.
  • Kita dapat menambahkan metadata kustom ke file yang diupload. Hal ini dapat sangat berguna untuk memfilter file yang ingin kita gunakan oleh alat, pada waktu proses.

Di Mana Data Berada?

Anda mengupload beberapa file. Alat Penelusuran File Gemini telah mengambil file tersebut, membuat potongan, lalu embedding, dan menempatkannya... di suatu tempat. Tapi di mana?

Jawabannya: File Search Store. Ini adalah container yang terkelola sepenuhnya untuk penyematan Anda. Anda tidak perlu mengetahui (atau memikirkan) cara melakukannya di balik layar. Anda hanya perlu membuat satu (secara terprogram), lalu mengupload file ke dalamnya.

Murah!

Penyimpanan dan pembuatan kueri embedding Anda tidak dikenai biaya. Jadi, Anda dapat menyimpan sematan selama yang Anda inginkan, dan Anda tidak perlu membayar penyimpanan tersebut.

Sebenarnya, satu-satunya hal yang Anda bayar adalah pembuatan sematan saat waktu upload/pengindeksan. Pada saat penulisan, biaya ini adalah $0,15 per 1 juta token. Harganya cukup murah.

6. Bagaimana Cara Menggunakan Penelusuran File Gemini?

Ada dua fase:

  1. Buat dan simpan embedding, di Penyimpanan Penelusuran File.
  2. Kueri File Search Store dari agen Anda.

Fase 1 - Notebook Jupyter untuk Membuat dan Mengelola Penyimpanan Penelusuran File Gemini

Fase ini adalah sesuatu yang akan Anda lakukan pada awalnya, lalu setiap kali Anda ingin memperbarui toko. Misalnya, saat Anda memiliki dokumen baru untuk ditambahkan, atau saat dokumen sumber telah berubah.

Fase ini tidak perlu Anda paketkan ke dalam aplikasi agentik yang di-deploy. Tentu, Anda bisa melakukannya jika mau. Misalnya, jika Anda ingin membuat semacam UI untuk pengguna admin aplikasi agentik Anda. Namun, sering kali cukup memiliki sedikit kode yang Anda jalankan sesuai permintaan. Dan salah satu cara terbaik untuk menjalankan kode ini sesuai permintaan? Notebook Jupyter.

The Notebook

Buka file notebooks/file_search_store.ipynb di editor Anda. Jika Anda diminta untuk menginstal ekstensi Jupyter VS Code, lanjutkan dan lakukan.

Jika kita membukanya di Cloud Shell Editor, tampilannya akan seperti ini:

b87aed3c36a44e81.png

Mari kita jalankan sel demi sel. Mulai dengan menjalankan sel Setup dengan impor yang diperlukan. Jika belum pernah menjalankan notebook sebelumnya, Anda akan diminta untuk menginstal ekstensi yang diperlukan. Harap buat kunci tersebut. Kemudian, Anda akan diminta untuk memilih kernel. Pilih "Python environments...", lalu .venv lokal yang kita instal saat menjalankan make install sebelumnya:

1101585f7bd5040f.png

Lalu:

  • Jalankan sel "Local Only" untuk menarik variabel lingkungan.
  • Jalankan sel "Client Initialisation" untuk melakukan inisialisasi Gemini Gen AI Client.
  • Jalankan sel "Retrieve the Store" dengan fungsi helper untuk mengambil Gemini File Search Store menurut nama.

Sekarang kita siap membuat toko.

  • Jalankan sel "Create the Store (One Time)" untuk membuat toko. Kita hanya perlu melakukannya sekali. Jika kode berhasil dijalankan, Anda akan melihat pesan yang bertuliskan "Created store: fileSearchStores/<someid>"
  • Jalankan sel "View the Store" untuk melihat isinya. Pada tahap ini, Anda akan melihat bahwa indeks tersebut berisi 0 dokumen.

Bagus! Sekarang kita memiliki penyimpanan Gemini File Search yang siap digunakan.

Mengupload Data

Kita ingin mengupload data/story.md ke toko. Lakukan hal berikut:

  • Jalankan sel yang menetapkan jalur upload. Ini mengarah ke folder data/ kita.
  • Jalankan sel berikutnya, yang membuat fungsi utilitas untuk mengupload file ke penyimpanan. Perhatikan bahwa kode dalam sel ini juga menggunakan Gemini untuk mengekstrak metadata dari setiap file yang diupload. Kami mengambil nilai yang diekstrak ini dan menyimpannya sebagai metadata kustom di toko. (Anda tidak perlu melakukannya, tetapi ini adalah hal yang berguna untuk dilakukan.)
  • Jalankan sel untuk mengupload file. Perhatikan bahwa jika kita telah mengupload file dengan nama yang sama sebelumnya, notebook akan menghapus versi yang ada terlebih dahulu sebelum mengupload versi yang baru. Anda akan melihat pesan yang menunjukkan bahwa file telah diupload.

4aeb3d5c91a66358.png

Fase 2 - Menerapkan RAG Penelusuran File Gemini di Agen kami

Kami telah membuat Toko Penelusuran File Gemini dan mengupload cerita kami ke dalamnya. Sekarang saatnya menggunakan File Search Store di agen kita. Mari buat agen baru yang menggunakan Penyimpanan Penelusuran File, bukan Google Penelusuran. Lihat app/sdk_rag_agent.py.

Hal pertama yang perlu diperhatikan adalah kita telah menerapkan fungsi untuk mengambil toko dengan meneruskan nama toko:

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

Setelah memiliki toko, menggunakannya semudah melampirkannya sebagai alat ke agen kita, seperti ini:

   file_search_tool = types.Tool(file_search=types.FileSearch(file_search_store_names=[store.name]))

Menjalankan Agen RAG

Kita meluncurkannya seperti ini:

make sdk-rag-agent

# Or, without make:
uv run python app/sdk_rag_agent.py

Mari kita ajukan pertanyaan yang tidak dapat dijawab oleh agen sebelumnya:

> Who pilots the 'Too Many Pies' ship?

Lalu, apa responsnya?

15659914bcdee9c7.png

Berhasil! Kita dapat melihat dari respons bahwa:

  • Penyimpanan file kami digunakan untuk menjawab pertanyaan.
  • 5 bagian yang relevan ditemukan.
  • Jawabannya tepat!

Ketik quit untuk menutup agen.

7. Mengonversi Agen untuk menggunakan ADK

Agent Development Kit (ADK) Google adalah framework modular dan SDK open source bagi developer untuk membangun agen dan sistem berbasis agen. Hal ini memungkinkan kita membuat dan mengorkestrasi sistem multi-agen dengan mudah. Meskipun dioptimalkan untuk Gemini dan ekosistem Google, ADK tidak bergantung pada model, tidak bergantung pada deployment, dan dibuat agar kompatibel dengan framework lain. Jika Anda belum menggunakan ADK, buka Dokumen ADK untuk mengetahui informasi selengkapnya.

Lihat app/basic_agent_adk/agent.py. Dalam kode contoh ini, Anda dapat melihat bahwa kita telah menerapkan dua agen:

  1. root_agent yang menangani interaksi dengan pengguna, dan tempat kita memberikan petunjuk sistem utama.
  2. SearchAgent terpisah yang menggunakan google.adk.tools.google_search sebagai alat.

root_agent sebenarnya menggunakan SearchAgent sebagai alat, yang diterapkan menggunakan baris ini:

   tools=[AgentTool(agent=search_agent)],

Perintah sistem agen root terlihat seperti ini:

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.

Mencoba Agen

ADK menyediakan sejumlah antarmuka siap pakai untuk memungkinkan developer menguji agen ADK mereka. Salah satu antarmuka tersebut adalah UI Web. Dengan begitu, kita dapat menguji agen di browser, tanpa harus menulis satu baris kode antarmuka pengguna pun.

Kita dapat meluncurkan antarmuka ini dengan menjalankan:

make adk-playground

# Or, without make:
uv run adk web app --port 8501 --reload_agents

Perhatikan bahwa perintah mengarahkan alat adk web ke folder app, tempat alat tersebut akan otomatis menemukan agen ADK yang menerapkan root_agent. Jadi, mari kita coba:

89218e7915011dd3.png

Setelah beberapa detik, aplikasi akan siap. Jika Anda menjalankan kode secara lokal, cukup arahkan browser Anda ke http://127.0.0.1:8501. Jika Anda menjalankan di Editor Cloud Shell, klik "Web preview", lalu ubah port ke 8501:

1b416cc40d67d794.png

Saat UI muncul, pilih basic_agent_adk dari dropdown, lalu kita dapat mengajukan pertanyaan kepadanya:

a2acc9901de49e20.gif

Sejauh ini, hasilnya bagus. UI web bahkan menunjukkan kepada Anda saat agen root mendelegasikan ke SearchAgent. Ini adalah fitur yang sangat berguna.

Sekarang, mari kita ajukan pertanyaan yang memerlukan pengetahuan tentang cerita kita:

5a9f9ec06a29160.png

Cobalah sendiri. Anda akan mendapati bahwa perintah tersebut gagal dengan cepat, seperti yang diarahkan.

Menggabungkan File Search Store ke dalam agen ADK

Sekarang kita akan menggabungkan semuanya. Kita akan menjalankan agen ADK yang dapat menggunakan File Search Store dan Google Penelusuran. Lihat kode di app/rag_agent_adk/agent.py.

Kodenya mirip dengan contoh sebelumnya, tetapi dengan beberapa perbedaan penting:

  1. Kita memiliki agen root yang mengorkestrasi dua agen spesialis:
  2. RagAgent: Pakar pengetahuan khusus - menggunakan Gemini File Search Store kami
  3. SearchAgent: Pakar pengetahuan umum - menggunakan Google Penelusuran
  4. Karena ADK belum memiliki wrapper bawaan untuk FileSearch, kita menggunakan class wrapper kustom FileSearchTool untuk mem-wrap alat FileSearch, yang menyuntikkan konfigurasi file_search_store_names ke permintaan model tingkat rendah. Hal ini telah diterapkan ke dalam skrip terpisah app/rag_agent_adk/tools_custom.py.

Selain itu, ada "perangkap" yang harus diwaspadai. Pada saat penulisan, Anda tidak dapat menggunakan alat GoogleSearch bawaan dan alat FileSearch dalam permintaan yang sama ke agen yang sama. Jika Anda mencoba, Anda akan mendapatkan error seperti ini:

ERROR - Terjadi error: 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'Search as a tool and file search tool are not supported together', 'status': 'INVALID_ARGUMENT'}}

Error: 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'Search as a tool and file search tool are not supported together', 'status': 'INVALID_ARGUMENT'}}

Solusinya adalah menerapkan dua agen spesialis sebagai subagen terpisah, dan meneruskannya ke agen root menggunakan pola Agent-as-a-Tool. Yang penting, petunjuk sistem agen root memberikan panduan yang sangat jelas untuk menggunakan RagAgent terlebih dahulu:

Anda adalah asisten AI yang berguna dan dirancang untuk memberikan informasi yang akurat dan bermanfaat.

Anda memiliki akses ke dua agen spesialis:

  1. RagAgent: Untuk informasi khusus dari pusat informasi internal.
  2. SearchAgent: Untuk informasi umum dari Google Penelusuran.

Selalu coba RagAgent terlebih dahulu. Jika hal ini gagal memberikan jawaban yang berguna, coba SearchAgent.

Ujian Akhir

Jalankan UI web ADK seperti sebelumnya:

make adk-playground

# Or, without make:
uv run adk web app --port 8501 --reload_agents

Kali ini, pilih rag_agent_adk di UI. Mari kita lihat penerapannya: c4d2cdaa3257e115.gif

Kita dapat melihat bahwa subagen yang dipilih sesuai dengan pertanyaan yang diajukan.

8. Kesimpulan

Selamat, Anda telah menyelesaikan codelab ini.

Anda telah beralih dari skrip sederhana ke sistem multi-agen yang mendukung RAG; semuanya tanpa satu baris kode embedding pun, dan tanpa harus menerapkan database vektor.

Kami mempelajari:

  • Penelusuran File Gemini adalah solusi RAG terkelola yang menghemat waktu dan tenaga.
  • ADK memberi kita struktur yang diperlukan untuk aplikasi multi-agen yang kompleks, dan memberikan kemudahan bagi developer melalui antarmuka seperti UI Web.
  • Pola "Agent-as-a-Tool" memecahkan masalah kompatibilitas alat.

Semoga lab ini bermanfaat bagi Anda. Sampai jumpa di lain waktu.