Google Cloud MCP untuk AlloyDB untuk Agen AI

1. Pengantar

23518f986c1cab33.jpeg

Codelab ini memberikan panduan tentang cara memulai server MCP Google Cloud untuk AlloyDB dan mengaktifkannya sebagai bagian dari toolset untuk agen AI serta menggunakannya sebagai bagian dari aplikasi.

Prasyarat

  • Pemahaman dasar tentang Google Cloud, konsol
  • Keterampilan dasar dalam antarmuka command line dan Cloud Shell

Yang akan Anda pelajari

  • Cara membuat cluster AlloyDB dan mengimpor data contoh
  • Cara mengaktifkan AlloyDB Data Access API
  • Cara mengaktifkan MCP Google Cloud untuk NL AlloyDB
  • Cara menambahkan Google Cloud MCP for AlloyDB ke agen ADK Anda
  • Cara menggunakan Google Cloud MCP untuk AlloyDB dalam aplikasi
  • Cara menggunakan agen dengan AlloyDBMCP untuk analisis

Yang Anda butuhkan

  • Akun Google Cloud dan Project Google Cloud
  • Browser web seperti Chrome yang mendukung Konsol Google Cloud dan Cloud Shell

2. Penyiapan dan Persyaratan

Penyiapan Project

  1. Login ke Konsol Google Cloud. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.

Gunakan akun pribadi, bukan akun kantor atau sekolah.

  1. Buat project baru atau gunakan kembali project yang sudah ada. Untuk membuat project baru di Konsol Google Cloud, di header, klik tombol Pilih project yang akan membuka jendela pop-up.

295004821bab6a87.png

Di jendela Select a project, tekan tombol New Project yang akan membuka kotak dialog untuk project baru.

37d264871000675d.png

Di kotak dialog, masukkan Nama project yang Anda inginkan dan pilih lokasi.

96d86d3d5655cdbe.png

  • Project name adalah nama tampilan untuk peserta project ini. Nama project tidak digunakan oleh Google API, dan dapat diubah kapan saja.
  • Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Konsol Google Cloud otomatis membuat ID unik, tetapi Anda dapat menyesuaikannya. Jika tidak menyukai ID yang dibuat, Anda dapat membuat ID acak lain atau memberikan ID Anda sendiri untuk memeriksa ketersediaannya. Di sebagian besar codelab, Anda harus merujuk project ID Anda, yang biasanya diidentifikasi dengan placeholder PROJECT_ID.
  • Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.

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 $3 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 program Uji Coba Gratis senilai$300 USD.

Mulai Cloud Shell

Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.

Dari Google Cloud Console, klik ikon Cloud Shell di toolbar kanan atas:

Mengaktifkan Cloud Shell

Atau, Anda dapat menekan G, lalu S. Urutan ini akan mengaktifkan Cloud Shell jika Anda berada dalam Konsol Google Cloud atau menggunakan link ini.

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

Screenshot terminal Google Cloud Shell yang menunjukkan bahwa lingkungan telah terhubung

Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda dalam codelab ini dapat dilakukan di browser. Anda tidak perlu menginstal apa pun.

3. Sebelum memulai

Aktifkan API

Untuk menggunakan AlloyDB, Compute Engine, Layanan jaringan, dan Vertex AI, Anda harus mengaktifkan API masing-masing di project Google Cloud Anda.

Di dalam terminal Cloud Shell, pastikan project ID Anda sudah disiapkan:

gcloud config get-value project

Project ID Google Anda akan ditampilkan.

Tetapkan variabel lingkungan PROJECT_ID:

PROJECT_ID=$(gcloud config get-value project)

Aktifkan semua layanan yang diperlukan:

gcloud services enable alloydb.googleapis.com \
                       compute.googleapis.com \
                       cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       aiplatform.googleapis.com \
                       discoveryengine.googleapis.com

Output yang diharapkan

student@cloudshell:~ (test-project-001-402417)$ gcloud config set project test-project-001-402417
Updated property [core/project].
student@cloudshell:~ (test-project-001-402417)$ PROJECT_ID=$(gcloud config get-value project)
Your active configuration is: [cloudshell-14650]
student@cloudshell:~ (test-project-001-402417)$ 
student@cloudshell:~ (test-project-001-402417)$ gcloud services enable alloydb.googleapis.com \
                       compute.googleapis.com \
                       cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       aiplatform.googleapis.com \
                       discoveryengine.googleapis.com
Operation "operations/acat.p2-4470404856-1f44ebd8-894e-4356-bea7-b84165a57442" finished successfully.

4. Men-deploy AlloyDB

Buat cluster dan instance utama AlloyDB. Anda dapat men-deploy-nya menggunakan skrip yang sudah disiapkan yang akan men-deploy semua resource yang diperlukan atau Anda dapat melakukannya langkah demi langkah sendiri dengan mengikuti dokumentasi.

Deploy AlloyDB Menggunakan Skrip Otomatis

Pendekatan ini menggunakan skrip otomatis untuk men-deploy cluster AlloyDB dan memberikan informasi yang diperlukan untuk mulai menggunakan resource yang di-deploy.

Di terminal Cloud Shell, jalankan perintah untuk meng-clone skrip deployment dari repositori.

REPO_NAME="codelabs"
REPO_URL="https://github.com/GoogleCloudPlatform/$REPO_NAME"
SOURCE_DIR="alloydb-ai-mcp"

git clone --no-checkout --filter=blob:none --depth=1 $REPO_URL

cd $REPO_NAME
git sparse-checkout set $SOURCE_DIR
git checkout
cd $SOURCE_DIR

Jalankan skrip deployment.

./deploy_alloydb.sh

Skrip akan memerlukan waktu beberapa saat untuk dijalankan - biasanya sekitar 5-7 menit. Kemudian, sebagai output, informasi tentang cluster AlloyDB yang di-deploy akan ditampilkan. Perlu diketahui bahwa sandi Anda akan berbeda - catat sandi tersebut di suatu tempat untuk digunakan pada masa mendatang.

...
<redacted>
...
Creating primary instance: alloydb-aip-01-pr (8 vCPUs for TRIAL cluster)
Operation ID: operation-1765988049916-646282264938a-bddce198-9f248715
Creating instance...done.                                                                                                                                                                                                             
----------------------------------------
Deployment Process Completed
Cluster:  alloydb-aip-01 (TRIAL)
Instance: alloydb-aip-01-pr
Region:   us-central1
Initial Password: JBBoDTgixzYwYpkF (if new cluster)
----------------------------------------
 

Anda juga dapat melihat cluster baru dan instance utama di konsol web

4271eb55bcc9ec84.png

5. Menyiapkan Database

Anda perlu mengaktifkan integrasi Vertex AI untuk menggunakan fungsi dan operator AI, mengaktifkan Data Access API, dan membuat database untuk set data contoh.

Memberikan Izin yang Diperlukan ke AlloyDB

Tambahkan izin Vertex AI ke agen layanan AlloyDB.

Buka tab Cloud Shell lain menggunakan tanda "+" di bagian atas.

abc505ac4d41f24e.png

Di tab Cloud Shell baru, jalankan:

PROJECT_ID=$(gcloud config get-value project)
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
  --role="roles/aiplatform.user"

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
  --role="roles/discoveryengine.viewer"

Output konsol yang diharapkan:

student@cloudshell:~ (test-project-001-402417)$ PROJECT_ID=$(gcloud config get-value project)
Your active configuration is: [cloudshell-11039]
student@cloudshell:~ (test-project-001-402417)$ gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
  --role="roles/aiplatform.user"
Updated IAM policy for project [test-project-001-402417].
bindings:
- members:
  - serviceAccount:service-4470404856@gcp-sa-alloydb.iam.gserviceaccount.com
  role: roles/aiplatform.user
- members:
... < redacted > 
etag: BwYIEbe_Z3U=
version: 1
 

Aktifkan Data Access API

Anda harus mengaktifkan Data Access API di cluster AlloyDB agar dapat menggunakan alat MCP seperti execute_sql.

Di tab terminal yang sama, jalankan.

PROJECT_ID=$(gcloud config get-value project)
REGION=us-central1
ADBCLUSTER=alloydb-aip-01
curl -X PATCH \
 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
 -H "Content-Type: application/json" \
 https://alloydb.googleapis.com/v1alpha/projects/$PROJECT_ID/locations/$REGION/clusters/$ADBCLUSTER/instances/$ADBCLUSTER-pr?updateMask=dataApiAccess \
 -d '{
   "dataApiAccess": "ENABLED",
 }'

Perbarui Tombol Instance

Untuk menggunakan fungsi AI lanjutan di AlloyDB, kita perlu mengaktifkan beberapa tanda database. Setelah mengaktifkan Data Access API, mungkin perlu waktu beberapa menit untuk menampilkan instance yang siap untuk perubahan berikutnya. Lihat status instance di konsol untuk memastikan instance memiliki tanda centang hijau.

Di tab terminal yang sama, jalankan.

PROJECT_ID=$(gcloud config get-value project)
REGION=us-central1
ADBCLUSTER=alloydb-aip-01
gcloud beta alloydb instances update $ADBCLUSTER-pr \
   --database-flags=google_ml_integration.enable_model_support=on,google_ml_integration.enable_ai_query_engine=on,google_ml_integration.enable_preview_ai_functions=on \
   --region=$REGION \
   --cluster=$ADBCLUSTER \
   --project=$PROJECT_ID \
   --update-mode=FORCE_APPLY

Aktifkan MCP

Langkah berikutnya adalah mengaktifkan server MCP Google Cloud untuk AlloyDB di project Anda. Secara default, MCP tidak diaktifkan dan merupakan salah satu dari beberapa lapisan perlindungan, termasuk autentikasi dan otorisasi IAM, API akses data, dan peran di dalam cluster Anda.

Di tab terminal yang sama, jalankan.

PROJECT_ID=$(gcloud config get-value project)
gcloud beta services mcp enable alloydb.googleapis.com \
    --project=$PROJECT_ID

Tutup tab dengan menjalankan perintah "exit" di tab:

exit

Menghubungkan ke AlloyDB Studio

Di bab-bab berikutnya, semua perintah SQL yang memerlukan koneksi ke database dapat dijalankan di AlloyDB Studio. T

Buka halaman Cluster di AlloyDB untuk Postgres.

Buka antarmuka konsol web untuk cluster AlloyDB Anda dengan mengklik instance utama.

1d7298e7096e7313.png

Kemudian, klik AlloyDB Studio di sebelah kiri:

a33131c72ad29478.png

Pilih database postgres, pengguna postgres, dan berikan sandi yang dicatat saat kita membuat cluster. Kemudian, klik tombol "Autentikasi".

Jika sandi tidak berfungsi atau Anda lupa mencatat sandi - Anda dapat mengubah sandi. Lihat dokumentasi tentang cara melakukannya.

2fcb84f70448118c.png

Tindakan ini akan membuka antarmuka AlloyDB Studio. Untuk menjalankan perintah di database, klik tab "Untitled Query" di sebelah kanan.

6696bc771fab9983.png

Tindakan ini akan membuka antarmuka tempat Anda dapat menjalankan perintah SQL

ae34288e5bf237c7.png

Buat Database

Mulai cepat pembuatan database.

Di Editor AlloyDB Studio, jalankan perintah berikut.

Buat database:

CREATE DATABASE quickstart_db

Output yang diharapkan:

Statement executed successfully

Hubungkan ke quickstart_db

Periksa apakah database Anda dibuat dengan menghubungkannya. Hubungkan kembali ke studio menggunakan tombol untuk mengganti pengguna/database.

6f5c98f5d0b3d550.png

Pilih database quickstart_db baru dari daftar dropdown dan gunakan pengguna dan sandi yang sama seperti sebelumnya.

3171ebd8a95f1306.png

Tindakan ini akan membuka koneksi baru tempat Anda dapat menggunakan objek dari database quickstart_db. Di sana, Anda dapat memeriksa skema dan data yang diimpor.

6. Data Sampel

Sekarang Anda perlu membuat objek di database dan memuat data. Anda akan menggunakan set data perusahaan pengiriman fiktif Cymbal Shipping. Aplikasi ini memiliki data fiktif tentang barang, truk, permintaan, dan perjalanan truk beserta pengemudi fiktif.

Membuat Bucket Penyimpanan

Anda akan menggunakan Google SDK (gcloud) untuk mengimpor data dari repositori yang di-clone ke database AlloyDB dan perlu membuat bucket penyimpanan untuk itu serta memberikan akses ke akun layanan AlloyDB. Atau, Anda selalu dapat mencoba melakukannya menggunakan konsol web seperti yang dijelaskan dalam dokumentasi.

Di terminal Google Cloud Shell, jalankan:

PROJECT_ID=$(gcloud config get-value project)
REGION=us-central1
gcloud storage buckets create gs://$PROJECT_ID-import --project=$PROJECT_ID --location=$REGION
gcloud storage buckets add-iam-policy-binding gs://$PROJECT_ID-import --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" --role=roles/storage.objectViewer

Memuat Data

Langkah selanjutnya adalah memuat data. Dump SQL kita berada di folder repositori yang di-clone. Perintah berikut mengasumsikan bahwa Anda telah menggunakan direktori beranda sebagai titik awal saat meng-clone repositori pada langkah sebelumnya saat membuat cluster AlloyDB.

Salin dump SQL yang dikompresi ke bucket penyimpanan baru:

REPO_NAME="codelabs"
SOURCE_DIR="alloydb-ai-mcp"
cd ~/$REPO_NAME/$SOURCE_DIR
gcloud storage cp ~/$REPO_NAME/$SOURCE_DIR/postgres_dump.sql.gz  gs://$PROJECT_ID-import

Kemudian, muat data ke database quickstart_db:

PROJECT_ID=$(gcloud config get-value project)
CLUSTER_NAME=alloydb-aip-01
REGION=us-central1
gcloud alloydb clusters import $CLUSTER_NAME  --region=us-central1 --database=quickstart_db --gcs-uri=gs://$PROJECT_ID-import/postgres_dump.sql.gz --project=$PROJECT_ID --sql

Perintah ini akan memuat set data sampel ke database quickstart_db. Anda dapat memverifikasi tabel dan data menggunakan AlloyDB Studio.

7. Menggunakan Agen Data

Mari kita mulai dari agen AI contoh yang dibuat menggunakan Google ADK untuk Python dan menunjukkan cara mengonfigurasinya agar dapat bekerja dengan server MCP Google Cloud untuk AlloyDB.

Periksa kode sumber Agen

Di repositori yang di-clone, tinjau kode agen menggunakan editor Google Cloud Shell.

REPO_NAME="codelabs"
SOURCE_DIR="alloydb-ai-mcp"
edit ~/$REPO_NAME/$SOURCE_DIR/cymbal_logistic/data_agent/agent.py

Anda dapat melihat di agen bahwa kita memiliki bagian untuk server MCP Google Cloud untuk AlloyDB. Kami menyediakan endpoint sebagai MCP_SERVER_URL, autentikasi, ID project, dan menambahkannya ke toolset MCP.

# Google Cloud MCP Server for AlloyDB

MCP_SERVER_URL = "https://alloydb.googleapis.com/mcp"
creds, project_id = default(scopes=["https://www.googleapis.com/auth/cloud-platform"])
if not creds.valid:
    creds.refresh(GoogleAuthRequest())

print(f"Authenticated as project: {project_id}")

# 2. Configure MCP Toolset
# We use StreamableHTTPConnectionParams to pass the auth header
headers = {
    "Authorization": f"Bearer {creds.token}",
    "X-Goog-User-Project": project_id
}
    
connection_params = StreamableHTTPConnectionParams(
    url=MCP_SERVER_URL,
    headers=headers,
    timeout=300.0,
    sse_read_timeout=600.0
)

mcp_toolset = McpToolset(connection_params=connection_params)

Dalam kode agen, rangkaian alat MCP disertakan sebagai parameter tools untuk agen. Selain itu, ada nama cluster dan instance, region, dan database sebagai variabel untuk perintah agen.

MODEL_ID = "gemini-3-flash-preview"
cluster_name="alloydb-aip-01"
instance_name="alloydb-aip-01-pr"
location="us-central1"
database_name="quickstart_db"

# Agent configuration

root_agent = Agent(
    model=MODEL_ID,
    name='root_agent',
    description='A helpful assistant for analyst requests.',
    instruction=f"""
    Answer user questions to the best of your knowledge using provided tools.
    Do not try to generate non-existent data but use the grounded data from the database.
    When you answer questions about Cymbal Logistic activity
    use the toolset to run query in the AlloyDB cluster {cluster_name} instance {instance_name} in the location {location}
    in the project {project_id} in the database {database_name}
    Use ai schema to use AI functions and models like gemini-3-flash-preview with the functions from the schema.
    """,
    tools=[mcp_toolset],
)

Layanan MCP Google Cloud untuk AlloyDB memiliki serangkaian alat yang telah ditentukan sebelumnya. Jika ingin mencantumkan semua alat yang tersedia, Anda dapat menggunakan perintah curl dari terminal konsol Cloud Shell menggunakan perintah berikut. Anda juga dapat memeriksa referensi terbaru untuk server MCP Google Cloud untuk AlloyDB di dokumentasi.

curl -s -X POST http://alloydb.googleapis.com/mcp \
  -H "Content-Type: application/json" \
  -d @- <<EOF | jq -r '.result.tools[].name'
{
  "id": "my_id_01",
  "jsonrpc": "2.0",
  "method": "tools/list"
}
EOF

Mulai Agen

Sekarang Anda dapat memulai agen dalam mode interaktif menggunakan antarmuka web Google ADK. Antarmuka web ADK menyediakan cara mudah untuk menguji dan memecahkan masalah alur kerja agen.

Pertama, mari kita instal semua paket yang diperlukan untuk Python menggunakan pengelola paket uv.

REPO_NAME="codelabs"
SOURCE_DIR="alloydb-ai-mcp"
cd ~/$REPO_NAME/$SOURCE_DIR/cymbal_logistic
uv sync

Setelah semua paket diinstal, Anda perlu menambahkan file .env ke direktori agen untuk mengarahkannya agar menggunakan Vertex AI untuk semua komunikasi dengan model AI.

echo "GOOGLE_GENAI_USE_VERTEXAI=true" > data_agent/.env
echo "GOOGLE_CLOUD_PROJECT=$(gcloud config get-value project -q)" >> data_agent/.env
echo "GOOGLE_CLOUD_LOCATION=global" >> data_agent/.env

Kemudian, Anda dapat memulai agen

uv run adk web --allow_origins 'regex:https://.*\.cloudshell\.dev'

Anda akan melihat output seperti berikut dengan endpoint seperti http://127.0.0.1:8000 .

4aa60270e31efe37.jpeg

Anda dapat mengklik URL tersebut di cloud shell dan URL akan membuka jendela pratinjau di tab browser terpisah tempat Anda memilih data_agent dari daftar drop-down di sebelah kiri.

811a5b12534432d8.jpeg

Di antarmuka web ADK, Anda dapat memposting pertanyaan di kanan bawah dan melihat alur eksekusi lengkap termasuk rekaman aktivitas untuk setiap langkah di sisi kanan.

8. Menguji MCP AlloyDB dengan Agen

Agen ini memungkinkan Anda mengajukan pertanyaan dalam bentuk bebas menggunakan bahasa alami dan agen akan menggunakan server MCP Google Cloud untuk AlloyDB sebagai alat untuk menjawab pertanyaan. Pertanyaan diposting di kanan bawah dan jawaban dengan semua panggilan ke alat akan muncul di bagian atas.

8c7058ed2b8c2dd8.jpeg

Anda sedang bekerja dengan data operasional untuk perusahaan pengiriman yang memiliki informasi tentang permintaan pengiriman, truk, pengemudi, dan perjalanan yang dilakukan oleh pengemudi. Pertanyaan pertama adalah tentang jumlah perjalanan yang dilakukan pada Februari 2026.

Di kolom input di kanan bawah, ketik berikut ini, lalu tekan enter.

Hello, can you tell me how many trips we've done in February this year? 

Agen akan menjalankan beberapa panggilan alat untuk mengidentifikasi tabel yang tepat dalam skema dan struktur tabel sebelum menjalankan pernyataan SQL yang benar untuk mendapatkan data yang tepat.

160d758589f025f1.jpeg

Pada akhirnya, hasil akan ditampilkan setelah membuat kueri yang tepat dan menjalankannya di database.

Berdasarkan catatan dalam database kami, ada 108 perjalanan yang diselesaikan pada Februari 2026.

Anda dapat melihat fungsi setiap panggilan alat dengan mengklik eksekusi alat. Misalnya, berikut kueri yang dijalankan untuk mendapatkan hasil.

9285cfe2291e085b.jpeg

Sekarang, buat permintaan yang lebih rumit dengan meminta untuk membandingkan hasil dengan bulan sebelumnya.

How is it in comparison in numbers and mileage with the January?

Plugin ini menampilkan hasil dengan menjalankan kueri yang berbeda untuk menganalisis hasil dan memberikan perbedaan dalam jumlah perjalanan dan jarak tempuh.

In comparison to January 2026, February saw a slight decrease in both the number of trips and the total mileage:

January 2026: 114 trips with a total mileage of 185,597 km.
February 2026: 108 trips with a total mileage of 177,893 km.
This represents a decrease of 6 trips and 7,704 km in mileage for February compared to January.

Coba permintaan sederhana lainnya menggunakan antarmuka web ADK dan lihat cara ADK menjalankan kueri yang berbeda untuk mendapatkan hasil.

Hentikan agen dengan menekan ctrl+c di terminal. Anda dapat menutup tab browser dengan antarmuka web ADK.

Sekarang Anda dapat mencoba aplikasi contoh dan melihat cara penggunaannya sebagai alat untuk analis data.

9. Contoh Aplikasi

Di repositori yang sama yang di-clone, kita memiliki aplikasi contoh untuk perusahaan Cymbol Logistic. Aplikasi ini menggunakan framework Python Mesop Google .

Anda dapat menganalisis kode aplikasi dengan membuka file app.py di editor Cloud Shell.

REPO_NAME="codelabs"
SOURCE_DIR="alloydb-ai-mcp"
edit ~/$REPO_NAME/$SOURCE_DIR/cymbal_logistic/app.py

Dalam kode, kita menggunakan fungsi untuk meneruskan perintah baru dengan variabel ke agen data. Tujuannya adalah agar dapat mengonfigurasinya di antarmuka jika kita memutuskan untuk memanggil database atau instance yang berbeda. Berikut definisi fungsi dan perintahnya.

def run_query_sync(request_text, cluster_name, location, instance_name, database_name, project_id, session_id, summary):
    local_runner = FrontendRunner()
    
    instruction = f"""
    Answer user questions to the best of your knowledge using provided tools.
    Do not try to generate non-existent data but use the grounded data from the database.
    When you answer questions about Cymbal Logistic activity
    use the toolset to run query in the AlloyDB cluster {cluster_name} instance {instance_name} in the location {location}
    in the project {project_id} in the database {database_name}
    Use ai schema to use AI functions and models like gemini-3-flash-preview with the functions from the schema.
    """
    ...

Setelah memeriksa kode, tekan tombol "terminal" untuk memulai dan menguji aplikasi kita. Aplikasi akan dimulai di port 8080. Jika Anda ingin mengubah port, sesuaikan perintah dengan mengubah nilai port.

Di cloud shell, jalankan.

REPO_NAME="codelabs"
SOURCE_DIR="alloydb-ai-mcp"
cd ~/$REPO_NAME/$SOURCE_DIR/cymbal_logistic
uv run mesop app.py --port=8080

Kemudian, gunakan pratinjau web di Google Cloud Shell dengan mengklik http://localhost:8080

ea2315883c3e583a.jpeg

Alat ini akan membuka tab baru di browser dengan antarmuka aplikasi.

Klik kotak centang "Aktifkan Output Debug" di kanan atas, lalu ketik pertanyaan seperti berikut.

What was the average speed for each driver last month? List top 5 fasters drivers ranking them by the average speed. Show the name, distance and average speed for each of them.

236bf33373ee8bf.jpeg

Kemudian, tekan tombol Submit Request.

Agen akan bekerja di balik layar dan menghasilkan output serta informasi debug dengan semua kueri yang dijalankan oleh toolset MCP kami. Periksa kueri untuk melihat alur kerja.

4130ea489058d102.jpeg

Anda dapat menguji kemampuan agen dan aplikasi dengan mencoba berbagai pertanyaan analisis.

Sejauh ini, Anda dapat melakukan beberapa analisis dan penemuan dasar menggunakan agen dengan MCP. Di bab berikutnya, Anda akan mencoba menggunakan fitur AlloyDB yang lebih canggih.

10. Fungsi AlloyDB AI

Fungsi AlloyDB AI memungkinkan pemfilteran dan peringkat cerdas atas teks dan data multimodal (terutama gambar) serta menghadirkan kecanggihan Gemini ke kueri Anda. Secara khusus, fungsi AI AlloyDB AI.IF dan AI.RANK dapat muncul dalam pernyataan SQL bersama dengan operator SQL konvensional (filter, gabungan, agregasi, dll.).

Sebelum menggunakan fungsi AI, kita akan memeriksa penelusuran dan penggabungan menggunakan metode "klasik". Coba perintah berikut.

Can you analyze the activity for the last 5 months and evaluate drivers for the most positive customer feedbacks. Give me top 5 drivers listing names, distance and years of experience for each driver.

Model ini dapat menemukan kolom "rating" dalam tabel dengan masukan pelanggan dan menggunakannya untuk mengidentifikasi faktor pendorong dengan rating terbaik. Kemudian, informasi tersebut digunakan untuk mendapatkan informasi lebih lanjut tentang pengemudi.

SELECT 
    d.first_name || ' ' || d.last_name as driver_name,
    SUM(sr.distance_km) as total_distance,
    d.experience_years,
    COUNT(cf.feedback_id) as positive_feedback_count

FROM drivers d

JOIN truck_trips tt ON d.driver_id = tt.driver_id

JOIN customer_feedback cf ON tt.trip_id = cf.trip_id

JOIN shipping_requests sr ON tt.request_id = sr.request_id

WHERE tt.arrival_time >= '2025-12-01' 
AND tt.arrival_time < '2026-05-01'
  
AND cf.rating >= 4

GROUP BY d.driver_id, d.first_name, d.last_name, d.experience_years

ORDER BY positive_feedback_count DESC, total_distance DESC

LIMIT 5;

Namun, secara teknis, rating tersebut mungkin menyertakan atau tidak menyertakan semua parameter yang ingin kita evaluasi. Untuk itu, kita dapat menggunakan Fungsi AI AlloyDB.

Operator AI.RANK

Fungsi ai.rank() memberikan skor seberapa baik dokumen menjawab kueri tertentu. Dapat digunakan untuk memberi peringkat atau memberi ulang peringkat hasil kueri. Anda dapat membaca operator selengkapnya di dokumentasi.

Ubah permintaan dan minta secara eksplisit untuk menggunakan AI.RANK selama analisis guna mengevaluasi pendorong berdasarkan performa dan profesionalisme mereka.

Can you find the top 5 fastest drivers in the last month and rank them by the feedback using the AI.RANK function?  Give me top drivers  names, distance, years of experience and rank for each driver.

Perintah ini mungkin memerlukan waktu lebih lama karena agen harus mencari tahu cara menggunakan fungsi AI.RANK, mendapatkan data, dan menerapkan AI.RANK untuk mengurutkan informasi dengan tepat. Pada akhirnya, Anda akan mendapatkan daftar pengemudi yang diberi peringkat oleh model dan daftar kueri yang dijalankan.

477342ca1aaf1c13.jpeg

Kueri tersebut mungkin memerlukan waktu beberapa saat untuk dieksekusi, bergantung pada jalur yang dipilih model. Anda dapat melihat kueri persis yang dijalankan untuk mendapatkan informasi tentang pengemudi di jendela debug.

WITH fastest_drivers AS (
    SELECT 
        d.driver_id,
        d.first_name || ' ' || d.last_name as driver_name,
        d.experience_years,
        SUM(sr.distance_km) as total_distance,
        AVG(sr.distance_km / (NULLIF(EXTRACT(EPOCH 
FROM (tt.arrival_time - tt.departure_time)), 0) / 3600)) as avg_speed,
        COALESCE(STRING_AGG(cf.feedback_text, ' | '), 'No feedback') as feedbacks,
        ROW_NUMBER() OVER (
ORDER BY AVG(sr.distance_km / (NULLIF(EXTRACT(EPOCH 
FROM (tt.arrival_time - tt.departure_time)), 0) / 3600)) DESC) - 1 as row_idx
    
FROM drivers d
    
JOIN truck_trips tt ON d.driver_id = tt.driver_id
    
JOIN shipping_requests sr ON tt.request_id = sr.request_id
    LEFT 
JOIN customer_feedback cf ON tt.trip_id = cf.trip_id
    
WHERE tt.arrival_time >= '2026-04-04'
      
AND tt.arrival_time IS NOT NULL 
      
AND tt.departure_time IS NOT NULL
      
AND tt.arrival_time > tt.departure_time
    
GROUP BY d.driver_id, d.first_name, d.last_name, d.experience_years
    
ORDER BY avg_speed DESC
    
LIMIT 5
)
SELECT 
    f.driver_name,
    f.total_distance,
    f.experience_years,
    f.avg_speed,
    f.feedbacks,
    (SELECT r.score 
FROM ai.rank(
        'semantic-ranker-fast-004',
        'excellent customer service, professional, friendly, fast, 
and reliable delivery reviews',
        ARRAY[f.feedbacks],
        1
    ) r 
LIMIT 1) as feedback_score

FROM fastest_drivers f

ORDER BY feedback_score DESC;

Anda dapat terus menguji aplikasi dan memeriksa kueri untuk melihat cara agen mendapatkan hasil akhir.

Dengan demikian, lab ini telah selesai. Semoga Anda telah mempelajari semua contoh dan mempelajari cara menggunakan layanan MCP Google Cloud untuk AlloyDB. Agar MCP Anda berfungsi untuk perusahaan, sebaiknya gabungkan MCP dengan fitur NL2SQL AlloyDB yang dijelaskan dalam dokumentasi AlloyDB. Anda dapat mencobanya menggunakan codelab tentang membuat pernyataan SQL untuk AlloyDB.

11. Membersihkan lingkungan

Untuk mencegah biaya yang tidak terduga, sebaiknya bersihkan resource sementara. Cara yang paling andal adalah menghapus project tempat Anda menguji alur kerja. Namun, secara opsional, Anda dapat membatasi diri dengan menghapus setiap resource, seperti AlloyDB.

Hancurkan instance dan cluster AlloyDB setelah Anda selesai mengerjakan lab.

Hapus cluster AlloyDB dan semua instance

Jika Anda telah menggunakan versi uji coba AlloyDB. Jangan hapus cluster uji coba jika Anda berencana menguji lab dan resource lain menggunakan cluster uji coba. Anda tidak akan dapat membuat cluster uji coba lain dalam project yang sama.

Cluster tersebut dihancurkan dengan opsi paksa yang juga akan menghapus semua instance milik cluster tersebut.

Di Cloud Shell, tentukan variabel project dan lingkungan jika koneksi Anda terputus dan semua setelan sebelumnya hilang:

gcloud config set project <your project id>
export REGION=us-central1
export ADBCLUSTER=alloydb-aip-01
export PROJECT_ID=$(gcloud config get-value project)

Hapus cluster:

gcloud alloydb clusters delete $ADBCLUSTER --region=$REGION --force

Output konsol yang diharapkan:

student@cloudshell:~ (test-project-001-402417)$ gcloud alloydb clusters delete $ADBCLUSTER --region=$REGION --force
All of the cluster data will be lost when the cluster is deleted.

Do you want to continue (Y/n)?  Y

Operation ID: operation-1697820178429-6082890a0b570-4a72f7e4-4c5df36f
Deleting cluster...done.   

Hapus Cadangan AlloyDB

Hapus semua cadangan AlloyDB untuk cluster:

for i in $(gcloud alloydb backups list --filter="CLUSTER_NAME: projects/$PROJECT_ID/locations/$REGION/clusters/$ADBCLUSTER" --format="value(name)" --sort-by=~createTime) ; do gcloud alloydb backups delete $(basename $i) --region $REGION --quiet; done

Output konsol yang diharapkan:

student@cloudshell:~ (test-project-001-402417)$ for i in $(gcloud alloydb backups list --filter="CLUSTER_NAME: projects/$PROJECT_ID/locations/$REGION/clusters/$ADBCLUSTER" --format="value(name)" --sort-by=~createTime) ; do gcloud alloydb backups delete $(basename $i) --region $REGION --quiet; done
Operation ID: operation-1697826266108-60829fb7b5258-7f99dc0b-99f3c35f
Deleting backup...done.                                                                                                                                                                                                                                                            

12. Selamat

Selamat, Anda telah menyelesaikan codelab.

Yang telah kita bahas

  • Cara membuat cluster AlloyDB dan mengimpor data contoh
  • Cara mengaktifkan AlloyDB Data Access API
  • Cara mengaktifkan MCP Google Cloud untuk NL AlloyDB
  • Cara menambahkan Google Cloud MCP for AlloyDB ke agen ADK Anda
  • Cara menggunakan Google Cloud MCP untuk AlloyDB dalam aplikasi
  • Cara menggunakan agen dengan AlloyDBMCP untuk analisis

13. Survei

Output:

Bagaimana Anda akan menggunakan tutorial ini?

Hanya membacanya Membaca dan menyelesaikan latihannya