1. Ringkasan
Dalam codelab ini, Anda akan mempelajari cara menggunakan Agents CLI untuk mengelola siklus proses pengembangan lokal lengkap agen AI. Baik Anda membungkus model Gemini yang ada atau membuat agen kustom dari awal dengan Agent Development Kit (ADK 2.0), Agents CLI menyediakan alat untuk membuat struktur, membangun, melakukan linting, dan menguji agen Anda secara lokal.
Yang akan Anda pelajari
- Cara menginstal dan menyiapkan
agents-cliserta skill terkaitnya. - Cara membuat kerangka project agen baru.
- Struktur dan file utama project agen alur kerja grafik ADK 2.0.
- Cara menjalankan linting otomatis dan pembersihan kode.
- Cara meluncurkan dan menggunakan playground web lokal untuk pengujian interaktif dengan pemuatan ulang otomatis.
Yang Anda perlukan
- Python 3.11 atau yang lebih tinggi
- Pengelola paket uv
- Node.js 18+ (jika menggunakan keterampilan agen coding)
- Antigravity IDE (instal dan konfigurasi dari Google Antigravity)
Prasyarat
Codelab ini mengasumsikan bahwa Anda sudah memahami:
- Menggunakan terminal dan command line.
Anda tidak memerlukan pengalaman sebelumnya dengan agen AI atau ADK 2.0.
2. Menyiapkan Autentikasi & Lingkungan
Berikan kredensial autentikasi Anda agar agen dapat memanggil model Gemini.
Opsi 1: Kunci Gemini API (Google AI Studio)
Jika Anda menggunakan kunci Gemini API standar (yang dapat Anda peroleh dari Google AI Studio), ekspor kunci tersebut di sesi terminal IDE Anda:
export GEMINI_API_KEY="your_api_key_here"
export GOOGLE_GENAI_USE_ENTERPRISE=FALSE
Opsi 2: Kredensial Default Aplikasi Google Cloud
Jika Anda menggunakan Vertex AI di Google Cloud, lakukan autentikasi dengan Kredensial Default Aplikasi (ADC) Google Cloud dan tetapkan project Google Cloud aktif Anda:
gcloud auth application-default login
gcloud config set project <YOUR_PROJECT_ID>
export GOOGLE_GENAI_USE_ENTERPRISE=TRUE
export GOOGLE_CLOUD_PROJECT=REPLACE-WITH-YOUR-PROJECT_ID # Replace with your project ID
export GOOGLE_CLOUD_LOCATION=REPLACE-WITH-LOCATION # Replace the location
3. Menyiapkan CLI & Keterampilan Agen
Langkah pertama adalah menginstal alat agents-cli. Alat ini menangani tugas berat pengelolaan project agen.
Setelah Antigravity diinstal, jalankan perintah penyiapan langsung di terminal Anda.
👉 Buka terminal dan jalankan:
uvx google-agents-cli setup
Perintah ini akan otomatis menginstal:
- Alat Agents CLI secara global di sistem Anda.
- Tujuh keterampilan asisten coding khusus domain yang dapat digunakan Antigravity untuk membantu Anda membuat, menyusun, mengevaluasi, dan men-deploy agen. Keterampilan ini diinstal satu kali secara global ke
~/.agents/skills/dan ditemukan secara otomatis oleh Antigravity.
Catatan: Keterampilan diinstal ke ~/.agents/skills/ dan diambil secara otomatis oleh Antigravity. Anda dapat memverifikasi hal ini menggunakan perintah /skills atau setelan Antigravity Anda.
Output yang Diharapkan (dipangkas):
█▀█ █▀▀ █▀▀ █▄ █ ▀█▀ █▀ █▀▀ █ █`
`█▀█ █▄█ ██▄ █ ▀█ █ ▄█ █▄▄ █▄ █`
`Your coding agent just got an upgrade.`
`1. Authentication`
`─────────────────`
`✓ Authenticated with Google Cloud`
`2. CLI Installation`
`───────────────────`
`▸ uv tool install google-agents-cli`
`✓ Installed google-agents-cli`
`3. Skills Installation`
`──────────────────────`
`▸ npx -y skills add https://github.com/google/agents-cli -y --all -g`
`◇ Found 7 skills`
`~/.agents/skills/google-agents-cli-adk-code`
`~/.agents/skills/google-agents-cli-deploy`
`~/.agents/skills/google-agents-cli-eval`
`~/.agents/skills/google-agents-cli-observability`
`~/.agents/skills/google-agents-cli-publish`
`~/.agents/skills/google-agents-cli-scaffold`
`~/.agents/skills/google-agents-cli-workflow`
4. Buat Project Agen Anda
Di bagian ini, Anda akan membuat direktori project yang terstruktur sepenuhnya menggunakan template prototipe.
👉 Perintah Antigravity:
Use ADK 2.0 to create a new graph workflow agent project called
customer-support-agent. I don't want to deploy this agent, so you can skip
the deployment files. The workflow should act as a customer support
representative for a shipping company. It should first classify if the user
query is related to shipping (rates, tracking, delivery, returns) or
unrelated. If it is related to shipping, route to a shipping FAQ agent to
answer the question. If it is unrelated, route to a node that politely
declines to answer.
Antigravity akan otomatis menjalankan perintah scaffolding (agents-cli scaffold create customer-support-agent --prototype --yes) dan menyiapkan file project untuk Anda.
5. Mempelajari Kode Agen
👉 Minta Antigravity menjelaskan kode yang dihasilkan:
Read and explain the project structure of my new agent project. Walk me
through how `app/agent.py` is configured, highlighting the role of the
tools, nodes, edges, and the root Workflow.
Di Antigravity IDE, file dan artefak project yang baru dibuat ditampilkan langsung di panel tambahan (sisi kiri). Anda dapat melihat app/agent.py di sana, atau membukanya dari penjelajah file IDE untuk menjelajahi kode yang di-scaffold.
# app/agent.py
from __future__ import annotations
from typing import Any, Literal
from google.adk.agents.context import Context
from google.adk.apps.app import App
from google.adk.events.event import Event
from google.adk.workflow import Edge
from google.adk.workflow import Workflow
from google.adk.workflow.agents.llm_agent import LlmAgent
from google.adk.workflow.node import node
from pydantic import BaseModel
from pydantic import Field
class InquiryCategory(BaseModel):
category: Literal['shipping', 'unrelated'] = Field(
description=(
'Determine if the user query is related to shipping (rates, tracking,'
' delivery times, returns) or unrelated.'
)
)
def save_query(node_input: str):
"""Saves user query in state for downstream nodes."""
yield Event(data=node_input, state={'user_query': node_input})
categorize_agent = LlmAgent(
name='categorize',
model='gemini-3.1-flash-lite',
instruction='You are an expert classifier. Categorize the user query.',
output_key='inquiry_category',
output_schema=InquiryCategory,
)
@node
def route_inquiry(ctx: Context, node_input: Any):
"""Routes the workflow based on the classified category."""
category_data = ctx.state.get('inquiry_category', {})
category = category_data.get('category', 'unrelated')
query = ctx.state.get('user_query', '')
yield Event(data=query, route=category)
faq_agent = LlmAgent(
name='shipping_faq',
model='gemini-3.1-flash-lite'',
instruction="""You are a customer support representative for a shipping company. Answer user questions based ONLY on the shipping FAQ below. Do not answer questions outside of the FAQ.
SHIPPING FAQ:
- Rates: Standard shipping is $5.99. Express shipping is $12.99. Orders
over $50 qualify for free standard shipping.
- Tracking: You can track your order by entering your tracking number on
our website's tracking page.
- Delivery Times: Standard delivery takes 3-5 business days. Express
delivery takes 1-2 business days.
- Returns: We offer free returns within 30 days of delivery. Please make
sure the item is in its original condition.
""",
)
@node
def handle_unrelated(ctx: Context, node_input: Any):
"""Handles unrelated inquiries politely."""
yield Event(
data=(
'I am sorry, I am a shipping customer support assistant and can only'
' answer questions related to our shipping FAQ.'
)
)
root_agent = Workflow(
name='customer_support_workflow',
edges=[
*Edge.chain('START', save_query, categorize_agent, route_inquiry),
(route_inquiry, faq_agent, 'shipping'),
(route_inquiry, handle_unrelated, 'unrelated'),
],
)
app = App(
name='customer_support_agent',
root_agent=root_agent,
)
Konsep Utama
- Alur Kerja & Edge: Di ADK 2.0, aplikasi agen diatur sebagai grafik menggunakan
Workflow. Daftaredgesmenentukan alur eksekusi, menghubungkan node dariSTARTdan memungkinkan percabangan bersyarat berdasarkan rute (misalnya, perutean kefaq_agentdi"shipping"atauhandle_unrelateddi"unrelated"). - LlmAgent: Node deklaratif yang menentukan tugas yang didukung LLM dengan petunjuk, model, dan output terstruktur tertentu (
output_schema). - Node & Konteks: Fungsi Python yang dihiasi dengan
@node(atau fungsi standar) yang melakukan logika, mengakses status eksekusi melaluiContext, dan menghasilkan objekEventuntuk meneruskan data dan sinyal perutean di sepanjang grafik. - Model: `gemini-3.1-flash-lite' digunakan sebagai model penalaran cepat default.
- Wrapper Aplikasi: Objek
Apptingkat teratas membungkus alur kerja root. Alat eksternal seperti playground lokal, alat evaluasi ADK, dan Agent Runtime menemukan serta menjalankan alur kerja Anda melalui antarmukaappstandar ini.
6. Linting Otomatis
Sebelum menjalankan atau menguji agen, sebaiknya pastikan kode Anda bersih dan diformat dengan benar.
👉 Perintah Antigravity:
Run linting on my agent project to verify its health.
Antigravity akan menjalankan agents-cli lint di balik layar untuk menjalankan pemeriksaan yang telah dikonfigurasi sebelumnya, memverifikasi impor, sintaksis, dan konsistensi pemformatan di seluruh file Anda.
7. Pengujian Interaktif dengan Playground
Playground web lokal adalah cara tercepat untuk memverifikasi perilaku agen Anda. Panel ini menyediakan antarmuka chat interaktif tempat Anda dapat melakukan chat dengan agen dan memeriksa eksekusi alat secara real-time.
👉 Perintah Antigravity:
Launch the local development playground for my agent.
Antigravity akan memulai server pengembangan lokal (agents-cli playground). Buka URL yang diberikan (biasanya http://127.0.0.1:8080/dev-ui/?app=app) di browser web Anda, pilih folder app dari dropdown untuk mulai melakukan percakapan dengan agen Anda.
Mulai chat dengan agen Anda di antarmuka web. Coba ajukan pertanyaan terkait pengiriman:
How much is standard shipping?
Perhatikan bagaimana alur kerja berhasil mengategorikan dan mengarahkan ke faq_agent untuk menjawab. Coba juga ajukan pertanyaan yang tidak terkait untuk memverifikasi bahwa alur kerja diarahkan ke handle_unrelated dan menolak untuk menjawab dengan benar:
What is the weather like?
Menguji Isi Ulang Otomatis Real-Time
Anda dapat melihat bagaimana pengeditan real-time pada agen Anda tercermin di Playground.
- Ubah petunjuk
faq_agentdiapp/agent.pydengan bertanya kepada Antigravity:Modify the faq_agent instruction in app/agent.py to make the shipping rates response more playful and enthusiastic. Add some emojis and highlight the free shipping threshold. - Kirim pesan baru ke agen di playground untuk menguji pemuatan ulang otomatis:
Playground akan otomatis memuat ulang dan mengeksekusi kode yang telah diupdate secara real-time tanpa perlu memulai ulang server. Sekarang Anda akan melihat beberapa emoji dalam respons.How much is standard shipping?
8. Eksekusi Command Line
Untuk pengujian cepat, otomatisasi, atau pembuatan skrip, Anda dapat meminta Antigravity untuk menjalankan agen Anda langsung dari terminal.
👉 Perintah Antigravity:
Run a CLI query asking my agent how long standard delivery takes.
Antigravity akan menjalankan perintah kueri (agents-cli run "How long does standard delivery take?"). Perintah ini menjalankan inferensi satu giliran yang cepat dan mencetak respons akhir agen beserta detail eksekusi alat.
9. Pembersihan
Untuk menghindari resource yang tidak diinginkan di lingkungan lokal Anda, ikuti langkah-langkah pembersihan berikut:
- Hentikan Server Lokal: Jika server
agents-cli playgroundAnda masih berjalan, hentikan di terminal dengan menekanCtrl + C. - Hapus File Project Lokal: Hapus direktori project agen yang di-scaffold dari mesin lokal Anda.
rm -rf customer-support-agent
10. Ringkasan & Langkah Selanjutnya
Selamat! Anda telah berhasil mengelola siklus proses pengembangan lokal end-to-end agen AI menggunakan CLI Agen dan ADK 2.0.
Yang telah Anda pelajari
- Siapkan Alat Anda: Menginstal Agents CLI dan mengonfigurasi keterampilan alur kerja khusus domain untuk Antigravity.
- Membuat Struktur Project: Membuat project
customer-support-agentyang terstruktur sepenuhnya menggunakan template standar. - Menganalisis Struktur ADK 2.0: Menjelajahi alur kerja grafik, agen LLM, node, tepi, dan perutean bersyarat.
- Managed Local Health: Menjalankan pemeriksaan kualitas kode otomatis menggunakan
agents-cli lint. - Perilaku Terverifikasi: Menguji agen secara interaktif dengan hot-reloading real-time melalui playground, dan menjalankan pengujian cepat di command line.
Apa Langkah Selanjutnya?
Setelah menguasai loop pengembangan lokal, berikut cara memperluas dan memproduksi agen Anda:
- Evaluasi: Beri skor pada agen Anda terhadap evalset menggunakan
agents-cli eval rununtuk mengukur akurasi dan menemukan regresi. - Skala Cloud untuk Perusahaan: Deployment & Kemampuan Observasi: Kemas dan deploy agen Anda ke lingkungan produksi seperti Agent Runtime atau Cloud Run menggunakan
agents-cli deploy. Siapkan telemetri produksi untuk melakukan streaming log dan rekaman aktivitas eksekusi ke Cloud Trace dan BigQuery.