Halaman ini diterjemahkan dari dokumentasi bahasa Inggris. Perintah, pengenal, dan contoh tidak diubah. Runtime 7.24.4 · SDK 2.6.7. Sumber bahasa Inggris
Mengoperasikan AX Code untuk kerja berjalan lama
Status: Aktif Cakupan: keadaan saat ini Terakhir ditinjau: 2026-09-13 Pemilik: pengelola AX Code
AX Code membatasi satu eksekusi Super-Long interaktif pada 72 jam. Untuk operasi selama
berhari-hari atau berminggu-minggu, jalankan proses ax-code serve yang diawasi dan bagi kerja
menjadi kejadian terjadwal yang tahan lama. Pengawas memulai ulang server; basis data
proyek mempertahankan jadwal dan keadaan antrean.
Workspace interaktif yang menetap
Untuk kerja lokal yang harus berlanjut setelah terminal ditutup, ikut serta pada runtime proyek:
ax-code runtime start --dir /absolute/path/project
ax-code runtime attach --dir /absolute/path/project --continue
ax-code runtime status --dir /absolute/path/project
ax-code runtime list # every managed runtime on this machine
ax-code runtime stop --dir /absolute/path/project
runtime attach juga memulai runtime ketika belum ada. Runtime dikunci
oleh direktori proyek kanonik; mulai bersamaan memakai ulang satu proses.
TUI menampilkan host eksekusinya dan tindakan Putuskan. Memutuskan
menutup klien dan mempertahankan kerja yang sudah diterima tetap berjalan. runtime stop mematikan
runtime proyek itu dan menyela kerja aktifnya. ax-code biasa
mempertahankan siklus hidup latar depan yang sudah ada.
Tindak lanjut yang diterima dan dikirim saat sesi sibuk disimpan di server.
Secara bawaan mereka mulai setelah giliran yang berjalan selesai, jadi permintaan yang tidak terkait
tidak pernah menggagalkan kerja yang sedang berlangsung. Untuk mengoreksi giliran yang berjalan, tekan
ctrl+s (input_submit_steer di keybinds) dengan draf hanya teks: teks
diterima ke generasi yang aktif dan ditulis sebagai pesan pengguna pada
batas langkah berikutnya dari loop, setelah panggilan alat yang sedang berjalan selesai dan sebelum
permintaan model berikutnya. Koreksi yang diterima saat giliran hampir selesai memperpanjang
eksekusi satu iterasi alih-alih dibuang. Pengarahan bersifat upaya terbaik: jika
tidak ada generasi yang masih aktif, draf dikirim lewat jalur biasa;
jika hook menolaknya, draf tetap di komposer beserta alasannya. Draf
dengan lampiran dan perintah garis miring selalu memakai antrean tindak lanjut. Pengiriman yang sama
tersedia bagi klien lain melalui API pengarahan yang dijelaskan di
kendali harness.
Tindak lanjut tersimpan juga dapat diarahkan setelahnya: menekan ctrl+s dengan
komposer kosong mempromosikan awalan antrean yang dapat diarahkan secara berurutan dan berhenti
pada baris pertama yang tidak dapat diarahkan, dan bagian Tindak lanjut di bilah sisi serta dialog
/queue menawarkan tindakan arahkan-sekarang per baris yang sama. Baris yang dijeda dapat
diarahkan di tempat — menyela giliran menjeda tindak lanjut yang menunggu, dan
mengarahkan salah satunya mengirim teksnya tanpa melanjutkan sisa antrean. Hanya
baris bukan tindak lanjut (perintah garis miring antrean, perintah shell), baris dengan
lampiran, teks kosong atau terlalu besar, serta baris yang sudah berjalan atau selesai yang menjadi
penghalang. Baris yang diarahkan dibatalkan dengan jejak audit steeredInto dan tetap
terlihat di riwayat /queue. Ketika tidak ada generasi yang aktif, arahkan-sekarang kembali
ke memprioritaskan baris ke depan antrean — ia tetap mulai hanya
setelah giliran berakhir.
Komposer hanya bersih setelah pengakuan. Sambungkan kembali ke sesi yang sama
dan gunakan /queue untuk memeriksa, menjeda, menyunting, melanjutkan, atau membatalkannya. Menyunting terlebih dahulu
menjeda item dan mempertahankan lampiran serta pemilihan model; menyimpan tidak
melanjutkannya. Suntingan basi yang bersamaan ditolak. Di /queue, Ctrl+R mencakup
riwayat yang selesai dan dibatalkan. Terminal sempit juga menampilkan judul
Follow-ups yang dapat diklik. Tampilan yang terputus di-cache dan tidak dapat mengubah item.
Menyela giliran aktif menjeda tindak lanjut yang tertunda agar mereka tidak segera
memulai giliran lain. Lanjutkan secara eksplisit ketika siap.
Setelah backend mulai ulang, tindak lanjut menunggu yang sudah diterima dapat dilanjutkan. Prompt biasa yang sedang berjalan dan terputus oleh mulai ulang itu ditandai gagal dan memerlukan pemeriksaan sebelum dicoba ulang; memulihkan catatan antrean tidak memulihkan proses shell yang sedang dieksekusi. Pengakuan yang hilang dapat dicoba ulang dari komposer yang tidak berubah dengan identitas permintaan yang sama selama sesi klien itu. Draf yang belum disimpan bukan pekerjaan yang diterima, dan ini tidak menjamin efek eksternal tepat sekali.
Mode ini tidak memasang layanan login, tidak otomatis memulai ulang server yang mogok, atau mengeksekusi saat host tidur atau mati. Mulai atau sambungkan lagi setelah mogok; gunakan contoh layanan yang diawasi di bawah untuk mulai ulang server tanpa pengawasan. Pengguna SSH sebaiknya menjalankan runtime pada host jarak jauh yang terjaga dan menyambung di sana. Jangan mengekspos port HTTP secara publik.
Penemuan runtime menyimpan kapabilitas privat dan log di bawah folder runtime/
direktori keadaan AX Code. Keluaran status menghilangkan kapabilitas. Penghentian
memerlukan identitas runtime yang cocok dan terautentikasi, bukan hanya PID tersimpan.
Proses hidup yang tidak tersedia, catatan rusak, atau ketidakcocokan versi memerlukan
pemeriksaan; CLI menolak membunuh proses yang tidak terverifikasi. Hentikan runtime
yang sehat sebelum meningkatkan dan mulai ulang dengan berkas yang dapat dieksekusi yang baru.
Model keandalan
| Peristiwa | Perilaku |
|---|---|
| Backend keluar sebelum kejadian jatuh tempo dikomit | Kejadian tetap jatuh tempo |
| Backend keluar setelah transaksi jadwal-ke-antrean dikomit | Item antrean yang sama dilanjutkan saat bootstrap |
| Backend keluar setelah prompt mulai | Item yang terputus ditandai gagal, bukan diputar ulang secara otomatis |
| Host melewatkan beberapa kejadian | run_once menggabungkannya menjadi satu eksekusi; skip maju tanpa menjalankan |
| Eksekusi antrean melebihi tenggatnya | Eksekutor membatalkan sesi dan mencatat item antrean yang gagal |
| Pengawas melihat server keluar | Contoh di bawah memulai ulangnya setelah penundaan singkat |
Ini pemulihan yang aman dari duplikat, bukan pengiriman tepat sekali untuk efek eksternal sembarang. Integrasi yang menulis ke sistem eksternal tetap harus memakai kunci idempotensi mereka sendiri.
Sebelum memasang layanan
- Pasang dan uji berkas yang dapat dieksekusi
ax-codesebagai pengguna yang sama yang akan menjalankan layanan. - Pilih satu jalur proyek absolut. Atur sebagai
AX_CODE_PROJECTagar server saat mulai memanaskan proyek itu dan memulai penjadwalnya. - Pertahankan server pada
127.0.0.1; server AX Code hanya lokal. - Letakkan kredensial penyedia di lingkungan terlindungi pengawas, bukan di berkas layanan yang dikomit.
- Ganti setiap penampung
/absolute/path/...pada contoh yang dipilih.
Contoh memakai port tetap agar klien Desktop atau SDK dapat menyambung kembali:
ax-code serve --hostname=127.0.0.1 --port=4096
Layanan pengguna systemd
Salin contoh systemd ke
~/.config/systemd/user/ax-code.service, ganti jalur absolutnya, dan
opsional letakkan kredensial di ~/.config/ax-code/server.env.
chmod 600 ~/.config/ax-code/server.env
systemctl --user daemon-reload
systemctl --user enable --now ax-code.service
systemctl --user status ax-code.service
journalctl --user -u ax-code.service -f
Gunakan loginctl enable-linger "$USER" hanya jika kebijakan operasi Anda mengizinkan
layanan pengguna berjalan saat pengguna keluar.
Agen launchd
Salin contoh launchd ke
~/Library/LaunchAgents/com.axcode.server.plist, ganti jalur absolutnya,
lalu validasi dan muat:
plutil -lint ~/Library/LaunchAgents/com.axcode.server.plist
launchctl bootstrap "gui/$(id -u)" ~/Library/LaunchAgents/com.axcode.server.plist
launchctl kickstart -k "gui/$(id -u)/com.axcode.server"
launchd tidak memperluas variabel shell di ProgramArguments. Gunakan jalur
absolut dan sediakan kredensial yang diperlukan melalui mekanisme yang dikelola operator.
Pengawas PM2
Salin contoh PM2, ganti jalurnya, dan mulai:
pm2 start docs/examples/ax-code-ecosystem.config.cjs
pm2 save
pm2 logs ax-code-server
Ikuti instruksi mulai khusus platform PM2 jika proses harus kembali setelah host di-boot ulang.
Tenggat, pengejaran, dan pemulihan
Tugas terjadwal secara bawaan memakai catchUpPolicy: "run_once". Setelah waktu henti, AX Code
menjalankan satu kejadian yang digabung alih-alih membuat tumpukan yang tidak terbatas.
Pilih "skip" ketika kerja yang terlambat akan menyesatkan atau tidak aman.
Setiap tugas terjadwal dapat mengatur maxRunDurationMs dari 1 detik sampai 72 jam.
Eksekusi antrean tugas selain itu memakai langit-langit 72 jam. Item aktif memperbarui
stempel waktu detak setiap 30 detik, dan status terminal serta rincian kesalahan
tetap di basis data proyek.
Titik akhir prompt, perintah, dan shell asinkron mengembalikan item antrean yang tahan lama dalam
respons HTTP 202. Klien sebaiknya menyimpan id dan melakukan polling
GET /task-queue/:id sampai completed, failed, atau cancelled; penerimaan
saja bukan penyelesaian.
Saat mulai, backend AX Code yang menetap melanjutkan item antrean terjadwal dan item asinkron yang ditandai secara eksplisit yang sudah dikomit tetapi belum mulai. Perintah CLI sekali jalan tidak mengambil kepemilikan item itu. Kerja prompt yang sudah mulai digagalkan dengan penjelasan mulai ulang agar operator dapat memeriksa efek samping sebelum mencoba ulang.
Melihat apa yang dilakukan tugas terjadwal
Setiap kejadian tugas terjadwal terlihat saat terjadi dan dapat diaudit sesudahnya:
- Memulai, menyelesaikan, gagal, melewatkan, dan jeda otomatis karena kegagalan menetap masing-masing menaikkan notifikasi di aplikasi yang menamai tugas.
- Perintah TUI
/schedulemencantumkan setiap tugas dengan status, jadwal, waktu eksekusi berikutnya, dan kesalahan terakhir, serta membuka riwayat eksekusi terbaru. Dari sana Anda dapat menjeda, melanjutkan, jalankan sekarang, menghapus (tekanctrl+ddua kali untuk mengonfirmasi), dan melompat ke sesi yang dihasilkan suatu eksekusi. Alat agenlist_scheduled_tasksdanlist_scheduled_task_runsmenjawab pertanyaan yang sama secara percakapan. - Setiap eksekusi berjalan di sesi baru yang berjudul sesuai judul tugas, jadi hasil tinggal satu entri daftar sesi meskipun notifikasi terlewat.
- Jika eksekusi meminta izin atau jawaban pertanyaan saat Anda melihat
percakapan lain, pemberitahuan peringatan menamai sesi yang membutuhkan Anda;
/attentionmencantumkan permintaan tertunda yang diketahui dan membuka sesi peminta. Permintaan dapat dijawab di sesi itu atau tampilan leluhur yang dimuat, termasuk sesi anak dan cucu. Membuka permintaan tidak pernah menyetujuinya secara otomatis. - Tugas sekali jalan hanya dinonaktifkan setelah eksekusi berhasil. Kejadian yang gagal mencoba ulang dengan penundaan yang dibatasi, dan kegagalan berulang menjeda tugas dengan notifikasi — pengingat tidak lagi dapat hilang diam-diam.
Pemeriksaan operasional
- Amati jumlah mulai ulang pengawas dan log server.
- Periksa item antrean tugas yang gagal dan kesalahan tugas terjadwal sebelum mencoba ulang.
- Konfirmasi ruang disk yang cukup untuk basis data SQLite proyek dan log.
- Lakukan jalankan sekarang manual setelah mengubah kredensial, model, atau jalur layanan.
- Hentikan melalui pengawas agar AX Code menerima
SIGTERM; contoh mengizinkan hingga 90 detik untuk penghentian yang anggun.
/loop sengaja bersifat lokal proses dan tidak bertahan melewati mulai ulang. Gunakan
tugas terjadwal untuk kerja tanpa pengawasan yang tahan lama.
Menavigasi sesi paralel
Pada 146 kolom terminal atau lebih lebar, bilah sisi navigasi kiri menampilkan sesi di
workspace saat ini dan agen anak yang dimuat. Perluas baris dengan kendali
+ dan klik judul untuk membukanya. Sesi yang disematkan mempertahankan urutan dan
nomor pintasan. Label aktivitas penuh membedakan bekerja, mencoba ulang, persetujuan,
dan pertanyaan; induk juga mencerminkan permintaan dari keturunan. Label ini tidak
berarti tugas lulus verifikasi. Bilah sisi kanan yang ada mempertahankan konteks dan kendali
sesi saat ini.
Judul Proyek mengidentifikasi direktori saat ini. Klik atau gunakan
/navigation-info untuk melihat jalur proyek penuh dan judul sesi saat ini.
Terkini menampilkan sesi yang dimuat; Aktif mempertahankan pohon sesi yang bekerja atau menunggu
dan pohon sesi saat ini. Filter dipakai bersama pemilih navigasi
dan diingat. Gunakan /navigation-filter untuk mengalihkannya dari papan ketik. Selama
pemutusan, ia menampilkan sesi ter-cache alih-alih menyimpulkan sesi mana
yang aktif. Bersihkan (atau /navigation-clear) meminta konfirmasi, lalu menyembunyikan
baris historis hanya dari rel kiri dan pemilih navigasi. Ia tidak
menghapus sesi; /sessions tetap mencantumkannya. Pohon sesi saat ini, sesi tersemat, dan pohon
yang diamati bekerja atau menunggu tetap di rel. Membuka sesi dari /sessions
membawanya kembali ke daftar.
Gunakan /navigation-width atau tindakan Lebar navigasi untuk memilih 20, 24, 28, 30, 32, 36, atau 40
kolom (bawaan 28). Bilah sisi sesi kanan punya tindakan Lebar yang sama dan
/sidebar-width (bawaan 32). Kedua preferensi diingat dan menyusut otomatis bila perlu
untuk mempertahankan konten utama. Gunakan /navigation untuk menyembunyikan atau memulihkan rel
navigasi kiri pada terminal lebar. /sidebar menyembunyikan atau memulihkan bilah sisi
sesi kanan dengan cara yang sama. Pada terminal yang lebih sempit /navigation membuka pemilih sesi dan agen
sebagai gantinya. Bilah Sesi yang terlihat menyediakan tindakan yang sama setiap kali
rel navigasi tidak ada. Tindakannya Tertunda muncul ketika permintaan yang diketahui perlu masukan;
tanda bintang menandai jumlah ter-cache selama pemutusan. /sessions
tetap membuka pemilih sesi biasa. /attention tersedia pada setiap
lebar. Selama pemutusan, daftarnya diberi label sebagai ter-cache; membuka entri ter-cache
tetap mungkin, tetapi permintaan mungkin sudah dijawab di tempat lain.
Tindakan Permintaan yang diketahui pada bilah sisi membuka permintaan tertunda di seluruh workspace
yang diketahui, sementara pohon sesinya tetap terbatas pada proyek saat ini.
Semua tampilan ini dibatasi oleh instans yang terhubung dan data sesi yang dimuat;
jumlah ini bukan inventaris lengkap server lain atau workspace yang belum dimuat.
Draf yang belum terkirim diisolasi menurut proyek dan sesi di dalam TUI yang berjalan. Berganti sesi mempertahankan teks, lampiran, posisi kursor, dan mode shell; kembali memulihkan draf yang cocok. Draf ini hanya di memori dan tidak bertahan saat TUI ditutup.
Notifikasi penyelesaian opsional kini mengatakan Session idle. Ia mengikuti
kerja yang diamati di subpohon sesi yang dilihat dan menunggu keturunan aktif yang diamati
menjadi menganggur secara eksplisit, tanpa permintaan tertunda. Pemutusan,
sinkronisasi ulang, keadaan yang hilang, kesalahan, dan pembatalan dapat menekan pemberitahuan. Ini
notifikasi siklus hidup, bukan bukti bahwa tes lulus atau tujuan selesai.
Tugas baru dan penyiapan
Mulai biasa membuka permukaan kerja Tugas baru dengan komposer di bawah dan
navigasi sesi. Membukanya atau mengetik draf tidak membuat sesi
tersimpan; sesi dibuat ketika Anda mengirim. Gunakan /sessions atau navigasi
kiri untuk melanjutkan kerja yang ada. Perilaku eksplisit --session, --continue, dan
--prompt tetap tersedia; mulai tidak mengaktifkan lanjut-otomatis.
Penyiapan penyedia tidak terbuka secara otomatis. Gunakan tindakan /connect yang terlihat
di area kerja ketika tidak ada penyedia yang dikonfigurasi. Dengan penyedia terkonfigurasi
tetapi tidak ada model valid yang dipilih,
tindakan berubah menjadi /models. Penemuan penyedia yang gagal menunjuk ke /status;
/connect dan /providers tetap tersedia untuk memperbaiki konfigurasi. Model yang dipilih
adalah pilihan konfigurasi, bukan pemeriksaan kredensial atau kesiapan runtime.
Petunjuk juga muncul bagi pengguna yang kembali yang konfigurasinya perlu perhatian.