1. Pengantar
Google Antigravity adalah platform pengembangan agentic yang dirancang untuk membantu Anda mengembangkan aplikasi di era agen ini. Antigravity berfungsi sebagai pusat perintah terpusat agen AI Anda, yang menyediakan platform terpadu untuk meluncurkan, memantau, dan mengorkestrasi aktivitasnya.
Dalam codelab ini, kita akan mempelajari terlebih dahulu Keahlian Agen, format terbuka yang ringan untuk memperluas kemampuan agen AI dengan pengetahuan dan alur kerja khusus. Anda akan dapat mempelajari apa itu Keterampilan Agen, manfaatnya, dan cara membuatnya. Kemudian, Anda akan membangun beberapa Keterampilan Agen mulai dari pemformat Git, generator template, scaffolding kode alat, dan lainnya, yang semuanya dapat digunakan dalam Antigravity.
Prasyarat:
- Antigravity diinstal dan dikonfigurasi.
- Pemahaman dasar tentang Google Antigravity. Sebaiknya selesaikan codelab: Mulai Menggunakan Google Antigravity.
2. Alasan Menggunakan Keterampilan
Agen AI modern telah berkembang dari pendengar sederhana menjadi penganalisis kompleks yang terintegrasi dengan sistem file lokal dan alat eksternal (melalui server MCP). Namun, memuat agen dengan seluruh codebase dan ratusan alat secara sembarangan akan menyebabkan Saturasi Konteks dan "Pembengkakan Alat". Meskipun dengan jendela konteks yang besar, memasukkan 40–50 ribu token alat yang tidak digunakan ke dalam memori aktif menyebabkan latensi tinggi, pemborosan finansial, dan "pembusukan konteks", yang membuat model menjadi bingung dengan data yang tidak relevan.
Solusi: Keterampilan Agen
Untuk mengatasi hal ini, Anthropic memperkenalkan Keahlian Agen, yang mengubah arsitektur dari pemuatan konteks monolitik menjadi Pengungkapan Progresif. Daripada memaksa model untuk "mengingat" setiap alur kerja tertentu (seperti migrasi database atau audit keamanan) di awal sesi, kemampuan ini dikemas ke dalam unit modular yang dapat ditemukan.
Cara Kerjanya
Pada awalnya, model hanya diekspos ke "menu" metadata ringan. Model ini memuat pengetahuan prosedural yang berat (petunjuk dan skrip) hanya jika maksud pengguna secara khusus cocok dengan skill. Hal ini memastikan bahwa developer yang meminta untuk memfaktorkan ulang middleware autentikasi mendapatkan konteks keamanan tanpa memuat pipeline CSS yang tidak terkait, sehingga konteks tetap ramping, cepat, dan hemat biaya.

3. Keahlian Agen dan Antigravity
Dalam ekosistem Antigravity, Keterampilan berfungsi sebagai modul pelatihan khusus yang menjembatani kesenjangan antara model generalis dan konteks spesifik Anda. Agen dapat "melengkapi" serangkaian petunjuk dan protokol yang telah ditentukan—seperti standar migrasi database atau pemeriksaan keamanan—hanya saat tugas yang relevan diminta. Dengan memuat protokol eksekusi ini secara dinamis, Keterampilan secara efektif mengubah AI dari programmer umum menjadi spesialis yang secara ketat mematuhi praktik terbaik dan standar keamanan yang dikodifikasi organisasi.
Apa itu Keterampilan di Antigravity?
Dalam konteks Google Antigravity, Keterampilan adalah paket berbasis direktori yang berisi file definisi (SKILL.md) dan aset pendukung opsional (skrip, referensi, template).
Ini adalah mekanisme untuk memperluas kemampuan sesuai permintaan.
- Sesuai Permintaan: Tidak seperti Perintah Sistem (yang selalu dimuat), Keterampilan hanya dimuat ke dalam konteks agen saat agen menentukan bahwa Keterampilan tersebut relevan dengan permintaan pengguna saat ini. Hal ini mengoptimalkan jendela konteks dan mencegah agen terganggu oleh petunjuk yang tidak relevan. Dalam project besar dengan puluhan alat, pemuatan selektif ini sangat penting untuk performa dan akurasi penalaran.
- Ekstensi Kemampuan: Skill dapat melakukan lebih dari sekadar memberikan petunjuk; skill dapat mengeksekusi. Dengan menggabungkan skrip Python atau Bash, Skill dapat memberi agen kemampuan untuk melakukan tindakan multi-langkah yang kompleks di komputer lokal atau jaringan eksternal tanpa pengguna perlu menjalankan perintah secara manual. Hal ini mengubah agen dari pembuat teks menjadi pengguna alat.
Keterampilan vs. Ekosistem (Alat, Aturan, dan Alur Kerja)
Meskipun Model Context Protocol (MCP) berfungsi sebagai "tangan" agen—yang menyediakan koneksi persisten yang kuat ke sistem eksternal seperti GitHub atau PostgreSQL—Keterampilan bertindak sebagai "otak" yang mengarahkannya.
MCP menangani infrastruktur stateful, sedangkan Keterampilan adalah definisi tugas ringan dan sementara yang memaketkan metodologi untuk menggunakan alat tersebut. Pendekatan serverless ini memungkinkan agen menjalankan tugas ad-hoc (seperti membuat log perubahan atau migrasi) tanpa overhead operasional untuk menjalankan proses persisten, memuat konteks hanya saat tugas aktif dan melepaskannya segera setelahnya.
Keahlian dipicu oleh agen: model secara otomatis mendeteksi maksud pengguna dan secara dinamis melengkapi keahlian khusus yang diperlukan. Arsitektur ini memungkinkan kompositabilitas yang efektif; misalnya, Aturan global dapat menerapkan penggunaan Keterampilan "Migrasi Aman" selama perubahan database, atau Alur Kerja tunggal dapat mengatur beberapa Keterampilan untuk membangun pipeline deployment yang andal.
4. Membuat Keahlian
Membuat Skill di Antigravity mengikuti struktur direktori dan format file tertentu. Standardisasi ini memastikan bahwa keterampilan dapat digunakan di berbagai platform dan agen dapat menguraikan serta mengeksekusinya dengan andal. Desainnya sengaja dibuat sederhana, mengandalkan format yang dipahami secara luas seperti Markdown dan YAML, sehingga menurunkan hambatan bagi developer yang ingin memperluas kemampuan IDE mereka.
Struktur Direktori
Direktori Skill standar terlihat seperti ini:
my-skill/
├── SKILL.md # The definition file
├── scripts/ # [Optional] Python, Bash, or Node scripts
├── run.py
└── util.sh
├── references/ # [Optional] Documentation or templates
└── api-docs.md
└── assets/ # [Optional] Static assets (images, logos)
Struktur ini memisahkan masalah secara efektif. Logika (scripts) dipisahkan dari petunjuk (SKILL.md) dan pengetahuan (references), yang mencerminkan praktik rekayasa software standar.
File Definisi SKILL.md
File SKILL.md adalah inti dari Skill. Petunjuk ini memberi tahu agen tentang apa itu keahlian, kapan harus menggunakannya, dan cara menjalankannya.
Terdiri dari dua bagian:
- Frontmatter YAML
- Isi Markdown.
Frontmatter YAML
Ini adalah lapisan metadata. Bagian ini adalah satu-satunya bagian skill yang diindeks oleh perouter tingkat tinggi agen. Saat pengguna mengirimkan perintah, agen akan mencocokkan semantik perintah dengan kolom deskripsi semua keterampilan yang tersedia.
---
name: database-inspector
description: Use this skill when the user asks to query the database, check table schemas, or inspect user data in the local PostgreSQL instance.
---
Kolom Utama:
- name: Ini tidak wajib. Harus unik dalam cakupan. Huruf kecil, tanda hubung diizinkan (misalnya,
postgres-query,pr-reviewer). Jika tidak diberikan, nilai defaultnya adalah nama direktori. - description: Kolom ini wajib diisi dan merupakan kolom terpenting. Frasa ini berfungsi sebagai "frasa pemicu". Harus cukup deskriptif agar LLM dapat mengenali relevansi semantik. Deskripsi yang tidak jelas seperti "Alat database" tidak cukup. Deskripsi yang tepat seperti "Mengeksekusi kueri SQL hanya baca terhadap database PostgreSQL lokal untuk mengambil data pengguna atau transaksi. Gunakan ini untuk men-debug status data" memastikan skill diambil dengan benar.
Isi Markdown
Isi berisi petunjuk. Ini adalah "rekayasa perintah" yang dipertahankan ke file. Saat skill diaktifkan, konten ini akan dimasukkan ke jendela konteks agen.
Isi harus mencakup:
- Tujuan: Pernyataan yang jelas tentang apa yang dicapai oleh skill.
- Petunjuk: Logika langkah demi langkah.
- Contoh: Contoh input dan output few-shot untuk memandu performa model.
- Batasan: Aturan "Jangan" (misalnya, "Jangan jalankan kueri DELETE").
Contoh Isi SKILL.md:
Database Inspector
Goal
To safely query the local database and provide insights on the current data state.
Instructions
- Analyze the user's natural language request to understand the data need.
- Formulate a valid SQL query.
- CRITICAL: Only SELECT statements are allowed.
- Use the script scripts/query_runner.py to execute the SQL.
- Command: python scripts/query_runner.py "SELECT * FROM..."
- Present the results in a Markdown table.
Constraints
- Never output raw user passwords or API keys.
- If the query returns > 50 rows, summarize the data instead of listing it all.
Integrasi Skrip
Salah satu fitur Skills yang paling canggih adalah kemampuan untuk mendelegasikan eksekusi ke skrip. Hal ini memungkinkan agen melakukan tindakan yang sulit atau tidak mungkin dilakukan LLM secara langsung (seperti eksekusi biner, perhitungan matematika yang kompleks, atau berinteraksi dengan sistem lama).
Skrip ditempatkan di subdirektori scripts/. SKILL.md mereferensikannya berdasarkan jalur relatif.
5. Keterampilan Pembuatan
Tujuan bagian ini adalah untuk membuat Keterampilan yang terintegrasi ke dalam Antigravity dan secara progresif menampilkan berbagai fitur seperti resource / skrip / dll.
Anda dapat mendownload Keterampilan dari repositori GitHub di sini: https://github.com/rominirani/antigravity-skills.
Sebelum memahami cara membangun setiap keterampilan ini, mari kita lihat cara mengonfigurasi dan menyediakannya dalam rangkaian produk Antigravity. Folder di bawah ini berlaku pada saat publikasi lab ini.
Menggunakan Antigravity atau Antigravity CLI
Keterampilan dapat ditentukan dalam dua cakupan, sehingga memungkinkan keterampilan khusus project dan keterampilan khusus pengguna, yaitu keterampilan global.:
- Cakupan Global (
~/.gemini/config/skills/): Tersedia di semua produk Antigravity (Antigravity, Antigravity IDE, Antigravity CLI) dan project. Keterampilan ini tersedia di semua project di komputer pengguna. Hal ini cocok untuk utilitas umum seperti "Format JSON", "Buat UUID", "Tinjau Gaya Kode", atau integrasi dengan alat produktivitas pribadi. - Cakupan Project/Workspace (
<project-root>/.agents/skills/): Opsi ini akan membuat skill hanya tersedia dalam project tertentu. Cara ini ideal untuk skrip khusus project, seperti deployment ke lingkungan tertentu, pengelolaan database untuk aplikasi tersebut, atau pembuatan kode boilerplate untuk framework eksklusif.
Menginstal Keterampilan di Antigravity atau Antigravity CLI
Untuk tutorial ini, kita hanya perlu melakukan langkah-langkah berikut (Anda juga dapat melakukannya dengan cara Anda sendiri):
Langkah 1: Lakukan git clone dari https://github.com/rominirani/antigravity-skills
Langkah 2: Sekarang, bergantung pada apakah Anda menggunakan Antigravity atau Antigravity CLI, Anda dapat membuka folder antigravity-skills/skills_tutorial.
Langkah 3: Anda akan menemukan serangkaian keterampilan, yang dikelompokkan ke dalam folder masing-masing. Salin 4 folder berikut:
git-commit-formatterlicense-header-adderdatabase-schema-validatorjson-to-pydantic
ke dalam folder keterampilan yang ditargetkan untuk produk (cakupan project atau cakupan global).
Langkah 4: Jika Anda menggunakan Antigravity atau Antigravity CLI , salin ke <project-root>/.agents/skills/ (cakupan project).
Jika Anda telah meluncurkan Antigravity, Anda dapat mengajukan pertanyaan sederhana "Apa saja keterampilan yang tersedia?" dan Antigravity akan merespons dengan pertanyaan yang sama. Anda dapat melihat 4 keterampilan yang tercantum di sana. Anda mungkin juga memiliki keterampilan tambahan, jika Anda telah menginstalnya di lingkungan Anda.

Demikian pula, jika Anda menggunakan Antigravity CLI, Anda dapat memberikan perintah /skills berikut dan perintah tersebut akan mencantumkan 4 keterampilan. Contohnya ditampilkan di bawah ini:

Setelah mengetahui cara menyiapkan skill, mari kita pelajari setiap Skill dan pahami cara pembuatannya. Anda juga dapat menggunakan template ini untuk membuat keahlian Anda sendiri.
Level 1 : Router Dasar ( git-commit-formatter)
Anggap saja ini sebagai "Halo Dunia" Keterampilan.
Developer sering menulis pesan commit yang tidak jelas, misalnya "wip", "fix bug", "updates". Menerapkan "Conventional Commits" secara manual sangat membosankan dan sering kali terlupakan. Mari kita terapkan Skill yang menerapkan spesifikasi Conventional Commits. Dengan cukup menginstruksikan agen tentang aturan, kita mengizinkannya bertindak sebagai penegak.
git-commit-formatter/
└── SKILL.md (Instructions only)
File SKILL.md ditampilkan di bawah:
---
name: git-commit-formatter
description: Formats git commit messages according to Conventional Commits specification. Use this when the user asks to commit changes or write a commit message.
---
Git Commit Formatter Skill
When writing a git commit message, you MUST follow the Conventional Commits specification.
Format
`<type>[optional scope]: <description>`
Allowed Types
- **feat**: A new feature
- **fix**: A bug fix
- **docs**: Documentation only changes
- **style**: Changes that do not affect the meaning of the code (white-space, formatting, etc)
- **refactor**: A code change that neither fixes a bug nor adds a feature
- **perf**: A code change that improves performance
- **test**: Adding missing tests or correcting existing tests
- **chore**: Changes to the build process or auxiliary tools and libraries such as documentation generation
Instructions
1. Analyze the changes to determine the primary `type`.
2. Identify the `scope` if applicable (e.g., specific component or file).
3. Write a concise `description` in an imperative mood (e.g., "add feature" not "added feature").
4. If there are breaking changes, add a footer starting with `BREAKING CHANGE:`.
Example
`feat(auth): implement login with google`
Cara Menjalankan Contoh Ini di Antigravity
Langkah-langkah di bawah mengasumsikan bahwa Anda telah menginstal Git di komputer lokal dan menyiapkannya dengan benar.
Dengan asumsi Anda telah meluncurkan Antigravity atau Antigravity CLI, ikuti langkah-langkah berikut:
Langkah 1: Siapkan Repositori Git Pengujian
Minta agen untuk menyiapkan direktori yang bersih dan terisolasi untuk menguji operasi Git.
Perintah Anda:
Create a folder named git_test in the workspace, initialize a git repository inside it, and create an initial file auth.py with def login(): pass. Stage this file and make an initial commit.
Agen akan membuat direktori, menginisialisasi repositori, menyiapkan file, dan melakukan commit dengan pesan seperti "initial commit".
Langkah 2: Lakukan Perubahan Kode
Minta agen untuk mengubah kode sehingga ada perubahan yang perlu di-commit.
Perintah Anda:
In the git_test folder, modify auth.py to add Google Login functionality.
Agen akan mengedit file untuk menambahkan fitur baru, dan menyiapkannya untuk fase commit.
Langkah 3: Siapkan dan Lakukan Perubahan
Aktifkan keterampilan git-commit-formatter dengan meminta agen untuk mengatur perubahan dan membuat commit.
Perintah Anda:
Stage the changes in the git_test folder and commit them. Make sure to format the commit message using the Conventional Commits skill.
Agen akan menjalankan git add auth.py, menganalisis perbedaan untuk menentukan bahwa fitur baru telah ditambahkan ke modul auth, dan merumuskan pesan commit konvensional seperti feat(auth): implement google login sebelum menjalankan git commit.
Langkah 4: Verifikasi Log Git
Minta agen untuk mengambil histori git agar Anda dapat mengonfirmasi bahwa commit yang diformat telah berhasil dicatat.
Perintah Anda:
Show me the git log in the git_test folder.
Agen akan menjalankan git log -n 5 dan menampilkan output yang menunjukkan pesan commit yang diformat.
Level 2: Pemanfaatan Aset (license-header-adder)
Ini adalah pola "Referensi".
Setiap file sumber dalam project perusahaan mungkin memerlukan header lisensi Apache 2.0 20 baris tertentu. Menempatkan teks statis ini langsung ke perintah (atau SKILL.md) akan sia-sia. Model ini menggunakan token setiap kali skill diindeks, dan model mungkin "berhalusinasi" dengan salah mengeja dalam teks hukum. Sebaiknya pindahkan teks statis ke file teks biasa di folder resources/. Keterampilan menginstruksikan agen untuk membaca file ini hanya jika diperlukan.
Anda akan menemukan file di folder license-header-adder di direktori skills.
license-header-adder/
├── SKILL.md
└── resources/
└── HEADER_TEMPLATE.txt (The heavy text)
File SKILL.md ditampilkan di bawah:
---
name: license-header-adder
description: Adds the standard open-source license header to new source files. Use involves creating new code files that require copyright attribution.
---
# License Header Adder Skill
This skill ensures that all new source files have the correct copyright header.
## Instructions
1. **Read the Template**:
First, read the content of the header template file located at `resources/HEADER_TEMPLATE.txt`.
2. **Prepend to File**:
When creating a new file (e.g., `.py`, `.java`, `.js`, `.ts`, `.go`), prepend the `target_file` content with the template content.
3. **Modify Comment Syntax**:
- For C-style languages (Java, JS, TS, C++), keep the `/* ... */` block as is.
- For Python, Shell, or YAML, convert the block to use `#` comments.
- For HTML/XML, use `<!-- ... -->`.
Cara Menjalankan Contoh Ini di Antigravity
Dengan asumsi Anda telah meluncurkan Antigravity atau Antigravity CLI, ikuti langkah-langkah berikut:
Langkah 1: Buat File Python dengan Kode Contoh
Perintah Anda:
Create a new file my_script.py with the following python code:
def hello():
print("Hello, World!")
Yang Terjadi (Penjelasan): Agen memanggil alat penulisan file (write_to_file) untuk membuat file baru bernama my_script.py langsung di direktori ruang kerja aktif Anda dan menulis fungsi Python dasar ke dalamnya. Selain itu, perintah memicu keterampilan license-header-adder. Agen menemukan dan membaca file template lisensi (HEADER_TEMPLATE.txt), mengubah gaya komentar dari komentar blok gaya C (/* ... */) menjadi komentar gaya Python (#), dan menambahkan komentar tersebut ke bagian atas file menggunakan alat replace_file_content.
Langkah 2: Verifikasi Isi File
Lihat file my_script.py. File ini akan berisi header lisensi di bagian atas.
Level 3: Belajar dengan Contoh (json-to-pydantic)
Pola "Few-Shot".
Mengonversi data yang tidak terstruktur (seperti respons JSON API) menjadi kode yang ketat (seperti model Pydantic) melibatkan puluhan keputusan. Bagaimana cara memberi nama class? Haruskah kita menggunakan Optional? snake_case atau camelCase? Menulis 50 aturan ini dalam bahasa Inggris akan membosankan dan rentan terhadap kesalahan.
LLM adalah mesin pencocokan pola.
Membuat skill dengan contoh terbaik (Input -> Output) sering kali lebih efektif daripada memberikan petunjuk yang panjang.
Buka folder json-to-pydantic/ yang berisi file skill, seperti yang ditunjukkan di bawah:
json-to-pydantic/
├── SKILL.md
└── examples/
├── input_data.json (The Before State)
└── output_model.py (The After State)
File SKILL.md ditampilkan di bawah:
---
name: json-to-pydantic
description: Converts JSON data snippets into Python Pydantic data models.
---
# JSON to Pydantic Skill
This skill helps convert raw JSON data or API responses into structured, strongly-typed Python classes using Pydantic.
Instructions
1. **Analyze the Input**: Look at the JSON object provided by the user.
2. **Infer Types**:
- `string` -> `str`
- `number` -> `int` or `float`
- `boolean` -> `bool`
- `array` -> `List[Type]`
- `null` -> `Optional[Type]`
- Nested Objects -> Create a separate sub-class.
3. **Follow the Example**:
Review `examples/` to see how to structure the output code. notice how nested dictionaries like `preferences` are extracted into their own class.
- Input: `examples/input_data.json`
- Output: `examples/output_model.py`
Style Guidelines
- Use `PascalCase` for class names.
- Use type hints (`List`, `Optional`) from `typing` module.
- If a field can be missing or null, default it to `None`.
Di folder /examples, ada file JSON dan file output, yaitu file Python. Keduanya ditampilkan di bawah:
input_data.json
{
"user_id": 12345,
"username": "jdoe_88",
"is_active": true,
"preferences": {
"theme": "dark",
"notifications": [
"email",
"push"
]
},
"last_login": "2024-03-15T10:30:00Z",
"meta_tags": null
}
output_model.py
from pydantic import BaseModel, Field
from typing import List, Optional
class Preferences(BaseModel):
theme: str
notifications: List[str]
class User(BaseModel):
user_id: int
username: str
is_active: bool
preferences: Preferences
last_login: Optional[str] = None
meta_tags: Optional[List[str]] = None
Cara Menjalankan Contoh Ini di Antigravity
Dengan asumsi Anda telah meluncurkan Antigravity atau Antigravity CLI, ikuti langkah-langkah berikut:
Langkah 1: Buat File JSON dengan Data Contoh
Minta agen untuk membuat file baru product.json yang berisi payload JSON mentah.
Perintah Anda:
Create a new file product.json with the following JSON:
{
"product": "Widget",
"cost": 10.99,
"stock": null
}
Langkah 2: Mengonversi JSON ke Model Pydantic
Picu kemampuan json-to-pydantic untuk mengonversi data JSON menjadi class Pydantic terstruktur.
Perintah Anda:
Convert the JSON in product.json to a Pydantic model and save it to product_model.py.
Langkah 3: Verifikasi Output
Lihat file product_model.py. Objek ini akan berisi model Pydantic yang telah selesai.
Level 4: Logika Prosedural (database-schema-validator)
Ini adalah Pola "Penggunaan Alat".
Jika Anda bertanya kepada LLM "Apakah skema ini aman?", LLM mungkin mengatakan semuanya baik-baik saja, meskipun kunci utama penting tidak ada, hanya karena SQL terlihat benar.
Mari kita delegasikan pemeriksaan ini ke Skrip deterministik. Keterampilan database-schema-validator akan mengarahkan agen untuk menjalankan skrip Python yang kita tulis. Skrip memberikan kebenaran biner (Benar/Salah).
database-schema-validator/
├── SKILL.md
└── scripts/
└── validate_schema.py (The Validator)
File SKILL.md ditampilkan di bawah:
---
name: database-schema-validator
description: Validates SQL schema files for compliance with internal safety and naming policies.
---
# Database Schema Validator Skill
This skill ensures that all SQL files provided by the user comply with our strict database standards.
Policies Enforced
1. **Safety**: No `DROP TABLE` statements.
2. **Naming**: All tables must use `snake_case`.
3. **Structure**: Every table must have an `id` column as PRIMARY KEY.
Instructions
1. **Do not read the file manually** to check for errors. The rules are complex and easily missed by eye.
2. **Run the Validation Script**:
Use the `run_command` tool to execute the python script provided in the `scripts/` folder against the user's file.
`python scripts/validate_schema.py <path_to_user_file>`
3. **Interpret Output**:
- If the script returns **exit code 0**: Tell the user the schema looks good.
- If the script returns **exit code 1**: Report the specific error messages printed by the script to the user and suggest fixes.
File validate_schema.py ditampilkan di bawah:
import sys
import re
def validate_schema(filename):
"""
Validates a SQL schema file against internal policy:
1. Table names must be snake_case.
2. Every table must have a primary key named 'id'.
3. No 'DROP TABLE' statements allowed (safety).
"""
try:
with open(filename, 'r') as f:
content = f.read()
lines = content.split('\n')
errors = []
# Check 1: No DROP TABLE
if re.search(r'DROP TABLE', content, re.IGNORECASE):
errors.append("ERROR: 'DROP TABLE' statements are forbidden.")
# Check 2 & 3: CREATE TABLE checks
table_defs = re.finditer(r'CREATE TABLE\s+(?P<name>\w+)\s*\((?P<body>.*?)\);', content, re.DOTALL | re.IGNORECASE)
for match in table_defs:
table_name = match.group('name')
body = match.group('body')
# Snake case check
if not re.match(r'^[a-z][a-z0-9_]*$', table_name):
errors.append(f"ERROR: Table '{table_name}' must be snake_case.")
# Primary key check
if not re.search(r'\bid\b.*PRIMARY KEY', body, re.IGNORECASE):
errors.append(f"ERROR: Table '{table_name}' is missing a primary key named 'id'.")
if errors:
for err in errors:
print(err)
sys.exit(1)
else:
print("Schema validation passed.")
sys.exit(0)
except FileNotFoundError:
print(f"Error: File '{filename}' not found.")
sys.exit(1)
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python validate_schema.py <schema_file>")
sys.exit(1)
validate_schema(sys.argv[1])
Cara Menjalankan Contoh Ini di Antigravity
Dengan asumsi Anda telah meluncurkan Antigravity atau Antigravity CLI, ikuti langkah-langkah berikut:
Langkah 1: Buat File JSON dengan Data Contoh
Minta agen untuk membuat file bad_schema.sql baru yang berisi beberapa pelanggaran kebijakan.
Perintah Anda:
Create a new file bad_schema.sql with the following SQL:
DROP TABLE IF EXISTS legacy_users;
CREATE TABLE userProfile (
id INT PRIMARY KEY,
bio TEXT
);
CREATE TABLE posts (
title TEXT,
content TEXT,
created_at TIMESTAMP
);
CREATE TABLE comments (
id INT PRIMARY KEY,
post_id INT,
body TEXT
);
File skema di atas melanggar ketiga kebijakan: menggunakan pernyataan DROP TABLE yang dilarang, menggunakan camelCase untuk nama tabel userProfile, dan lupa kunci utama id dalam tabel posts.
Langkah 2: Validasi Skema SQL
Aktifkan skill database-schema-validator untuk menjalankan skrip validator Python terhadap file Anda.
Perintah Anda:
Validate bad_schema.sql using the database-schema-validator skill.
Langkah 3: Verifikasi Output
Agen akan melaporkan kegagalan dan menampilkan error spesifik yang ditemukan oleh skrip langsung dalam chat. Contoh output ditampilkan di bawah:
Suggested Fixes:
Remove the line DROP TABLE IF EXISTS legacy_users; as dropping tables is forbidden by safety policy.
Rename the table userProfile to use snake_case (e.g., user_profile).
Add a primary key column named id to the posts table definition.
6. Toolkit Developer (Keterampilan CLI Agen)
Pola "Tindakan & Siklus Proses".
Pengembangan agen AI melibatkan tugas siklus proses yang berulang: membuat file boilerplate, mengonfigurasi lingkungan runtime lokal, menjalankan perintah pengujian, dan memulai playground interaktif.
Daripada memaksa asisten coding Anda menebak struktur direktori atau menulis konfigurasi agen boilerplate dari awal, Keahlian CLI Agen mengemas keahlian siklus proses ini ke dalam keahlian agen tertentu.
Kemampuan Agent CLI (Command Line Interface) menghadirkan otomatisasi yang disederhanakan dan berfokus pada developer langsung ke terminal Anda, sehingga menjembatani kesenjangan antara kode mentah dan eksekusi otonom. Meskipun Agent Development Kit (ADK) berfokus pada framework terprogram, yang memberi Anda SDK, API, dan cetak biru struktural untuk membangun dan mengatur agen AI, keterampilan Agent CLI memberikan kemampuan operasional. Hal ini memungkinkan developer membuat struktur, menguji, dan men-deploy agen secara lokal dengan loop umpan balik yang cepat, sehingga sepenuhnya melewati overhead UI yang berat.
Secara opsional, saat dipetakan ke Google Cloud, kemampuan Agent CLI bertindak sebagai pipeline langsung ke infrastruktur tingkat perusahaan. Daripada mengklik konsol, Anda dapat menggunakan perintah CLI untuk langsung mengemas alur kerja agen, mengelola izin akses, dan men-deploy-nya ke ekosistem Google Cloud (seperti Vertex AI atau Cloud Run). Hal ini mengubah tugas arsitektur cloud yang dulunya rumit menjadi perintah terminal yang sederhana dan dapat direproduksi, sehingga memudahkan integrasi agen otonom ke dalam pipeline deployment CI/CD yang ada.
Cara Menginstal
Pastikan Anda telah menginstal Python 3.11+, Node.js, dan pengelola paket uv. Kemudian, jalankan perintah penyiapan di terminal Anda:
uvx google-agents-cli setup
Perintah ini menginstal program biner agents-cli dan mendaftarkan keahlian khususnya untuk scaffolding dan evaluasi dalam lingkungan asisten coding Anda.
Catatan: Keterampilan akan diinstal di folder ~/.agents/skills, yang dapat dilihat oleh Antigravity. Jika ingin melihat keterampilan ini di Antigravity CLI, Anda harus memindahkannya ke folder ~/.gemini/antigravity-cli/skills (cakupan global).
Anda dapat memeriksa apakah Keterampilan telah dimuat di Antigravity dengan cukup menanyakan keterampilan mana yang tersedia. Contoh respons ditampilkan di bawah, untuk Keterampilan CLI Agen yang baru saja kita instal.

Panduan Langkah demi Langkah
Setelah uvx google-agents-cli setup selesai, Anda dapat menjalankan, berinteraksi dengan, dan menguji agen AI sepenuhnya di komputer lokal Anda.
Langkah 1: Buat Struktur dan Lakukan Inisialisasi Project Agen Baru
Jalankan perintah pembuatan untuk membuat tata letak standar. Setelah dibuat, Anda harus menginstal dependensi project-nya sebelum menjalankan tugas eksekusi apa pun.
# 1. Create a lightweight prototype project structure
agents-cli create weather-assistant --prototype --yes
# 2. Move into the directory and install required ADK dependencies
cd weather-assistant
agents-cli install
Yang terjadi di balik layar: Tindakan ini akan membuat ruang kerja bersih yang menampilkan app/agent.py (kode inti Anda), pyproject.toml (metadata paket), dan agents-cli-manifest.yaml (pelacak project).
Langkah 2: Jalankan Kueri Pengujian Lokal
Jalankan pengujian command line langsung yang cepat terhadap agen Anda. Pastikan Anda telah mengekspor GEMINI_API_KEY di terminal jika Anda tidak menggunakan ADC (Kredensial Default Aplikasi) Google Cloud. Anda bisa mendapatkan Kunci Gemini API dari sini. Setelah Anda memiliki kunci, ekspor di terminal Anda melalui perintah berikut:
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
Berikan perintah berikut di terminal Anda:
agents-cli run "How are you?"
Yang terjadi di balik layar: CLI menginisialisasi siklus proses Agent Development Kit (ADK) sepenuhnya di memori pada terminal Anda. Secara aman, perintah ini merutekan perintah melalui kredensial lokal Anda dan mencatat respons live streaming langsung kembali ke command line Anda.
Langkah 3: Mulai Interactive Web Playground
Luncurkan playground berbasis web lokal bawaan untuk berinteraksi dengan agen Anda secara visual.
agents-cli playground
Yang terjadi di balik layar: CLI meluncurkan server UI web ADK, yang biasanya dapat diakses di http://localhost:8080 atau http://127.0.0.1:8000 fallback, lengkap dengan hot-reloading. Dari antarmuka web, pilih app di dropdown Select an app di bagian atas dan berinteraksi dengan agen di antarmuka percakapan di sisi kanan aplikasi web.
7. Menginstal Keahlian Agen menggunakan npx skills
npx skills adalah alat command line yang dikembangkan oleh Vercel Labs yang berfungsi sebagai pengelola paket untuk agen AI (seperti Antigravity, Claude Code, GitHub Copilot, Cursor, dan Cline). CLI ini adalah CLI untuk ekosistem keterampilan agen terbuka.
Jika Anda ingin mendownload dan menginstal Agent Skills menggunakan paket npx skills, perhatikan bahwa paket ini menempatkan Skills di folder ~/.agents/skills. Meskipun disebutkan bahwa alat seperti Antigravity akan mengambil keterampilan dari folder ini, perlu diperhatikan bahwa pada saat penulisan, Antigravity mengambilnya dari folder ini, tetapi Antigravity CLI tidak. Seperti yang disebutkan sebelumnya, Anda harus menyalin keterampilan yang diinstal di folder ~/.agents/skills ini, ke project atau cakupan global untuk folder keterampilan di Antigravity CLI, yaitu
- Cakupan Proyek: Berada di
<project-root>/.agent/skills/. - Cakupan Global: Berlokasi di
~/.gemini/antigravity-cli/skills/.
8. Selamat
Selamat! Anda telah berhasil menggunakan Google Antigravity untuk membuat keterampilan Agen pertama, mengonfigurasinya, dan menambahkan kemampuan kustom ke dalamnya.
Anda juga berhasil mengonfigurasi serangkaian Keterampilan Agen, dalam cakupan project dan global, sehingga menghadirkan alat yang disesuaikan.
Sekarang Anda siap membiarkan Antigravity menangani tugas berat di project Anda sendiri dan menulis kode dengan cara Anda.
Dapatkan badge Agen AI 5 Hari Kaggle
Sudah menyelesaikan lab ini sebagai bagian dari Kursus Intensif Vibe Coding dengan Agen AI 5 Hari dari Google di Kaggle? Klaim badge penyelesaian Anda: Dapatkan badge Agen AI 5 Hari.
9. Dokumen referensi
- Codelab : Memulai Google Antigravity
- Situs Resmi : https://antigravity.google/
- Dokumentasi: https://antigravity.google/docs
- Download : https://antigravity.google/download
- Dokumentasi Keahlian Antigravity: https://antigravity.google/docs/skills