1. Ringkasan
Memenuhi permintaan perjalanan dengan banyak batasan (seperti merancang itinerari Kyoto sehari penuh dengan anggaran di bawah $100 yang berfokus pada kuil bersejarah dan masakan lokal tanpa galeri seni modern) memerlukan ekstraksi batasan, riset tempat wisata dan tempat makan secara bersamaan, penyusunan jadwal terperinci, dan audit rencana akhir. Mengandalkan satu agen monolitik dengan banyak alat dapat melewatkan langkah-langkah verifikasi atau melanggar pengecualian, sehingga orkestrasi mengoordinasikan sub-agen khusus melalui pengontrol alur kerja deterministik.
Di bagian ketiga dari seri Membangun Agen AI dengan ADK ini, Anda akan membangun perencana perjalanan multi-agen mandiri di Agent Platform menggunakan pengontrol alur kerja Agent Development Kit (ADK) 2 (SequentialAgent, ParallelAgent, dan LoopAgent). Melalui tiga tahap progresif (tanpa memerlukan penyiapan ruang kerja Bagian 1 atau Bagian 2), Anda akan mengoordinasikan enam agen spesialis yang didukung oleh gemini-3.8-flash dengan status sesi bersama (output_key), eksekusi google_search serentak, dan loop penyempurnaan pembuat-pemeriksa yang berulang.
Prasyarat
- Pemahaman tentang konsep AI Generatif
- Kemahiran dasar dalam pemrograman Python
- Pemahaman tentang dasar-dasar agen AI dan Google ADK
Yang Anda pelajari
- Cara membuat scaffold project ADK 2 multi-agen dari awal
- Cara mendesain tim agen khusus yang berbagi status sesi menggunakan
output_key - Cara menggunakan
SequentialAgentuntuk menjalankan sub-agen dalam pipeline langkah demi langkah yang deterministik - Cara menggunakan
ParallelAgentuntuk menjalankan agen riset independen secara serentak untuk latensi yang lebih rendah - Cara menggunakan eskalasi
LoopAgentdanToolContextuntuk menerapkan loop penyempurnaan pembuat-pemeriksa yang berulang - Cara menggabungkan pola berurutan, paralel, dan loop ke dalam alur kerja multi-agen hierarkis
Yang Anda perlukan
- Akun Google (gunakan akun
@gmail.compribadi jika mengklaim poin workshop) - Link kredit workshop dari instruktur Anda (ditambah kamera ponsel untuk memindai kode QR) atau akun Penagihan Cloud yang aktif
- Google Chrome (jendela Samaran direkomendasikan untuk menghindari pencampuran akun pribadi dan kantor)
2. Klaim kredit Google Cloud (Opsional)
Jika Anda menghadiri workshop dengan link kredit acara, klaim kredit Google Developer Program Anda untuk menyediakan akun penagihan tanpa kartu kredit.
Klaim kredit acara Anda
- Buka link kredit workshop di jendela Samaran dan login dengan akun
@gmail.comAnda. - Di Claim Your Benefit, klik Claim Credit:

- Jika diminta untuk membuat profil Google Developer Program, lengkapi formulir.
- Saat Scan to Verify You're Human muncul, pindai kode QR dengan ponsel Anda dan selesaikan verifikasi (muat ulang dan klik Claim Credit lagi jika kode QR tidak muncul):

- Pastikan pesan Successfully claimed your event credit! muncul, lalu klik Open Billing Account:

🔍 Periksa hasil kerja Anda
Penyiapan akun penagihan memerlukan waktu hingga 3 menit:
- Buka Penagihan Google Cloud (atau salin URL ke jendela Samaran Anda) dan pilih Akun penagihan Anda:
https://console.cloud.google.com/billing
- Muat ulang hingga akun
GDP CreditAnda menampilkan status Active:

3. Membuat project Google Cloud (Opsional)
Buat project Google Cloud khusus agar semua resource dari codelab ini tetap terisolasi dan mudah dibersihkan.
- Buka Create a Project (atau salin URL ke jendela Samaran):
https://console.cloud.google.com/projectcreate
- Masukkan detail project Anda:
- Nama project: Misalnya,
google-cloud-workshop - Billing account (jika ditampilkan): Pilih
GDP Credit(atau akun penagihan aktif Anda) - Resource induk: Tidak ada organisasi (atau organisasi Anda jika diperlukan)
- Nama project: Misalnya,
- Catat Project ID yang dihasilkan di bawah nama project, lalu klik Create:

🔍 Periksa hasil kerja Anda
Klik Notifications di toolbar kanan atas, lalu klik Select Project setelah pembuatan project selesai:

4. Menyiapkan lingkungan Anda
Konfigurasikan Google Cloud Shell, aktifkan Agent Platform API, dan buat lingkungan virtual Python 3.12 yang terisolasi dengan uv.
Mengonfigurasi Cloud Shell
- Klik Activate Cloud Shell (
>_) di toolbar Konsol Google Cloud, atau buka Google Cloud Shell secara langsung (atau salin URL ke jendela Samaran Anda):
https://shell.cloud.google.com/?show=ide,terminal

- Klik Authorize jika diminta:

- Pilih Project ID Google Cloud yang aktif dari menu bernomor di terminal Anda:
unset CLOUDSDK_CORE_PROJECT
PS3="Select your project (e.g. 1): "
select PROJECT_ID in $(gcloud projects list --format="value(projectId)"); do
[ -n "$PROJECT_ID" ] && gcloud config set project "$PROJECT_ID" && break
done
Anda akan melihat output yang mirip dengan (project yang tidak diberi tag juga mencetak baris informasi [environment: untagged]):
1) google-cloud-workshop-4210 2) my-cloud-project-8812 Select your project (e.g. 1): 1 Updated property [core/project].
Pastikan Project ID yang Anda pilih muncul ditandai dengan warna kuning di prompt Cloud Shell:

Aktifkan API yang diperlukan
Aktifkan Agent Platform API agar agen ADK Anda dapat memanggil model Gemini:
gcloud services enable aiplatform.googleapis.com
Anda akan melihat output yang mirip dengan:
Operation "operations/acat.p2-..." finished successfully.
Membuat lingkungan virtual Python dan menginstal ADK
Buat ruang kerja ~/adk-agents dan aktifkan lingkungan virtual Python 3.12:
cd ~
mkdir -p adk-agents && cd ~/adk-agents
which uv >/dev/null 2>&1 || curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
uv venv .venv --python 3.12
source .venv/bin/activate
Pastikan awalan (.venv) muncul di awal prompt terminal Anda:

Instal ADK 2 di dalam lingkungan virtual yang aktif:
uv pip install --no-cache "google-adk==2.14.0"
🔍 Periksa hasil kerja Anda
Verifikasi versi adk CLI yang diinstal:
adk --version
Anda akan melihat output yang mirip dengan:
adk, version 2.14.0
5. Membuat scaffold agen perencana perjalanan
Setelah lingkungan Anda siap, gunakan perintah adk create bawaan ADK untuk membuat file awal untuk paket agen travel_planner Anda.
Membuat paket awal
Jalankan adk create dari direktori ~/adk-agents Anda:
cd ~/adk-agents
adk create travel_planner
Saat diminta di terminal, pilih opsi konfigurasi berikut (jika diminta dengan Enable telemetry? [Y/n]: pada operasi pertama, tekan Enter atau ketik n dan tekan Enter):
- Choose a model for the root agent: Ketik
2untuk memilihgemini-3.8-flash(opsi1memilihgemini-3.5-flash), lalu tekan Enter. - Pilih backend: Ketik
2untuk memilih backend Agent Platform Google Cloud (opsi2di menu CLI di bawah) dan tekan Enter. - Enter Google Cloud project ID: Konfirmasi Project ID Anda yang ditampilkan dalam tanda kurung dengan menekan Enter.
- Enter Google Cloud region: Ketik
global, lalu tekan Enter.
adk create menulis GOOGLE_GENAI_USE_ENTERPRISE=1, project ID Anda, dan GOOGLE_CLOUD_LOCATION=global ke dalam travel_planner/.env, sehingga kredensial Anda tetap dikonfigurasi saat Anda mengupdate agent.py nanti.
🔍 Periksa hasil kerja Anda
Anda akan melihat output yang mirip dengan:
Choose a model for the root agent: 1. gemini-3.5-flash 2. gemini-3.8-flash 3. Other models (fill later) Choose model (1, 2, 3): 2 1. Google AI 2. Vertex AI 3. Login with Google Choose a backend (1, 2, 3): 2 You need an existing Google Cloud account and project, check out this link for details: https://google.github.io/adk-docs/get-started/quickstart/#gemini---google-cloud-vertex-ai Enter Google Cloud project ID [google-cloud-workshop-4210]: Enter Google Cloud region [us-central1]: global Agent created in /home/your_username/adk-agents/travel_planner: - .env - .gitignore - __init__.py - agent.py ⚠️ WARNING: Secrets (like GOOGLE_API_KEY) are stored in .env. Next steps: - Chat with your agent in the terminal: adk run travel_planner - Or in the browser: adk web . - Have your coding agent evaluate and deploy it: uvx google-agents-cli setup (other install options: https://adk.dev/get-started/agents-cli/)
Buka folder saat ini di editor kode Cloud Shell agar Anda dapat memeriksa dan mengedit file secara berdampingan dengan terminal:
which cloudshell >/dev/null 2>&1 && cloudshell workspace ~/adk-agents || true
cd ~/adk-agents
source .venv/bin/activate
Menguji agen tunggal default
Sebelum membangun alur kerja multi-agen, luncurkan UI Pengembangan ADK untuk mengamati cara agen tunggal default merespons kueri perencanaan perjalanan yang luas:
cd ~/adk-agents
adk web --allow_origins "*"
Buka UI Pengembangan di browser Anda menggunakan Pratinjau Web Cloud Shell:
- Klik ikon Web Preview di toolbar kanan atas Cloud Shell.
- Pilih Change Port, masukkan
8000, lalu klik Change and Preview.

Setelah UI Web ADK dimuat, kirim salam seperti "hello, what can you do?" atau "Help me plan a trip to Japan":

Perhatikan bahwa root_agent tunggal menjawab langsung dalam satu kali proses tanpa ekstraksi preferensi terstruktur, riset web langsung, atau verifikasi anggaran.
Setelah selesai menguji, tekan Ctrl + C di terminal Cloud Shell untuk menghentikan server adk web dan kembali ke command prompt.
6. Membangun alur kerja SequentialAgent
Sekarang, Anda akan membangun pola orkestrasi pertama: alur kerja linear yang didukung oleh SequentialAgent. Dalam pipeline berurutan, sub-agen dijalankan dalam urutan yang ketat. Pakar pertama mengekstrak parameter terstruktur dan menyimpannya ke status sesi bersama menggunakan output_key="user_preferences", dan pakar kedua membaca {user_preferences} dari status bersama untuk menyusun draf itinerari.

Membuat spesialis awal (specialists.py)
Buka file baru bernama specialists.py di dalam travel_planner/:
cloudshell edit ~/adk-agents/travel_planner/specialists.py
Tempelkan kode berikut ke dalam travel_planner/specialists.py untuk menentukan user_profiler_agent dan itinerary_synthesizer_agent (mengimpor ToolContext dan google_search di awal untuk langkah berikutnya):
from google.adk import Agent
from google.adk.tools import ToolContext, google_search
# --- Specialist 1: The User Profiler ---
user_profiler_agent = Agent(
name="user_profiler_agent",
description="Extracts travel preferences and constraints from user input.",
instruction="""
Extract destination, duration (default 1 day), budget, interests, and exclusions.
Return a single JSON object with keys: "destination", "duration", "budget", "interests", "exclusions".
""",
output_key="user_preferences", # Saves output to state['user_preferences']
)
# --- Specialist 2: The Synthesizer ---
itinerary_synthesizer_agent = Agent(
name="itinerary_synthesizer_agent",
description="Compiles preferences and research into a final Markdown itinerary.",
instruction="""
You are an elite Travel Concierge. Write a Markdown itinerary with an itemized USD and local currency cost breakdown using:
- User Preferences: {user_preferences}
- Activities (if available): {activity_recommendations?}
- Restaurants (if available): {restaurant_recommendations?}
""",
output_key="final_itinerary",
)
Menghubungkan pipeline berurutan (workflows.py)
Buat file baru bernama workflows.py di dalam travel_planner/ untuk mengorkestrasi spesialis:
cloudshell edit ~/adk-agents/travel_planner/workflows.py
Tambahkan definisi SequentialAgent berikut ke travel_planner/workflows.py:
from google.adk.agents import SequentialAgent
from .specialists import (
user_profiler_agent,
itinerary_synthesizer_agent,
)
# 1. SEQUENTIAL PHASE: A linear two-step workflow
master_travel_agent = SequentialAgent(
name="master_travel_agent",
description="Orchestrates the end-to-end travel planning process for trip and itinerary requests.",
sub_agents=[
user_profiler_agent, # Step 1: Extract constraints into user_preferences
itinerary_synthesizer_agent, # Step 2: Draft itinerary from user_preferences
],
)
Menghubungkan alur kerja ke root_agent (agent.py)
Sekarang daftarkan master_travel_agent sebagai sub-agen root_agent. Buka travel_planner/agent.py:
cloudshell edit ~/adk-agents/travel_planner/agent.py
Ganti konten travel_planner/agent.py dengan kode berikut:
from google.adk import Agent
from .workflows import master_travel_agent
MODEL = "gemini-3.8-flash"
root_agent = Agent(
model=MODEL,
name="root_agent",
description="A helpful assistant for user questions.",
instruction=(
"Greet the user and delegate any travel or trip planning requests "
"to master_travel_agent."
),
sub_agents=[master_travel_agent],
)
🔍 Periksa hasil kerja Anda
Mulai UI Web ADK dari terminal Anda:
cd ~/adk-agents
adk web --allow_origins "*"
Buka Web Preview di port 8000 dan masukkan perintah:
Help me plan a trip to Kyoto
Anda akan melihat output yang mirip dengan alur eksekusi berikut di tampilan Events:
1. root_agent -> calls transfer_to_agent(agent_name="master_travel_agent")
2. user_profiler_agent -> outputs JSON {"destination": "Kyoto", "duration": "1 day", ...} to state['user_preferences']
3. itinerary_synthesizer_agent -> reads {user_preferences} and outputs the formatted Markdown itinerary

Klik badge peristiwa apa pun (atau chip State: final_itinerary) dan beralihlah ke tab State di panel inspector kiri untuk mengonfirmasi bahwa user_preferences dan final_itinerary diisi dalam status sesi.
Setelah Anda selesai memeriksa trace, tekan Ctrl + C di terminal untuk menghentikan adk web.
7. Menjalankan riset dengan ParallelAgent
Meskipun alur kerja berurutan memisahkan ekstraksi preferensi dari penyusunan draf itinerari dengan jelas, rekomendasinya masih sepenuhnya mengandalkan pengetahuan pelatihan statis model. Anda dapat mendasarkan itinerari pada data web langsung dengan menambahkan dua peneliti khusus yang didukung oleh alat google_search bawaan:
activity_finder_agent: Menemukan 3 tempat wisata spesifik yang sesuai dengan tujuan dan minat pengguna, beserta perkiraan harga tiket.restaurant_finder_agent: Menemukan 3 restoran lokal dengan rating tinggi dan perkiraan biaya per orang.
Karena riset tempat wisata dan riset restoran tidak saling bergantung, menjalankannya satu per satu akan membuang-buang waktu. Sebagai gantinya, Anda akan menggabungkan kedua peneliti di dalam ParallelAgent (parallel_research_agent) sehingga ADK menjalankan kedua alur kerja Google Penelusuran secara serentak dan mengisi {activity_recommendations?} serta {restaurant_recommendations?} sebelum menyerahkan ke itinerary_synthesizer_agent.

Tambahkan spesialis riset paralel ke specialists.py
Buka travel_planner/specialists.py:
cloudshell edit ~/adk-agents/travel_planner/specialists.py
Tambahkan dua pakar Google Penelusuran berikut ke bagian bawah travel_planner/specialists.py (tepat di bawah itinerary_synthesizer_agent):
# --- Specialist 3: The Activity Finder ---
activity_finder_agent = Agent(
name="activity_finder_agent",
description="Finds 3 attractions matching the user's destination and interests.",
instruction="""
Based on {user_preferences}, use google_search to find 3 specific attractions (including budget-friendly options).
Return a JSON list with keys: "attraction_name", "estimated_cost_local", "estimated_cost_usd", "notes".
""",
tools=[google_search],
output_key="activity_recommendations",
)
# --- Specialist 4: The Restaurant Finder ---
restaurant_finder_agent = Agent(
name="restaurant_finder_agent",
description="Finds 3 restaurants matching the destination and budget.",
instruction="""
Based on {user_preferences}, use google_search to find 3 highly-rated restaurants across price points.
Return a JSON list with keys: "restaurant_name", "cuisine", "estimated_cost_local", "estimated_cost_usd".
""",
tools=[google_search],
output_key="restaurant_recommendations",
)
Memasukkan ParallelAgent ke dalam workflows.py
Buka travel_planner/workflows.py:
cloudshell edit ~/adk-agents/travel_planner/workflows.py
Perbarui travel_planner/workflows.py untuk menentukan parallel_research_agent menggunakan ParallelAgent dan tempatkan di antara user_profiler_agent dan itinerary_synthesizer_agent:
from google.adk.agents import ParallelAgent, SequentialAgent
from .specialists import (
activity_finder_agent,
itinerary_synthesizer_agent,
restaurant_finder_agent,
user_profiler_agent,
)
# Parallel branch: Run activity and restaurant research simultaneously
parallel_research_agent = ParallelAgent(
name="parallel_research_agent",
description="Runs activity and restaurant research concurrently.",
sub_agents=[
activity_finder_agent,
restaurant_finder_agent,
],
)
# Master pipeline: Profile -> Parallel Research -> Synthesize
master_travel_agent = SequentialAgent(
name="master_travel_agent",
description="Orchestrates the end-to-end travel planning process for trip and itinerary requests.",
sub_agents=[
user_profiler_agent, # Step 1: Extract constraints
parallel_research_agent, # Step 2: Research activities & restaurants in parallel
itinerary_synthesizer_agent, # Step 3: Synthesize into an itinerary
],
)
🔍 Periksa hasil kerja Anda
Luncurkan adk web lagi untuk menguji pipeline riset paralel:
cd ~/adk-agents
adk web --allow_origins "*"
Di UI Web Preview, kirim perintah:
Help me plan a trip to Kyoto focused on historic temples and ramen
Anda akan melihat output yang mirip dengan urutan berikut dalam tampilan Events:
1. user_profiler_agent -> writes state['user_preferences'] 2. parallel_research_agent -> fans out concurrently: - activity_finder_agent invokes google_search -> writes state['activity_recommendations'] - restaurant_finder_agent invokes google_search -> writes state['restaurant_recommendations'] 3. itinerary_synthesizer_agent -> merges all three state keys into state['final_itinerary']
- Tampilan trace: Klik Traces di bagian atas panel percakapan (di samping Events) dan periksa giliran Anda. Anda akan melihat rentang linimasa yang tumpang-tindih untuk
activity_finder_agentdanrestaurant_finder_agentdi bagianparallel_research_agent, yang mengurangi total latensi riset web hampir setengahnya dibandingkan dengan menjalankannya secara berurutan. - Tab State: Klik tab State di panel inspector kiri untuk memeriksa kamus sesi live (
user_preferences,activity_recommendations,restaurant_recommendations, danfinal_itinerary).
Setelah selesai menguji, tekan Ctrl + C di terminal Anda untuk menghentikan adk web.
8. Menyempurnakan draf dengan LoopAgent
Meskipun dengan hasil penelusuran langsung, draf awal yang dihasilkan oleh itinerary_synthesizer_agent mungkin melebihi total anggaran pengguna atau secara tidak sengaja menyertakan kategori yang dikecualikan (seperti galeri seni modern padahal pengguna tidak memintanya).
Untuk menjamin kepatuhan terhadap batasan, Anda akan menambahkan loop penyempurnaan maker-checker di akhir pipeline menggunakan LoopAgent:
itinerary_critic_agent(Pemeriksa): Mengaudit{final_itinerary}terhadap{user_preferences}. Agen ini menjumlahkan estimasi biaya, memeriksa setiap batasan negatif, dan menulis petunjuk revisi spesifik kecritique_feedbackatau merespons dengan frasa persis"APPROVED".itinerary_refiner_agent(Pembuat/Pengguna yang Keluar): Membaca{critique_feedback}. Jika kritik sama dengan"APPROVED", model akan memanggil alatexit_loop(tool_context.actions.escalate = True) untuk segera keluar dariLoopAgent. Jika tidak, Gemini akan merevisi{final_itinerary}untuk memperbaiki masalah yang ditandai dan menimpafinal_itineraryuntuk tahap berikutnya.

Menambahkan exit_loop, Critic, dan Refiner ke specialists.py
Buka travel_planner/specialists.py:
cloudshell edit ~/adk-agents/travel_planner/specialists.py
Tambahkan alat exit_loop (ToolContext), itinerary_critic_agent, dan itinerary_refiner_agent ke bagian bawah travel_planner/specialists.py:
def exit_loop(tool_context: ToolContext) -> dict:
"""Call ONLY when the critique is APPROVED to exit the refinement loop."""
print(f"[Tool Call] exit_loop triggered by {tool_context.agent_name}")
tool_context.actions.escalate = True
return {"status": "approved", "message": "Itinerary approved. Exiting refinement loop."}
# --- Specialist 5: The Budget & Constraint Critic (Inside LoopAgent) ---
itinerary_critic_agent = Agent(
name="itinerary_critic_agent",
include_contents="none",
description="Audits the itinerary draft against budget and negative constraints.",
instruction="""
Audit Current Itinerary ({final_itinerary}) against User Preferences ({user_preferences}).
Verify that the USD total stays within the user's budget and no excluded venue types appear.
If all checks pass, respond EXACTLY with the single word "APPROVED".
Otherwise, output 1-2 concise revision instructions explaining what to swap or adjust.
""",
output_key="critique_feedback",
)
# --- Specialist 6: The Itinerary Refiner / Exiter (Inside LoopAgent) ---
itinerary_refiner_agent = Agent(
name="itinerary_refiner_agent",
include_contents="none",
description="Refines the itinerary from critique feedback, or calls exit_loop when APPROVED.",
instruction="""
Review Auditor Critique ({critique_feedback}) for Current Itinerary ({final_itinerary}).
If the critique is EXACTLY "APPROVED", call `exit_loop` immediately and return the itinerary unchanged.
Otherwise, revise the draft using {activity_recommendations} and {restaurant_recommendations}
so all USD budget and exclusion rules pass, and output ONLY the updated Markdown itinerary.
""",
tools=[exit_loop],
output_key="final_itinerary",
)
Tambahkan LoopAgent ke workflows.py
Buka travel_planner/workflows.py:
cloudshell edit ~/adk-agents/travel_planner/workflows.py
Perbarui travel_planner/workflows.py untuk menggabungkan itinerary_critic_agent dan itinerary_refiner_agent dalam LoopAgent (max_iterations=3) dan tambahkan sebagai tahap keempat master_travel_agent:
from google.adk.agents import LoopAgent, ParallelAgent, SequentialAgent
from .specialists import (
activity_finder_agent,
itinerary_critic_agent,
itinerary_refiner_agent,
itinerary_synthesizer_agent,
restaurant_finder_agent,
user_profiler_agent,
)
# Stage 2: Parallel research branch
parallel_research_agent = ParallelAgent(
name="parallel_research_agent",
description="Runs activity and restaurant research concurrently.",
sub_agents=[
activity_finder_agent,
restaurant_finder_agent,
],
)
# Stage 4: Iterative Maker-Checker refinement loop
refinement_loop_agent = LoopAgent(
name="refinement_loop_agent",
description="Iteratively audits and refines the itinerary until constraints and budget are approved.",
sub_agents=[
itinerary_critic_agent,
itinerary_refiner_agent,
],
max_iterations=3,
)
# Master pipeline: Profile -> Parallel Research -> Synthesize -> Refinement Loop
master_travel_agent = SequentialAgent(
name="master_travel_agent",
description="Orchestrates the end-to-end travel planning process for trip and itinerary requests.",
sub_agents=[
user_profiler_agent, # Stage 1: Extract constraints
parallel_research_agent, # Stage 2: Research activities & restaurants in parallel
itinerary_synthesizer_agent, # Stage 3: Draft initial itinerary
refinement_loop_agent, # Stage 4: Audit and refine until approved
],
)
🔍 Periksa hasil kerja Anda
Mulai adk web untuk menguji alur kerja multi-agen yang lengkap:
cd ~/adk-agents
adk web --allow_origins "*"
Buka UI Pratinjau Web di port 8000, mulai New Session, dan uji sistem lengkap dengan perintah multi-batasan Kyoto ini:
Design a full-day itinerary for Kyoto with a total budget of $100. My main interests are historical landmarks, temples, and authentic local cuisine. Please do not include any modern art museums or galleries.
Anda akan melihat output yang mirip dengan urutan eksekusi berikut di tampilan Events dan log terminal:
1. user_profiler_agent -> writes JSON with destination="Kyoto", budget="$100", exclusions=["modern art museums", "galleries"] 2. parallel_research_agent -> runs activity_finder_agent and restaurant_finder_agent in parallel 3. itinerary_synthesizer_agent -> produces initial draft in state['final_itinerary'] 4. refinement_loop_agent: - itinerary_critic_agent -> audits USD budget and exclusions -> outputs "APPROVED" (or revision notes) - itinerary_refiner_agent -> triggers [Tool Call] exit_loop triggered by itinerary_refiner_agent and outputs the approved itinerary
- Tampilan peristiwa: Klik chip peristiwa apa pun dari
itinerary_critic_agentatauitinerary_refiner_agentuntuk memeriksa payload-nya di tab Info sebelah kiri. Saatitinerary_refiner_agentmemanggilexit_loop, periksa peristiwa untuk melihatactions.escalate: true- sinyal yang memberi tahuLoopAgentuntuk berhenti melakukan iterasi sebelum mencapaimax_iterations=3. - Tab State: Klik tab State untuk melihat
state['critique_feedback']danstate['final_itinerary']diperbarui di seluruh penerusan. Jika draf awal melebihi$100 USD,critique_feedbackakan menyimpan petunjuk revisi auditor pada tahap 1 sebelumfinal_itinerarydiperbarui dengan alternatif yang lebih murah dancritique_feedbackberubah menjadi"APPROVED"pada tahap 2.
Setelah selesai menguji, tekan Ctrl + C di terminal Anda untuk menghentikan adk web.
9. Pembersihan
Menghapus file project lokal
Untuk menghapus direktori project dan lingkungan virtual adk-agents dari folder beranda Cloud Shell, jalankan:
cd ~
rm -rf ~/adk-agents
Menonaktifkan Agent Platform API
Jika Anda tidak lagi memerlukan Agent Platform API diaktifkan di project Anda, nonaktifkan dengan gcloud:
gcloud services disable aiplatform.googleapis.com --quiet
Menghapus seluruh project Google Cloud (Opsional)
PROJECT_ID=$(gcloud config get-value project)
gcloud projects delete "$PROJECT_ID" --quiet
🔍 Periksa hasil kerja Anda
Konfirmasi bahwa ~/adk-agents telah dihapus:
test ! -d ~/adk-agents && echo "Workspace ~/adk-agents removed"
Anda akan melihat output yang mirip dengan:
Workspace ~/adk-agents removed
10. Selamat
Selamat! Anda telah membangun sistem multi-agen hierarkis dengan Google Agent Development Kit (ADK) yang mengoordinasikan tim yang terdiri dari enam agen khusus di seluruh alur kerja loop berurutan, paralel, dan iteratif.
Yang Anda capai
- Komunikasi antar-agen yang terstruktur melalui status sesi bersama (injeksi template
output_keydan{state_variable}) - Membangun pipeline langkah demi langkah yang deterministik menggunakan
SequentialAgent - Menjalankan agen riset Google Penelusuran independen secara serentak menggunakan
ParallelAgent - Menerapkan loop verifikasi pembuat-pemeriksa otomatis menggunakan
LoopAgentdantool_context.actions.escalate = True
Langkah berikutnya
- Lanjutkan ke Bagian 4 dari seri ini, Membangun Agen AI dengan ADK: Mengorkestrasi Alur Kerja Grafik, untuk membangun kembali perencana perjalanan ini dengan siklus
Workflow,JoinNode, danEvent(route=...)deterministik terpadu ADK 2 - Baca dokumentasi resmi Agen Alur Kerja ADK
- Mempelajari Sistem Multi-Agen di ADK
- Bergabunglah dengan program GEAR (Gemini Enterprise Agent Ready) dan program Dapatkan Sertifikasi untuk mengikuti workshop interaktif dan jalur pembelajaran