InfraLoka AcademyPathwayAI
PathwayAI

Modul 2 · Bab 2: Menyiapkan tempat kerja

Ruang kerja tempat agen boleh salah

4 menit baca5 menit bacaDitinjau 26 Oktober 2026

Intinya

Agen akan salah, jadi beri ia sandbox (lingkungan terisolasi) yang bisa dibuang dan tidak punya jalan ke data asli. Isi setiap alamat yang ditulisinya secara eksplisit, karena nilai bawaan yang terlupa adalah jalan bocor paling umum.

Setelah pelajaran ini kamu bisa

  • Menyiapkan ruang kerja terpisah tempat agen boleh salah
  • Mengisi variabel lingkungan (environment variable) secara eksplisit agar agen tidak jatuh ke nilai bawaan yang berbahaya

Istilah di pelajaran ini

Pahami

Agen akan salah, cepat atau lambat, dan itu pasti: ia salah paham tujuan, membaca berkas yang keliru, atau menjalankan perintah yang benar di tempat yang salah. Karena itu persiapan pertama sebelum agen menyentuh apa pun adalah sandbox (lingkungan terisolasi): tempat kerja terpisah, sehingga kesalahan hanya merusak barang yang bisa dibuang.

Bentuknya tergantung pekerjaan:

  • Untuk dokumen: folder uji berisi salinan berkas, bukan folder tim yang asli.
  • Untuk kode: satu salinan kode terpisah per tugas, misalnya branch (cabang) dan direktori kerja sendiri, sehingga dua agen tidak saling menimpa dan perubahan bisa dibuang dengan satu perintah.
  • Untuk basis data (database): database sekali pakai di kontainer (container), dengan port sendiri yang tidak dipakai apa pun, diisi data contoh atau salinan yang sudah disamarkan.
  • Untuk layanan luar: akun uji atau mode uji dari penyedia, bukan akun yang dipakai pelanggan.

Sandbox yang baik punya dua sifat. Pertama, bisa dibuat ulang dalam beberapa menit, sehingga kamu tidak ragu membuangnya ketika rusak. Kedua, tidak punya jalan ke data asli, kecuali yang memang sengaja kamu berikan. Sifat kedua paling sering bocor, dan biasanya bocornya lewat nilai bawaan yang tidak kamu sadari, jarang lewat izin yang kamu berikan.

Banyak program punya nilai bawaan yang dipakai ketika sebuah pengaturan kosong. Contoh paling umum: alamat database. Kalau variabel lingkungan (environment variable) untuk alamat database tidak diisi, program memakai alamat bawaan, dan alamat bawaan itu sering kali database pengembangan di mesinmu sendiri, yang berisi data kerja berminggu-minggu.

Sekarang bayangkan agen menjalankan tes yang, sebagai persiapan, mengosongkan database. Kalau alamatnya diisi eksplisit ke database sekali pakai, tidak ada masalah. Kalau lupa diisi, tes jatuh ke alamat bawaan dan mengosongkan database yang salah. Agen tidak berbuat jahat; ia menjalankan perintah yang benar dengan pengaturan yang kosong. Itulah yang terjadi di kasus pelajaran ini.

Aturannya: setiap variabel lingkungan yang menentukan ke mana agen menulis diisi secara eksplisit, di perintah yang sama dengan tugasnya, bukan diandalkan dari berkas pengaturan lokal atau dari sesi sebelumnya. Lebih baik lagi, ubah programnya supaya menolak berjalan bila alamatnya kosong, daripada jatuh ke nilai bawaan. Ini bagian dari prinsip hak akses minimum (least privilege): agen hanya bisa menjangkau apa yang memang diberikan untuk tugas ini.

Satu kebiasaan kecil lagi: tulis di instruksi agen tempat-tempat yang tidak boleh ia sentuh, misalnya "jangan pernah memakai database di port bawaan, jangan pernah menulis ke folder tim". Instruksi seperti ini bukan pagar yang andal, karena model bisa salah membaca atau terkecoh teks lain, tetapi ia membantu agen menolak sebelum mencoba. Pagar yang andal ada di lingkungan itu sendiri: izin yang sempit dan alamat yang diisi eksplisit. Instruksi dan pagar lingkungan bersama-sama lebih kuat daripada salah satunya saja.

Terakhir, catat setiap sandbox yang kamu buat: namanya, untuk tugas apa, dan cara membuangnya. Lingkungan yang terlupa lama-lama dipakai untuk hal lain dan berhenti menjadi tempat yang aman untuk salah.

Contoh

Sebelum

Permintaan

Tolong jalankan tes integrasi untuk perubahan ini dan perbaiki yang gagal.

Hasilnya

Keluaran lemah: Saya menjalankan tes integrasi. Persiapan tes mengosongkan database, lalu 38 tes lulus. Semua beres.

Sesudah

Permintaan

Tujuan: saya ingin tes integrasi untuk perubahan ini lulus. Bahan: jalankan tes hanya di database sekali pakai yang baru saya buat di kontainer, port 55441. Isi variabel alamat database secara eksplisit di perintah tesnya. Batas: jangan pernah memakai database di port bawaan mesin ini. Kalau alamat database kosong atau berbeda, berhenti dan tanya saya. Cek: tunjukkan perintah lengkap yang dijalankan dan keluaran tes terakhir.

Hasilnya

Perintah: alamat database diisi ke kontainer di port 55441, lalu tes integrasi dijalankan. Keluaran terakhir: 38 lulus, 0 gagal. Database pengembangan di port bawaan tidak tersentuh.

Yang berubah

  • Versi pertama tidak menyebut database mana yang boleh dikosongkan; tes memilih nilai bawaan.
  • Versi kedua menyebut sandbox-nya, mengisi alamatnya eksplisit, dan memberi titik berhenti bila alamatnya kosong.
  • Permintaan perintah lengkap membuat kamu bisa memeriksa ke mana tes menulis.

Kesalahan umum

Kesalahan
Membiarkan agen bekerja langsung di folder kerja dan database harianmu karena "cuma mencoba sebentar".
Kenapa merugikan
Percobaan sebentar memakai izin yang sama dengan pekerjaan harian. Satu perintah persiapan tes, satu pemindahan berkas yang salah paham, dan data berminggu-minggu hilang. Memulihkannya lebih lama daripada membuat ruang uji.
Lakukan ini
Buat sandbox dulu, bahkan untuk percobaan lima menit: salinan folder, salinan kode, database sekali pakai. Isi alamatnya eksplisit, lalu biarkan agen salah di sana.

Coba

Kartu pilah

Persiapan mana yang membuat tempat aman untuk agen salah?

  1. Folder tim yang asli, dengan pesan "tolong jangan hapus apa pun"

  2. Database di kontainer dengan port sendiri, alamatnya diisi di perintah

  3. Akun uji di layanan pembayaran

  4. Salinan kode terpisah untuk tugas ini saja

  5. Database pengembangan sendiri, "karena isinya cuma data uji"

  6. Variabel alamat database dibiarkan kosong supaya program memakai nilai bawaan

6 kartu lagi

Agen akan menjalankan tes yang mengosongkan database sebagai persiapan. Mana pengaturan yang paling aman?

Bawa pulang

Sebelum agen menyentuh apa pun

  • Ada sandbox yang bisa saya buat ulang dalam beberapa menit
  • Setiap alamat yang ditulisi agen diisi eksplisit di perintahnya
  • Program menolak berjalan bila alamat penting kosong
  • Instruksi agen menyebut tempat yang tidak boleh disentuh
  • Saya mencatat sandbox yang saya buat dan cara membuangnya

Yang salah di tempat kami

Insiden, Oktober 2026

Tes agen yang menghapus database pengembang

Konteks
Kami meminta agen AI meninjau sebuah perubahan dan menjalankan tes integrasinya.
Yang terjadi
Tes menyiapkan database dengan menghapus isinya. Alamat database tidak diatur, jadi tes memakai database pengembangan lokal dan mengosongkannya.
Dampaknya
Data pengembangan lokal hilang. Pemulihannya diserahkan ke pemiliknya. Tidak ada data produksi yang tersentuh.
Akar masalah
Tes jatuh ke alamat bawaan ketika variabel tidak diisi, dan agen punya izin menjalankan perintah apa pun di mesin itu.
Yang kami lakukan
Kami berhenti menjalankan tes itu di mesin itu, melaporkan kehilangan data ke pemiliknya, dan menjalankan ulang tes di kontainer sekali pakai.
Pengaman yang kami pasang
Tes integrasi hanya berjalan di kontainer sekali pakai dengan port sendiri, dan alamatnya wajib diisi eksplisit. Instruksi untuk agen menyebutkan port yang dilarang.

PelajarannyaIzin agen harus sesempit tugasnya, dan bawaan yang berbahaya harus dihapus.

Artinya untuk kerjamuSaat memberi AI akses ke berkas atau sistem, beri sesempit tugasnya dan coba dulu di salinan, bukan di data yang dipakai orang.