Mulai Menggunakan Keterampilan di Google Antigravity

1. Pengantar

Google Antigravity (disebut sebagai Antigravity di bagian lain dokumen ini) adalah IDE agentic dari Google. Dalam codelab Memulai Antigravity, Anda dapat mempelajari dasar-dasar Antigravity. Dalam codelab ini, kita akan menggunakan Antigravity untuk membuat Keterampilan 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, penyiapan kode alat, dan lainnya, yang semuanya dapat digunakan dalam Antigravity.

Prasyarat:

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, membuang 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 mengatasinya, Anthropic memperkenalkan Keterampilan 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

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.

d3f4bcb065a19fea.png

3. Keterampilan Agen dan Antigravitasi

Dalam ekosistem Antigravity, jika Agent Manager adalah otak dan Editor adalah kanvas, Keterampilan berfungsi sebagai modul pelatihan khusus yang menjembatani kesenjangan antara model Gemini 3 generalis dan konteks spesifik Anda. Alat ini memungkinkan agen "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 dalam 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 ekstensi 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 menjalankan perintah. 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 generator 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 berat ke sistem eksternal seperti GitHub atau PostgreSQL—Keterampilan bertindak sebagai "otak" yang mengarahkannya.

MCP menangani infrastruktur stateful, sedangkan Skill 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.

Secara fungsional, Keterampilan menempati posisi tengah yang unik antara "Aturan" (pengarah pasif yang selalu aktif) dan "Alur Kerja" (makro aktif yang dipicu pengguna). Tidak seperti alur kerja yang memerlukan perintah tertentu (misalnya, /test), Keterampilan dipicu oleh agen: model secara otomatis mendeteksi maksud pengguna dan secara dinamis melengkapi keahlian khusus yang diperlukan. Arsitektur ini memungkinkan komposisi yang efektif; misalnya, Aturan global dapat menerapkan penggunaan Keterampilan "Migrasi Aman" selama perubahan database, atau satu Alur Kerja dapat mengatur beberapa Keterampilan untuk membangun pipeline deployment yang andal.

4. Membuat Keterampilan

Membuat Skill di Antigravity mengikuti struktur direktori dan format file tertentu. Standardisasi ini memastikan bahwa keterampilan dapat dipindahkan dan bahwa 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

Keterampilan dapat ditentukan dalam dua cakupan, sehingga memungkinkan penyesuaian khusus project dan khusus pengguna :

  1. Cakupan Workspace: Berlokasi di <workspace-root>/.agent/skills/. Keterampilan ini 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.
  2. Cakupan Global: Berlokasi di ~/.gemini/antigravity/skills/. Keterampilan ini tersedia di semua project di komputer pengguna. Hal ini cocok untuk utilitas umum seperti "Format JSON", "Generate UUIDs", "Review Code Style", atau integrasi dengan alat produktivitas pribadi.

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. Hal ini memberi tahu agen tentang apa itu skill, 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 diperbolehkan (misalnya, postgres-query, pr-reviewer). Jika tidak diberikan, nilai defaultnya adalah nama direktori.
  • description: Kolom ini wajib diisi dan merupakan kolom yang paling penting. Fungsi ini 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 melakukan proses 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:

  1. Tujuan: Pernyataan yang jelas tentang apa yang dicapai oleh keterampilan tersebut.
  2. Petunjuk: Logika langkah demi langkah.
  3. Contoh: Contoh input dan output few-shot untuk memandu performa model.
  4. 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 mengembangkan Keterampilan yang terintegrasi ke dalam Antigravity dan secara progresif menampilkan berbagai fitur seperti resource / skrip / dll.

Anda dapat mendownload Keterampilan dari repo GitHub di sini: https://github.com/rominirani/antigravity-skills.

Kita dapat melihat penempatan setiap keterampilan ini di dalam folder ~/.gemini/antigravity/skills atau folder /.agent/skills.

Level 1 : Router Dasar ( git-commit-formatter )

Anggap saja ini sebagai "Hello World"-nya Skill.

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:

  1. Buat perubahan kecil pada file apa pun di ruang kerja Anda.
  2. Buka percakapan dan ketik: Commit perubahan ini.
  3. Agen tidak hanya akan menjalankan git commit. Pertama, keterampilan git-commit-formatter akan diaktifkan.
  4. Hasil: Pesan commit Git konvensional akan diusulkan.

Misalnya, saya membuat Antigravity menambahkan beberapa komentar ke file Python contoh dan akhirnya menghasilkan pesan commit Git seperti docs: add detailed comments to demo_primes.py.

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) adalah tindakan yang sia-sia. Model ini menggunakan token setiap kali skill diindeks, dan model mungkin "berhalusinasi" kesalahan ketik dalam teks hukum.

Menghapus teks statis ke file teks biasa di folder resources/. Keterampilan menginstruksikan agen untuk membaca file ini hanya jika diperlukan.

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 melelahkan dan rentan terhadap kesalahan.

LLM adalah mesin pencocokan pola.

Menunjukkan contoh yang bagus (Input -> Output) sering kali lebih efektif daripada memberikan petunjuk yang panjang.

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:

  1. Buat file python dummy baru: touch my_script.py
  2. Jenis: Add the license header to my_script.py.
  3. Agen akan membaca license-header-adder/resources/HEADER_TEMPLATE.txt.
  4. Konten akan ditempelkan persis seperti aslinya, kata demi kata, ke dalam file Anda.

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 melelahkan dan rentan terhadap kesalahan.

LLM adalah mesin pencocokan pola. Menunjukkan contoh yang bagus (Input -> Output) sering kali lebih efektif daripada memberikan petunjuk yang panjang.

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:

  1. Berikan cuplikan JSON kepada agen (tempelkan di chat atau tunjuk file).

{ "product": "Widget", "cost": 10.99, "stock": null }

  1. Jenis: Convert this JSON to a Pydantic model.
  2. Agen akan melihat pasangan examples di folder skill.
  3. Model ini menghasilkan class Python yang meniru dengan sempurna gaya coding, impor, dan struktur output_model.py, termasuk menangani stok nol sebagai Opsional.

Contoh output (product_model.py) ditampilkan di bawah:

from pydantic import BaseModel
from typing import Optional

class Product(BaseModel):
   product: str
   cost: float
   stock: Optional[int] = None

Level 4: Logika Prosedural (database-schema-validator)

Ini adalah Pola "Penggunaan Alat".

Jika Anda bertanya kepada LLM "Apakah skema ini aman?", LLM mungkin akan mengatakan semuanya baik-baik saja, meskipun kunci utama penting tidak ada, hanya karena SQL terlihat benar.

Mari kita mendelegasikan pemeriksaan ini ke Skrip deterministik. Kita menggunakan Skill untuk merutekan agen agar 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:

  1. Buat file SQL yang salah bad_schema.sql: CREATE TABLE users (name TEXT);
  2. Jenis: Validate bad_schema.sql.
  3. Agen tidak menebak. Tindakan ini akan memanggil skrip, yang gagal (Kode Keluar 1) dan akan melaporkan kepada kami bahwa "Validasi gagal karena tabel 'users' tidak memiliki kunci utama".

Level 5: Arsitek (adk-tool-scaffold)

Pola ini mencakup sebagian besar fitur yang tersedia di Keterampilan.

Tugas yang kompleks sering kali memerlukan urutan operasi yang menggabungkan semua yang telah kita lihat: membuat file, mengikuti template, dan menulis logika. Membuat Alat baru untuk ADK (Agent Development Kit) memerlukan semua hal ini.

Kami menggabungkan:

  • Skrip (untuk menangani pembuatan/scaffolding file)
  • Template (untuk menangani boilerplate di resource)
  • Contoh (untuk memandu pembuatan logika).
adk-tool-scaffold/
├── SKILL.md
├── resources/
   └── ToolTemplate.py.hbs (Jinja2 Template)
├── scripts/
   └── scaffold_tool.py    (Generator Script)
└── examples/
    └── WeatherTool.py      (Reference Implementation)

File SKILL.md ditampilkan di bawah. Anda dapat melihat repositori kemampuan untuk memeriksa file di folder skrip, resource, dan contoh. Untuk Skill tertentu ini, buka skill adk-tool-scaffold.

---
name: adk-tool-scaffold
description: Scaffolds a new custom Tool class for the Agent Development Kit (ADK).
---

# ADK Tool Scaffold Skill

This skill automates the creation of standard `BaseTool` implementations for the Agent Development Kit.

Instructions

1. **Identify the Tool Name**:
  Extract the name of the tool the user wants to build (e.g., "StockPrice", "EmailSender").
 
2. **Review the Example**:
  Check `examples/WeatherTool.py` to understand the expected structure of an ADK tool (imports, inheritance, schema).

3. **Run the Scaffolder**:
  Execute the python script to generate the initial file.
 
  `python scripts/scaffold_tool.py <ToolName>`

4. **Refine**:
  After generation, you must edit the file to:
  - Update the `execute` method with real logic.
  - Define the JSON schema in `get_schema`.
 
Example Usage
User: "Create a tool to search Wikipedia."
Agent:
1. Runs `python scripts/scaffold_tool.py WikipediaSearch`
2. Editing `WikipediaSearchTool.py` to add the `requests` logic and `query` argument schema.

Cara Menjalankan Contoh ini:

  1. Jenis: Create a new ADK tool called StockPrice to fetch data from an API.
  2. Langkah 1 (Scaffolding): Agen menjalankan skrip python. Tindakan ini akan langsung membuat StockPriceTool.py dengan struktur class, impor, dan nama class StockPriceTool yang benar.
  3. Langkah 2 (Implementasi): Agen "membaca" file yang baru saja dibuatnya. # TODO: Implement logic. melihat
  4. Langkah 3 (Panduan): Tidak yakin cara menentukan skema JSON untuk argumen alat. Memeriksa examples/WeatherTool.py.
  5. Penyelesaian: Mengedit file untuk menambahkan requests.get(...) dan menentukan argumen ticker dalam skema, yang sama persis dengan gaya ADK.

6. Selamat

Anda telah berhasil menyelesaikan lab tentang Keterampilan Antigravitasi dan membuat Keterampilan berikut:

  • Pemformat commit Git.
  • Penambah header lisensi.
  • JSON ke Pydantic.
  • Validator skema database.
  • Scaffolding Alat ADK.

Kemampuan Agen adalah cara yang tepat untuk membuat Antigravity menulis kode dengan cara Anda, mengikuti aturan, dan menggunakan alat Anda.

Dokumen referensi