Mulai Menggunakan Google Antigravity

1. Pengantar

Dalam codelab ini, Anda akan mempelajari Google Antigravity (selanjutnya disebut Antigravity dalam dokumen ini), platform pengembangan agentik, yang mengubah IDE menjadi era agent-first.

Tidak seperti asisten coding standar yang hanya melengkapi baris secara otomatis, Antigravity menyediakan "Mission Control" untuk mengelola agen otonom yang dapat merencanakan, membuat kode, dan bahkan menjelajahi web untuk membantu Anda membangun.

Antigravity dirancang sebagai platform "agent-first". Hal ini mengandaikan bahwa AI bukan hanya alat untuk menulis kode, tetapi juga aktor otonom yang mampu merencanakan, menjalankan, memvalidasi, dan melakukan iterasi pada tugas engineering yang kompleks dengan intervensi manusia yang minimal.

Yang akan Anda pelajari

  • Menginstal dan mengonfigurasi Antigravity
  • Menjelajahi konsep utama Antigravity seperti Agent Manager, Editor, Browser, dan lainnya
  • Mempelajari beberapa kasus penggunaan dengan Antigravity

Yang Anda butuhkan

Saat ini, Antigravity tersedia sebagai pratinjau untuk akun Gmail pribadi. API ini dilengkapi dengan kuota gratis untuk menggunakan model premier.

Antigravity harus diinstal secara lokal di sistem Anda. Produk ini tersedia di Mac, Windows, dan distribusi Linux tertentu. Selain perangkat Anda sendiri, Anda memerlukan hal berikut:

  • Browser web Chrome
  • Akun Gmail (Akun Gmail pribadi).

Codelab ini dirancang untuk pengguna dan developer dari semua tingkat keahlian (termasuk pemula).

Melaporkan masalah

Saat mengerjakan codelab dan Antigravity, Anda mungkin mengalami masalah.

Untuk masalah terkait codelab (salah ketik, petunjuk yang salah), buka bug dengan tombol Report a mistake di sudut kiri bawah codelab ini:

b06b582bcd847f6d.png

Untuk bug atau permintaan fitur terkait Antigravity, laporkan masalah dalam Antigravity. Anda dapat melakukannya di Pengelola Agen dengan link Provide Feedback di sudut kiri bawah:

281ac826fb44d427.png

Anda juga dapat membuka editor dengan mengklik link Report Issue di bawah ikon profil Anda:

e8afd782a8f92129.png

2. Penginstalan

Kita akan mulai dengan menginstal Antigravity. Saat ini, produk ini tersedia untuk pratinjau dan Anda dapat menggunakan akun Gmail pribadi Anda untuk mulai menggunakannya.

Buka halaman download dan klik versi sistem operasi yang sesuai dengan kasus Anda. Luncurkan penginstal aplikasi dan instal aplikasi yang sama di komputer Anda. Setelah Anda menyelesaikan penginstalan, luncurkan aplikasi Antigravity. Anda akan melihat layar yang mirip dengan berikut ini:

29fada39721093c.png

Lanjutkan dengan mengklik Next setiap kali. Langkah-langkah utama dijelaskan di bawah:

  • Pilih alur penyiapan: Opsi ini akan memunculkan opsi bagi Anda untuk mengimpor dari setelan VS Code atau Cursor yang ada. Kita akan memulai dari awal.
  • Pilih jenis tema Editor: Kita akan menggunakan tema gelap, tetapi semuanya terserah Anda.
  • Bagaimana Anda ingin menggunakan agen Antigravitasi?

7ca55560ec377130.png

Mari kita pahami hal ini secara lebih mendetail. Ingatlah bahwa setelan dapat diubah kapan saja melalui Setelan Pengguna Antigravitasi (Cmd + ,).

Sebelum membahas opsi, mari kita lihat beberapa properti tertentu (yang Anda lihat di sebelah kanan dialog).

Kebijakan Eksekusi Terminal

Hal ini terkait dengan memberikan kemampuan kepada Agen untuk menjalankan perintah (aplikasi/alat) di terminal Anda:

  • Selalu lanjutkan: Selalu jalankan perintah terminal secara otomatis (kecuali perintah yang ada dalam daftar penolakan yang dapat dikonfigurasi).
  • Minta peninjauan: Minta peninjauan dan persetujuan pengguna sebelum menjalankan perintah terminal.

Kebijakan ulasan

Saat menjalankan tugasnya, Agen membuat berbagai artefak (rencana tugas, rencana penerapan, dll.). Kebijakan peninjauan ditetapkan sehingga Anda dapat menentukan siapa yang memutuskan apakah ulasan perlu ditinjau atau tidak. Apakah Anda selalu ingin meninjaunya, atau membiarkan agen memutuskan hal ini. Oleh karena itu, ada tiga opsi di sini juga.

  • Selalu Lanjutkan: Agen tidak pernah meminta peninjauan.
  • Agen Memutuskan: Agen akan memutuskan kapan harus meminta ulasan.
  • Minta Peninjauan: Agen selalu meminta ulasan.

Kebijakan Eksekusi JavaScript

Jika diaktifkan, agen dapat menggunakan alat browser untuk membuka URL, membaca halaman web, dan berinteraksi dengan konten browser. Kebijakan ini mengontrol cara JavaScript dieksekusi di browser.

  • Selalu Lanjutkan: Agen tidak akan berhenti untuk meminta izin menjalankan JavaScript di browser. Hal ini memberikan otonomi maksimum kepada Agen untuk melakukan tindakan dan validasi yang kompleks di browser, tetapi juga memiliki eksposur tertinggi terhadap eksploitasi keamanan.
  • Minta peninjauan: Agen akan selalu berhenti untuk meminta izin menjalankan kode JavaScript di browser.
  • Dinonaktifkan: Agen tidak akan pernah menjalankan kode Javascript di browser.

Setelah memahami berbagai kebijakan, 4 opsi di sebelah kiri hanyalah setelan khusus untuk kebijakan eksekusi terminal, peninjauan, dan eksekusi JavaScript untuk 3 opsi, serta opsi ke-4 yang tersedia untuk kontrol kustom sepenuhnya. Keempat opsi ini tersedia agar kami dapat memilih seberapa besar otonomi yang ingin Anda berikan kepada Agen untuk menjalankan perintah di terminal dan mendapatkan artefak yang ditinjau sebelum melanjutkan tugas.

Keempat opsi tersebut adalah:

  • Mode aman: Mode Aman menyediakan kontrol keamanan yang ditingkatkan untuk Agen, sehingga Anda dapat membatasi aksesnya ke resource eksternal dan operasi sensitif. Jika Mode Aman diaktifkan, beberapa langkah keamanan akan diterapkan untuk melindungi lingkungan Anda.
  • Pengembangan berbasis ulasan (direkomendasikan): Agen akan sering meminta ulasan.
  • Pengembangan yang didorong agen: Agen tidak akan pernah meminta peninjauan.
  • Konfigurasi kustom

Opsi Pengembangan berbasis ulasan adalah opsi yang seimbang dan direkomendasikan karena memungkinkan agen membuat keputusan dan kembali kepada pengguna untuk mendapatkan persetujuan.

Berikutnya adalah halaman setelan Konfigurasi Editor tempat Anda dapat memilih preferensi untuk hal berikut:

  • Binding tombol: Konfigurasi binding tombol Anda.
  • Ekstensi: Instal ekstensi bahasa populer dan ekstensi lain yang direkomendasikan.
  • Command Line: Instal alat command line untuk membuka Antigravity dengan agy.

Sekarang, Anda siap untuk Login ke Google. Seperti yang disebutkan sebelumnya, Antigravity tersedia dalam mode pratinjau dan gratis jika Anda memiliki akun Gmail pribadi. Login sekarang dengan akun Anda. Tindakan ini akan membuka browser sehingga Anda dapat login. Setelah autentikasi berhasil, Anda akan melihat pesan yang mirip dengan yang di bawah dan Anda akan diarahkan kembali ke aplikasi Antigravity. Ikuti alurnya.

Terakhir, Persyaratan Penggunaan. Anda dapat memutuskan apakah ingin ikut serta atau tidak, lalu mengklik Next.

Tindakan ini akan membawa Anda ke momen penting, saat Antigravity akan menunggu untuk berkolaborasi dengan Anda.

3. Pengelola Agen

Kita siap memulai!

Antigravity membuat fork dari fondasi Visual Studio Code (VS Code) open source, tetapi mengubah pengalaman pengguna secara radikal untuk memprioritaskan pengelolaan agen daripada pengeditan teks. Antarmuka dibagi menjadi dua jendela utama yang berbeda: Editor dan Agent Manager. Pemisahan masalah ini mencerminkan perbedaan antara kontribusi individu dan pengelolaan engineering.

Agent Manager: Kontrol Misi

Saat meluncurkan Antigravity, pengguna biasanya tidak disambut oleh hierarki file, tetapi oleh Pengelola Agen, seperti yang ditunjukkan di bawah:

d5ae91fc746e1bba.png

Antarmuka ini berfungsi sebagai dasbor Mission Control. Dirancang untuk orkestrasi tingkat tinggi, sehingga memungkinkan developer membuat, memantau, dan berinteraksi dengan beberapa agen yang beroperasi secara asinkron di berbagai ruang kerja atau tugas.

Dalam tampilan ini, developer bertindak sebagai arsitek. Mereka menentukan tujuan tingkat tinggi, contohnya:

  • Memfaktorkan ulang modul autentikasi
  • Memperbarui hierarki dependensi
  • Buat rangkaian pengujian untuk Billing API

Seperti yang ditunjukkan diagram di atas, setiap permintaan ini memunculkan instance agen khusus. UI menyediakan visualisasi alur kerja paralel ini, yang menampilkan status setiap agen, Artefak yang telah dihasilkan (rencana, hasil, perbedaan), dan permintaan persetujuan manual yang tertunda.

Arsitektur ini mengatasi batasan utama IDE sebelumnya yang lebih memiliki pengalaman chatbot, yang bersifat linear dan sinkron. Di antarmuka chat tradisional, developer harus menunggu AI selesai membuat kode sebelum mengajukan pertanyaan berikutnya. Di Tampilan Pengelola Antigravity, developer dapat mengirim lima agen berbeda untuk mengerjakan lima bug berbeda secara bersamaan, sehingga secara efektif melipatgandakan throughput mereka.

Jika Anda mengklik Next di atas, Anda memiliki opsi untuk membuka ruang kerja.

ec72712ea24bf6d5.png

Pikirkan ruang kerja seperti yang Anda ketahui dari VS Code dan Anda akan selesai. Jadi, kita dapat membuka folder lokal dengan mengklik tombol, lalu memilih folder untuk memulai. Dalam kasus saya, saya memiliki folder di folder beranda saya yang bernama my-agy-projects dan saya memilih folder tersebut. Anda dapat menggunakan folder yang sama sekali berbeda. Perhatikan, Anda dapat melewati langkah ini sepenuhnya jika mau dan Anda juga dapat membuka ruang kerja kapan saja nanti.

Setelah menyelesaikan langkah ini, Anda akan berada di jendela Pengelola Agen, yang ditampilkan di bawah:

156224e223eeda36.png

Anda akan melihat bahwa aplikasi langsung diarahkan untuk memulai percakapan baru di folder ruang kerja (my-agy-projects) yang dipilih. Anda dapat menggunakan pengetahuan yang sudah ada tentang cara menggunakan aplikasi AI lainnya (Cursor, Gemini CLI) dan menggunakan @ serta cara lain untuk menyertakan konteks tambahan saat memberikan perintah.

Lihat dropdown Planning dan Model Selection. Dropdown Pemilihan Model memungkinkan Anda memilih salah satu model yang tersedia saat ini, untuk digunakan oleh Agen Anda. Daftar tersebut ditampilkan di bawah ini:

fb0744dc43911365.png

Demikian pula, kita mendapati bahwa Agen akan berada dalam mode Planning default. Namun, kita juga dapat memilih mode Fast.

f403e40ad480efc9.png

Mari kita lihat apa yang dikatakan dokumentasi tentang hal ini:

  • Planning: Agen dapat membuat rencana sebelum menjalankan tugas. Gunakan untuk riset mendalam, tugas kompleks, atau kerja kolaboratif. Dalam mode ini, Agen mengatur pekerjaannya dalam grup tugas, menghasilkan Artefak, dan mengambil langkah-langkah lain untuk meneliti, memikirkan, dan merencanakan pekerjaannya secara menyeluruh demi kualitas yang optimal. Anda akan melihat lebih banyak output di sini.
  • Fast: Agen akan menjalankan tugas secara langsung. Gunakan untuk tugas sederhana yang dapat diselesaikan lebih cepat, seperti mengganti nama variabel, memulai beberapa perintah bash, atau tugas kecil lainnya yang terlokalisasi. Hal ini berguna saat kecepatan menjadi faktor penting, dan tugasnya cukup sederhana sehingga tidak perlu khawatir kualitasnya akan lebih buruk.

Jika Anda memahami anggaran penalaran dan istilah serupa di agen, anggap ini sebagai kemampuan untuk mengontrol penalaran agen, sehingga berdampak langsung pada anggaran penalaran. Untuk saat ini, kita akan menggunakan setelan default, tetapi ingatlah bahwa pada saat peluncuran, ketersediaan model Gemini 3 Pro adalah sesuai dengan kuota terbatas untuk semua orang. Jadi, Anda akan melihat pesan yang sesuai jika kuota gratis untuk penggunaan Gemini 3 telah habis.

Sekarang, mari kita luangkan waktu untuk membahas Pengelola Agen (jendela) di sini dan memahami beberapa hal, sehingga jelas tentang elemen dasar, cara menjelajahi Antigravity, dan lainnya. Jendela Agent Manager ditampilkan di bawah:

22f6dcf7b3edc583.png

Lihat diagram di atas dengan angka-angka berikut:

  1. Inbox: Anggap ini sebagai cara untuk melacak semua percakapan Anda di satu tempat. Saat Anda mengirim Agen untuk menjalankan tugasnya, tugas tersebut akan muncul di Kotak Masuk dan Anda dapat mengklik Kotak Masuk untuk mendapatkan daftar semua percakapan saat ini. Dengan mengetuk percakapan, Anda akan melihat semua pesan yang telah dikirim, status tugas, apa yang telah dihasilkan Agen, atau bahkan apakah Agen sedang menunggu persetujuan dari Anda untuk tugas tersebut. Ini adalah cara yang bagus untuk kembali ke tugas sebelumnya yang sedang Anda kerjakan. Fitur yang sangat berguna.
  2. Start Conversation: Klik ini untuk memulai percakapan baru. Anda akan langsung diarahkan ke input yang bertuliskan Ask anything.
  3. Workspaces: Kami menyebutkan Ruang Kerja dan bahwa Anda dapat bekerja di ruang kerja mana pun yang Anda inginkan. Anda dapat menambahkan ruang kerja lainnya kapan saja dan dapat memilih ruang kerja mana pun saat memulai percakapan.
  4. Playground: Ini adalah cara yang bagus untuk memulai percakapan dengan agen, lalu jika Anda ingin mengonversinya menjadi ruang kerja, tempat Anda memiliki kontrol yang lebih ketat atas file, dll. Anggap ini sebagai area sementara.
  5. Editor View: Sejauh ini kita berada di tampilan Agent Manager. Anda dapat beralih ke tampilan Editor kapan saja, jika Anda mau. Tindakan ini akan menampilkan folder ruang kerja dan file yang dihasilkan. Anda dapat mengedit file secara langsung di sana, atau bahkan memberikan panduan inline, perintah di editor, sehingga Agen dapat melakukan sesuatu atau mengubah sesuai dengan rekomendasi/petunjuk yang Anda ubah. Kita akan membahas Tampilan Editor secara mendetail di bagian berikutnya.
  6. Browser: Terakhir, kita sampai pada salah satu pembeda jelas yang membuat Antigravity sangat canggih, yaitu integrasinya yang erat dengan browser Chrome. Mari kita mulai menyiapkan browser di bagian berikutnya.

4. Browser Antigravity

Sesuai dengan dokumentasi, saat agen ingin berinteraksi dengan browser, agen akan memanggil sub-agen browser untuk menangani tugas yang sedang dikerjakan. Subagen browser menjalankan model khusus untuk beroperasi di halaman yang terbuka dalam browser yang dikelola Antigravity, yang berbeda dengan model yang Anda pilih untuk agen utama.

Sub-agen ini memiliki akses ke berbagai alat yang diperlukan untuk mengontrol browser Anda, termasuk mengklik, men-scroll, mengetik, membaca log konsol, dan lainnya. Gemini juga dapat membaca halaman yang terbuka melalui pengambilan DOM, screenshot, atau penguraian markdown, serta merekam video.

Artinya, kita perlu meluncurkan dan menginstal ekstensi browser Antigravity. Mari kita lakukan dengan memulai percakapan di Playground dan mengikuti langkah-langkahnya.

Pilih Playground dan berikan tugas go to antigravity.google berikut kepada Agen seperti yang ditunjukkan di bawah:

51a373d3da23db56.png

Kirimkan tugas. Anda akan melihat agen menganalisis tugas dan Anda dapat memeriksa proses pemikirannya. Pada suatu saat, proses akan berjalan dengan benar dan menyebutkan bahwa proses perlu menyiapkan agen browser seperti yang ditunjukkan di bawah. Klik Setup.

e7119f40e093afd2.png

Tindakan ini akan membuka browser dan menampilkan pesan untuk menginstal ekstensi seperti yang ditunjukkan di bawah:

82fb87d7d75b4a6c.png

Lanjutkan dan Anda akan diarahkan ke Ekstensi Chrome yang kemudian dapat Anda instal.

f3468f0e5f3bb075.png

Setelah Anda berhasil menginstal ekstensi, Antigravity Agent akan mulai bekerja dan menunjukkan bahwa ia mengharapkan Anda mengizinkannya melakukan tugasnya. Anda akan melihat beberapa aktivitas di jendela browser yang telah dibuka:

7f0367e00ac36d5a.png

Beralih kembali ke tampilan Agent Manager dan Anda akan melihat hal berikut:

b9d89e1ebefcfd76.png

Inilah yang kami harapkan terjadi karena kami meminta Agen untuk membuka dan mengunjungi situs antigravity.google. Beri izin dan Anda akan mendapati bahwa situs telah dibuka dengan aman, seperti yang ditunjukkan di bawah:

77fcc38b5fb4ca7c.png

5. Artefak

Antigravity membuat Artefak saat merencanakan dan menyelesaikan pekerjaannya sebagai cara untuk mengomunikasikan pekerjaannya dan mendapatkan masukan dari pengguna manusia. File ini adalah file markdown kaya, diagram arsitektur, gambar, rekaman browser, perbedaan kode, dan sebagainya.

Artefak mengatasi "Kesenjangan Kepercayaan". Saat agen mengklaim, "Saya telah memperbaiki bug", developer sebelumnya harus membaca kode untuk memverifikasi. Dalam Antigravitasi, agen menghasilkan artefak untuk membuktikannya.

Berikut adalah artefak utama yang dihasilkan oleh Antigravity:

  • Task Lists: Sebelum menulis kode, agen membuat rencana terstruktur. Biasanya Anda tidak perlu mengedit paket ini, tetapi Anda dapat meninjaunya dan dalam beberapa kasus, menambahkan komentar untuk mengubahnya, jika diperlukan.
  • Implementation Plan: Ini digunakan untuk merancang perubahan dalam codebase Anda untuk menyelesaikan tugas. Paket ini berisi detail teknis tentang revisi yang diperlukan dan dimaksudkan untuk ditinjau oleh pengguna, kecuali jika Anda menyetel kebijakan peninjauan artefak ke "Selalu Lanjutkan".
  • Walkthrough: Ini dibuat setelah agen menyelesaikan penerapan tugas, sebagai ringkasan perubahan dan cara mengujinya.
  • Code diffs: Meskipun secara teknis bukan artefak, Antigravity juga menghasilkan perbedaan kode yang dapat Anda tinjau dan komentari.
  • Screenshots: Agen merekam status UI sebelum dan setelah perubahan.
  • Browser Recordings: Untuk interaksi dinamis (misalnya, "Klik tombol login, tunggu spinner, verifikasi dasbor dimuat"), agen merekam video sesinya. Developer dapat menonton video ini untuk memverifikasi bahwa persyaratan fungsional terpenuhi tanpa menjalankan aplikasi sendiri.

Artefak dibuat dan muncul di tampilan Pengelola Agen dan Editor.

Dalam tampilan Editor, di pojok kanan bawah, Anda dapat mengklik Artifacts:

5deff47fe0a93aa1.png

Dalam tampilan Pengelola Agen, di kanan atas, di samping Review changes, Anda akan dapat melihat tombol untuk mengaktifkan/menonaktifkan artefak atau jika diaktifkan, Anda dapat melihat daftar artefak yang dihasilkan:

5320f447471c43eb.png

Anda akan melihat tampilan Artefak seperti yang ditunjukkan di bawah. Dalam kasus ini, kami menginstruksikan Agen untuk membuka halaman antigravity.google sehingga Agen telah mengambil screenshot dan membuat video yang sama:

19d9738bb3c7c0c9.png

Anda dapat melihat perbedaan kode di Review Changes dalam tampilan Editor:

e1d8fd6e7df4daf3.png

Developer dapat berinteraksi dengan artefak dan perbedaan kode ini menggunakan "komentar ala Google Dokumen". Anda dapat memilih tindakan atau tugas tertentu, memberikan perintah sesuai yang Anda inginkan, lalu mengirimkannya ke agen. Agen kemudian akan menerima masukan ini dan melakukan iterasi yang sesuai. Pertimbangkan untuk menggunakan Google Dokumen interaktif, tempat Anda memberikan masukan kepada penulis dan penulis kemudian mengulanginya.

6. Membuka kembali Kotak Masuk

Jika Anda telah memulai beberapa percakapan dengan Agen, Anda sekarang dapat melihat Inbox di jendela Agent Manager. Tindakan ini akan menampilkan semua percakapan Anda. Klik salah satu percakapan untuk melihat histori percakapan tersebut, artefak yang dihasilkan, dan lainnya. Dalam kasus ini, setelah menjalankan percakapan pertama, Kotak Masuk kami menampilkan percakapan yang tercantum, seperti yang ditunjukkan di bawah:

1a2a1bbdd4464ecf.png

Dengan mengklik percakapan tersebut, Anda akan mendapatkan detailnya:

b7e493765cfb1b1a.png

Anda juga dapat melanjutkan percakapan dari sini.

7. Editor

Editor mempertahankan keakraban VS Code, sehingga memastikan bahwa memori otot developer berpengalaman tetap terjaga. Editor ini mencakup penjelajah file standar, penyorotan sintaksis, dan ekosistem ekstensi.

Anda dapat mengklik tombol Open Editor di kanan atas di Pengelola Agen untuk membuka Editor.

Penyiapan dan Ekstensi

Dalam penyiapan umum, Anda akan melihat editor, terminal, dan agen:

7996408528de93e1.png

Jika tidak, Anda dapat beralih antara panel terminal dan agen sebagai berikut:

  • Untuk berganti-ganti panel terminal, gunakan pintasan Ctrl + `.
  • Untuk mengaktifkan/menonaktifkan panel agen, gunakan pintasan Cmd + L.

Selain itu, Antigravity dapat menginstal beberapa ekstensi selama penyiapan, tetapi bergantung pada bahasa pemrograman yang Anda gunakan, Anda mungkin perlu menginstal lebih banyak ekstensi. Misalnya, untuk pengembangan Python, berikut adalah ekstensi yang dapat Anda pilih untuk diinstal:

bd33a79837b5a12a.png

Editor

Pengisian otomatis

Saat Anda mengetik kode di editor, pelengkapan otomatis pintar akan muncul dan Anda cukup menekan tab untuk menggunakannya:

e90825ed7a009350.png

Ketuk untuk mengimpor

Anda akan mendapatkan saran tab untuk mengimpor guna menambahkan dependensi yang tidak ada:

bcab60794caa0aec.png

Menekan tombol tab untuk melompat

Anda akan mendapatkan saran tab untuk melompat guna memindahkan kursor ke tempat logis berikutnya dalam kode:

8610ae5217be7fe5.png

Perintah

Anda dapat memicu perintah dengan Cmd + I di editor atau terminal untuk penyelesaian inline menggunakan bahasa alami.

Di editor, Anda dapat meminta metode untuk menghitung angka Fibonacci, lalu menerima atau menolaknya:

13a615e515cea100.png

Di terminal, Anda bisa mendapatkan saran perintah terminal:

5a75e560f998cedc.png

Panel Samping Agen

Dari editor, Anda dapat beralih panel samping agen dengan beberapa cara.

Buka manual

Anda dapat mengalihkan panel agen di sebelah kanan secara manual dengan pintasan Cmd + L.

Anda dapat mulai mengajukan pertanyaan, menggunakan @ untuk menyertakan lebih banyak konteks seperti file, direktori, server MCP, atau menggunakan / untuk merujuk ke alur kerja (perintah tersimpan):

95c5a6d31d771748.png

Anda juga dapat memilih antara dua mode percakapan: Fast atau Planning :

d3d1449f12510e3e.png

Fast direkomendasikan untuk tugas cepat, sedangkan Planning direkomendasikan untuk tugas yang lebih kompleks di mana agen membuat rencana yang dapat Anda setujui.

Anda juga dapat memilih model yang berbeda untuk percakapan:

af709bcc03c1e21e.png

Jelaskan dan perbaiki

Cara lain untuk memicu agen adalah dengan mengarahkan kursor ke masalah dan memilih Explain and fix:

e45cbe02ed76b9c1.png

Mengirim masalah ke agen

Anda juga dapat membuka bagian Problems dan memilih Send all to Agent agar agen mencoba memperbaiki masalah tersebut:

e4992d14708005d0.png

Mengirim output terminal ke agen

Anda bahkan dapat memilih bagian output terminal dan mengirimkannya ke agen dengan Cmd + L:

c40293bab474c9b1.png

Beralih antara Editor dan Pengelola Agen

Kapan saja, Anda dapat beralih antara mode editor dan mode pengelola agen penuh melalui tombol Open Agent Manager di kanan atas saat Anda berada dalam mode editor dan kembali dengan mengklik tombol Open Editor di kanan atas saat Anda berada dalam mode pengelola agen.

Atau, Anda juga dapat menggunakan pintasan keyboard Cmd + E untuk beralih antara kedua mode.

8. Beri Masukan

Inti dari Antigravity adalah kemampuannya untuk mengumpulkan masukan Anda dengan mudah di setiap tahap pengalaman. Saat mengerjakan tugas, agen akan membuat berbagai artefak di sepanjang proses:

  • Rencana penerapan dan daftar tugas (sebelum coding)
  • Perbedaan kode (saat menghasilkan kode)
  • Panduan untuk memverifikasi hasil (setelah coding)

Artefak ini adalah cara Antigravity mengomunikasikan rencana dan progresnya. Yang lebih penting, komentar ini juga merupakan cara bagi Anda untuk memberikan masukan kepada agen dalam komentar bergaya Google Dokumen. Hal ini sangat berguna untuk mengarahkan agen secara efektif ke arah yang Anda inginkan.

Mari kita coba membuat aplikasi daftar tugas sederhana dan lihat cara memberikan masukan kepada Antigravity selama prosesnya.

Mode perencanaan

Pertama, Anda harus memastikan bahwa Antigravity berada dalam mode Planning (bukan mode Fast).Anda dapat memilihnya di chat panel samping agen. Hal ini memastikan bahwa Antigravity membuat rencana penerapan dan daftar tugas sebelum mulai menulis kode. Kemudian, coba perintah, seperti ini: Create a todo list web app using Python. Tindakan ini akan memicu agen untuk mulai merencanakan dan membuat rencana penerapan.

Rencana penerapan

Rencana penerapan adalah ringkasan tentang apa yang akan dilakukan Antigravity, stack teknologi yang akan digunakan, dan deskripsi tingkat tinggi tentang perubahan yang diusulkan.

Implementation Plan - Python Todo App
Goal
Create a simple, functional, and aesthetically pleasing Todo List web application using Python (Flask).

Tech Stack
Backend: Python with Flask
Frontend: HTML5, CSS3 (Vanilla), Jinja2 templates
...

Ini juga merupakan tempat pertama Anda dapat memberikan masukan. Dalam kasus ini, agen ingin menggunakan Flask sebagai framework web Python. Kita dapat menambahkan komentar ke rencana penerapan untuk menggunakan FastAPI sebagai gantinya. Setelah Anda menambahkan komentar, kirimkan komentar atau minta Antigravity untuk Proceed dengan rencana penerapan yang telah diperbarui.

Daftar tugas

Setelah rencana penerapan diperbarui, Antigravity akan membuat daftar tugas. Berikut adalah daftar langkah-langkah konkret yang akan diikuti Antigravity untuk membuat dan memverifikasi aplikasi.

Task Plan
 Create requirements.txt
 Create directory structure (static/css, templates)
 Create static/css/style.css
 Create templates/index.html
 Create main.py with FastAPI setup and Database logic
 Verify application

Ini adalah tempat kedua tempat Anda dapat memberikan masukan.

Misalnya, dalam kasus penggunaan kami, Anda dapat menambahkan petunjuk verifikasi yang lebih mendetail dengan menambahkan komentar berikut: Verify application by adding, editing, and deleting a todo item and taking a screenshot.

Perubahan kode

Pada tahap ini, Antigravity akan menghasilkan beberapa kode dalam file baru. Anda dapat Accept all atau Reject all perubahan ini di panel samping chat agen tanpa melihat detailnya.

Anda juga dapat mengklik Review changes untuk melihat detail perubahan dan menambahkan komentar mendetail pada kode. Misalnya, kita dapat menambahkan komentar berikut di main.py: Add basic comments to all methods

Ini adalah cara yang bagus untuk melakukan iterasi pada kode dengan Antigravity.

Panduan

Setelah Antigravity selesai membuat kode, Antigravity akan memulai server dan membuka browser untuk memverifikasi aplikasi. Antigravity akan melakukan beberapa pengujian manual seperti menambahkan tugas, memperbarui tugas, dll. Semuanya berkat ekstensi browser Antigravity. Pada akhirnya, file ini akan membuat file panduan untuk merangkum apa yang dilakukan untuk memverifikasi aplikasi. Hal ini mencakup screenshot atau alur verifikasi dengan rekaman browser.

Anda juga dapat mengomentari screenshot atau rekaman browser dalam panduan. Misalnya, kita dapat menambahkan komentar Change the blue theme to orange theme dan mengirimkannya. Setelah komentar dikirimkan, Antigravity akan melakukan perubahan, memverifikasi hasilnya, dan memperbarui panduan

Urungkan perubahan

Terakhir, setelah setiap langkah, jika Anda tidak puas dengan perubahan tersebut, Anda memiliki opsi untuk mengurungkannya dari chat. Anda cukup memilih ↩️ Undo changes up to this point dalam chat.

9. Aturan dan Alur Kerja

Antigravity dilengkapi dengan beberapa opsi penyesuaian: Aturan dan Alur Kerja.

Klik ... di pojok kanan atas, lalu pilih Customizations. Anda akan melihat Rules dan Workflows:

ff8babd8d8bcfa83.png

Aturan membantu memandu perilaku agen. Ini adalah panduan yang dapat Anda berikan untuk memastikan agen mengikutinya saat membuat kode dan pengujian. Misalnya, Anda mungkin ingin agen mengikuti gaya kode tertentu, atau selalu mendokumentasikan metode. Anda dapat menambahkannya sebagai aturan dan agen akan mempertimbangkannya.

Alur kerja adalah perintah tersimpan yang dapat Anda picu sesuai permintaan dengan /, saat Anda berinteraksi dengan agen. Alat ini juga memandu perilaku agen, tetapi dipicu oleh pengguna sesuai permintaan.

Analogi yang tepat adalah Aturan lebih seperti petunjuk sistem, sedangkan Alur Kerja lebih seperti perintah tersimpan yang dapat Anda pilih sesuai permintaan.

Aturan dan Alur Kerja dapat diterapkan secara global atau per ruang kerja dan disimpan ke lokasi berikut:

  • Aturan global: ~/.gemini/GEMINI.md
  • Alur kerja global: ~/.gemini/antigravity/global_workflows/global-workflow.md
  • Aturan ruang kerja: your-workspace/.agent/rules/
  • Alur kerja Workspace: your-workspace/.agent/workflows/

Mari tambahkan beberapa aturan dan alur kerja di ruang kerja.

Tambahkan aturan

Pertama, mari kita tambahkan aturan gaya kode. Buka Rules, lalu pilih tombol +Workspace. Beri nama, misalnya code-style-guide, dengan aturan gaya kode berikut:

* Make sure all the code is styled with PEP 8 style guide
* Make sure all the code is properly commented

Kedua, tambahkan aturan lain untuk memastikan kode dibuat secara modular dengan contoh dalam aturan code-generation-guide:

* The main method in main.py is the entry point to showcase functionality.
* Do not generate code in the main method. Instead generate distinct functionality in a new file (eg. feature_x.py)
* Then, generate example code to show the new functionality in a new method in main.py (eg. example_feature_x) and simply call that method from the main method.

Kedua aturan disimpan dan siap:

bfd179dfef6b2355.png

Menambahkan alur kerja

Mari kita tentukan juga alur kerja untuk membuat pengujian unit. Hal ini akan memungkinkan kita memicu pengujian unit setelah kita puas dengan kode tersebut (bukan agen yang menghasilkan pengujian unit setiap saat).

Buka Workflows, lalu pilih tombol +Workspace. Beri nama, misalnya generate-unit-tests, dengan nilai berikut:

* Generate unit tests for each file and each method
* Make sure the unit tests are named similar to files but with test_ prefix

Alur kerja juga sudah siap digunakan:

d22059258592f0e1.png

Cobalah

Sekarang mari kita lihat cara kerja aturan dan alur kerja. Buat file main.py kerangka di ruang kerja Anda:

def main():
    pass

if __name__ == "__main__":
    main()

Sekarang, buka jendela chat agen dan tanyakan kepada agen: Implement binary search and bubble sort.

Setelah satu atau dua menit, Anda akan mendapatkan tiga file di ruang kerja: main.py, bubble_sort.py, binary_search.py. Anda juga akan melihat bahwa semua aturan telah diterapkan: file utama tidak berantakan dan memiliki contoh kode, setiap fitur diterapkan dalam filenya sendiri, semua kode didokumentasikan dan memiliki gaya yang baik:

from binary_search import binary_search, binary_search_recursive
from bubble_sort import bubble_sort, bubble_sort_descending


def example_binary_search():
    """
    Demonstrate binary search algorithm with various test cases.
    """
    ...

def example_bubble_sort():
    """
    Demonstrate bubble sort algorithm with various test cases.
    """
    ...

def main():
    """
    Main entry point to showcase functionality.
    """
    example_binary_search()
    example_bubble_sort()
    print("\n" + "=" * 60)


if __name__ == "__main__":
    main()

Setelah puas dengan kodenya, mari kita lihat apakah kita dapat memicu alur kerja pengujian unit yang dihasilkan.

Buka chat dan mulai ketik /generate, lalu Antigravity akan mengetahui alur kerja kita:

8a3efd9e3be7eb6f.png

Pilih generate-unit-tests dan masuk. Setelah beberapa detik, Anda akan mendapatkan file baru di ruang kerja: test_binary_search.py, test_bubble_sort.py dengan sejumlah pengujian yang sudah diterapkan.

11febd7940ef8199.png

Bagus!

10. Mengamankan Agen

Memberi agen AI akses ke terminal dan browser Anda adalah pedang bermata dua. Hal ini memungkinkan proses debug dan deployment secara mandiri, tetapi juga membuka vektor untuk Injeksi Perintah dan Pencurian Data.

Antigravity mengatasi hal ini melalui sistem izin terperinci yang berkisar pada kebijakan Eksekusi Otomatis Perintah Terminal, Daftar yang Diizinkan, dan Daftar yang Ditolak.

Saat pertama kali mengonfigurasi Antigravity, atau melalui menu setelan, Anda harus memilih kebijakan Terminal Command Auto Execution. Setelan ini menentukan otonomi agen terkait perintah shell.

Anda dapat melihat setelan saat ini untuk fitur ini dengan membuka Antigravity — Settings, lalu Advanced Settings. Anda akan melihat bagian Terminal untuk setelan Agen. Ingatlah tabel ini jika Anda ingin mengubah setelan ini ke nilai lain:

Mode Kebijakan

Deskripsi

Nonaktif

Agen tidak pernah menjalankan perintah terminal secara otomatis kecuali jika diizinkan secara eksplisit.

Otomatis

Agen memutuskan apakah akan mengeksekusi berdasarkan model keamanan internal. Aplikasi ini meminta izin untuk perintah berisiko.

Turbo

Agen selalu mengeksekusi perintah secara otomatis kecuali jika ditolak secara eksplisit.

Mengonfigurasi Daftar yang Diizinkan

Daftar yang Diizinkan terutama digunakan dengan kebijakan Nonaktif. Model ini merepresentasikan model keamanan positif, yang berarti semuanya dilarang kecuali jika diizinkan secara tegas. Ini adalah konfigurasi yang paling aman.

Konfigurasi Langkah demi Langkah

  1. Setel setelan Terminal Command Auto Execution ke Nonaktif.
  2. Tambahkan perintah berikut di Allow List Terminal Commands dengan mengklik tombol Add di sampingnya : ls -al . Anda juga dapat menambahkan perintah terminal lain jika diinginkan.

Menguji Daftar yang Diizinkan

  • Tanyakan kepada agen: List the files in this directory.
  • Agen berjalan secara otomatis ls.
  • Tanyakan kepada agen: Delete the <some file>
  • Agen akan mencoba rm <filepath>, tetapi Antigravity akan memblokirnya dan memaksa ulasan pengguna karena rm tidak ada dalam daftar yang diizinkan. Antigravity akan meminta izin Anda sebelum menjalankan perintah.

Mengonfigurasi Daftar Penolakan

Daftar Penolakan adalah pengamanan untuk kebijakan Turbo (dan terkadang Otomatis). Model ini merepresentasikan model keamanan negatif, yang berarti semuanya diizinkan kecuali jika secara tegas dilarang. Hal ini bergantung pada developer yang mengantisipasi setiap kemungkinan bahaya, yang merupakan proposisi berisiko, tetapi menawarkan kecepatan maksimum.

Konfigurasi Langkah demi Langkah

  1. Tetapkan setelan Terminal Command Auto Execution ke Turbo.
  2. Tambahkan perintah berikut di Deny List Terminal Commands dengan mengklik tombol Add di sampingnya.
  3. rm
  4. rmdir
  5. sudo
  6. curl
  7. wget

Menguji Daftar Penolakan

  • Tanyakan kepada agen: Check the version of python.
  • Agen berjalan secara otomatis python --version.
  • Tanyakan kepada agen: Download www.google.com home page.
  • Agen mencoba curl. Antigravity mendeteksi curl dalam daftar yang tidak diizinkan dan memblokir eksekusi, sehingga meminta persetujuan manual Anda.

Keamanan Browser

Kemampuan Antigravity untuk menjelajahi web adalah kekuatan super, tetapi juga kerentanan. Agen yang mengunjungi situs dokumentasi yang disusupi dapat mengalami serangan injeksi perintah.

Untuk membantu mencegah hal ini, Anda dapat menerapkan Daftar URL yang Diizinkan untuk Browser bagi agen browser.

Anda dapat melihat setelan saat ini untuk fitur ini dengan membuka Antigravity — Settings, lalu Advanced Settings. Anda akan melihat bagian Daftar URL Browser yang Diizinkan untuk setelan Browser seperti yang ditunjukkan di bawah:

5ed231150122ecc5.png

Klik Open Allowlist File dan file akan terbuka di folder HOME/.gemini/antigravity/browserAllowlist.txt. Anda dapat memastikan bahwa hanya domain tepercaya yang dimasukkan di sini.

11. Kasus Penggunaan

Setelah kita memahami produk ini secara mendasar, mari kita pelajari beberapa kasus penggunaan untuk melihat cara kerjanya. Perhatikan bahwa Antigravity adalah platform yang mengutamakan Agen. Artinya, dalam sebagian besar kasus, kami hanya memberikan petunjuk kepada Agen dan Agen kemudian akan melakukan tugasnya sendiri, meminta izin jika diperlukan, menghasilkan artefak, lalu memberi tahu kami jika tugas selesai. Akibatnya, kami tidak dapat menghasilkan setiap output percakapan Agen dalam setiap kasus penggunaan berikut. Kami akan membagikan petunjuk dan beberapa screenshot yang diperlukan dari hasil yang diharapkan, tetapi hasil Anda mungkin sedikit berbeda.

Kasus penggunaan yang akan kita bahas berkisar dari mengotomatiskan beberapa tugas dengan situs eksternal, hingga membuat dan memverifikasi kasus pengujian unit untuk project, hingga pengembangan situs web lengkap. Ayo mulai.

Sorotan Berita

Ini adalah kasus penggunaan sederhana, tetapi dapat menjadi dasar yang memungkinkan Anda menggunakan browser web untuk membuka situs web, mengekstrak informasi, melakukan beberapa tindakan, lalu mengembalikan data kepada pengguna.

Dalam hal ini, kita akan membuka situs Google Berita dan mengekstrak beberapa informasi dari sana. Namun, Anda dapat bereksperimen dengan mudah di situs pilihan Anda dan melihat hasilnya.

Pastikan Anda berada di Agent Manager dan telah memilih Playground, seperti yang ditunjukkan di bawah:

cffa12c98a68cb6c.png

Kemudian, berikan petunjuk berikut:

8513d489eea0b014.png

Tindakan ini akan memulai proses Agen dan akan menentukan bahwa Agen perlu meluncurkan browser, dll. Anda harus memperhatikan Proses berpikir dan melihat cara Agen melakukan pekerjaannya. Jika semuanya berjalan lancar, browser Antigravity akan diluncurkan dan membuka situs seperti yang ditunjukkan di bawah. Bingkai biru di sekitar situs menunjukkan bahwa Agen kini mengontrol browser dan menjelajahi situs untuk mendapatkan informasi.

9d594588f2ffe6bc.png

Setelah selesai, Anda juga akan melihat Artefak yang dibuat, seperti yang ditunjukkan di bawah ini:

dc6cf4e7d8425df8.png

Contoh eksekusi oleh Agen ditampilkan di bawah ini:

fb7397cd2cce0682.png

Perhatikan bahwa di sebelah kiri, kita memiliki Proses berpikir. Anda juga dapat men-scroll poin-poin dan melihat pemutaran serta data lainnya.

Untuk dicoba

  • Setelah Anda memahaminya, pilih situs yang tersedia dan yang Anda inginkan untuk dikunjungi Agen guna mendapatkan/meringkas beberapa data dari situs tersebut. Pertimbangkan beberapa situs yang Anda ketahui memiliki Dasbor dan diagram, lalu minta situs tersebut untuk memilih beberapa nilai.
  • Coba perintah berikut: Visit https://docs.cloud.google.com/release-notes and get me a summary of the release notes, categorized by product.

Membuat Situs Dinamis dengan Python + Flask

Sekarang mari kita lanjutkan untuk membuat aplikasi web lengkap. Aplikasi web yang akan kita buat adalah situs yang menyediakan informasi tentang acara teknis 1 hari, yang memiliki beberapa sesi sepanjang hari oleh beberapa pembicara.

Sekali lagi, pastikan Anda berada di Agent Manager dan telah memilih Playground.

Berikan perintah berikut:

I would like to generate a website that is a 1-day technical conference informational site.

The website should have the following functionality:
        1. A home page that shows the current date, location, schedule and time table.
        2. The 1-day event is a list of 8 talks in total.
        3. Each talk has 1 or 2 max. speakers. 
        4. A talk has an ID, Title, Speakers, Category (1 or 2), Description and time of the talk.
        5. Each speaker has a First Name, Last Name and LinkedIn url.
        6. Allow for users to search by category, speaker, title.
        7. Give a lunch break of 60 minutes.
        8. Use dummy data for events and speakers, come up with a schedule, the event is about Google Cloud Technologies.
        9. Tech Stack: Python and Flask framework on server side. Front-end is basic HTML, CSS and JavaScript. 
        10. Test out the site on your own for all functionality and provide a detailed README on how to setup, run and make any further changes. 
11. Launch the web application for me to review. 

Anda dapat memulai percakapan dengan memberikan perintah di atas:

Saat menjalankan tugasnya, Agen akan melanjutkan dengan membuat artefak:

  • Artefak Tugas
  • Artefak Penerapan
  • Artefak Panduan

Artefak Tugas di bawah adalah urutan awal tugas yang diuraikan oleh Agen yang harus dilakukan berdasarkan tugas yang diberikan kepadanya. Contoh screenshot dari eksekusi ditampilkan di bawah:

c95d82e1c040698f.png

Kemudian, Anda dapat mengklik artefak Rencana Penerapan. Contoh screenshot ditampilkan di bawah:

632169a236bc62cc.png

Terakhir, Anda memiliki artefak Panduan. Isinya adalah semua yang dilakukan Agen seperti yang ditunjukkan di bawah:

e3f6152d6f54d4f9.png

Perhatikan bahwa server telah dimulai dan telah memberi saya URL, yang saya klik dan saya memiliki aplikasi, contoh screenshot ditampilkan di bawah:

abf879f2ce53d055.png

Jika saya beralih ke Editor, perhatikan di layar bahwa Editor berisi folder tempat aplikasi Python Flask dibuat. Anda juga akan melihat bahwa Agent mode ditandai di sebelah kanan dan Anda juga dapat melanjutkan percakapan di sana.

b0fea8aa65c3a1c5.png

Sekarang, misalkan kita ingin menambahkan beberapa diskusi lagi ke acara. Kita dapat tetap berada di Editor dan panel Agen, lalu memberikan petunjuk seperti Add two more talks to the schedule.

Hal ini akan menyebabkan Agen menganalisis persyaratan, memperbarui Tugas, Rencana Penerapan, lalu memvalidasi fungsi yang diperbarui juga. Contoh percakapan ditampilkan di bawah:

ba8455e6f68973e9.png

Anda dapat beralih kembali ke Pengelola Agen jika Anda mau. Proses ini akan membantu Anda memahami proses peralihan dari Pengelola Agen ke Editor, melakukan perubahan yang sesuai, dan sebagainya.

Untuk dicoba

  • Tambahkan fungsi tambahan yang Anda inginkan ke aplikasi. Berikan detailnya kepada Agen dan perhatikan cara Agen melakukan tugasnya dengan terlebih dahulu mengubah daftar tugas, lalu rencana penerapan, dan sebagainya.
  • Minta Agen untuk membuat README atau dokumentasi lainnya untuk aplikasi.

Membuat aplikasi produktivitas sederhana

Sekarang kita akan membuat aplikasi web penghitung waktu Pomodoro sederhana.

Pastikan Anda berada di Agent Manager dan telah memilih Playground. Berikan perintah berikut:

Create a productivity app that features a Pomodoro timer. Give a calm and aesthetic look to the application.

Perhatikan cara Gemini membuat Daftar tugas, rencana penerapan, lalu melaksanakannya. Terus perhatikan alurnya, mungkin ada situasi yang akan meminta peninjauan Anda. Contoh eksekusi ditampilkan di bawah.

5be0a668e5a67d85.png

Dalam hal ini, aplikasi juga harus meluncurkan browser Antigravity, melakukan pengujiannya sendiri, lalu mengonfirmasi bahwa pengujian berhasil. Salah satu hal yang dihasilkan adalah Artefak Media yang berisi video verifikasinya. Ini adalah cara yang bagus untuk melihat apa yang diuji. Saya juga menyarankan beberapa perubahan gaya karena tidak diterapkan dan dia dapat melakukannya.

Aplikasi final terlihat seperti di bawah dan terlihat cukup bagus.

c9ab6bca97a51a8c.png

Bagaimana kalau kita menambahkan gambar timer yang bagus ke aplikasi. Yang perlu kita lakukan adalah mengeluarkan petunjuk lanjutan seperti yang diberikan di bawah:

Add an image to the application that displays a timer.

Hal ini menyebabkan agen menambahkan tugas baru ke artefak Tugas:

498dd946d4e9ae55.png

Kemudian, model ini membuat gambar saat menjalankan tugasnya:

c291da9bdb37ff96.png

Terakhir, aplikasi memiliki gambar seperti yang kita minta:

de8f418ba8e4600d.png

Untuk dicoba

  • Perhatikan bahwa latar belakang ikon jam pasir di aplikasi tidak transparan. Coba minta agen untuk membuatnya transparan.
  • Coba beberapa variasi aplikasi yang ingin Anda buat. Bereksperimenlah dengan gaya, gambar, minta perubahan, dll.

Membuat Pengujian Unit, Stub Tiruan, dan Memvalidasi Pengujian

Kasus penggunaan terakhir yang akan kita coba di sini adalah membuat pengujian unit untuk file kode tertentu yang kita miliki dan agar Agen juga menjalankan pengujian serta memvalidasinya.

Untuk itu, kita akan memiliki ruang kerja yang memiliki satu file Python seperti yang ditunjukkan di bawah ini:

from typing import Dict

# --- Custom Exceptions ---
class InventoryShortageError(Exception):
    """Raised when there is not enough item stock."""
    pass

class PaymentFailedError(Exception):
    """Raised when the payment gateway rejects the transaction."""
    pass

class InvalidOrderError(Exception):
    """Raised when the order violates business rules."""
    pass

# --- External Service Interfaces (To be Mocked) ---
class InventoryService:
    def get_stock(self, product_id: str) -> int:
        """Connects to DB to check stock."""
        raise NotImplementedError("Real connection required")

    def decrement_stock(self, product_id: str, quantity: int):
        """Connects to DB to reduce stock."""
        raise NotImplementedError("Real connection required")

class PaymentGateway:
    def charge(self, amount: float, currency: str) -> bool:
        """Connects to Stripe/PayPal."""
        raise NotImplementedError("Real connection required")

# --- Main Business Logic ---
class Order:
    def __init__(self, 
                 inventory_service: InventoryService, 
                 payment_gateway: PaymentGateway,
                 customer_email: str,
                 is_vip: bool = False):
        
        self.inventory = inventory_service
        self.payment = payment_gateway
        self.customer_email = customer_email
        self.is_vip = is_vip
        self.items: Dict[str, Dict] = {} # {product_id: {'price': float, 'qty': int}}
        self.is_paid = False
        self.status = "DRAFT"

    def add_item(self, product_id: str, price: float, quantity: int = 1):
        """Adds items to the cart. Rejects invalid prices or quantities."""
        if price < 0:
            raise ValueError("Price cannot be negative")
        if quantity <= 0:
            raise ValueError("Quantity must be greater than zero")

        if product_id in self.items:
            self.items[product_id]['qty'] += quantity
        else:
            self.items[product_id] = {'price': price, 'qty': quantity}

    def remove_item(self, product_id: str):
        """Removes an item entirely from the cart."""
        if product_id in self.items:
            del self.items[product_id]

    @property
    def total_price(self) -> float:
        """Calculates raw total before discounts."""
        return sum(item['price'] * item['qty'] for item in self.items.values())

    def apply_discount(self) -> float:
        """
        Applies business logic:
        1. VIPs get flat 20% off.
        2. Regulars get 10% off if total > 100.
        3. No discount otherwise.
        """
        total = self.total_price
        
        if self.is_vip:
            return round(total * 0.8, 2)
        elif total > 100:
            return round(total * 0.9, 2)
        
        return round(total, 2)

    def checkout(self):
        """
        Orchestrates the checkout process:
        1. Validates cart is not empty.
        2. Checks stock for all items.
        3. Calculates final price.
        4. Charges payment.
        5. Updates inventory.
        """
        if not self.items:
            raise InvalidOrderError("Cannot checkout an empty cart")

        # 1. Check Inventory Logic
        for product_id, data in self.items.items():
            available_stock = self.inventory.get_stock(product_id)
            if available_stock < data['qty']:
                raise InventoryShortageError(f"Not enough stock for {product_id}")

        # 2. Calculate Final Price
        final_amount = self.apply_discount()

        # 3. Process Payment
        try:
            success = self.payment.charge(final_amount, "USD")
            if not success:
                raise PaymentFailedError("Transaction declined by gateway")
        except Exception as e:
            # Catching generic network errors from the gateway
            raise PaymentFailedError(f"Payment gateway error: {str(e)}")

        # 4. Decrement Stock (Only occurs if payment succeeded)
        for product_id, data in self.items.items():
            self.inventory.decrement_stock(product_id, data['qty'])

        self.is_paid = True
        self.status = "COMPLETED"
        
        return {"status": "success", "charged_amount": final_amount}

Pastikan Anda memiliki file Python di atas secara lokal dalam folder dan Anda memuatnya sebagai Ruang Kerja di Antigravity.

Ini adalah layanan Order sederhana yang memiliki fungsi utama berikut dalam fungsi checkout:

  1. Memvalidasi bahwa keranjang tidak kosong.
  2. Periksa stok untuk semua item.
  3. Menghitung harga akhir.
  4. Menagih pembayaran.
  5. Memperbarui inventaris.

Kita akan menugaskan Agen untuk membuat kasus pengujian unit, menyediakan implementasi Mock, dan menjalankan pengujian untuk memastikan keberhasilannya.

Kita akan membuka folder ruang kerja tertentu dan Anda akan melihat bahwa kita kini dapat menggunakan simbol @ juga untuk mereferensikan file. Misalnya, kami dapat melakukan hal berikut:

8368856e51a7561a.png

Hal ini akan menampilkan beberapa penjelasan tentang isi file ini:

b69c217d3372d802.png

Kita dapat memintanya untuk membuat visualisasi yang lebih baik melalui perintah:

Can you visually show this class for better understanding

da5bd701323818d4.png

Langkah selanjutnya adalah membuat pengujian unit dan meminta Agen untuk mengujinya. Saya memberikan perintah berikut:

generate unit tests for this module and test it out with mock implementations.

Agen ini menghasilkan artefak Tugas berikut dan menjalankan tugasnya.

21425379db336dc6.png

Anda juga dapat melihat detail pengujian yang dijalankannya:

48f3320cd76b5cd8.png

Salah satu file yang dihasilkan adalah file pengujian juga. Screenshot-nya ditampilkan di bawah ini:

f962061f115c040f.png

Untuk dicoba

Ambil kode Anda sendiri dan lihat apa yang dapat Anda minta dilakukan Agen, mulai dari menambahkan lebih banyak fungsi hingga merefaktor bagian kode Anda.

12. Selamat

Selamat, Anda telah berhasil menginstal dan memahami cara menggunakan Antigravity, platform pengembangan yang mengutamakan Agen. Berbagai kasus penggunaan yang kami coba akan membantu Anda memahami persyaratan Anda sendiri dan mencari tahu cara Antigravity dapat berkolaborasi dengan Anda untuk menyelesaikannya.

Dokumen referensi