GSP1350

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 MCP. Prinsip arsitektur utama yang ditunjukkan dalam lab ini adalah pemisahan masalah, dengan lapisan penalaran yang berbeda (agen) berkomunikasi dengan lapisan alat yang berbeda (server MCP) melalui API yang aman.
Server MCP telah di-deploy sebelumnya untuk Anda di lab ini yang menyediakan data tentang hewan di kebun binatang fiktif ke LLM, misalnya saat menggunakan Gemini CLI. Di lab ini, Anda kemudian akan membangun agen pemandu wisata, yang terdiri dari aplikasi Python, untuk kebun binatang fiktif. Agen tersebut kemudian menggunakan server MCP untuk mengakses detail tentang hewan kebun binatang, dan juga menggunakan Wikipedia untuk menciptakan pengalaman pemandu wisata terbaik.
Terakhir, Anda men-deploy agen pemandu wisata ke Google Cloud Run, sehingga dapat diakses oleh semua pengunjung kebun binatang, dan bukan hanya berjalan secara lokal.
Prasyarat
- Server MCP yang berjalan di Cloud Run atau URL Layanan terkait.
- Project Google Cloud yang mengaktifkan penagihan.
Yang akan Anda pelajari
Di 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 rangkaian alatnya.
- Men-deploy aplikasi Python sebagai container serverless ke Cloud Run.
- Mengonfigurasi autentikasi layanan ke layanan yang aman menggunakan peran IAM.
- Hapus resource Cloud untuk menghindari biaya di masa mendatang.
Yang akan Anda butuhkan
- Akun Google Cloud dan Project Google Cloud
- Browser web seperti Chrome
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.
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 Cloud Run
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 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, salinan sebanyak yang diperlukan itulah yang akan dibuat.
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
- Selama berjalan di container Linux, Cloud Run bisa menangani Python, Go, Node.js, Java, atau .Net.
Bayar sesuai penggunaan
- Ditagih per permintaan + waktu komputasi (hingga 100 md).
- Anda tidak membayar resource yang tidak digunakan 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.
-
Klik Activate Cloud Shell
di bagian atas Konsol Google Cloud.
-
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.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
- Klik Authorize.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Untuk menetapkan akun aktif, jalankan:
$ gcloud config set account `ACCOUNT`
- (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
Dalam tugas ini, Anda akan mengaktifkan API yang relevan dan membuat folder project untuk menyimpan kode sumber untuk deployment project Python Anda.
Mengaktifkan API dan menetapkan variabel lingkungan
- Di Cloud Shell, klik Open Editor untuk membuka Cloud Shell Editor ke direktori utama Anda.
- 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 Cloud Shell Terminal (bawah), untuk sisa lab ini.
Tutup panel Gemini atau tutorial tambahan yang muncul di sisi kanan layar agar ruang jendela bagi editor kode Anda lebih besar.
-
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 project lagi.
-
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
-
Jalankan perintah berikut, yang akan membuat folder utama di lab untuk kode sumber agen:
mkdir zoo_guide_agent && cd zoo_guide_agent
-
Selanjutnya, jalankan perintah berikut untuk membuat lingkungan virtual:
uv venv
-
Jalankan perintah berikut untuk mengaktifkan lingkungan virtual:
source .venv/bin/activate
Sekarang Anda siap membuat file requirements.txt. File ini mencantumkan library Python yang dibutuhkan oleh agen kebun binatang Anda.
-
Jalankan perintah berikut untuk membuat file dalam direktori zoo_guide_agent dan meluncurkannya di Cloud Shell Editor agar Anda dapat mengedit file tersebut:
cloudshell edit requirements.txt
-
Tambahkan yang berikut ke file requirements.txt dan tekan CTRL+S untuk menyimpan perubahan Anda:
google-adk==1.12.0
langchain-community
wikipedia
-
Jalankan perintah berikut di terminal agar pengelola paket uv menginstal paket Python Anda:
uv pip install -r requirements.txt
-
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 ulang variabel di atas.
-
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.
-
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"
Terhubung ke endpoint server MCP yang aman
Di bagian ini, Anda akan membuat koneksi ke server MCP jarak jauh Anda.
-
Kembali ke terminal Cloud Shell dan jalankan perintah berikut untuk 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"
-
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
-
Selanjutnya, Anda akan membuat file __init__.py. File ini memberi tahu Python bahwa direktori zoo_guide_agent adalah sebuah paket:
cloudshell edit __init__.py
-
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
Dalam tugas ini, Anda akan mengonfigurasi alur kerja agen pemandu tur kebun binatang. Pertama, impor library yang relevan untuk penyiapan awal. Kemudian, tentukan kemampuan agen kebun binatang (alat yang digunakannya) dan tentukan agen spesialis. Setelah itu, tentukan agen alur kerja, dan terakhir, susunlah alur kerja utama.
Membuat file agent.py utama
Langkah 1: Mengimpor library dan melakukan penyiapan awal
Blok pertama ini membawa semua library yang diperlukan dari ADK dan Google Cloud. File ini juga menyiapkan logging dan memuat variabel lingkungan dari file .env Anda, yang fungsinya penting untuk mengakses model dan URL server Anda.
Langkah 2: Menentukan alat (kemampuan agen)
Kualitas agen bergantung pada alat yang dapat digunakannya. Di bagian ini, Anda akan menentukan semua kemampuan agen Anda, termasuk fungsi kustom untuk menyimpan data, alat MCP yang terhubung ke server MCP aman Anda, beserta alat Wikipedia.
Penjelasan ketiga alat
-
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: Ini adalah fungsi Python yang menulis perintah pengunjung ke dalam kamus tool_context.state 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.
-
MCPToolset: 🦁Digunakan untuk menghubungkan agen pemandu wisata ke server MCP kebun binatang yang telah di-deploy sebelumnya di lab ini. Server ini memiliki alat khusus untuk mencari informasi spesifik tentang hewan kebun binatang, seperti nama, usia, dan kandangnya.
Cara: Terhubung dengan aman ke URL server pribadi kebun binatang. Aplikasi ini menggunakan get_id_token untuk otomatis mendapatkan "kartu kunci" yang aman (token ID akun layanan) untuk membuktikan identitasnya dan mendapatkan akses.
-
LangchainTool: 🌍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, yang memungkinkan agen Anda menggunakan alat WikipediaQueryRun yang telah dibuat sebelumnya dari library LangChain.
Referensi:
Langkah 3: Menentukan agen spesialis
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 bersama, memeriksa alat-alat canggihnya (Alat Server MCP Zoo dan Alat Wikipedia), dan memutuskan alat mana yang akan digunakan untuk menemukan jawabannya.
Peran agen pemformat respons adalah presentasi. 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.
Langkah 4: 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 di langkah 3 menjalankan tugasnya dalam urutan yang benar: riset terlebih dahulu, lalu pemformatan. Ini akan menciptakan proses yang dapat diprediksi dan andal untuk menjawab pertanyaan pengunjung kebun binatang.
Cara: 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.
Langkah 5: Menyusun alur kerja utama
Alur kerja utama ditetapkan melalui root_agent, yang digunakan framework ADK sebagai titik awal untuk semua percakapan baru. Peran utama agen ini adalah mengatur keseluruhan proses. Agen ini bertindak sebagai pengontrol awal, yang mengatur giliran pertama percakapan.
File agent.py Anda kini sudah 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. 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.
Ini melibatkan pemeriksaan akhir terhadap struktur file agen Anda untuk memastikan kompatibilitasnya dengan perintah deployment. Yang lebih penting lagi, Anda mengonfigurasi izin IAM penting yang memungkinkan layanan Cloud Run yang di-deploy bertindak atas nama Anda dan memanggil model Vertex AI. Menyelesaikan langkah ini akan memastikan lingkungan cloud siap menjalankan agen Anda dengan sukses.
-
Kembali ke terminal Cloud Shell dan jalankan perintah berikut untuk memuat variabel ke dalam sesi shell Anda:
source .env
-
Jalankan perintah berikut untuk memberikan peran Vertex AI User kepada akun layanan, yang memberikannya izin untuk membuat prediksi dan 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"
Tugas 4. Men-deploy agen menggunakan ADK CLI
Setelah kode lokal dan project Google Cloud Anda sudah siap semuanya, saatnya men-deploy agen.
Dalam tugas ini, Anda akan menggunakan perintah adk deploy cloud_run, yang merupakan 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
-
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 \
.
-
Jika Anda diminta untuk melanjutkan dan/atau mengizinkan pemanggilan yang tidak diautentikasi ke [zoo-tour-guide], ketik Y di setiap kasus, lalu tekan ENTER.
Catatan: Perintah deployment ini mungkin memerlukan waktu 5–10 menit untuk selesai dijalankan.
-
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
Mendapatkan link deployment
-
Setelah agen berhasil di-deploy ke Cloud Run, tekan CTRL+klik Service URL di output untuk membukanya di tab browser baru.
Formatnya harus 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 digunakan secara eksklusif untuk tujuan pengujian.
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, dalam 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.
-
Buka URL layanan Cloud Run publik yang dihasilkan di tugas sebelumnya di browser web Anda atau klik URL di output (URL akan terbuka di tab browser baru). Tindakan ini akan membuka UI developer ADK.
-
Alihkan Token Streaming ke On di kanan atas toolbar ADK.
Sekarang Anda dapat berinteraksi dengan agen Zoo.
-
Ketik hello di kotak perintah dan tekan ENTER untuk memulai percakapan baru.
Amati hasilnya. Agen harus 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?"
-
Sekarang, berinteraksilah dengan agen pemandu kebun binatang. Masukkan kueri berikut untuk memulai percakapan baru:
Where can I find penguins?
Anda akan mendapatkan respons seperti berikut:

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 (The Welcome Desk)
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. The Comprehensive Researcher (The Super-Researcher)
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. Ini menggunakan kemampuan penggunaan alat yang canggih dari model bahasa untuk memutuskan apakah perlu:
- Data internal dari catatan kebun binatang (melalui Server MCP).
- Pengetahuan umum dari web (melalui Wikipedia API).
- Atau keduanya jika menangani pertanyaan kompleks.
Tindakannya: Mengeksekusi alat yang diperlukan untuk mengumpulkan semua data mentah yang dibutuhkan. Misalnya, jika ditanya "How old are our lions and what do they eat in the wild?", agen ini akan memanggil server MCP menemukan usia dan alat Wikipedia untuk menemukan informasi makanan.
3. The Response Formatter (The 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.
Langkah berikutnya/Pelajari lebih lanjut
Jika Anda tertarik untuk mempelajari lebih lanjut cara membangun Agen, lihat referensi berikut:
Tugas 6. Membersihkan lingkungan
Dalam tugas ini, Anda akan menghapus resource Cloud yang Anda buat di lab ini untuk menghindari biaya di masa mendatang.
Selamat!
Di 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.
Manual Terakhir Diperbarui pada 13 Oktober 2025
Lab Terakhir Diuji pada 13 Oktober 2025
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.