SSD Nodes Learn Hosting plans →
Panduan Matt ConnorOleh Matt Connor · Dikemas kini 2026-08-29

Apakah maksud kejuruteraan gelung dalam ejen AI?

Kejuruteraan gelung ialah amalan mereka bentuk kitaran berulang untuk ejen AI. Ketahui cara membina sistem kawalan, ujian, dan bajet berbanding menulis prompt biasa.

Apakah maksud kejuruteraan gelung

Kejuruteraan gelung ialah amalan mereka bentuk kitaran berulang yang dijalankan oleh ejen AI: perkara yang mengaktifkannya, perkara yang boleh dicapainya, cara outputnya disemak, dan perkara yang menghentikannya. Kejuruteraan prompt membentuk satu mesej kepada model. Kejuruteraan gelung membentuk proses yang menghantar beribu-ribu mesej semasa anda tidur. Unit kerja beralih daripada prompt kepada gelung.

Versi ringkasnya: anda berhenti menulis arahan dan mula menulis sistem kawalan. Ejen tersebut masih memerlukan arahan yang baik, tetapi arahan itu menjadi satu komponen di dalam kitaran yang berjalan mengikut jadual, berfungsi dalam salinan kod anda yang terasing, membuktikan hasilnya sendiri dengan ujian, dan berhenti apabila bajet habis.

Mengapa istilah ini muncul pada tahun 2026

Nama ini sedang dimuktamadkan secara umum pada masa ini. Repositori GitHub cobusgreyling/loop-engineering telah melepasi 9,600 bintang dalam tempoh dua bulan selepas pertama kali muncul (setakat Julai 2026), di bawah baris "Berhenti memberi arahan. Reka gelung. Dapatkan skor." Ia mengumpulkan peralihan tersebut kepada enam blok binaan: penjadualan, worktrees, kemahiran, pemalam dan penyambung, sub-ejen, serta memori tahan lama yang disimpan di luar perbualan.

Ia memetik Boris Cherny, yang mengetuai Claude Code di Anthropic:

Saya tidak lagi memberi arahan kepada Claude. Saya mempunyai gelung yang berjalan untuk memberi arahan kepada Claude.

Repositori kedua, AI-Builder-Club/skills, berada berhampiran 1,100 bintang (setakat Julai 2026) dan menamakan kedua-dua peranan tersebut secara langsung: "codebase harness" yang menjadikan repositori selamat untuk ejen menjalankan ujian dan atur cara di dalamnya, serta "loop engineer" yang membina aliran kerja yang aktif apabila dicetuskan, melakukan kerja tersebut, dan menulis apa yang dipelajari ke dalam fail kongsi supaya gelung seterusnya boleh membacanya.

Tiada satu pun repositori tersebut mencipta amalan ini. Sesiapa yang pernah menjalankan nightly build, linter dalam continuous integration, atau cron job yang membuka tiket sudah mengetahui bentuknya. Apa yang baharu ialah pekerja di dalam gelung itu kini bersifat tidak deterministik, yang mengubah perkara yang perlu dilakukan oleh jentera di sekelilingnya.

Empat bahagian gelung

Setiap gelung yang berfungsi mempunyai empat bahagian ini, dan gelung yang mengabaikan salah satu daripadanya adalah gelung yang akan mengejutkan anda pada pukul 3 pagi.

  • Pencetus (Trigger). Peristiwa yang memulakan pelaksanaan: pemasa, webhook, pull request baharu, atau amaran.
  • Sempadan (Boundary). Fail, kelayakan, dan rangkaian yang boleh dicapai oleh ejen semasa pelaksanaan tersebut.
  • Pengesahan (Verification). Semakan dengan kod keluar yang menentukan sama ada output pelaksanaan disimpan atau dibuang.
  • Belanjawan (Budget). Had token, masa, dan wang yang menamatkan pelaksanaan tidak kira sama ada ia berjaya atau tidak.

Baca semula empat perkara tersebut sebagai soalan dan anda akan mendapat semakan reka bentuk bagi mana-mana ejen yang bakal anda biarkan berjalan.

Pencetus: perkara yang mengaktifkan ejen

Pemasa (timer) ialah pencetus yang paling mudah, dan pada pelayan Linux, systemd timer lebih baik daripada cron kerana ia merekodkan log, melakukan percubaan semula mengikut tetapan anda, dan tidak akan memulakan salinan kedua bagi unit yang masih berjalan. Ciri terakhir ini menghapuskan pepijat pertindihan yang paling lazim dalam gelung ejen: dua proses yang menyunting cawangan yang sama.

Tulis unit tersebut 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=1800

Dan pemasa 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.target
sudo systemctl daemon-reload
sudo systemctl enable --now agent-loop.timer
systemctl list-timers agent-loop.timer

systemctl list-timers sepatutnya memaparkan lajur NEXT dengan waktu pada masa hadapan dan lajur LEFT yang menunjukkan kiraan detik. Hasil yang kosong bermakna pemasa tidak diaktifkan, kerana enable tanpa --now hanya menjadualkannya untuk but seterusnya. TimeoutStartSec=1800 lebih penting daripada yang kelihatan: ejen yang tergantung semasa menunggu input akan menyebabkan unit kekal aktif selama-lamanya, dan pemasa tidak akan dicetuskan lagi. Baca pelaksanaan dengan journalctl -u agent-loop.service -n 50.

Jika anda menjalankan gelung tersebut daripada cron sebaliknya, tambahkan kawalan pertindihan anda sendiri, kerana cron akan memulakan salinan kedua tanpa sebarang masalah:

*/30 * * * * /usr/bin/flock -n /tmp/agent-loop.lock /srv/agent/bin/loop.sh

flock -n akan keluar serta-merta dengan status 1 apabila kunci dipegang, jadi pelaksanaan kedua akan hilang secara senyap dan tidak bersaing dengan pelaksanaan pertama. Persediaan perkhidmatan dan pemasa systemd yang sama terpakai untuk mana-mana tugasan yang berjalan lama pada mesin tersebut, sama ada ejen atau bukan.

Sempadan: berikan setiap larian salinan tersendiri

Ejen yang menyunting working tree anda ialah ejen yang boleh menyebabkan kehilangan kerja yang belum di-commit. Git worktrees menyelesaikan masalah ini dengan kos yang rendah: setiap larian mendapat direktori dan branch tersendiri, sambil berkongsi satu object store yang sama.

cd /srv/agent/repo
git worktree add -b loop/triage-01 /srv/agent/work/triage-01 origin/main
git worktree list

git worktree list mencetak satu baris bagi setiap tree berserta laluan, commit dan branch-nya. Apabila larian tamat, git worktree remove /srv/agent/work/triage-01 memadamkan direktori tersebut, dan git worktree prune membersihkan entri yang direktorinya telah hilang. Gelung selari menjadi selamat pada tahap ini, kerana dua ejen pada dua branch dalam dua direktori tidak boleh menimpa satu sama lain.

Sempadan juga berkaitan dengan kelayakan (credentials). Gelung yang berjalan tanpa pengawasan menyimpan token jangka hayat panjang, dan setiap larian merupakan peluang untuk token tersebut bocor ke dalam log, commit atau konteks model. Hadkan skop token kepada satu repositori yang disentuh oleh gelung tersebut, jauhkan ia daripada persekitaran yang dilihat oleh shell ejen itu sendiri jika boleh, dan baca cara menyimpan rahsia daripada ejen AI sebelum anda memberikan akses pengeluaran kepada sesuatu gelung. Untuk perlindungan yang lebih kukuh, letakkan keseluruhan gelung pada VM pakai buang yang boleh anda musnahkan selepas setiap larian. Alat yang anda jalankan juga menetapkan sebahagian daripada sempadan sebelum anda menulis sebarang kod, jadi adalah berbaloi untuk membaca perbandingan antara sandbox terurus Cowork dengan Claude Code pada mesin anda sendiri sebelum memutuskan tahap pengasingan yang perlu anda bina sendiri.

Pengesahan: pintu gerbang yang menjadikan gelung selamat

Ini adalah bahagian yang membezakan gelung daripada cron job yang menaip. Output ejen hanyalah satu cadangan. Pintu gerbanglah yang membuat keputusan.

#!/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 melakukan kerja sebenar dalam skrip tersebut. Tanpa -e, kegagalan git fetch akan diabaikan dan pelaksanaan diteruskan menggunakan origin/main yang lapuk. Tanpa -u, kesilapan menaip pada nama pemboleh ubah akan berkembang menjadi rentetan kosong, dan proses pembersihan kemudiannya akan dijalankan pada laluan yang salah dan bukannya gagal dengan jelas.

Blok if ! npm test adalah idea keseluruhannya. Kod keluar bagi semakan yang anda percayai, sama ada suite ujian atau penyemak jenis anda, menentukan sama ada cawangan tersebut ditolak (push) atau dimusnahkan. Gelung tanpa pintu gerbang menghasilkan kerja yang tiada siapa sempat semak, yang mana lebih buruk daripada tiada kerja langsung. Gelung dengan pintu gerbang menghasilkan cawangan yang telah melepasi piawaian yang sama seperti cawangan penyumbang manusia. Pintu gerbang yang hijau tidak menyatakan berapa banyak kod yang disentuh oleh ejen untuk sampai ke tahap itu, jadi adalah wajar untuk menggandingkan semakan tersebut dengan arahan tetap seperti peraturan yang membuatkan ejen mengambil perubahan terkecil yang berkesan, yang memastikan perbezaan (diff) cukup kecil supaya proses semakan kekal mudah.

Pilih pintu gerbang yang gagal dengan jujur. Suite ujian yang lulus pada diff kosong mengajar gelung bahawa tidak melakukan apa-apa adalah satu kejayaan. Repositori dengan ujian yang lemah menghasilkan gelung yang lemah, itulah sebabnya repositori yang menjadi trend meletakkan "jadikan kod asas sedia untuk ejen" sebelum "tulis gelung". Jika anda ingin tahu sama ada suite anda benar-benar akan menangkap regresi dan bukannya sekadar melaksanakan baris kod, ujian mutasi adalah semakan yang menjawabnya, dan ejen yang memberikan laporan bukti yang boleh dijalankan semula dan bukannya meminta anda membaca diffnya menukarkan jawapan itu kepada sesuatu yang boleh anda sahkan sendiri.

Bajet: perkara yang menghentikan pelaksanaan

Ejen yang membuat percubaan semula tanpa henti adalah ejen dengan bil yang tidak terkawal. Berikan setiap gelung had masa jam dinding, yang dikuatkuasakan oleh TimeoutStartSec di atas; kiraan percubaan semula di dalam skrip anda; dan had perbelanjaan yang dikuatkuasakan oleh akaun pembekal. Kemudian, log kos setiap pelaksanaan supaya anda boleh melihat gelung yang menyimpang sebelum invois sampai. Kawalan kos untuk VPS ejen yang sentiasa aktif merangkumi aspek perakaunan, dan mengurus konteks yang dibawa oleh ejen antara giliran merangkumi tuas tunggal terbesar bagi kos setiap pelaksanaan, kerana gelung yang membaca semula repositori yang sama setiap 30 minit akan membayar kos tersebut setiap 30 minit.

Kos adalah sebab mengapa gelung biasanya lebih baik daripada satu sesi yang panjang. Pelaksanaan yang bermula dari awal, melakukan satu tugas yang khusus, dan kemudian tamat akan memastikan konteksnya kecil. Sesi yang dibiarkan terbuka selama lapan jam akan membawa setiap kesilapan terdahulu dalam sejarahnya, dan membayar untuk keseluruhan transkrip pada setiap giliran.

Corak yang dikodifikasikan oleh repositori sohor kini

Repositori loop-engineering menyenaraikan tujuh corak pengeluaran, dan ia wajar dibaca sebagai menu dan bukannya manifesto. Triage harian. Pengasuh pull-request yang memantau ulasan semakan dan menjawabnya. Penyapu continuous-integration yang mengesan binaan yang gagal. Penyapu dependensi. Penggubal changelog. Pembersihan pasca-merge. Triage isu.

Apa yang dikongsi oleh corak-corak ini ialah tugasan yang sempit dengan pintu masuk yang jelas. "Baiki binaan yang gagal" mempunyai syarat lulus yang boleh dibaca oleh mesin. "Tingkatkan kod" tidak mempunyai syarat tersebut, jadi ia tidak pernah menjadi gelung. Ia menjadi kekacauan yang berjadual.

Ia juga berkongsi rekod bertulis. Kedua-dua repositori menolak status keluar daripada perbualan dan memasukkannya ke dalam fail di dalam repositori: apa yang dijalankan, apa yang ditemui, dan apa yang diputuskan. Fail itu adalah memori gelung tersebut, dan ia adalah sebab mengapa gelung kedua boleh membina kerja daripada gelung pertama dan bukannya menemuinya semula. Ia juga merupakan cara anda mengaudit ejen selepas fakta, memandangkan konteks model hilang sebaik sahaja proses tamat. Penyelarasan secara langsung adalah saluran yang berasingan, dan satu sesi Claude Code boleh menyerahkan kerja kepada sesi lain pada mesin yang sama semasa kedua-duanya masih berjalan, tetapi tiada apa-apa dalam pertukaran itu yang bertahan lebih lama daripada sesi tersebut, jadi fail itu kekal sebagai bahagian yang anda baca semula kemudian.

Kegagalan dalam gelung

Kegagalan ini membosankan dan berulang merentasi pasukan.

  • Tiada kawalan. Output terkumpul, tiada sesiapa yang menyemak, kepercayaan merosot, dan gelung tersebut dimatikan.
  • Pertindihan. Dua pelaksanaan pada satu branch, atau dua ejen dalam satu working tree, menghasilkan konflik yang kemudian cuba diselesaikan oleh ejen tersebut.
  • Drift senyap. Gelung terus melepasi ujian kerana semakan terlalu lemah untuk mencetuskan kegagalan.
  • Skop tidak terbatas. Pencetus yang aktif pada setiap commit dalam repositori yang sibuk akan menjadi masalah kos dalam masa sehari.

Setiap satu mempunyai penyelesaian yang sama: kecilkan tugasan, perketatkan semakan, dan log pelaksanaan tersebut. Jika anda tidak dapat menerangkan syarat lulus dalam satu ayat, tugasan tersebut belum sedia untuk diautomasikan.

Bermula tanpa kerangka kerja

Anda tidak memerlukan kerangka kerja. Sebuah pelayan Linux kecil yang sentiasa aktif, repositori git yang suite ujiannya gagal apabila sepatutnya, satu systemd timer dan satu skrip shell yang mengandungi if membentuk satu gelung lengkap. Inilah titik permulaan yang sebenar bagi kebanyakan orang, kerana persoalan reka bentuk dapat dijawab dengan menjalankan sistem tersebut berbanding memilih alatan. Apabila satu gelung sudah stabil, menjalankan gelung kedua hanyalah melibatkan penambahan timer dan worktree yang lain. Lihat cara menjalankan ejen AI pengekodan pada VPS untuk persediaan asas, dan pilihan ejen AI self-hosted semasa jika anda mahu ejen tersebut berjalan pada perkakasan yang anda kawal sendiri.

FAQ

Adakah loop engineering berbeza daripada prompt engineering?

Prompt engineering mengoptimumkan satu mesej: pemilihan kata, contoh, dan format output. Loop engineering mengoptimumkan kitaran di sekeliling mesej tersebut: pencetus yang memulakan pelaksanaan, sandbox tempat ia dijalankan, pemeriksaan yang menerima atau menolak output, serta bajet yang menamatkannya. Anda masih memerlukan prompt yang baik di dalam gelung tersebut. Prompt tidak lagi menjadi perkara yang anda tala setiap hari, kerana pintu kawalan (gate) dan pencetus mempunyai kesan yang lebih besar terhadap hasil akhir.

Adakah saya memerlukan framework untuk membina gelung ejen (agent loop)?

Tidak. Systemd timer, git worktree bagi setiap pelaksanaan, skrip shell yang berakhir dengan arahan ujian, dan had perbelanjaan pada akaun penyedia sudah merangkumi setiap bahagian definisi tersebut. Framework menambah antara muka penjadualan, format memori kongsi, dan penghalaan berbilang ejen, yang berguna apabila anda menjalankan beberapa gelung. Ia bukanlah syarat wajib untuk memulakan gelung yang pertama.

Apakah itu codebase harness?

Ia adalah set perkara yang membolehkan ejen bekerja dalam repositori tanpa kehadiran manusia: persediaan satu arahan, ujian yang dijalankan secara tidak interaktif dan gagal dengan jelas, linter, serta cara untuk menggunakan atau melihat pratonton perubahan. Istilah ini muncul daripada gelombang repositori tahun 2026 yang sama seperti loop engineering. Ujian praktikalnya mudah: jika penyumbang manusia baharu tidak boleh beralih daripada clone kepada ujian yang berjaya (green tests) dengan satu arahan, ejen juga tidak boleh melakukannya.

Bagaimanakah cara untuk menghalang gelung ejen daripada menyebabkan bil yang tinggi?

Hadkan ia di tiga tempat. Tetapkan TimeoutStartSec pada unit systemd supaya pelaksanaan yang tergantung akan dimatikan. Hadkan percubaan semula di dalam skrip dan bukannya membuat gelung sehingga berjaya. Tetapkan had perbelanjaan keras pada akaun API, kerana itu adalah satu-satunya siling yang tidak boleh ditembusi oleh ejen. Kemudian, rekodkan kos bagi setiap pelaksanaan, kerana gelung yang kosnya meningkat dua kali ganda biasanya merupakan gelung yang skopnya telah melebar secara senyap.

Pekerjaan manakah yang patut ditukarkan kepada gelung terlebih dahulu?

Pilih pekerjaan yang mempunyai syarat lulus yang boleh dibaca oleh mesin dan kesan kerosakan (blast radius) yang kecil. Membaiki build yang gagal, mengemas kini dependency, dan menjana semula changelog adalah contoh yang sesuai, kerana suite ujian atau diff boleh membuktikan hasilnya. Kerja yang terbuka seperti refactoring atau reka bentuk belum sesuai lagi, kerana tiada apa-apa untuk diperiksa oleh pintu kawalan, dan gelung tanpa pintu kawalan adalah cara yang mahal untuk menjana hutang semakan (review debt).