1. Pengantar
Lab ini berfokus pada penerapan dan deployment layanan agen klien. Anda akan menggunakan Agent Development Kit (ADK) untuk membangun agen AI yang menggunakan alat.
Di lab ini, kita akan membangun agen kebun binatang yang menggunakan Wikipedia untuk menjawab pertanyaan tentang hewan.

Terakhir, kita akan men-deploy agen pemandu wisata ke Cloud Run Google, bukan hanya menjalankannya secara lokal.
Prasyarat
- Project Google Cloud yang mengaktifkan penagihan.
Yang akan Anda pelajari
- Cara menyusun project Python untuk deployment ADK.
- Cara menerapkan agen yang menggunakan alat dengan google-adk.
- Cara men-deploy aplikasi Python sebagai container serverless ke Cloud Run.
- Cara mengonfigurasi autentikasi service-to-service yang aman menggunakan peran IAM.
- Cara menghapus resource Cloud untuk menghindari biaya di masa mendatang.
Yang Anda butuhkan
- Akun Google Cloud dan Project Google Cloud
- Browser web seperti Chrome
2. 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, bukan pada pengelolaan infrastruktur yang mendasarinya. Kami menangani pekerjaan operasional untuk Anda.
Anggap saja seperti toko pop-up: toko ini hanya buka dan menggunakan resource saat pelanggan (permintaan) datang. Jika tidak ada pelanggan, toko akan ditutup sepenuhnya, dan Anda tidak perlu membayar toko yang kosong.
Fitur Utama
Menjalankan Container di Mana Saja:
- Anda membawa container (image Docker) yang berisi aplikasi Anda.
- Cloud Run menjalankannya di infrastruktur Google.
- Tidak ada patching OS, penyiapan VM, atau masalah penskalaan.
Penskalaan Otomatis:
- Jika 0 orang menggunakan aplikasi Anda → 0 instance berjalan (turun ke nol instance yang hemat biaya).
- Jika 1.000 permintaan masuk → maka akan diluncurkan 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 Memorystore.
Mendukung Bahasa atau Framework Apa Pun:
- Selama berjalan di container Linux, Cloud Run bisa menangani Python, Go, Node.js, Java, atau .Net.
Bayar Sesuai Penggunaan:
- Penagihan berbasis permintaan: Ditagih per permintaan + waktu komputasi (hingga 100 md).
- Penagihan berbasis instance: Ditagih untuk masa aktif instance penuh (tanpa biaya per permintaan).
3. Penyiapan project
Akun Google
Jika belum memiliki Akun Google pribadi, Anda harus membuat Akun Google.
Gunakan akun pribadi, bukan akun kantor atau sekolah.
Login ke Konsol Google Cloud
Login ke Konsol Google Cloud menggunakan Akun Google pribadi.
Aktifkan Penagihan
Menyiapkan akun penagihan pribadi
Jika menyiapkan penagihan menggunakan kredit Google Cloud, Anda dapat melewati langkah ini.
Untuk menyiapkan akun penagihan pribadi, buka di sini untuk mengaktifkan penagihan di Cloud Console.
Beberapa Catatan:
- Menyelesaikan lab ini akan dikenai biaya kurang dari $1 USD untuk resource Cloud.
- Anda dapat mengikuti langkah-langkah di akhir lab ini untuk menghapus resource agar tidak dikenai biaya lebih lanjut.
- Pengguna baru memenuhi syarat untuk mengikuti Uji Coba Gratis senilai$300 USD.
Membuat project (opsional)
Jika Anda tidak memiliki project saat ini yang ingin digunakan untuk lab ini, buat project baru di sini.
4. Buka Cloud Shell Editor
- Klik link ini untuk langsung membuka Cloud Shell Editor
- Jika diminta untuk memberikan otorisasi kapan saja hari ini, klik Authorize untuk melanjutkan.

- Jika terminal tidak muncul di bagian bawah layar, buka terminal:
- Klik Lihat
- Klik Terminal

5. Mengaktifkan API
Untuk menggunakan Cloud Run, Artifact Registry, Cloud Build, Vertex AI, dan Compute Engine, Anda harus mengaktifkan API masing-masing di project Google Cloud Anda.
- Di terminal, aktifkan API:
Setelah selesai dijalankan, Anda akan melihat output seperti berikut:gcloud services enable \ run.googleapis.com \ artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ aiplatform.googleapis.com \ compute.googleapis.comOperation "operations/acat.p2-[GUID]" finished successfully.
Memperkenalkan API
- Cloud Run Admin API (
run.googleapis.com) memungkinkan Anda menjalankan layanan frontend dan backend, tugas batch, atau situs di lingkungan yang terkelola sepenuhnya. Layanan ini menangani infrastruktur untuk men-deploy dan menskalakan aplikasi dalam container Anda. - Artifact Registry API (
artifactregistry.googleapis.com) menyediakan repositori pribadi yang aman untuk menyimpan image container Anda. Artifact Registry adalah evolusi Container Registry dan terintegrasi secara lancar dengan Cloud Run dan Cloud Build. - Cloud Build API (
cloudbuild.googleapis.com) adalah platform CI/CD serverless yang menjalankan build Anda di infrastruktur Google Cloud. Layanan ini digunakan untuk membangun image container Anda di cloud dari Dockerfile Anda. - Vertex AI API (
aiplatform.googleapis.com) memungkinkan aplikasi yang di-deploy berkomunikasi dengan model Gemini untuk melakukan tugas AI inti. API ini menyediakan API terpadu untuk semua layanan AI Google Cloud. - Compute Engine API (
compute.googleapis.com) menyediakan virtual machine yang aman dan dapat disesuaikan yang berjalan di infrastruktur Google. Meskipun dikelola, Compute Engine API sering kali diperlukan sebagai dependensi dasar untuk berbagai resource komputasi dan jaringan.
6. Menyiapkan lingkungan pengembangan
Membuat direktori
- Di terminal, buat direktori project dan subdirektori yang diperlukan:
cd && mkdir zoo_guide_agent && cd zoo_guide_agent - Di terminal, jalankan perintah berikut untuk membuka direktori
zoo_guide_agentdi penjelajah Cloud Shell Editor:cloudshell open-workspace ~/zoo_guide_agent - Panel explorer di sebelah kiri akan dimuat ulang. Sekarang Anda akan melihat direktori yang Anda buat.
Menetapkan project Anda
- Di terminal, tetapkan project Anda dengan perintah ini:
Contoh:gcloud config set project [PROJECT_ID]gcloud config set project lab-project-id-example
- Anda akan melihat pesan ini:
Updated property [core/project].
Persyaratan penginstalan
- Jalankan perintah berikut di terminal untuk membuat file
requirements.txt.cloudshell edit requirements.txt - Tambahkan kode berikut ke file
requirements.txtyang baru dibuatgoogle-adk==1.14.0 langchain-community==0.3.27 wikipedia==1.4.0 - Di terminal, buat dan aktifkan lingkungan virtual menggunakan uv. Tindakan ini memastikan dependensi project Anda tidak bertentangan dengan Python sistem.
uv venv source .venv/bin/activate - Instal paket yang diperlukan ke lingkungan virtual Anda di terminal.
uv pip install -r requirements.txt
Menyiapkan variabel lingkungan
- Gunakan perintah berikut di terminal untuk membuat file
.env.# 1. Set the variables in your terminal first PROJECT_ID=$(gcloud config get-value project) PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)") SA_NAME=lab2-cr-service # 2. Create the .env file using those variables cat <<EOF > .env PROJECT_ID=$PROJECT_ID PROJECT_NUMBER=$PROJECT_NUMBER SA_NAME=$SA_NAME SERVICE_ACCOUNT=${SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com MODEL="gemini-2.5-flash" EOF
7. Membuat Alur Kerja Agen
Buat file __init__.py
- Buat file init.py dengan menjalankan perintah berikut di terminal:
File ini memberi tahu Python bahwa direktori zoo_guide_agent adalah paket.cloudshell edit __init__.py - Tambahkan kode berikut ke file
__init__.pybaru:from . import agent
Buat file agent.py
- Buat file
agent.pyutama dengan menempelkan perintah berikut ke terminal.cloudshell edit agent.py - Impor dan Penyiapan Awal: Tambahkan kode berikut ke file
agent.pyAnda yang saat ini kosong: Blok pertama fileimport os import logging import google.cloud.logging from dotenv import load_dotenv from google.adk import Agent from google.adk.agents import SequentialAgent 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")agent.pyini membawa semua library yang diperlukan dari ADK dan Google Cloud. File ini juga menyiapkan logging dan memuat variabel lingkungan dari file.envAnda, yang sangat penting untuk mengakses URL model dan server Anda. - Tentukan alat: Kualitas agen bergantung pada alat yang dapat digunakannya. Tambahkan kode berikut ke bagian bawah
agent.pyuntuk menentukan alat: Penjelasan Alat# 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 Wikipedia Tool wikipedia_tool = LangchainTool( tool=WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper()) )add_prompt_to_state📝: Alat ini mengingat pertanyaan pengunjung kebun binatang. Saat pengunjung bertanya, "Di mana singanya?", alat ini menyimpan pertanyaan spesifik tersebut ke memori agen sehingga agen lain dalam alur kerja tahu apa yang harus diteliti.
Cara: Fungsi ini adalah fungsi Python yang menulis perintah pengunjung ke dalam kamustool_context.statebersama. 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.LangchainTool🌍: Ini memberikan pengetahuan umum tentang dunia kepada agen pemandu wisata. Saat pengunjung mengajukan pertanyaan yang tidak ada di database kebun binatang, seperti "Apa makanan singa di alam liar?", alat ini memungkinkan agen mencari jawabannya di Wikipedia.
Cara: Bertindak sebagai adaptor, sehingga agen kita dapat menggunakan alat WikipediaQueryRun bawaan dari library LangChain.
- Tentukan agen Specialist: Tambahkan kode berikut ke bagian bawah
agent.pyuntuk menentukan agencomprehensive_researcherdanresponse_formatter:# 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=[ 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 } """ )- Agen
comprehensive_researcheradalah "otak" operasi kita. Agen ini mengambil perintah pengguna dariStateyang dibagikan, memeriksa apakah perintah tersebut adalah Alat Wikipedia, dan memutuskan mana yang akan digunakan untuk menemukan jawabannya. - Peran agen
response_formatteradalah presentasi. Agen ini mengambil data mentah yang dikumpulkan oleh agen Peneliti (diteruskan melalui Status) dan menggunakan kemampuan bahasa LLM untuk mengubahnya menjadi respons percakapan yang ramah.
- Agen
- Tentukan agen Alur kerja: Tambahkan blok kode ini ke bagian bawah
agent.pyuntuk menentukan agen berurutantour_guide_workflow: Agen alur kerja bertindak sebagai pengelola 'back office' untuk tur ke kebun binatang. Alat ini menerima permintaan riset dan memastikan kedua agen yang kita definisikan di atas melakukan tugasnya dalam urutan yang benar: pertama riset, lalu pemformatan. Hal ini menciptakan proses yang dapat diprediksi dan andal untuk menjawab pertanyaan pengunjung.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 ] )
Cara: Ini adalahSequentialAgent, jenis agen khusus yang tidak berpikir sendiri. Satu-satunya tugasnya adalah menjalankan daftarsub_agents(peneliti dan pemformat) dalam urutan tetap, dengan otomatis meneruskan memori bersama dari satu ke yang berikutnya. - Menyusun alur kerja utama: Tambahkan blok kode terakhir ini ke bagian bawah
agent.pyuntuk menentukanroot_agent: Framework ADK menggunakanroot_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] )root_agentsebagai titik awal untuk semua percakapan baru. Peran utamanya adalah mengatur keseluruhan proses. Agen ini bertindak sebagai pengontrol awal, yang mengatur giliran pertama percakapan.

File agent.py lengkap
File agent.py Anda kini telah selesai. Dengan membangunnya seperti ini, Anda dapat melihat bagaimana setiap komponen, yakni alat, agen pekerja, dan agen pengelola, memiliki peran khusus dalam menciptakan sistem akhir yang cerdas.
File lengkap akan terlihat seperti ini:
import os
import logging
import google.cloud.logging
from dotenv import load_dotenv
from google.adk import Agent
from google.adk.agents import SequentialAgent
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")
# 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 Wikipedia Tool
wikipedia_tool = LangchainTool(
tool=WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())
)
# 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=[
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 }
"""
)
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
]
)
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]
)
Selanjutnya adalah deployment.
8. Menyiapkan aplikasi untuk deployment
Memeriksa struktur akhir
Sebelum men-deploy, pastikan direktori project Anda berisi file yang benar.
- Pastikan folder
zoo_guide_agentAnda terlihat seperti ini:zoo_guide_agent/ ├── .env ├── __init__.py ├── agent.py └── requirements.txt
Menyiapkan izin IAM
Setelah kode lokal Anda siap, langkah berikutnya adalah menyiapkan identitas yang akan digunakan agen Anda di cloud.
- Di terminal, muat variabel ke sesi shell Anda.
source .env - Buat akun layanan khusus untuk layanan Cloud Run Anda agar memiliki izinnya sendiri yang spesifik. Tempelkan kode berikut ke terminal:
Dengan membuat identitas khusus untuk aplikasi tertentu ini, Anda memastikan bahwa agen hanya memiliki izin yang tepat yang diperlukan, bukan menggunakan akun default dengan akses yang terlalu luas.gcloud iam service-accounts create ${SA_NAME} \ --display-name="Service Account for lab 2 " - Berikan peran Vertex AI User ke akun layanan, yang memberinya izin untuk memanggil model Google.
# Grant the "Vertex AI User" role to your service account gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$SERVICE_ACCOUNT" \ --role="roles/aiplatform.user"
9. Men-deploy agen menggunakan ADK CLI
Setelah kode lokal dan project Google Cloud Anda sudah siap semuanya, saatnya men-deploy agen. Anda akan menggunakan perintah adk deploy cloud_run, alat praktis yang mengotomatiskan seluruh alur kerja deployment. Satu perintah ini akan mengemas kode Anda, membangun image container, mengirimkannya ke Artifact Registry, dan meluncurkan layanan di Cloud Run, sehingga dapat diakses di web.
- Jalankan perintah berikut di terminal untuk men-deploy agen Anda.
Perintah# Run the deployment command uvx --from google-adk \ adk deploy cloud_run \ --project=$PROJECT_ID \ --region=europe-west1 \ --service_name=zoo-tour-guide \ --with_ui \ . \ -- \ --labels=dev-tutorial=codelab-adk \ --service-account=$SERVICE_ACCOUNTuvxmemungkinkan Anda menjalankan alat command line yang dipublikasikan sebagai paket Python tanpa memerlukan penginstalan global alat tersebut. - Jika Anda diminta melakukan hal berikut:
Jika ya, ketikDeploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [europe-west1] will be created. Do you want to continue (Y/n)?
Y, lalu tekan ENTER. - Jika Anda diminta melakukan hal berikut:
KetikAllow unauthenticated invocations to [your-service-name] (y/N)?.
y, lalu tekan ENTER. Hal ini memungkinkan pemanggilan yang tidak diautentikasi untuk lab ini agar pengujian menjadi mudah. Setelah berhasil dieksekusi, perintah akan memberikan URL layanan Cloud Run yang di-deploy. (Tampilannya akan terlihat sepertihttps://zoo-tour-guide-123456789.europe-west1.run.app). - Salin URL layanan Cloud Run yang di-deploy untuk tugas berikutnya.
10. Menguji agen yang di-deploy
Setelah agen Anda aktif di Cloud Run, Anda akan melakukan pengujian untuk mengonfirmasi bahwa deployment berhasil dan agen berfungsi seperti yang diharapkan. Anda akan menggunakan URL Layanan publik (seperti https://zoo-tour-guide-123456789.europe-west1.run.app/) untuk mengakses antarmuka web ADK dan berinteraksi dengan agen.
- Buka URL Layanan Cloud Run publik di browser web Anda. Karena Anda menggunakan
--with_ui flag, Anda akan melihat UI developer ADK. - Aktifkan
Token Streamingdi kanan atas.
Sekarang Anda dapat berinteraksi dengan agen Kebun Binatang. - Ketik
hello, lalu tekan enter untuk memulai percakapan baru. - Amati hasilnya. Agen harus merespons dengan cepat dengan sapaannya, yang akan terlihat seperti ini:
"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?"
- Ajukan pertanyaan kepada agen seperti:
Where can I find the polar bears in the zoo and what is their diet?

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. Penyambut Kebun Binatang (Meja Penerima Tamu)
Seluruh proses dimulai dengan agen penyambut.
- Tugasnya: Memulai percakapan. Instruksinya adalah menyapa pengguna dan menanyakan hewan apa yang ingin mereka pelajari.
- Alatnya: Saat pengguna membalas, Greeter menggunakan alat add_prompt_to_state untuk menangkap kata-kata persisnya (misalnya, "tell me about the lions") dan menyimpannya di memori sistem.
- Pengalihan: Setelah menyimpan perintah, kontrol langsung dialihkan ke sub-agennya, tour_guide_workflow.
2. Peneliti Komprehensif (Peneliti Super)
Ini adalah langkah pertama dalam alur kerja utama dan "otak" dari operasi. Alih-alih tim besar, kini Anda memiliki satu agen yang sangat terampil dan dapat mengakses semua informasi yang tersedia.
- Tugasnya: Menganalisis pertanyaan pengguna dan membentuk rencana yang cerdas. Agen menggunakan kemampuan penggunaan alat model bahasa untuk memutuskan apakah ia memerlukan:
- Pengetahuan umum dari web (melalui Wikipedia API).
- Atau keduanya jika menangani pertanyaan kompleks.
3. Pemformat Respons (Presenter)
Setelah Comprehensive Researcher mengumpulkan semua fakta, agen ini adalah agen terakhir yang dijalankan.
- Tugasnya: Bertindak sebagai suara ramah Pemandu Tur Kebun Binatang. Data mentah (yang bisa berasal dari satu atau kedua sumber) akan diambil dan disempurnakan.
- Tindakannya: Agen menyintesis semua informasi menjadi satu jawaban yang kohesif dan menarik. Sesuai dengan instruksinya, pertama-tama agen akan menyajikan informasi kebun binatang yang spesifik, lalu menambahkan fakta umum yang menarik.
- Hasil Akhir: Teks yang dihasilkan oleh agen ini adalah jawaban lengkap dan mendetail yang dilihat pengguna di jendela chat.
Jika Anda tertarik untuk mempelajari lebih lanjut cara membuat Agen, lihat referensi berikut:
11. Membersihkan lingkungan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Hapus layanan dan image Cloud Run
Jika ingin mempertahankan project Google Cloud, tetapi menghapus resource tertentu yang dibuat di lab ini, Anda harus menghapus layanan yang sedang berjalan dan image container yang disimpan di registry.
- Jalankan perintah berikut di terminal:
gcloud run services delete zoo-tour-guide --region=europe-west1 --quiet gcloud artifacts repositories delete cloud-run-source-deploy --location=europe-west1 --quiet
Menghapus project (Opsional)
Jika Anda membuat project baru khusus untuk lab ini dan tidak berencana menggunakannya lagi, cara termudah untuk membersihkannya adalah dengan menghapus seluruh project. Hal ini memastikan semua resource (termasuk Akun Layanan dan artefak build tersembunyi) dihapus sepenuhnya.
- Di terminal, jalankan perintah berikut (ganti [YOUR_PROJECT_ID] dengan project ID Anda yang sebenarnya)
gcloud projects delete $PROJECT_ID
12. Selamat
Anda telah berhasil membangun dan men-deploy aplikasi AI multi-agen ke Google Cloud.
Rekap
Dalam lab ini, Anda beralih dari direktori kosong ke layanan AI yang aktif dan dapat diakses publik. Berikut tampilan yang telah Anda buat:
- Anda membuat tim khusus: Alih-alih menggunakan satu AI generik, Anda membuat "Peneliti" untuk menemukan fakta dan "Pemformat" untuk menyempurnakan jawaban.
- Anda memberi mereka alat: Anda menghubungkan agen Anda ke dunia luar menggunakan Wikipedia API.
- Anda telah mengirimkannya: Anda telah mengambil kode Python lokal dan men-deploy-nya sebagai container tanpa server di Cloud Run, serta mengamankannya dengan Akun Layanan khusus.
Yang telah kita bahas
- Cara menyusun project Python untuk deployment dengan ADK.
- Cara menerapkan alur kerja multi-agen menggunakan
[SequentialAgent](https://google.github.io/adk-docs/agents/workflow-agents/sequential-agents/). - Cara mengintegrasikan alat eksternal seperti Wikipedia API.
- Cara men-deploy agen ke Cloud Run menggunakan perintah
adk deploy.
13. Survei
Output: