SSD Nodes Learn Hosting plans →
Panduan Matt ConnorOleh Matt Connor · Dikemas kini 2026-10-30

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 2026

Nama ini sedang dimantapkan secara umum pada masa ini. Repositori GitHub cobusgreyling/loop-engineering melepasi 9,600 bintang dalam tempoh dua bulan selepas pertama kali muncul (setakat Julai 2026) dan menunjukkan kira-kira 11,600 pada 2026-10-27, di bawah baris "Stop prompting. Design the loop. Get a score." Pada Julai 2026, fail README miliknya mengumpulkan peralihan tersebut kepada enam blok binaan: penjadualan, worktrees, kemahiran, pemalam dan penyambung, sub-ejen, serta memori tahan lama yang disimpan di luar perbualan. README semasa tidak lagi memaparkan senarai tersebut (disemak pada 2026-10-27), namun ia masih menyimpan status gelung dalam fail di luar perbualan.

Repositori tersebut memberikan kredit kepada Boris Cherny, yang mengetuai Claude Code di Anthropic, sebagai salah satu inspirasinya. Baris kata beliau yang dilaporkan secara meluas ialah:

Saya tidak lagi memberikan prompt kepada Claude. Saya mempunyai gelung yang berjalan untuk memberikan prompt kepada Claude.

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

Kedua-dua repositori tidak mencipta amalan ini. Sesiapa yang pernah menjalankan nightly build, linter dalam continuous integration, atau cron job yang membuka tiket sudah mengetahui bentuknya. Perkara baharu di sini ialah pekerja di dalam gelung tersebut kini bersifat tidak berketentuan (non-deterministic), 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.

Pemicu: apa yang mengaktifkan ejen

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

Berikan ejen pengguna sendiri terlebih dahulu. Pengguna tersebut adalah sebahagian daripada sempadan, jadi ia hanya memiliki /srv/agent dan tiada yang lain:

sudo useradd --system --home-dir /srv/agent --shell /usr/sbin/nologin agent
sudo chown -R agent:agent /srv/agent

Kemudian 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=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 menunjukkan lajur NEXT dengan masa pada masa hadapan dan lajur LEFT yang mengira detik. Hasil yang kosong bermakna pemasa tidak diaktifkan, kerana enable tanpa --now hanya menjadualkannya untuk but seterusnya sahaja. TimeoutStartSec=1800 lebih penting daripada yang disangka. Servis Type=oneshot dikira sebagai sedang bermula sehingga skripnya tamat, dan systemd mematikan had masa mula untuk unit oneshot secara lalai. Tanpa baris ini, ejen yang tergantung menunggu input akan menyebabkan unit kekal dalam keadaan aktif selama-lamanya, dan setiap detik pemasa seterusnya mendapati ia masih berjalan dan tidak memulakan apa-apa. Dengan baris tersebut, systemd menamatkan proses selepas 30 minit dan menandakannya sebagai gagal. Jika anda menukar unit kepada Type=simple lalai, TimeoutStartSec tidak lagi melindungi proses tersebut, dan RuntimeMaxSec= ialah tetapan yang mengehadkannya. Baca proses dengan journalctl -u agent-loop.service -n 50.

Jika anda menjalankan gelung daripada cron sebaliknya, tambahkan pengawal pertindihan anda sendiri, kerana cron akan memulakan salinan kedua tanpa ragu-ragu:

*/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 proses kedua akan hilang secara senyap dan tidak bersaing dengan yang pertama. Persediaan servis dan pemasa systemd yang sama terpakai untuk mana-mana tugasan yang berjalan lama pada mesin, sama ada ejen atau bukan.

Sempadan: berikan setiap larian salinannya sendiri

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 cawangan (branch) sendiri, sambil berkongsi satu stor objek.

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 cawangannya. Apabila larian tamat, git worktree remove /srv/agent/work/triage-01 membuang worktree tersebut, tetapi hanya jika ia bersih. Jika tree tersebut mempunyai fail yang tidak dijejak (untracked), fail dijejak yang telah diubah, atau mengandungi submodule, git akan menolak sehingga anda menambah --force. Itulah sebabnya skrip gate di bawah hanya memaksa pembuangan pada laluan yang membuang larian tersebut. git worktree prune membersihkan entri yang direktorinya telah hilang. Gelung selari menjadi selamat pada tahap ini, kerana dua ejen pada dua cawangan dalam dua direktori tidak boleh menimpa satu sama lain.

Sempadan juga berkaitan dengan kelayakan (credentials). Gelung yang berjalan tanpa pengawasan memegang token jangka hayat panjang, dan setiap larian merupakan peluang untuk membocorkannya 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 (production) kepada sesuatu gelung. Untuk tembok 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 sekadar 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, git fetch yang gagal 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 dijalankan pada laluan yang salah dan bukannya gagal dengan jelas. Baris terakhir sengaja tidak mempunyai --force: jika pelaksanaan meninggalkan fail yang tidak dijejak atau tidak dikomit dalam pepohon, git enggan memadamkannya, dan -e menamatkan pelaksanaan dengan ralat selepas proses push dan bukannya memadam kerja yang belum dikomit secara senyap.

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 murah.

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 "menjadikan kod sedia untuk ejen" sebelum "menulis 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 yang sedang sohor kini

Repositori kejuruteraan gelung menyenaraikan lapan corak pengeluaran (setakat 2026-10-27), dan ia lebih wajar dibaca sebagai menu berbanding manifesto. Triage harian. Gelung nipis yang berjalan sebagai GitHub Action dan tidak menyimpan fail status. Pengasuh pull-request yang memantau komen ulasan dan menjawabnya. Penyapu continuous-integration yang mengambil binaan yang gagal (red builds). Penyapu dependensi. Penggubal changelog. Pembersihan pasca-merge. Triage isu.

Perkara yang dikongsi oleh kesemuanya ialah tugasan yang sempit dengan pintu gerbang yang jelas. "Baiki binaan yang gagal" mempunyai syarat lulus yang boleh dibaca oleh mesin. "Tingkatkan codebase" tidak mempunyai syarat tersebut, jadi ia tidak pernah menjadi gelung. Ia menjadi kekacauan dengan jadual.

Ia juga berkongsi rekod bertulis. Kedua-dua repositori menolak status keluar daripada perbualan dan ke dalam fail di dalam repositori: apa yang dijalankan, apa yang ditemui, dan apa yang diputuskan. Fail tersebut ialah memori gelung, dan ia adalah sebab gelung kedua boleh membina kerja berdasarkan kerja gelung pertama dan bukannya menemui semula perkara yang sama. Ia juga merupakan cara anda mengaudit ejen selepas fakta, memandangkan konteks model telah hilang sebaik sahaja proses tamat. Penyelarasan secara langsung adalah saluran yang berasingan, dan satu sesi Claude Code boleh menyerahkan kerja kepada sesi lain pada kotak yang sama semasa kedua-duanya masih berjalan, namun tiada apa-apa dalam pertukaran itu yang bertahan lebih lama daripada sesi tersebut, jadi fail 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 kejuruteraan gelung berbeza daripada kejuruteraan gesaan (prompt engineering)?

Kejuruteraan gesaan mengoptimumkan satu mesej: pemilihan perkataan, contoh, dan format output. Kejuruteraan gelung mengoptimumkan kitaran di sekeliling mesej tersebut: pemicu yang memulakan proses, kotak pasir (sandbox) tempat ia berjalan, pemeriksaan yang menerima atau menolak outputnya, dan bajet yang menamatkannya. Anda masih memerlukan gesaan yang baik di dalam gelung. Gesaan berhenti menjadi perkara yang anda ubah suai setiap hari, kerana pintu masuk (gate) dan pemicu mempunyai kesan yang lebih besar terhadap hasil.

Adakah saya memerlukan rangka kerja untuk membina gelung ejen?

Tidak. Pemasa systemd, git worktree bagi setiap proses, skrip shell yang berakhir dengan arahan ujian, dan had perbelanjaan pada akaun penyedia merangkumi setiap bahagian definisi tersebut. Rangka kerja menambah antara muka penjadualan, format memori kongsi, dan penghalaan berbilang ejen, yang berguna apabila anda menjalankan beberapa gelung. Ia bukan harga kemasukan untuk gelung yang pertama.

Apakah itu harness kod sumber?

Ia adalah set perkara yang membolehkan ejen bekerja dalam repositori tanpa kehadiran manusia: persediaan satu arahan, ujian yang berjalan tanpa interaksi dan gagal dengan jelas, linter, dan cara untuk menggunakan atau melihat pratonton perubahan. Istilah ini muncul daripada gelombang repositori tahun 2026 yang sama seperti kejuruteraan gelung. 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 saya menghalang gelung ejen daripada menyebabkan bil yang besar?

Hadkan ia di tiga tempat. Tetapkan TimeoutStartSec pada unit systemd Type=oneshot seperti di atas supaya proses yang tergantung dimatikan (pada servis Type=simple, setaranya ialah RuntimeMaxSec). Hadkan percubaan semula di dalam skrip dan bukannya bergelung sehingga berjaya. Tetapkan had perbelanjaan keras pada akaun API, kerana itu adalah satu-satunya siling yang tidak boleh ditembusi oleh ejen. Kemudian, catatkan kos bagi setiap proses, kerana gelung yang kosnya meningkat dua kali ganda biasanya merupakan gelung yang skopnya melebar secara senyap.

Tugasan manakah yang patut dijadikan gelung terlebih dahulu?

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

Adakah artikel ini berguna?