Enable the APIs

Periksa progres saya

/ 10

Deploy the Agent

Periksa progres saya

/ 90

Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.

GSP1350

Lab mandiri Google Cloud

Ringkasan

Lab ini berfokus pada implementasi dan deployment layanan agen klien menggunakan Agent Development Kit (ADK) untuk membangun agen AI yang menggunakan alat-alat jarak jauh seperti server Model Context Protocol (MCP). Prinsip utama arsitektur yang ditunjukkan dalam lab ini adalah pemisahan tanggung jawab. Lapisan penalaran yang terpisah (agen) berkomunikasi dengan lapisan alat yang juga terpisah (server MCP) melalui API yang aman.

Server MCP, yang menyediakan data tentang hewan-hewan di sebuah kebun binatang fiktif, telah di-deploy sebelumnya ke LLM untuk Anda. Dalam lab ini, Anda akan membangun agen pemandu tur berupa aplikasi Python, untuk kebun binatang fiktif itu. Agen tersebut kemudian menggunakan server MCP untuk mengakses detail tentang hewan-hewan kebun binatang, dan juga menggunakan Wikipedia untuk menciptakan pengalaman pemandu tur terbaik.

Ilustrasi kartun hewan dan pemandu kebun binatang sedang menyaksikan peluncuran roket ke langit

Terakhir, Anda akan men-deploy agen pemandu tur tersebut ke Google Cloud Run agar dapat diakses oleh semua pengunjung kebun binatang, bukan hanya berjalan secara lokal.

Yang akan Anda pelajari

Dalam lab ini, Anda akan mempelajari cara melakukan tugas berikut:

  • Menyusun project Python untuk deployment ADK.
  • Mengimplementasikan agen yang menggunakan alat dengan google-adk.
  • Menghubungkan agen ke server MCP jarak jauh untuk mengakses rangkaian alatnya.
  • Men-deploy aplikasi Python sebagai container serverless ke Cloud Run.
  • Mengonfigurasi autentikasi layanan ke layanan yang aman menggunakan peran IAM.
  • Menghapus resource Cloud untuk menghindari biaya pada masa mendatang.

Mengapa harus men-deploy ke Cloud Run?

Cloud Run adalah pilihan yang tepat untuk menghosting agen ADK karena merupakan platform serverless, yang berarti Anda dapat berfokus pada kode dan bukan pada pengelolaan infrastruktur yang mendasarinya. Cloud Run menangani pekerjaan operasional untuk Anda.

Bayangkan Cloud Run seperti toko pop-up: toko ini hanya buka dan menggunakan resource saat pelanggan (permintaan) datang. Jika tidak ada pelanggan, toko akan tutup sepenuhnya, dan Anda tidak perlu membayar toko yang kosong.

Fitur utama Cloud Run

Menjalankan container di mana saja

  • Anda menyediakan container (image Docker) yang berisi aplikasi Anda.
  • Cloud Run menjalankannya di infrastruktur Google.
  • Tidak ada masalah penskalaan, penyiapan VM, atau patching OS.

Penskalaan otomatis

  • Jika tidak ada orang yang menggunakan aplikasi Anda, tidak ada pula instance yang berjalan (Anda tidak membayar apa pun jika tidak ada aktivitas).
  • Jika ada 1.000 permintaan masuk, Cloud Run akan menjalankan salinan sebanyak yang diperlukan.

Stateless secara default

  • Setiap permintaan dapat ditujukan ke instance yang berbeda.
  • Jika Anda perlu menyimpan status, gunakan layanan eksternal seperti Cloud SQL, Firestore, atau Redis.

Mendukung bahasa atau framework apa pun

  • Asalkan dijalankan di container Linux, Cloud Run bisa menangani Python, Go, Node.js, Java, atau .Net.

Pembayaran sesuai penggunaan

  • Anda ditagih per permintaan + waktu komputasi (dengan pembulatan per 100 md).
  • Anda tidak membayar untuk resource nonaktif, tidak seperti pada VM tradisional.

Penyiapan dan persyaratan

Sebelum mengklik tombol Start Lab

Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.

Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.

Untuk menyelesaikan lab ini, Anda memerlukan:

  • Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
  • Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.

Mengaktifkan Cloud Shell

Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.

  1. Klik Activate Cloud Shell Ikon Activate Cloud Shell di bagian atas Konsol Google Cloud.

  2. Klik jendela berikut:

    • Lanjutkan melalui jendela informasi Cloud Shell.
    • Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.

Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:

Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}

gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.

  1. (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
  1. Klik Authorize.

Output:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Untuk menetapkan akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project

Output:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.

Tugas 1. Mendownload dan menginstal ADK serta membuat folder project

Pada tugas ini, Anda akan mengaktifkan API yang relevan dan membuat folder project untuk menyimpan kode sumber bagi deployment project Python Anda.

Mengaktifkan API dan menetapkan variabel lingkungan

  1. Di Cloud Shell, klik Open Editor untuk membuka Cloud Shell Editor ke direktori home Anda.
  2. Di panel tindakan Cloud Shell Editor, klik View > Terminal.
Catatan: Anda mungkin harus memperpanjang jendela browser untuk melihat opsi menu View.

Gunakan jendela ini sebagai IDE Anda, dengan Cloud Shell Editor (atas) dan terminal Cloud Shell (bawah), di sepanjang lab ini.

Tutup panel Gemini atau tutorial tambahan yang muncul di sisi kanan layar untuk memperluas ruang bagi editor kode Anda.

  1. Di terminal, masukkan perintah berikut untuk menyiapkan project Anda:

    gcloud config set project {{{project_0.project_id | filled in at lab start}}}

Output yang diharapkan: Anda akan mendapatkan pesan output yang mengonfirmasi properti yang diperbarui.

Catatan: Jika Cloud Shell waktu tunggunya habis atau dimulai ulang, Anda perlu menyiapkan kembali project ini.
  1. Jalankan perintah berikut untuk mengaktifkan semua layanan yang diperlukan:

    gcloud services enable \ run.googleapis.com \ artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ aiplatform.googleapis.com \ compute.googleapis.com

Output yang diharapkan: Anda akan mendapatkan pesan output yang mengonfirmasi bahwa operasi telah berhasil.

Klik Periksa progres saya untuk memverifikasi tujuan. Mengaktifkan API

Membuat direktori project

  1. Jalankan perintah berikut, yang akan membuat folder utama dalam lab untuk kode sumber agen:

    mkdir zoo_guide_agent && cd zoo_guide_agent

Sekarang Anda siap membuat file requirements.txt. File ini mencantumkan library Python yang dibutuhkan oleh agen kebun binatang Anda.

  1. Jalankan perintah berikut untuk membuat file tersebut dalam direktori zoo_guide_agent, lalu luncurkan di Cloud Shell Editor agar Anda dapat mengeditnya:

    cloudshell edit requirements.txt
  2. Tambahkan kode berikut ke file requirements.txt dan tekan CTRL+S untuk menyimpan perubahan Anda:

    google-adk==1.28.0 langchain==1.2.14 langchain-community==0.4.1 wikipedia
  3. Jalankan perintah berikut di terminal untuk menginstal paket Python dan memperbarui PATH Anda:

    export PATH=$PATH:~/.local/bin pip3 install -r requirements.txt --user
  4. Tetapkan variabel untuk project, region, dan pengguna Anda saat ini dengan perintah berikut:

    export PROJECT_ID=$(gcloud config get-value project) export REGION=$(gcloud compute project-info describe \ --format="value(commonInstanceMetadata.items[google-compute-default-region])") export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)") export SERVICE_ACCOUNT="${PROJECT_NUMBER}-compute@developer.gserviceaccount.com"
Catatan: Jika Cloud Shell waktu tunggunya habis atau dimulai ulang, Anda harus menginisialisasi kembali variabel di atas.
  1. Buat dan buka file .env untuk mengautentikasi agen di direktori zoo_guide_agent dengan perintah berikut:

    cloudshell edit .env

Direktori yang berisi file .env akan terbuka di Cloud Shell Editor.

  1. Tambahkan kode berikut ke file .env dan simpan perubahan Anda:

    MODEL="{{{ project_0.startup_script.gemini_flash_model_id | filled in at lab start }}}" SERVICE_ACCOUNT="${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" GOOGLE_GENAI_USE_ENTERPRISE=true GOOGLE_CLOUD_LOCATION=global

Membuat koneksi ke endpoint server MCP yang aman

Di bagian ini, Anda akan membuat koneksi ke server MCP jarak jauh Anda.

  1. Kembali ke terminal Cloud Shell dan jalankan perintah berikut guna memberi identitas layanan Cloud Run izin untuk memanggil server MCP jarak jauh:

    gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$SERVICE_ACCOUNT" \ --role="roles/run.invoker"
  2. Jalankan perintah berikut untuk menyimpan URL server MCP ke variabel lingkungan:

    echo -e "\nMCP_SERVER_URL=https://zoo-mcp-server-${PROJECT_NUMBER}.${REGION}.run.app/mcp/" >> .env
  3. Selanjutnya, jalankan perintah berikut untuk membuat file __init__.py. File ini memberi tahu Python bahwa direktori zoo_guide_agent berupa paket:

    cloudshell edit __init__.py
  4. Di Cloud Shell Editor yang terbuka, tambahkan kode berikut ke __init__.py dan simpan perubahan Anda:

    from . import agent

Tugas 2. Membuat alur kerja agen

Pada tugas ini, Anda akan mengonfigurasi alur kerja agen pemandu tur kebun binatang. Pertama, impor library yang relevan untuk penyiapan awal. Kemudian, tentukan kapabilitas agen kebun binatang (alat yang digunakannya) dan tentukan agen spesialis. Setelah itu, tentukan agen alur kerja, dan terakhir, susun alur kerja utama.

Membuat file agent.py utama

  • Kembali ke terminal Cloud Shell dan jalankan perintah berikut untuk membuat file agent.py utama. File tersebut akan terbuka di Cloud Shell Editor sehingga Anda dapat menempelkan kode lengkap untuk sistem multi-agen Anda pada langkah-langkah berikutnya:

    cloudshell edit agent.py

Mengimpor library dan menjalankan penyiapan awal

Blok pertama ini membawa semua library yang diperlukan dari ADK dan Google Cloud. Blok ini juga menyiapkan logging dan memuat variabel lingkungan dari file .env Anda, yang sangat penting untuk mengakses model dan URL server Anda.

  • Tambahkan kode berikut ke file agent.py Anda:

    import os import sys import logging import google.cloud.logging from dotenv import load_dotenv # Add current directory for workspace utilities sys.path.append(os.path.dirname(os.path.abspath(__file__))) from google.adk import Agent from google.adk.agents import SequentialAgent from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset, StreamableHTTPConnectionParams from google.adk.tools.tool_context import ToolContext from google.adk.tools.langchain_tool import LangchainTool from langchain_community.tools import WikipediaQueryRun from langchain_community.utilities import WikipediaAPIWrapper import google.auth import google.auth.transport.requests import google.oauth2.id_token # --- Setup Logging and Environment --- cloud_logging_client = google.cloud.logging.Client() cloud_logging_client.setup_logging() load_dotenv() model_name = os.getenv("MODEL")

Menentukan alat

Kartun pemandu tur berupa robot tersenyum memegang papan klip dan menyapa pengunjung di pintu masuk kebun binatang Zoobot Adventures

Kualitas agen bergantung pada alat yang dapat digunakannya. Di bagian ini, Anda akan menentukan semua kapabilitas agen Anda, termasuk fungsi kustom untuk menyimpan data, alat MCP yang terhubung ke server MCP aman Anda, beserta alat Wikipedia.

  • Tambahkan kode berikut ke bagian bawah agent.py:

    # Greet user and save their prompt def add_prompt_to_state( tool_context: ToolContext, prompt: str ) -> dict[str, str]: """Saves the user's initial prompt to the state.""" tool_context.state["PROMPT"] = prompt logging.info(f"[State updated] Added to PROMPT: {prompt}") return {"status": "success"} # Configuring the MCP Tool to connect to the Zoo MCP server mcp_server_url = os.getenv("MCP_SERVER_URL") if not mcp_server_url: raise ValueError("The environment variable MCP_SERVER_URL is not set.") def get_id_token(): """Get an ID token to authenticate with the MCP server.""" target_url = os.getenv("MCP_SERVER_URL") audience = target_url.split('/mcp/')[0] request = google.auth.transport.requests.Request() id_token = google.oauth2.id_token.fetch_id_token(request, audience) return id_token """ ## Use this code if you are using the public MCP Server and comment out the code below defining mcp_tools mcp_tools = MCPToolset( connection_params=StreamableHTTPConnectionParams( url=mcp_server_url ) ) """ mcp_tools = MCPToolset( connection_params=StreamableHTTPConnectionParams( url=mcp_server_url, headers={ "Authorization": f"Bearer {get_id_token()}", }, ), ) # Configuring the Wikipedia Tool wikipedia_tool = LangchainTool( tool=WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper()) )

Penjelasan ketiga alat

  • add_prompt_to_state: 📝 Alat ini mengingat pertanyaan pengunjung kebun binatang. Saat pengunjung bertanya, "Di mana singanya?", alat ini akan menyimpan pertanyaan spesifik itu ke memori agen sehingga agen lain dalam alur kerja tersebut tahu apa yang harus diteliti.

    Cara kerja: Alat ini adalah fungsi Python yang menulis perintah pengunjung ke dalam kamus tool_context.state yang digunakan bersama. Konteks alat ini merepresentasikan memori jangka pendek agen untuk satu percakapan. Data yang disimpan ke status oleh satu agen dapat dibaca oleh agen berikutnya dalam alur kerja tersebut.

  • MCPToolset: 🦁 Alat ini digunakan untuk menghubungkan agen pemandu tur ke server MCP kebun binatang yang telah di-deploy sebelumnya dalam lab ini. Server ini memiliki alat khusus untuk mencari informasi spesifik tentang hewan kebun binatang, seperti nama, usia, dan kandangnya.

    Cara kerja: Alat ini membuat koneksi aman ke URL server pribadi kebun binatang. Alat ini menggunakan get_id_token untuk otomatis mendapatkan "kartu kunci" yang aman (token ID akun layanan) agar dapat membuktikan identitasnya dan mendapatkan akses.

  • LangchainTool: 🌍 Alat ini memberikan pengetahuan umum tentang dunia kepada agen pemandu tur. Saat pengunjung mengajukan pertanyaan yang tidak ada dalam database kebun binatang, seperti "Apa makanan singa di alam liar?", alat ini memungkinkan agen mencari jawabannya di Wikipedia.

    Cara kerja: Alat ini berfungsi sebagai adaptor, sehingga agen Anda dapat menggunakan alat WikipediaQueryRun yang telah dibangun sebelumnya dari library LangChain.

Referensi:

Menentukan agen spesialis

Kartun robot di meja komputer dengan monitor besar yang menampilkan konten Server Kebun Binatang MCP dan Wikipedia

Di bagian ini, Anda akan menentukan dua agen spesialis, yaitu agen peneliti dan agen pemformat respons. Agen peneliti adalah "otak" dari operasi Anda. Agen ini mengambil perintah pengguna dari State yang digunakan bersama, memeriksa alat-alat canggihnya (Alat Server MCP Kebun Binatang dan Alat Wikipedia), serta memutuskan alat mana yang akan digunakan untuk menemukan jawaban.

Peran agen pemformat respons berfokus pada penyajian informasi. Agen ini tidak menggunakan alat apa pun untuk menemukan informasi baru. Sebaliknya, agen ini mengambil data mentah yang dikumpulkan oleh agen Peneliti (diteruskan melalui State) dan menggunakan kemampuan bahasa LLM untuk mengubahnya menjadi respons percakapan yang mudah dipahami.

  • Tambahkan kode berikut ke bagian bawah agent.py:

    # 1. Researcher Agent comprehensive_researcher = Agent( name="comprehensive_researcher", model=model_name, description="The primary researcher that can access both internal zoo data and external knowledge from Wikipedia.", instruction=""" You are a helpful research assistant. Your goal is to fully answer the user's PROMPT. You have access to two tools: 1. A tool for getting specific data about animals AT OUR ZOO (names, ages, locations). 2. A tool for searching Wikipedia for general knowledge (facts, lifespan, diet, habitat). First, analyze the user's PROMPT. - If the prompt can be answered by only one tool, use that tool. - If the prompt is complex and requires information from both the zoo's database AND Wikipedia, you MUST use both tools to gather all necessary information. - Synthesize the results from the tool(s) you use into preliminary data outputs. PROMPT: {{ PROMPT }} """, tools=[ mcp_tools, wikipedia_tool ], output_key="research_data" # A key to store the combined findings ) # 2. Response Formatter Agent response_formatter = Agent( name="response_formatter", model=model_name, description="Synthesizes all information into a friendly, readable response.", instruction=""" You are the friendly voice of the Zoo Tour Guide. Your task is to take the RESEARCH_DATA and present it to the user in a complete and helpful answer. - First, present the specific information from the zoo (like names, ages, and where to find them). - Then, add the interesting general facts from the research. - If some information is missing, just present the information you have. - Be conversational and engaging. RESEARCH_DATA: {{ research_data }} """ )

Menentukan agen alur kerja

Agen alur kerja bertindak sebagai manajer 'back-office' untuk tur kebun binatang. Agen ini menerima permintaan riset dan memastikan kedua agen yang Anda tentukan pada langkah 3 menjalankan tugasnya dalam urutan yang benar: riset terlebih dahulu, lalu pemformatan. Urutan ini akan menciptakan proses yang terprediksi dan andal untuk menjawab pertanyaan pengunjung kebun binatang.

Cara kerja: Agen ini adalah SequentialAgent, jenis agen khusus yang tidak berpikir sendiri. Tugasnya hanyalah menjalankan daftar sub_agents (peneliti dan pemformat) dalam urutan tetap, dengan otomatis meneruskan memori bersama dari satu sub-agen ke sub-agen berikutnya.

  • Tambahkan blok kode berikut ke bagian bawah agent.py:

    tour_guide_workflow = SequentialAgent( name="tour_guide_workflow", description="The main workflow for handling a user's request about an animal.", sub_agents=[ comprehensive_researcher, # Step 1: Gather all data response_formatter, # Step 2: Format the final response ] )

Menyusun alur kerja utama

Diagram visual tiga robot: Greeter-Bot meneruskan Kueri ke Researcher-Bot, yang selanjutnya meneruskan Data yang telah Dianalisis ke Presenter-Bot

Alur kerja utama ditetapkan melalui root_agent, yang digunakan framework ADK sebagai titik awal untuk semua percakapan baru. Peran utama agen ini adalah mengorkestrasi keseluruhan proses. Agen ini bertindak sebagai pengontrol awal, yang mengelola giliran pertama percakapan.

  • Tambahkan blok kode terakhir ini ke bagian bawah agent.py dan simpan perubahan Anda:

    root_agent = Agent( name="greeter", model=model_name, description="The main entry point for the Zoo Tour Guide.", instruction=""" - Let the user know you will help them learn about the animals we have in the zoo. - When the user responds, use the 'add_prompt_to_state' tool to save their response. After using the tool, transfer control to the 'tour_guide_workflow' agent. """, tools=[add_prompt_to_state], sub_agents=[tour_guide_workflow] )

File agent.py Anda kini sudah lengkap.

Dengan membangunnya seperti ini, Anda dapat melihat bagaimana setiap komponen, yakni alat, agen worker, dan agen pengelola, memiliki peran spesifik dalam menciptakan sistem akhir yang cerdas. Selanjutnya adalah deployment.

Tugas 3. Menyiapkan aplikasi untuk deployment

Setelah lingkungan lokal Anda siap, langkah berikutnya adalah menyiapkan project Google Cloud untuk deployment agen pemandu tur kebun binatang.

Proses ini melibatkan pemeriksaan akhir struktur file agen Anda untuk memastikan kompatibilitasnya dengan perintah deployment. Yang lebih penting lagi, Anda akan mengonfigurasi izin IAM penting yang memungkinkan layanan Cloud Run yang di-deploy bertindak atas nama Anda dan memanggil model Agent Platform. Menyelesaikan langkah ini akan memastikan lingkungan cloud siap menjalankan agen Anda dengan sukses.

  1. Kembali ke terminal Cloud Shell dan jalankan perintah berikut untuk memuat variabel ke dalam sesi shell Anda:

    source .env
  2. Jalankan perintah berikut untuk memberikan peran Agent Platform User kepada akun layanan, yang memberinya izin untuk membuat prediksi dan memanggil model Google:

    # Grant the "Agent Platform User" role to your service account gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$SERVICE_ACCOUNT" \ --role="roles/aiplatform.user"

Tugas 4. Men-deploy agen menggunakan CLI ADK

Setelah kode lokal dan project Google Cloud Anda siap, sekarang saatnya men-deploy agen.

Pada tugas ini, Anda akan menggunakan perintah adk deploy cloud_run, yakni alat praktis yang mengotomatiskan seluruh alur kerja deployment. Satu perintah ini mengemas kode Anda, membangun image container, mengirimkannya ke Artifact Registry, dan meluncurkan layanan di Cloud Run agar dapat diakses di web.

Men-deploy agen

  1. Jalankan perintah berikut untuk men-deploy agen Anda:

    # Run the deployment command adk deploy cloud_run \ --project=$PROJECT_ID \ --region=$REGION \ --service_name=zoo-tour-guide \ --with_ui \ .
  2. Jika Anda diminta untuk melanjutkan dan/atau mengizinkan pemanggilan yang tidak diautentikasi ke [zoo-tour-guide], ketik Y untuk tiap pertanyaan, lalu tekan ENTER.

Catatan: Perintah deployment ini mungkin memerlukan waktu 5–10 menit hingga selesai dijalankan.
  1. Jalankan perintah berikut untuk memodifikasi setelan konfigurasi layanan Cloud Run yang ada:

    gcloud run services update zoo-tour-guide \ --region=$REGION \ --update-labels=dev-tutorial=codelab-adk \ --set-env-vars="MODEL=$MODEL,MCP_SERVER_URL=$MCP_SERVER_URL,GOOGLE_CLOUD_LOCATION=global"

Mendapatkan link deployment

  • Setelah berhasil di-deploy ke Cloud Run, agen akan menghasilkan URL Layanan, yang dapat Anda gunakan untuk membukanya di tab browser baru.

    Formatnya akan terlihat seperti berikut. Output URL layanan:

    https://zoo-tour-guide-{{{project_0.startup_script.project_number | filled in at lab start}}}.{{{project_0.default_region | filled in at lab start}}}.run.app

Karena Anda menggunakan flag --with_ui saat men-deploy ke Cloud Run, Anda akan melihat UI developer ADK.

Catatan: Siapa pun yang memiliki URL dapat mengakses agen ini, jadi pendekatan ini sebaiknya hanya digunakan untuk keperluan pengujian. Catatan: Mungkin perlu waktu beberapa menit agar pemeriksaan Pelacakan Aktivitas berhasil setelah deployment yang sukses.

Klik Periksa progres saya untuk memverifikasi tujuan. Men-deploy Agen

Tugas 5. Menguji agen yang di-deploy

Dengan agen Anda yang kini aktif di Cloud Run, pada tugas ini Anda akan melakukan pengujian untuk mengonfirmasi bahwa deployment berhasil dan agen berfungsi seperti yang diharapkan. Anda harus menggunakan URL Layanan publik untuk mengakses antarmuka web ADK dan berinteraksi dengan agen.

  1. Buka URL layanan Cloud Run publik yang dihasilkan pada tugas sebelumnya di browser web Anda atau CTRL + klik URL di output (URL akan terbuka di tab browser baru). Tindakan ini akan membuka UI Developer ADK.

    Jika Anda menerima notifikasi yang menanyakan apakah Anda ingin Cloud Shell membuka situs eksternal, klik Open untuk mengonfirmasi.

  2. Alihkan Token Streaming ke On di kanan atas toolbar ADK.

Sekarang Anda dapat berinteraksi dengan agen Kebun Binatang.

  1. Ketik perintah berikut di kotak perintah, lalu tekan ENTER untuk memulai percakapan baru:
Hello

Amati hasilnya. Agen akan merespons dengan cepat menggunakan sapaan standarnya:

"Hello! I'm your Zoo Tour Guide. I can help you learn about the amazing animals we have here. What would you like to know or explore today?"
  1. Sekarang, coba berinteraksi dengan agen pemandu kebun binatang. Masukkan perintah berikut untuk melanjutkan percakapan:
Where are the penguins located?

Anda akan mendapatkan respons seperti berikut:

screenshot antarmuka chat yang menampilkan percakapan dengan Bot Kebun Binatang dan eksekusi alat

  1. Coba perintah tambahan ini untuk melihat bagaimana agen menggunakan alat yang berbeda (MCP vs. Wikipedia) dan menggabungkan informasi:

Untuk menguji pengetahuan umum (hanya Wikipedia):

What is the average lifespan of a penguin in the wild?

Untuk menguji penggabungan data internal dan eksternal:

What species are the penguins in our zoo, and what do they typically eat in the wild?

Tentang singa (menguji kedua alat lagi):

Where are the lions and what do they eat in the wild?

Tentang beruang kutub (menguji hewan yang mungkin tidak ada di kebun binatang):

Do we have polar bears in this zoo?

Penjelasan alur agen

Sistem Anda beroperasi sebagai tim multi-agen yang cerdas. Prosesnya dikelola dengan urutan yang jelas untuk memastikan alur yang lancar dan efisien, mulai dari pertanyaan pengguna hingga jawaban akhir yang mendetail.

1. The Zoo Greeter (Meja Penerima Tamu)

Seluruh proses dimulai dengan agen penyambut.

Tugasnya: Memulai percakapan. Instruksinya adalah menyapa pengguna dan menanyakan hewan apa yang ingin dipelajari.

Alatnya: Saat pengguna menjawab, Greeter menggunakan alat add_prompt_to_state untuk menangkap kata-kata persisnya (misalnya "beri tahu saya tentang singa") dan menyimpannya ke dalam memori sistem.

Pengalihan: Setelah menyimpan perintah, Greeter langsung mengalihkan kontrol ke sub-agennya, yakni tour_guide_workflow.

2. The Comprehensive Researcher (Peneliti Super)

Agen ini adalah langkah pertama dalam alur kerja utama dan "otak" dari operasi. Alih-alih menugaskan tim besar, kini Anda memiliki satu agen sangat terampil yang dapat mengakses semua informasi yang tersedia.

Tugasnya: Menganalisis pertanyaan pengguna dan menyusun rencana yang cerdas. Agen ini memanfaatkan kapabilitas penggunaan alat yang canggih di model bahasa untuk memutuskan apakah hal berikut diperlukan:

  • Data internal dari kumpulan data kebun binatang (melalui Server MCP).
  • Pengetahuan umum dari web (melalui Wikipedia API).
  • Atau keduanya jika menangani pertanyaan kompleks.

Tindakannya: Agen ini mengeksekusi alat yang diperlukan untuk mengumpulkan semua data mentah yang dibutuhkan. Misalnya, jika ditanya "Berapa usia singa kita dan apa makanan mereka di alam liar?", agen ini akan memanggil server MCP untuk meminta informasi usia dan alat Wikipedia untuk menemukan informasi makanan.

3. The Response Formatter (Penyaji Informasi)

Setelah Comprehensive Researcher mengumpulkan semua fakta, agen ini dijalankan terakhir.

Tugasnya: Bertindak sebagai figur ramah Pemandu Tur Kebun Binatang. Agen ini mengambil data mentah (yang bisa berasal dari satu atau kedua sumber) dan menyempurnakannya.

Tindakannya: Agen ini menyintesis semua informasi menjadi satu jawaban yang kohesif dan menarik. Sesuai instruksinya, agen ini menyajikan terlebih dahulu informasi kebun binatang yang spesifik, lalu menambahkan fakta umum yang menarik.

Hasil Akhir: Teks yang dihasilkan oleh agen ini merupakan jawaban lengkap dan mendetail yang dilihat pengguna di jendela percakapan.

Tugas 6. Membersihkan lingkungan

Pada tugas ini, Anda akan menghapus resource Cloud yang Anda buat dalam lab ini untuk menghindari biaya mendatang.

  • Kembali ke tab terminal Cloud Shell Anda dan jalankan perintah berikut:

    gcloud run services delete zoo-tour-guide --region=$REGION --quiet gcloud artifacts repositories delete cloud-run-source-deploy --location=$REGION --quiet

Langkah berikutnya/Pelajari lebih lanjut

Jika Anda tertarik untuk mempelajari lebih lanjut cara membangun Agen, lihat referensi berikut:

Selamat!

Dalam lab ini, Anda telah mempelajari cara menyusun project Python untuk deployment dengan antarmuka command line ADK, mengimplementasikan alur kerja multi-agen, terhubung ke server MCP jarak jauh untuk menggunakan alatnya, menambah data internal dengan mengintegrasikan alat eksternal seperti Wikipedia API, dan men-deploy agen sebagai container serverless ke Cloud Run.

Panduan Terakhir Diperbarui pada 21 Juli 2026

Lab Terakhir Diuji pada 21 Juli 2026

Hak cipta 2026 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.

Sebelum memulai

  1. Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
  2. Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
  3. Di kiri atas layar, klik Start lab untuk memulai

Gunakan penjelajahan rahasia

  1. Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
  2. Klik Open console dalam mode pribadi

Login ke Konsol

  1. Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
  2. Setujui persyaratan, dan lewati halaman resource pemulihan
  3. Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project

Konten ini tidak tersedia untuk saat ini

Kami akan memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami akan menghubungi Anda melalui email saat konten tersedia

Satu lab dalam satu waktu

Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini

Gunakan penjelajahan rahasia untuk menjalankan lab

Menggunakan jendela Samaran atau browser pribadi adalah cara terbaik untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa, yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.