Apa Itu Rekayasa Loop? Definisi untuk Agen AI
Rekayasa loop merancang pemicu, batas akses, verifikasi, dan anggaran yang diulang agen AI, bukan sekadar menulis satu prompt cerdas. Ini definisi sederhananya.
Makna rekayasa loop
Rekayasa loop adalah praktik merancang siklus berulang yang dijalankan agen AI: hal yang membangunkannya, hal yang boleh diaksesnya, cara memeriksa keluarannya, dan hal yang menghentikannya. Rekayasa prompt membentuk satu pesan untuk model. Rekayasa loop membentuk proses yang mengirim ribuan pesan saat Anda tidur. Unit kerja berpindah dari prompt ke loop.
Versi singkatnya: Anda berhenti menulis instruksi dan mulai menulis sistem kontrol. Agen tetap memerlukan instruksi yang baik, tetapi instruksi tersebut menjadi salah satu komponen dalam siklus yang berjalan sesuai jadwal, bekerja dalam salinan kode Anda yang terisolasi, membuktikan hasilnya sendiri melalui pengujian, dan berhenti ketika anggaran habis.
Mengapa istilah ini muncul pada 2026
Nama ini sedang ditetapkan secara publik. Repositori GitHub cobusgreyling/loop-engineering memperoleh lebih dari 9,600 bintang dalam dua bulan sejak pertama kali muncul (per Juli 2026), dengan slogan "Stop prompting. Design the loop. Get a score." Repositori ini merangkum peralihan tersebut menjadi enam komponen: penjadwalan, worktree, skill, plugin dan konektor, sub-agen, serta memori persisten yang disimpan di luar percakapan.
Repositori ini mengutip Boris Cherny, yang memimpin Claude Code di Anthropic:
Saya tidak lagi memberikan prompt kepada Claude. Saya menjalankan loop yang memberikan prompt kepada Claude.
Repositori kedua, AI-Builder-Club/skills, memiliki hampir 1,100 bintang (per Juli 2026) dan menyebutkan kedua peran tersebut secara langsung: "codebase harness" yang membuat repositori aman bagi agen untuk menjalankan pengujian dan deployment, serta "loop engineer" yang membangun alur kerja yang aktif berdasarkan pemicu, menyelesaikan pekerjaan, lalu menulis hasil pembelajarannya ke file bersama agar dapat dibaca oleh loop berikutnya.
Tidak satu pun dari kedua repositori tersebut menciptakan praktik ini. Siapa pun yang pernah menjalankan build malam, linter dalam continuous integration, atau cron job yang membuka tiket sudah mengenali bentuknya. Hal yang baru adalah worker di dalam loop kini bersifat nondeterministik. Akibatnya, kebutuhan terhadap fungsi mesin pendukung di sekitarnya juga berubah.
Empat bagian loop
Setiap loop yang berjalan dengan baik memiliki empat bagian ini. Loop yang melewatkan salah satunya dapat membangunkan Anda pada pukul 3am.
- Pemicu. Peristiwa yang memulai suatu eksekusi: timer, webhook, pull request baru, atau alert.
- Batasan. File, kredensial, dan jaringan yang dapat diakses agent selama eksekusi tersebut.
- Verifikasi. Pemeriksaan dengan exit code yang menentukan apakah output eksekusi dipertahankan atau dibuang.
- Anggaran. Batas token, waktu, dan biaya yang mengakhiri eksekusi, terlepas dari berhasil atau tidaknya eksekusi tersebut.
Ubah keempat bagian tersebut menjadi pertanyaan. Dengan demikian, Anda memiliki tinjauan desain untuk setiap agent yang akan dibiarkan berjalan.
Pemicu: yang membangunkan agent
Timer adalah pemicu yang paling sederhana. Di server Linux, systemd timer lebih baik daripada cron untuk keperluan ini karena mencatat log, melakukan percobaan ulang sesuai pengaturan Anda, dan tidak memulai salinan kedua dari unit yang masih berjalan. Properti terakhir ini menghilangkan bug tumpang tindih yang paling umum dalam loop agent: dua proses mengedit branch yang sama.
Tulis unit di /etc/systemd/system/agent-loop.service:
[Unit]
Description=Agent loop: triage open issues
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
User=agent
WorkingDirectory=/srv/agent/repo
ExecStart=/srv/agent/bin/loop.sh
TimeoutStartSec=1800Kemudian tulis timer di /etc/systemd/system/agent-loop.timer:
[Unit]
Description=Run the triage loop every 30 minutes
[Timer]
OnBootSec=5min
OnUnitActiveSec=30min
Unit=agent-loop.service
[Install]
WantedBy=timers.targetsudo systemctl daemon-reload
sudo systemctl enable --now agent-loop.timer
systemctl list-timers agent-loop.timersystemctl list-timers harus menampilkan kolom NEXT dengan waktu di masa mendatang dan kolom LEFT yang menghitung mundur. Hasil yang kosong berarti timer belum diaktifkan, karena enable tanpa --now hanya menjadwalkannya untuk boot berikutnya. TimeoutStartSec=1800 lebih penting daripada yang terlihat: agent yang macet saat menunggu input akan membuat unit tetap aktif selamanya. Akibatnya, timer tidak akan berjalan lagi. Baca hasil suatu proses dengan journalctl -u agent-loop.service -n 50.
Jika Anda menjalankan loop dari cron, tambahkan perlindungan tumpang tindih sendiri karena cron akan memulai salinan kedua tanpa masalah:
*/30 * * * * /usr/bin/flock -n /tmp/agent-loop.lock /srv/agent/bin/loop.shflock -n segera keluar dengan status 1 jika lock sedang digunakan. Dengan demikian, proses kedua berhenti secara diam-diam dan tidak berlomba dengan proses pertama. Penyiapan service dan timer systemd yang sama berlaku untuk setiap tugas yang berjalan lama di server, baik agent maupun bukan.
Batas: berikan salinan tersendiri untuk setiap proses
Agent yang mengedit working tree Anda dapat menghapus pekerjaan yang belum di-commit. Git worktree menyelesaikan masalah ini dengan biaya rendah: setiap proses mendapat direktorinya sendiri dan branch-nya sendiri, sementara tetap menggunakan object store yang sama.
cd /srv/agent/repo
git worktree add -b loop/triage-01 /srv/agent/work/triage-01 origin/main
git worktree listgit worktree list mencetak satu baris untuk setiap tree, beserta path, commit, dan branch-nya. Setelah proses berakhir, git worktree remove /srv/agent/work/triage-01 menghapus direktori tersebut, sedangkan git worktree prune membersihkan entri yang direktorinya sudah tidak ada. Loop paralel menjadi aman pada tahap ini karena dua agent pada dua branch di dua direktori tidak dapat saling menimpa.
Batas ini juga mencakup kredensial. Loop yang berjalan tanpa pengawasan menyimpan token yang berlaku lama, dan setiap proses dapat membocorkan token tersebut ke log, commit, atau konteks model. Batasi token hanya ke satu repositori yang diakses loop. Jika memungkinkan, jangan letakkan token di environment yang dapat dilihat oleh shell milik agent. Baca cara menjaga rahasia agar tidak masuk ke agent AI sebelum memberikan akses produksi kepada loop. Untuk batas yang lebih kuat, jalankan seluruh loop pada VM sementara yang dapat Anda hancurkan setelah setiap proses.
Verifikasi: gerbang yang membuat loop aman
Inilah bagian yang membedakan loop dari cron job yang hanya mengetikkan perintah. Output agent adalah proposal. Gerbang yang menentukan.
#!/usr/bin/env bash
set -euo pipefail
repo=/srv/agent/repo
branch="loop/$(date -u +%Y%m%dT%H%M%SZ)"
tree="/srv/agent/work/$(basename "$branch")"
cd "$repo"
git fetch --quiet origin
git worktree add -b "$branch" "$tree" origin/main
cd "$tree"
# the agent's own command runs here, in non-interactive mode
if ! npm test; then
echo "gate failed: discarding $branch" >&2
cd "$repo"
git worktree remove --force "$tree"
exit 1
fi
git push origin "$branch"
cd "$repo"
git worktree remove "$tree"set -euo pipefail menjalankan fungsi penting dalam skrip tersebut. Tanpa -e, git fetch yang gagal akan diabaikan dan eksekusi berlanjut menggunakan origin/main yang sudah tidak berlaku. Tanpa -u, kesalahan ketik pada nama variabel akan diperluas menjadi string kosong. Akibatnya, pembersihan dijalankan pada path yang salah, bukan gagal secara jelas.
Blok if ! npm test adalah inti pendekatan ini. Kode keluar dari pemeriksaan yang sudah Anda percayai, seperti test suite atau type checker, menentukan apakah branch didorong atau dihapus. Loop tanpa gerbang menghasilkan pekerjaan yang tidak sempat ditinjau siapa pun. Kondisi ini lebih buruk daripada tidak menghasilkan pekerjaan sama sekali. Loop dengan gerbang menghasilkan branch yang sudah memenuhi standar yang sama dengan branch kontributor manusia.
Pilih gerbang yang gagal secara tepat. Test suite yang berhasil pada diff kosong mengajarkan loop bahwa tidak melakukan apa pun adalah keberhasilan. Repository dengan pengujian yang lemah menghasilkan loop yang lemah. Karena itu, repository yang sedang populer menempatkan "menjadikan codebase siap digunakan agent" sebelum "menulis loop".
Anggaran: hal yang menghentikan eksekusi
Agen yang mencoba lagi tanpa henti akan menghasilkan tagihan yang tidak terbatas. Tetapkan batas waktu eksekusi untuk setiap loop yang diberlakukan oleh TimeoutStartSec di atas, jumlah percobaan ulang di dalam skrip, dan batas pengeluaran yang diberlakukan oleh akun penyedia. Kemudian catat biaya setiap eksekusi agar Anda dapat melihat loop mulai menyimpang sebelum tagihan muncul. Pengendalian biaya untuk VPS agen yang selalu aktif membahas sisi pencatatan biayanya, sedangkan mengelola konteks yang dibawa agen antargiliran membahas faktor terbesar yang dapat memengaruhi biaya per eksekusi, karena loop yang membaca ulang repositori yang sama setiap 30 menit akan membayarnya setiap 30 menit.
Biaya adalah alasan loop biasanya lebih baik daripada satu sesi panjang. Eksekusi yang dimulai dari awal, melakukan satu tugas terbatas, lalu berhenti akan mempertahankan konteks yang kecil. Sesi yang dibiarkan terbuka selama delapan jam membawa setiap kesalahan sebelumnya dalam riwayatnya dan membayar seluruh transkrip pada setiap giliran.
Pola yang dikodifikasikan oleh repositori yang sedang tren
Repositori loop-engineering mencantumkan tujuh pola produksi. Pola-pola tersebut lebih baik dibaca sebagai daftar pilihan daripada manifesto. Triage harian. Pengawas pull request yang memantau komentar review dan menanggapinya. Penyapu continuous integration yang mengambil build berstatus gagal. Penyapu dependensi. Penyusun draf changelog. Pembersihan pascagabung. Triage issue.
Kesamaannya adalah tugas yang terbatas dengan gerbang yang jelas. "Perbaiki build yang gagal" memiliki kondisi lulus yang dapat dibaca mesin. "Tingkatkan codebase" tidak memilikinya, sehingga tidak pernah menjadi loop. Tugas itu berubah menjadi kekacauan yang dijadwalkan.
Keduanya juga memiliki catatan tertulis. Kedua repositori memindahkan status dari percakapan ke file di dalam repositori: apa yang dijalankan, apa yang ditemukan, dan apa yang diputuskan. File tersebut adalah memori loop. File ini memungkinkan loop kedua melanjutkan pekerjaan loop pertama, bukan menemukannya kembali. File tersebut juga menjadi dasar untuk mengaudit agent setelah proses selesai, karena konteks model hilang segera setelah proses berhenti.
Tempat loop gagal
Kegagalannya sederhana dan berulang di berbagai tim.
- Tanpa gerbang. Output menumpuk, tidak ada yang meninjaunya, kepercayaan hilang, lalu loop dinonaktifkan.
- Tumpang tindih. Dua eksekusi berjalan pada satu branch, atau dua agen bekerja dalam satu working tree, sehingga muncul konflik yang kemudian coba diselesaikan oleh agen.
- Penyimpangan tanpa terlihat. Loop terus berhasil karena pemeriksaannya terlalu lemah untuk menyebabkan kegagalan.
- Cakupan tidak terbatas. Trigger yang berjalan pada setiap commit di repository yang sibuk berubah menjadi masalah biaya dalam satu hari.
Solusi untuk semuanya sama: kecilkan pekerjaan, perketat pemeriksaan, dan catat eksekusinya. Jika kondisi keberhasilan tidak dapat dijelaskan dalam satu kalimat, pekerjaan tersebut belum siap diotomatisasi.
Memulai tanpa istilah khusus
Anda tidak memerlukan framework. Server Linux kecil yang selalu aktif, repositori git yang rangkaian pengujiannya gagal saat seharusnya gagal, satu timer systemd, dan satu skrip shell yang berisi if sudah membentuk satu siklus lengkap. Inilah titik awal yang tepat bagi sebagian besar orang, karena pertanyaan desain terjawab dengan menjalankan sistem tersebut, bukan dengan memilih alat. Setelah satu siklus stabil, menjalankan siklus kedua pada dasarnya hanya memerlukan timer lain dan worktree lain. Lihat cara menjalankan agen AI pemrograman di VPS untuk penyiapan dasar, dan opsi agen AI yang saat ini dapat dihosting sendiri jika Anda ingin agen tersebut berjalan pada perangkat keras yang Anda kendalikan.
FAQ
Apakah loop engineering berbeda dari prompt engineering?
Prompt engineering mengoptimalkan satu pesan: susunan kata, contoh, dan format output. Loop engineering mengoptimalkan siklus di sekitar pesan tersebut: pemicu yang memulai proses, sandbox tempat proses berjalan, pemeriksaan yang menerima atau menolak output, serta anggaran yang mengakhirinya. Anda tetap memerlukan prompt yang baik di dalam loop. Namun, prompt tidak lagi menjadi hal utama yang disesuaikan setiap hari, karena gate dan pemicu lebih berpengaruh terhadap hasil.
Apakah saya memerlukan framework untuk membuat agent loop?
Tidak. Timer systemd, git worktree untuk setiap proses, shell script yang diakhiri dengan perintah pengujian, dan batas pengeluaran pada akun provider sudah mencakup semua bagian definisi tersebut. Framework menambahkan antarmuka penjadwalan, format shared memory, dan routing multi-agent. Semua itu berguna setelah Anda menjalankan beberapa loop. Framework bukan syarat awal untuk membuat loop pertama.
Apa yang dimaksud dengan codebase harness?
Codebase harness adalah kumpulan hal yang memungkinkan agent bekerja di repository tanpa kehadiran manusia: penyiapan dengan satu perintah, pengujian yang berjalan secara non-interaktif dan gagal secara jelas, linter, serta cara untuk melakukan deploy atau preview terhadap perubahan. Istilah ini muncul dalam gelombang repository yang sama pada 2026 dengan loop engineering. Pengujian praktisnya sederhana: jika kontributor manusia baru tidak dapat berpindah dari clone ke pengujian yang berhasil dengan satu perintah, agent juga tidak dapat melakukannya.
Bagaimana cara menghentikan agent loop agar tidak menimbulkan tagihan besar?
Batasi di tiga tempat. Tetapkan TimeoutStartSec pada unit systemd agar proses yang macet dihentikan. Batasi jumlah retry di dalam script, bukan dengan melakukan loop sampai berhasil. Tetapkan batas pengeluaran yang tegas pada akun API, karena hanya batas inilah yang tidak dapat dinegosiasikan oleh agent. Kemudian catat biaya setiap proses, karena loop yang biayanya berlipat biasanya merupakan loop yang cakupannya diam-diam meluas.
Pekerjaan apa yang paling layak dijadikan loop terlebih dahulu?
Pilih pekerjaan dengan kondisi keberhasilan yang dapat dibaca mesin dan dampak yang terbatas. Memperbaiki build yang gagal, memperbarui dependency, dan membuat ulang changelog memenuhi kriteria tersebut, karena test suite atau diff dapat membuktikan hasilnya. Pekerjaan terbuka seperti refactoring atau desain belum memenuhi kriteria, karena belum ada hal yang dapat diperiksa oleh gate. Loop tanpa gate adalah cara mahal untuk menghasilkan utang review.