Modul 5: Membangun Agen ADK dengan agents-cli¶
Durasi: ~75 menit
Tujuan: Menggunakan agents-cli untuk melakukan scaffold, membangun, mengevaluasi, dan men-deploy agen ADK tingkat produksi — sepenuhnya dari dalam sesi Antigravity CLI Anda.
Latihan: Latihan 12: Agen ADK — Scaffold, Evaluasi, Deploy
📖 Sumber: GitHub agents-cli · Dokumentasi agents-cli · ADK · PyPI
Apa itu agents-cli?¶
agents-cli bukanlah agen pengodean. Ini adalah toolkit untuk agen pengodean — ini memberikan sesi Antigravity CLI Anda skill dan perintah untuk membangun, mengevaluasi, dan men-deploy agen ADK (Agent Development Kit) di Google Cloud.
| Antigravity CLI | agents-cli | |
|---|---|---|
| Apa itu | Agen pengodean interaktif | Toolkit untuk agen pengodean |
| Apa yang dilakukan | Menulis kode, menjawab pertanyaan | Membuat perancah, mengevaluasi, men-deploy agen ADK |
| Cara penggunaan | Memintanya untuk melakukan sesuatu | Meminta agy untuk menggunakan agents-cli untuk melakukan sesuatu |
| Bekerja dengan | — | Antigravity CLI, Gemini CLI, Claude Code, Codex |
Anggap saja seperti ini: agy adalah tangan Anda, agents-cli adalah perkakas mesinnya.
5.1 — Pengaturan 10 min¶
Prasyarat¶
- Python 3.11+
- uv (manajer paket Python)
- Node.js (untuk instalasi skill)
- Proyek Google Cloud atau kunci API AI Studio
Instal agents-cli¶
Ini melakukan tiga hal:
- Menginstal berkas biner
agents-cli - Menginstal 7 skill ke dalam agen pengodean Anda (Antigravity CLI, Gemini CLI, Claude Code)
- Mengonfigurasi autentikasi
Verifikasi¶
Skill adalah bumbu rahasianya
Setelah pengaturan, agy secara otomatis memuat skill agents-cli — yang berarti Anda dapat mengatakan "scaffold an ADK agent" dan agy tahu persis perintah apa yang harus dijalankan, pola apa yang harus diikuti, dan kesalahan apa yang harus dihindari.
5.2 — Siklus Hidup 7 Fase 10 menit¶
agents-cli menerapkan siklus hidup pengembangan yang terstruktur. Setiap fase memiliki skill khusus yang dimuat oleh agen pengodean Anda saat mencapai tahap tersebut:
graph LR
P0[Phase 0<br/>Understand] --> P1[Phase 1<br/>Study Samples]
P1 --> P2[Phase 2<br/>Scaffold]
P2 --> P3[Phase 3<br/>Build]
P3 --> P4[Phase 4<br/>Evaluate]
P4 --> P5[Phase 5<br/>Deploy]
P5 --> P6[Phase 6<br/>Publish]
P6 --> P7[Phase 7<br/>Observe]
P4 -.->|fix & iterate| P3 | Fase | Skill | Apa yang terjadi |
|---|---|---|
| 0 — Pahami | — | Perjelas tujuan, tulis .agents-cli-spec.md |
| 1 — Pelajari Sampel | — | Kloning dan pelajari adk-samples yang cocok |
| 2 — Scaffold | google-agents-cli-scaffold | agents-cli scaffold create <name> |
| 3 — Bangun | google-agents-cli-adk-code | Tulis kode agen — alat, callback, status |
| 4 — Evaluasi | google-agents-cli-eval | agents-cli eval generate → eval grade → perbaiki → ulangi |
| 5 — Deploy | google-agents-cli-deploy | agents-cli deploy ke Agent Runtime / Cloud Run / GKE |
| 6 — Publikasikan | google-agents-cli-publish | Daftarkan ke Gemini enterprise (opsional) |
| 7 — Observasi | google-agents-cli-observability | Cloud Trace, logging, pemantauan |
Wawasan utama: Fase 4 (Evaluasi) adalah yang paling kritis. Perkirakan 5–10+ iterasi dari loop evaluasi-perbaikan. Hal ini normal dan dari sinilah kualitas agen berasal.
5.3 — Membangun Kerangka Proyek 10 min¶
Pola Mengutamakan Prototipe¶
Selalu mulai dengan --prototype untuk melewati CI/CD dan Terraform. Buat agen berfungsi terlebih dahulu, lalu tambahkan penerapan nanti:
# Step 1: Create a prototype
agents-cli scaffold create my-agent --agent adk --prototype
# Step 2: Iterate on agent code...
# Step 3: Add deployment when ready
agents-cli scaffold enhance . --deployment-target agent_runtime
Opsi Templat¶
| Templat | Deskripsi |
|---|---|
adk | Agen ADK standar (bawaan) |
adk_a2a | Koordinasi antar-agen (protokol A2A) |
agentic_rag | RAG dengan pipeline penyerapan data |
Target Penerapan¶
| Target | Deskripsi |
|---|---|
agent_runtime | Dikelola oleh Google (Runtime Agen Gemini enterprise) |
cloud_run | Berbasis kontainer, lebih banyak kontrol |
gke | Kontrol Kubernetes penuh pada GKE Autopilot |
Apa yang Dibuat oleh Kerangka¶
my-agent/
├── app/
│ ├── __init__.py ← App entry point (name must match directory)
│ ├── agent.py ← Agent definition (instruction, tools, model)
│ └── tools.py ← Custom tool functions
├── tests/
│ └── eval/
│ ├── datasets/
│ │ └── basic-dataset.json ← Starter eval cases
│ └── eval_config.yaml ← Metrics configuration
├── .env ← Environment variables (project ID, API keys)
├── agents-cli-manifest.yaml ← Project metadata (CLI reads this)
├── pyproject.toml ← Python dependencies
├── GEMINI.md ← Coding agent guidance file
└── Makefile ← Common task shortcuts
5.4 — Membangun Kode Agen 15 min¶
Pola Definisi Agen¶
app/agent.py yang telah di-scaffold adalah titik awal Anda:
from google.adk import Agent
root_agent = Agent(
name="my_agent",
model="gemini-3.5-flash",
instruction="""You are a helpful assistant that...""",
tools=[my_tool_function],
)
Definisi Alat¶
Alat adalah fungsi Python biasa dengan parameter bertipe dan docstring:
def get_weather(city: str) -> dict:
"""Get current weather for a city.
Args:
city: The city name to look up weather for.
Returns:
A dict with temperature and conditions.
"""
# Your implementation here
return {"temp_f": 72, "conditions": "sunny"}
Pengujian Cepat¶
# One-off smoke test
agents-cli run "What's the weather in Tokyo?"
# Interactive playground (web UI)
agents-cli playground
Jangan pernah menulis pengujian pytest yang melakukan asersi pada keluaran LLM
Keluaran LLM bersifat non-deterministik. Gunakan agents-cli eval untuk validasi perilaku, bukan pytest. Gunakan pytest hanya untuk kebenaran kode (impor berfungsi, fungsi mengembalikan tipe yang benar).
5.5 — Loop Evaluasi 20 min¶
Ini adalah bagian yang paling penting. Evaluasi adalah apa yang membedakan sebuah demo dari agen produksi.
Flywheel Kualitas¶
┌─ 1. Prepare Data ─────── Write eval cases or synthesize them
│
├─ 2. Run Inference ────── agents-cli eval generate
│
├─ 3. Grade Traces ─────── agents-cli eval grade
│
├─ 4. Analyze Failures ──── Read results, identify root causes
│
└─ 5. Fix & Iterate ────── Fix agent code, go back to step 2
Format Dataset Evaluasi¶
Kasus evaluasi adalah file JSON dengan prompt dan perilaku yang diharapkan opsional:
{
"eval_cases": [
{
"eval_case_id": "greeting",
"prompt": {
"role": "user",
"parts": [{"text": "Hello, what can you help me with?"}]
}
},
{
"eval_case_id": "weather_query",
"prompt": {
"role": "user",
"parts": [{"text": "What's the weather in San Francisco?"}]
}
}
]
}
Metrik Bawaan¶
| Metrik | Apa yang diukur |
|---|---|
multi_turn_task_success | Apakah agen menyelesaikan tujuan pengguna? |
multi_turn_trajectory_quality | Apakah jalur penalaran logis dan efisien? |
multi_turn_tool_use_quality | Kualitas pemanggilan alat/fungsi |
final_response_quality | Kualitas respons akhir (tidak diperlukan ground-truth) |
hallucination | Landasan faktual — menangkap klaim yang dibuat-buat |
safety | Kepatuhan kebijakan keamanan |
Menjalankan Evaluasi¶
# One command: generate traces + grade them
agents-cli eval run
# Or two-step for more control
agents-cli eval generate
agents-cli eval grade
# Compare before/after a fix
agents-cli eval compare baseline.json candidate.json
Ketika Skor Gagal¶
| Kegagalan | Apa yang harus diperbaiki |
|---|---|
task_success rendah | Orkestrasi, panggilan alat yang hilang, penghentian prematur |
trajectory_quality rendah | Prompt perencanaan, urutan instruksi, panggilan alat yang berlebihan |
tool_use_quality rendah | Deskripsi alat, docstring parameter, instruksi agen |
hallucination rendah | Perketat instruksi agar tetap berlandaskan pada output alat |
| Agen memanggil alat yang salah | Perbaiki deskripsi alat dan instruksi agen |
Metrik Kustom¶
Ketika metrik bawaan tidak mencakup domain Anda, tentukan metrik kustom di eval_config.yaml:
metrics_to_run:
- multi_turn_task_success
- response_politeness # custom metric below
custom_metrics:
- name: response_politeness
prompt_template: |
Rate the agent's response 1-5 for professional politeness.
Prompt: {prompt}
Response: {response}
Return JSON: {"score": <1|2|3|4|5>, "explanation": "<reason>"}
5.6 — Deployment 10 min¶
Setelah evaluasi berhasil, tambahkan deployment dan rilis:
# Add deployment support (if prototype)
agents-cli scaffold enhance . --deployment-target agent_runtime
# Deploy
agents-cli deploy
Menambahkan CI/CD¶
# GitHub Actions
agents-cli scaffold enhance . --cicd-runner github_actions
# Google Cloud Build
agents-cli scaffold enhance . --cicd-runner google_cloud_build
Matriks Keputusan Target Deployment¶
| Kebutuhan | Pilihan |
|---|---|
| Jalur tercepat, infrastruktur terkelola | agent_runtime |
| Kontainer kustom, kontrol penuh | cloud_run |
| Native Kubernetes, tim sudah menggunakan GKE | gke |
5.7 — Menggunakan agents-cli dari Antigravity CLI 5 min¶
Kekuatan sebenarnya adalah menggabungkan agy + agents-cli. Dalam sesi Antigravity CLI:
> Use agents-cli to scaffold an ADK agent called "expense-tracker"
that processes receipts and categorizes expenses.
Start with a prototype.
agy akan:
- Memuat skill
google-agents-cli-workflow - Mengajukan pertanyaan klarifikasi kepada Anda (Fase 0)
- Memeriksa kecocokan adk-samples (Fase 1)
- Menjalankan
agents-cli scaffold create expense-tracker --agent adk --prototype - Mengimplementasikan kode agen menggunakan pola ADK (Fase 3)
- Menyiapkan kasus evaluasi dan menjalankannya (Fase 4)
- Melakukan iterasi hingga ambang batas kualitas terpenuhi
Anda memandu niat tingkat tinggi; skill agents-cli menangani detail implementasi.
Referensi Skill¶
7 skill yang diinstal oleh agents-cli setup:
| Skill | Perintah slash | Apa yang dipelajari agy |
|---|---|---|
google-agents-cli-workflow | /google-agents-cli-workflow | Siklus hidup penuh, aturan pelestarian kode, pemilihan model |
google-agents-cli-adk-code | /google-agents-cli-adk-code | API Python ADK — agen, alat, orkestrasi, callback, status |
google-agents-cli-scaffold | /google-agents-cli-scaffold | Scaffolding proyek — create, enhance, upgrade |
google-agents-cli-eval | /google-agents-cli-eval | Metodologi evaluasi — metrik, dataset, LLM-as-judge |
google-agents-cli-deploy | /google-agents-cli-deploy | Deployment — Agent Runtime, Cloud Run, GKE, CI/CD |
google-agents-cli-publish | /google-agents-cli-publish | Pendaftaran Gemini Enterprise |
google-agents-cli-observability | /google-agents-cli-observability | Cloud Trace, logging, integrasi pihak ketiga |
Latihan¶
Latihan 12: Siklus Hidup Agen ADK¶
Berkas: ex12_agents_cli_lifecycle.md Durasi: 45 menit Tujuan: Melakukan scaffold, membangun, mengevaluasi, dan mengiterasi agen ADK menggunakan alur kerja agents-cli — dari scaffold create hingga lulus evaluasi.
Selanjutnya: Modul 4 — Multi-Agen & Lanjutan untuk mengorkestrasi beberapa agen, pola sub-agen, dan sistem penjadwalan
/btw.