Halaman ini diterjemahkan dari dokumentasi bahasa Inggris. Perintah, pengenal, dan contoh tidak diubah. Runtime 7.24.4 · SDK 2.6.7. Sumber bahasa Inggris
Mode Loop dan tugas terjadwal
Status: Aktif Cakupan: keadaan saat ini Terakhir ditinjau: 2026-08-27 Pemilik: ax-code runtime
AX Code memiliki tiga primitif otomasi yang dapat disusun:
| Primitif | Apa itu | Masa hidup |
|---|---|---|
/goal |
Tujuan yang tahan lama dan terus dikejar sesi, dengan rencana tertulis, anggaran, dan gerbang verifikasi | Disimpan per sesi |
/loop |
Detak yang menjalankan ulang prompt pada interval tetap saat sesi menganggur | Proses backend ini |
| Tugas terjadwal | Eksekusi sekali atau berulang yang tahan lama (“setiap hari kerja pukul 9 pagi…”) yang dapat diatur agen secara percakapan | Disimpan di basis data proyek |
/loop — prompt berulang
/loop <interval> <prompt> start (interval like 30s, 5m, 1h)
/loop status show runs, busy-skips, and the prompt
/loop stop stop the loop
Contoh:
/loop 5m check CI for new failures and fix any you find
/loop 30m drain the review queue
Aturan:
- Batas interval: 30 detik sampai 24 jam. Satu loop per sesi — memulai yang baru menggantikan yang lama.
- Detak yang terpicu saat sesi sibuk dilewati dan dihitung, tidak pernah diantre — loop tidak dapat menumpuk giliran.
- Setiap detak adalah giliran prompt biasa: izin, pertanyaan, batas otonom, dan gerbang penyelesaian semuanya berlaku. Dengan otonom mati, detak hanya berhenti di prompt izin pertama.
- Batas keras 500 eksekusi per loop, lalu loop berhenti sendiri dengan pemberitahuan.
- Loop hanya hidup di proses backend: mereka tidak bertahan melewati mulai ulang. Untuk jadwal yang tahan lama, gunakan tugas terjadwal di bawah.
Memasangkan /goal dengan /loop
/goal memiliki tujuan (“semua tes hijau, tidak ada temuan tinjauan yang terbuka”);
/loop menyediakan detak yang terus memeriksa. Membuat tujuan terlebih dahulu
menjalankan penulis rencana khusus yang menyimpan kontrak yang dapat ditinjau di bawah
.ax-code/goals/ (atau direktori data AX ketika proyek bukan
worktree git). Jika perencanaan gagal, tujuan tetap dijeda — /goal resume mencoba
ulang. Pemeriksaan rentang Git yang mengukur diff tujuan ini memakai HEAD saat rencana
({BASELINE}), bukan origin/main, kecuali tujuan menyebut remote itu.
Penyelesaian tujuan tetap digerbangi verifikasi: agen tidak dapat menandai tujuan
selesai setelah suntingan tanpa eksekusi verifikasi yang lulus, dan ketika rencana
ada ia juga harus menyediakan bukti untuk setiap kriteria penerimaan.
/goal keep main green: fix any CI failure the loop finds
/loop 10m check CI status and act on failures
Jaminan tujuan bersifat ikut serta
/goal <objective> mulai segera: ia tidak melampirkan kontrak penerimaan yang dibekukan,
jadi penyelesaian dinilai dari rencana kerja yang dijaga agen (todo yang tertunda) plus
verifikasi yang lulus setelah perubahan terakhirnya. /goal view (dan “Lihat rincian tujuan”
pada dialog tujuan) menyatakannya secara eksplisit — “Tidak ada kontrak jaminan” — jadi keadaan
tidak pernah harus Anda simpulkan sendiri.
/goal --assure <objective> menjalankan penulis rencana terlebih dahulu, yang membekukan kriteria
penerimaan, rujukan sumber, dan pemeriksaan yang dapat dieksekusi; penyelesaian kemudian juga memerlukan
tanda terima berhasil yang mutakhir untuk setiap pemeriksaan wajib (verify_project dengan
id goalCheck). Pakai ini ketika “selesai” suatu tujuan harus dapat dibuktikan, bukan
hanya diuraikan.
--assure digabung dengan bendera anggaran dalam urutan mana pun
(/goal --assure --budget 500000 <objective>). /goal replace <objective> mempertahankan
jaminan ketika tujuan yang diganti memiliki kontrak yang valid, jadi penggantian tidak
pernah diam-diam melemahkan tujuan yang sudah dijamin.
Anggaran dan langit-langit tujuan
Tujuan yang aktif menaikkan batas kelanjutan otomatis per eksekusi (session.max_continuations)
— eksekusi terus berjalan sampai tujuan selesai, terblokir, dijeda, atau
terbatas anggaran. Yang membatasinya sebagai gantinya:
- Anggaran token (
/goal --budget N …): ketika habis, agen mendapat satu giliran penutup, lalu tujuan menjadibudget_limited. - Anggaran waktu (
/goal --time-budget 30m …): batas waktu dinding dalam detik, menit (m), atau jam (h), dapat digabung dengan anggaran token dalam urutan mana pun. Ia membatasi kerja yang berlalu yang tidak terlihat anggaran token — pekerjaan pelatihan jarak jauh, panggilan alat yang panjang, kemacetan penyedia. Giliran penutup yang sama dan transisibudget_limitedberlaku ketika batas itu terpicu. - Langit-langit langkah kumulatif: eksekusi tujuan aktif berbagi penahan Super-Long
sebesar
max_steps × 40langkah total (20,000 secara bawaan) alih-alih langit-langit otonom biasa sebesarmax_steps × (max_continuations + 1). Timpa dengansession.max_total_steps. - Deteksi doom-loop, batas radius dampak, dan pemutus giliran hanya-alat tetap berlaku sepanjang waktu.
CLI tujuan (tanpa antarmuka)
Kendali tujuan yang sama tersedia di luar TUI di bawah ax-code goal:
ax-code goal status [--json]— tampilkan tujuan saat ini (-s/--sessionuntuk memilih sesi; bawaan ke satu tujuan proyek yang dapat dilanjutkan dan kesalahan ketika pilihan akan ambigu).ax-code goal pause/ax-code goal clear— jeda atau bersihkan.ax-code goal resume— lanjutkan tujuan dan jalankan tanpa antarmuka sampai menetap. Tanpa--attachia memulai proyek di dalam proses; dengan--attach http://localhost:4111ia mengendalikan server yang sedang berjalan. Kode keluar mengikuti kontrak tujuan tanpa antarmuka:0selesai,3terblokir,4terbatas anggaran,6dijeda atau belum terminal,1kesalahan sesi,124batas waktu menganggur (--idle-timeout-ms, bawaan 10 menit). Peristiwa mengalir ke stdout sebagai JSONL (--event-log PATHjuga merekamnya), dan baris akhirGoal <status>: <objective>pergi ke stderr.
Saat eksekusi tujuan mendekati langit-langit langkah, agen menerima peringatan
konvergensi satu kali yang menyuruhnya memverifikasi dan menyelesaikan tujuan atau meninggalkan
serah terima yang bersih. Jika langit-langit tetap tercapai, tujuan dijeda — bukan
gagal — dan dapat dilanjutkan lagi dengan /goal resume (naikkan
session.max_total_steps terlebih dahulu jika perlu ruang lebih).
Tugas terjadwal — tahan lama, percakapan
Minta agen secara langsung; ia memakai alat schedule_task, list_scheduled_tasks,
dan manage_scheduled_task:
- “Ingatkan saya pukul 14:30 untuk memeriksa penerapan.”
- “Setiap hari kerja pukul 9 pagi, ringkas kegagalan CI yang baru.”
- “Daftar tugas terjadwal saya.” / “Jeda tugas ringkasan CI.”
Perubahan jadwal yang dibuat dan dikelola agen meminta izin schedule.
Eksekusi hanya-baca tidak dapat mengubah atau memicu jadwal. Untuk pembuatan tanpa pengawasan
tanpa antarmuka, gunakan perintah eksplisit ax-code schedule atau konfigurasikan
pemberian izin schedule yang eksplisit untuk agen; pemberian wildcard yang luas tidak
mengotorisasi perubahan jadwal.
Tugas yang sama dapat dikelola dari shell tanpa membuka TUI:
ax-code schedule list # status, next run, schedule, id, title
ax-code schedule show <id> # details plus the five most recent runs
ax-code schedule runs <id> # run history: fired, failed, skipped and why
ax-code schedule pause|resume <id>
ax-code schedule delete <id>
ax-code schedule run <id> # trigger now; requires a live runtime
pause/resume/delete melewati runtime terkelola proyek ketika ada yang
berjalan (efek segera, pembaruan TUI langsung) dan jika tidak menulis basis data
proyek secara langsung. run memerlukan backend yang hidup — mulai dengan
ax-code runtime start — karena proses CLI sekali jalan tidak boleh mengklaim kerja yang
tidak dapat diselesaikannya. Semua subperintah baca menerima --json.
Jadwal mendukung eksekusi sekali, waktu harian atau mingguan, dan ekspresi cron
5 bidang, masing-masing dengan zona waktu IANA opsional. Tugas bertahan di basis data
proyek dan terpicu selama backend AX Code untuk proyek itu
berjalan (sapuan penjadwal 60 detik, klaim atomik — tugas terpicu sekali bahkan jika
beberapa backend terbuka). Kemajuan jadwal dan penyisipan antrean yang tahan lama berbagi
satu transaksi basis data, jadi mogok tidak dapat memajukan kejadian tanpa
meninggalkan kerja untuk dipulihkan.
Perintah sekali jalan seperti ax-code run dan ax-code stats tidak mengklaim tugas
yang jatuh tempo. Mulai backend yang menetap dengan ax-code runtime start untuk mengirim
mereka.
Kejadian yang terlewat secara bawaan memakai catchUpPolicy: "run_once": setelah waktu henti,
AX Code menggabungkan tumpukan apa pun menjadi satu eksekusi. Gunakan "skip" ketika kerja yang basi harus
dimajukan tanpa dijalankan. Tugas juga dapat mengatur maxRunDurationMs dari satu
detik sampai 72 jam; eksekusi yang habis waktu dibatalkan dan dicatat sebagai gagal.
Untuk operasi yang melewati mulai ulang proses dan host, jalankan backend di bawah pengawas. Lihat Operasi berjalan lama untuk contoh systemd, launchd, dan PM2 plus semantik pemulihan yang persis.
Eksekusi panjang tanpa pengawasan
Untuk sesi otonom berjam-jam, mode Super-Long menambah tenggat eksekusi (sampai
72 jam), pengaturan laju permintaan, dan penyetelan pemadatan. Ia aktif otomatis untuk model
yang kapabilitas terdeklarasinya mendukung kerja agen panjang (model penalaran konteks 1M
seperti Qwen 3.7+ Max/Plus pada rute Alibaba dan GLM 5.x pada rute z.ai)
dan dapat dipaksa per sesi, per proyek, atau lewat
AX_CODE_SUPER_LONG. Keterlibatan eksekusi dicatat (super-long run engaged),
dan pengaturan laju penyedia hanya mulai setelah jendela tenggang dari awal eksekusi
(bawaan 2 jam, super_long.pacing_grace_minutes) agar fase awal
yang produktif dari eksekusi agentik mempertahankan throughput panggilan alat penuh; ekor
maraton diatur lajunya sesuai tingkat batas laju yang dideklarasikan model.