- Agen coding seperti Claude Code dari Anthropic dan Codex CLI dari OpenAI secara mendasar meningkatkan kegunaan LLM dalam menghasilkan kode yang benar-benar berfungsi, karena dapat mengeksekusi kode secara langsung, memperbaiki error, menelusuri implementasi yang sudah ada, dan menemukan solusi yang efektif melalui eksperimen
- Teknik kunci untuk memaksimalkan potensi alat-alat ini adalah merancang loop agen; jika agen coding diberi tujuan yang jelas dan sekumpulan alat yang tepat, kita bisa memahaminya sebagai alat yang mampu menemukan solusi efektif lewat pendekatan brute-force
- Definisi agen LLM adalah menjalankan alat di dalam sebuah loop untuk mencapai tujuan, dan keterampilan penting dalam memakainya dengan baik adalah merancang dengan cermat alat serta loop yang akan digunakan agen
- Mode YOLO (semua perintah disetujui secara default) memang berisiko, tetapi juga menjadi kunci untuk mendapatkan hasil paling produktif melalui brute-force; agar aman, kita bisa memilih antara sandbox Docker, lingkungan komputer lain seperti GitHub Codespaces, atau sekadar menerima risikonya
- Memilih alat yang tepat (perintah shell dan paket), menerbitkan kredensial dengan cakupan yang ketat (lingkungan uji, batas anggaran), dan menerapkannya pada masalah yang memiliki kriteria sukses yang jelas serta membutuhkan trial and error (debugging, optimasi performa, upgrade dependensi, optimasi container) adalah prinsip inti dalam perancangan loop agen
Kesenangan mode YOLO
-
Risiko agen
- Agen pada dasarnya berisiko
- Dapat membuat keputusan yang salah atau menjadi korban serangan prompt injection yang berbahaya
- Pemanggilan alat dapat menimbulkan dampak yang merugikan
- Alat agen coding yang paling kuat adalah “jalankan perintah ini di shell”, jadi agen yang menyimpang dapat melakukan apa pun yang bisa dilakukan pengguna jika menjalankan perintah itu sendiri
- Kutipan dari Solomon Hykes:
> Agen AI adalah LLM yang menghancurkan lingkungan di dalam sebuah loop
-
Keterbatasan mode persetujuan default
- Agen coding seperti Claude Code mengatasinya dengan menjadikan permintaan persetujuan untuk hampir setiap perintah yang dijalankan sebagai pengaturan default
- Ini memang agak melelahkan, tetapi yang lebih penting, hal itu secara dramatis mengurangi efektivitas pemecahan masalah lewat brute-force
-
Mode YOLO
- Setiap alat menyediakan versinya sendiri dari mode YOLO, di mana semuanya disetujui secara default
- Sangat berbahaya, tetapi juga penting untuk mendapatkan hasil paling produktif
-
Tiga risiko utama mode YOLO tanpa pengawasan
- 1. Perintah shell yang buruk: menghapus atau merusak sesuatu yang penting
- 2. Serangan eksfiltrasi: mencuri file atau data yang bisa dilihat agen (kode sumber atau rahasia yang disimpan di environment variable)
- 3. Serangan proksi: menggunakan mesin sebagai proksi untuk menyamarkan sumber DDoS atau serangan peretasan lain terhadap target lain
Opsi menjalankan mode YOLO
-
Opsi 1: Sandbox yang aman
- Jalankan agen di dalam sandbox aman yang membatasi file dan rahasia yang dapat diakses, serta koneksi jaringan yang dapat dibuat
- Kemungkinan container escape tetap ada, tetapi menggunakan Docker atau alat container baru dari Apple merupakan risiko yang dapat diterima bagi kebanyakan orang
- Dokumentasi Safe YOLO mode dari Anthropic:
- menggunakan
--dangerously-skip-permissions di dalam container tanpa akses internet
- menyediakan implementasi referensi dengan Docker Dev Containers
- membatasi akses internet ke daftar host tepercaya adalah cara yang baik untuk mencegah pencurian kode sumber pribadi
-
Opsi 2: Pakai komputer orang lain (lebih disukai)
- Bahkan jika agen menjadi menyimpang, kerusakannya akan tetap terbatas
- Disarankan menggunakan GitHub Codespaces:
- menyediakan lingkungan container penuh on-demand yang bisa diakses lewat browser
- menyediakan free tier yang cukup murah hati
- jika terjadi masalah, yang terkuras adalah CPU mesin Microsoft Azure di suatu tempat; dalam skenario terburuk, kode yang di-checkout ke lingkungan itu bisa bocor ke penyerang atau kode buruk bisa di-push ke repositori GitHub yang terhubung
- Alat lain bergaya agen yang menjalankan kode di komputer orang lain:
- mode Code Interpreter milik ChatGPT dan Claude
- Codex Cloud dari OpenAI
-
Opsi 3: Menerima risiko
- Berusaha menghindari paparan ke sumber instruksi berbahaya yang potensial, dan berharap bisa menangkap kesalahan sebelum menimbulkan kerusakan
- Ini adalah opsi yang dipilih kebanyakan orang
Memilih alat yang tepat untuk loop
-
Setelah mode YOLO yang aman tersedia
- Langkah berikutnya adalah memutuskan alat apa saja yang sebaiknya tersedia bagi agen coding
-
Prioritaskan perintah shell
- Pada tahap ini MCP (Model Context Protocol) memang bisa dimasukkan, tetapi biasanya lebih produktif jika berpikir dalam kerangka perintah shell
- Agen coding sangat mahir dalam menjalankan perintah shell
- Jika lingkungan mengizinkan akses jaringan yang diperlukan, agen juga bisa mengambil paket tambahan dari NPM, PyPI, dan sebagainya
- Hal penting lain adalah memastikan agen berjalan di lingkungan tempat instalasi paket acak tidak merusak hal-hal di komputer utama
-
Memanfaatkan file AGENTS.md
-
Memanfaatkan alat yang sudah ada
- LLM yang bagus pada dasarnya sudah tahu cara menggunakan rentang alat yang sudah ada dalam jumlah yang mengejutkan
- Jika Anda mengatakan “gunakan playwright python” atau “gunakan ffmpeg”, sebagian besar model bisa memakainya secara efektif
- Karena alat ini berjalan di dalam loop, model biasanya bisa pulih dari kesalahan awal dan mencari urutan langkah yang benar tanpa instruksi tambahan
Menerbitkan kredensial dengan cakupan ketat
-
Perlunya kredensial
- Selain mengekspos perintah yang tepat, Anda juga perlu mempertimbangkan kredensial apa yang harus diekspos ke perintah tersebut
- Idealnya tidak perlu ada kredensial sama sekali (banyak tugas bisa dilakukan tanpa login atau API key), tetapi beberapa masalah tertentu memang memerlukan akses terautentikasi
-
Dua rekomendasi utama
- 1. Berikan kredensial untuk lingkungan test atau staging
- lingkungan di mana kerusakan bisa dibatasi dengan baik
- 2. Tetapkan batas anggaran
- jika kredensial tersebut bisa membelanjakan uang, pasang batas anggaran yang ketat
-
Kasus nyata: investigasi Fly.io
- Menyelidiki lambatnya waktu cold start pada aplikasi scale-to-zero yang berjalan di Fly.io
- Claude Code dibiarkan langsung mengedit Dockerfile, melakukan deployment ke akun Fly, dan mengukur waktu yang dibutuhkan aplikasi untuk mulai berjalan
-
Pengaturan yang aman
- Di Fly, Anda bisa membuat organisasi, menetapkan batas anggaran untuk organisasi itu, lalu menerbitkan Fly API key yang hanya dapat membuat atau mengubah aplikasi di dalam organisasi tersebut
- Dibuat organisasi khusus hanya untuk investigasi ini
- Ditetapkan anggaran $5
- API key diterbitkan dan Claude Code dibiarkan bekerja
- Dalam kasus khusus ini hasilnya tidak cukup berguna, tetapi proyek inilah yang pertama kali menyadarkan penulis bahwa “perancangan loop agen” adalah keterampilan penting yang perlu dikembangkan
Kapan merancang loop agen
-
Pola masalah yang cocok
- Tidak semua masalah cocok dengan pola kerja ini
- Yang perlu dicari adalah masalah dengan kriteria sukses yang jelas dan kemungkinan membutuhkan trial and error yang mungkin agak membosankan untuk menemukan solusi yang baik
- Setiap kali Anda berpikir, “uh, sepertinya aku harus mencoba banyak variasi di sini”, itu adalah sinyal kuat bahwa loop agen layak dicoba
-
Contoh konkret
-
Debugging
- Test gagal dan akar penyebabnya perlu diselidiki
- Agen coding yang sudah bisa menjalankan test dapat melakukannya tanpa setup tambahan
-
Optimasi performa
- Query SQL terlalu lambat, apakah menambahkan indeks akan membantu?
- Agen dapat melakukan benchmark query dan (di lingkungan pengembangan yang terisolasi!) menambah serta menghapus indeks untuk mengukur dampaknya
-
Upgrade dependensi
- Tertinggal dalam beberapa upgrade dependensi
- Jika test suite cukup kuat, loop agen dapat melakukan semua upgrade itu dan membuat pembaruan kecil yang diperlukan untuk menyesuaikan perubahan besar
- Pastikan salinan release note yang relevan tersedia, atau agen tahu di mana menemukannya sendiri
-
Optimasi ukuran container
- Container Docker ukurannya sangat besar dan tidak nyaman
- Agen dapat mencoba base image yang berbeda dan mengiterasi Dockerfile sambil tetap memastikan test lulus
-
Tema umum: automated test
- Tema yang sama dari semua ini adalah automated test
- Nilai yang bisa diperoleh dari agen coding dan alat coding LLM lainnya meningkat sangat besar jika didukung oleh test suite yang bagus dan lulus dengan bersih
- Kabar baiknya, LLM juga sangat bagus untuk mempercepat proses menyusun itu jika belum ada
Ini masih wilayah yang sangat baru
- Perancangan loop agen adalah keterampilan yang sangat baru
- Claude Code pertama kali dirilis pada Februari 2025
- Harapannya, dengan memberinya nama yang jelas, akan lebih mudah untuk membangun percakapan yang produktif tentang hal ini
- Masih ada jauh lebih banyak hal yang perlu dipelajari tentang cara menggunakan alat-alat ini seefektif mungkin
Belum ada komentar.