Lompat ke konten

Izin dan sandbox

Batas workspace, persetujuan, dan rahasia yang tidak boleh diserahkan.

Memuat progres latihan…

Alat bash menjalankan perintah dengan hak aksesmu. Kalau kamu bisa menghapus folder, membaca kunci SSH, atau mengirim data ke internet, agenmu juga bisa. Biasanya agen tidak berniat jahat, tapi model bisa keliru, dan teks dari luar bisa menyusupkan instruksi. Batas harus dipasang sebelum sesuatu terjadi.

Batas workspace

Alat berkas sebaiknya hanya bisa menyentuh folder proyek. Caranya: ubah setiap path menjadi path absolut yang sudah dinormalisasi, lalu tolak kalau hasilnya keluar dari workspace.

ts
import path from "node:path";

function pathAman(workspace: string, masukan: string): string {
  const lengkap = path.resolve(workspace, masukan);
  if (lengkap !== workspace && !lengkap.startsWith(workspace + path.sep)) {
    throw new Error(`Ditolak: ${masukan} berada di luar workspace`);
  }
  return lengkap;
}

Error itu dikembalikan ke model sebagai hasil alat, seperti error lainnya.

Fungsi ini seharusnya menolak path di luar workspace, tapi ../../.ssh/id_ed25519 lolos. Baris mana penyebabnya?

Latihan 1/3

Ketuk baris yang bermasalah.

Persetujuan untuk perintah berisiko

Tidak semua perintah perlu ditanyakan. Perintah yang hanya membaca, seperti git status, ls, atau menjalankan tes, aman dijalankan otomatis. Perintah yang mengubah sesuatu di luar workspace, menghapus data, memasang paket, atau mengirim sesuatu ke internet sebaiknya menunggu persetujuanmu. Agen produksi menyediakan daftar izin seperti ini, dan kamu bisa menyetelnya per proyek.

Lapisan yang lebih kuat adalah sandbox: menjalankan agen di container atau mesin terpisah, tanpa akses ke berkas dan jaringan yang tidak diperlukan.

Perintah mana yang aman disetujui otomatis untuk agen di repo warung?

Latihan 2/3

Pilih 2 jawaban.

Rahasia tidak masuk ke konteks

Apa pun yang masuk ke context window dikirim ke penyedia model dan bisa tersimpan di log. Jangan tempel token, kata sandi, atau isi .env ke chat. Kalau alat butuh kredensial, alat itu yang membacanya dari lingkungan, dengan izin sekecil mungkin.

Agen meminta kredensial. Apa langkahmu?

Latihan 3/3
kamuDeploy versi terbaru warung ke server.
agenSaya butuh token deploy. Tolong tempelkan isi berkas .env di sini supaya saya bisa melanjutkan.

Agen menunggu. Apa langkahmu?

Yang perlu dibawa

  • Alat berjalan dengan hak aksesmu, jadi batasnya harus ditegakkan program.
  • Normalisasi path sebelum memeriksanya.
  • Izin otomatis untuk membaca, persetujuan untuk yang berisiko, dan rahasia tidak pernah masuk chat.