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 otonom
Status: Aktif Cakupan: kondisi terkini Terakhir ditinjau: 2026-08-25 Pemilik: runtime ax-code
Mode otonom memungkinkan ax-code menyelesaikan tugas tanpa menunggu konfirmasi manusia pada setiap langkah berisiko rendah. Saat diaktifkan, prompt izin disetujui otomatis kecuali diblokir secara eksplisit, dan dialog pertanyaan dijawab otomatis dengan heuristik praktik terbaik yang mengutamakan pilihan yang direkomendasikan, bawaan, umum, sederhana, dan minimal sambil menghindari opsi yang berisiko atau terlalu direkayasa.
Secara bawaan, mode otonom nyala. Jika Anda sebelumnya mematikannya, preferensi itu disimpan dan dipulihkan pada peluncuran berikutnya.
Mulai cepat
Alihkan dari TUI:
- Ketik
/autonomousdi prompt, atau - Tekan
Ctrl+Pdan cari “autonomous”, atau - Klik indikator otonom nyala/mati di bilah status
Bilah status menampilkan keadaan saat ini:
- otonom nyala (latar kuning, teks merah tebal) — agen berjalan tanpa berhenti
- otonom mati (teks hijau) — agen berhenti untuk prompt izin/pertanyaan
Pengaturan bertahan lintas sesi di ax-code.json.
Yang berubah
| Perilaku | Otonom mati | Otonom nyala |
|---|---|---|
| Izin alat (baca, sunting, bash, dan sebagainya) | Meminta persetujuan pengguna | Hibrida: yang aman (baca/grep/daftar/…) disetujui otomatis; yang berisiko (sunting/bash/webfetch/…) jatuh ke ruleset sehingga aturan tolak tetap berlaku |
| Dialog pertanyaan | Menunggu pengguna memilih opsi | Memilih opsi praktik terbaik/bawaan dan mencatatnya |
| Perencanaan | Mengikuti prompt agen biasa | Memakai bingkai keputusan ringan bergaya PRD/ADR sebelum implementasi |
| Putaran sesi saat penolakan | Berhenti dan menunggu | Terus berjalan |
Prompt isolation_escalation |
Selalu bertanya | Selalu bertanya (tidak pernah disetujui otomatis) |
Cara kerjanya
Mode otonom beroperasi pada tiga lapisan:
Sumber kebenaran
Halaman ini merangkum perilaku yang menghadap pengguna. Bila perilaku berubah, verifikasi dokumen terhadap:
packages/ax-code/src/session/processor.tsuntuk persetujuan otomatis izin, perilaku putaran, penanganan penolakan, dan batas otonom.packages/ax-code/src/session/system.tsdan berkas prompt penyedia di bawahpackages/ax-code/src/session/prompt/untuk instruksi alur kerja otonom.packages/ax-code/src/question/danpackages/ax-code/test/question/question.test.tsuntuk heuristik jawaban otomatis pertanyaan dan perilaku eskalasi.packages/ax-code/src/session/blast-radius.tsuntuk batas langkah/perubahan berkas otonom.packages/ax-code/test/session/system.test.ts,packages/ax-code/test/session/prompt.test.ts, dan uji sesi terkait untuk perilaku prompt dan buku keputusan.
Jaga jaminan keamanan di sini selaras dengan dokumentasi sandbox; mode otonom mengubah perilaku persetujuan, bukan penegakan isolasi.
1. Persetujuan otomatis izin (sisi server)
Mode otonom memakai kebijakan hibrida tolak-dahulu (ADR-004 / PRD v4.2.0). Saat alat memanggil ctx.ask() untuk izin, modul Izin mengklasifikasikan izin:
- Izin SAFE (read, glob, grep, list, lsp, code_intelligence, skill, todoread) disetujui otomatis tanpa membuat prompt pemblokir.
- Izin RISK (edit, bash, external_directory, task, webfetch, websearch, codesearch, …) jatuh ke ruleset — aturan izinkan/tolak yang dikonfigurasi agen tetap berlaku, dan aturan tolak yang ditentukan pengguna selalu ditegakkan. Dalam mode sandbox
full-access, izin RISK disetujui otomatis setelah aturan tolak dievaluasi. - Izin tidak dikenal bertanya secara bawaan (
experimental.autonomous_strict_permission: falsemempertahankan perilaku izinkan lama).
Izin yang selalu sampai pada keputusan per panggilan alih-alih persetujuan berbasis aturan yang segera: isolation_escalation (permintaan penimpaan sandbox), izin INTERACTIVE_ONLY, dan himpunan NEVER_AUTONOMOUS_AUTOAPPROVE. Satu penyempitan (ADR-098): dalam mode sandbox full-access, permintaan external_directory yang ditandai hanya-interaktif — perintah bash yang jalurnya tidak dapat diverifikasi secara statis karena memakai glob, variabel, atau ekspansi kurung — juga disetujui otomatis, karena sandbox akses penuh tidak lagi memiliki batas sistem berkas untuk dijaga. Aturan tolak eksplisit tetap berlaku, dan mode sandbox-nyala (workspace-write, read-only) mempertahankan prompt per panggilan.
“Izinkan sekali” saat menganggur (nyala secara bawaan): Otomatis nyala plus Sandbox mati (full-access) berarti interaksi minimal: setiap izin tertunda dapat membalas otomatis sekali setelah 15 detik, termasuk requireInteractive, prompt hook, dan eskalasi sandbox. Otomatis mati atau Sandbox nyala membutuhkan jawaban manusia untuk prompt tertunda. WebMCP juga membutuhkan jembatan yang sesuai agar tersambung; jembatan tersambung yang lain tidak memenuhi syarat. Aturan tolak eksplisit tetap berlaku. experimental.permission_idle_once.enabled: false menonaktifkan hitungan mundur, dan permissions dapat membatasi cakupannya. Pengaturan lama timeout_ms diterima untuk kompatibilitas tetapi tidak lagi mengubah durasi tetap 15 detik.
Server memiliki hitungan mundur. Permintaan tertua setiap sesi menerima batas waktu; permintaan antrean menerima 15 detik baru saat sampai di depan. Balasan manusia membatalkan pewaktu. Mematikan Otomatis, menyalakan Sandbox, atau memutus jembatan WebMCP yang relevan membatalkan hitungan mundur tertunda. Memulihkan kelayakan memulai hitungan mundur baru. Celah muat ulang konfigurasi sementara menangguhkan hitungan mundur. Balasan otomatis memeriksa ulang mode, jembatan, dan aturan tolak saat ini dan tidak pernah menyimpan persetujuan menetap. Penimpaan debug/uji internal AX_CODE_PERMISSION_IDLE_ONCE_MS tetap tersedia dan dibatasi pada maksimum pewaktu Node.
Mode dicakup ke direktori aktif. ax-code.json bersarang dapat menimpa pengaturan akar repositori; pakai sakelar Sandbox sesi aktif untuk mengubah mode efektifnya.
Jalur terlindungi yang tidak dapat ditimpa: mode otonom juga menolak menulis himpunan tetap jalur kebijakan/bidang kendali — ax-code.json/ax-code.jsonc, .ax-code/**, .git/config, dan .git/refs/** — agar agen tidak dapat menyunting konfigurasinya sendiri, menaikkan batas otonominya sendiri, atau menanam hook git. Tidak seperti daftar jalur diblokir yang dapat dikonfigurasi, ini tidak dapat dihapus oleh konfigurasi proyek atau pengguna.
2. Jawaban otomatis pertanyaan (sisi server)
Saat alat bertanya kepada pengguna, modul Pertanyaan memilih jawaban segera. Ia mengutamakan opsi yang ditandai direkomendasikan, bawaan, aman, standar, umum, konvensional, praktik terbaik, sederhana, atau minimal. Ia menghindari opsi yang ditandai eksperimental, berisiko, berbahaya, merusak, lanjut, kompleks, tulis ulang, atau terlalu direkayasa. Jika tidak ada opsi yang punya sinyal, ia memilih opsi pertama karena alat pertanyaan menginstruksikan agen menaruh opsi yang direkomendasikan di depan.
3. Putaran prosesor (tingkat sesi)
Jika izin entah bagaimana ditolak (misalnya oleh aturan tolak eksplisit), putaran prosesor tidak berhenti — ia lanjut ke langkah berikutnya alih-alih menghentikan sesi.
4. Bingkai keputusan bergaya PRD/ADR
Mode otonom menambahkan pengingat alur kerja ringan ke prompt sistem. Sebelum implementasi, agen harus membingkai pekerjaan dengan masalah, batasan, keputusan, pertukaran, rencana, dan validasi. Untuk perubahan multi-berkas, arsitektural, atau yang terlihat produk yang substansial, ia dapat membuat atau memperbarui dokumen repositori bila itu sesuai pola dokumentasi repositori. Untuk perubahan sepele, ia harus menjaga bingkai ini tetap ringan dalam rencana agar tidak terlalu direkayasa.
Otonom + Sandbox
Mode otonom dan mode sandbox independen. Anda dapat memakai keduanya sekaligus:
| Kombinasi | Perilaku |
|---|---|
| Otonom NYALA + Sandbox NYALA | Agen berjalan bebas tetapi terbatas pada ruang kerja. Disarankan untuk repositori yang tidak tepercaya atau tim. |
| Otonom NYALA + Sandbox MATI | Agen berjalan bebas dengan akses sistem penuh. Pakai untuk proyek tepercaya. |
| Otonom MATI + Sandbox NYALA | Agen meminta izin pada setiap tindakan, terbatas pada ruang kerja. Kendali maksimum. |
| Otonom MATI + Sandbox MATI | Agen meminta izin pada setiap tindakan, akses sistem penuh. |
Postur runtime bawaan adalah otonom nyala plus sandbox mati: full-access dengan jaringan diaktifkan. Ini memberi perilaku CLI dengan gesekan paling kecil tetapi tanpa batas isolasi. Pakai /sandbox, --sandbox workspace-write, AX_CODE_ISOLATION_MODE, atau konfigurasi proyek untuk mengaktifkan pembatasan bagi pekerjaan yang tidak tepercaya atau tanpa pengawasan.
Konfigurasi
Berkas konfigurasi
Di ax-code.json:
{
"autonomous": true
}
Setel ke false untuk menonaktifkan:
{
"autonomous": false
}
Variabel lingkungan
AX_CODE_AUTONOMOUS=true ax-code # force autonomous on
AX_CODE_AUTONOMOUS=false ax-code # force autonomous off
Prioritas
Variabel lingkungan > berkas konfigurasi > bawaan (nyala)
Anggaran beban kerja (giliran model dan panggilan alat)
Mode otonom bukan berarti eksekusi tanpa batas. Beberapa batas independen berlaku. Bawaan di bawah adalah konstanta yang dikirim; naikkan atau turunkan di ax-code.json bila beban kerja membutuhkan ruang lebih.
Giliran model adalah satu permintaan model putaran luar. Panggilan alat adalah satu pemanggilan alat di dalam giliran model. Ini anggaran terpisah: satu giliran model dapat mengeluarkan beberapa panggilan alat. Nama konfigurasi lama yang berisi steps tetap didukung, tetapi mereka tidak membuat kedua satuan saling dapat ditukar.
Utamakan objek autonomy kelas pertama. Kunci lama session.* dan experimental.autonomous_caps.* tetap berfungsi sebagai alias (prioritas lebih rendah).
| Batas | Bawaan | Satuan | Konfigurasi yang diutamakan | Alias lama |
|---|---|---|---|---|
| Giliran model per segmen | 500 | Permintaan model per segmen kelanjutan | autonomy.budget.model_turns.per_segment |
session.max_steps |
| Kelanjutan otomatis | 3 | Segmen setelah langit-langit giliran model (otonom biasa) | autonomy.budget.continuations |
session.max_continuations (0 menonaktifkan) |
| Giliran model kumulatif | 2,000 biasa · 20,000 tujuan / Super-Long | Permintaan model yang dijumlahkan lintas kelanjutan | autonomy.budget.model_turns.total |
session.max_total_steps |
| Giliran model per agen | Tidak terbatas untuk agen bawaan | Permintaan model saat agen itu aktif | agent.<name>.steps (opsional) |
— |
| Coba ulang otomatis todo | 10 | Kelanjutan selama todo masih tertunda | autonomy.budget.todo_retries |
session.max_todo_retries |
| Panggilan alat radius ledak | 500 / segmen | Pemanggilan alat dalam mode otonom | autonomy.budget.tool_calls.per_segment |
experimental.autonomous_caps.steps |
| Berkas / baris radius ledak | 50 berkas · 5,000 baris | Jejak perubahan (bertahan lintas kelanjutan) | autonomy.budget.changes.files_total / .lines_total |
experimental.autonomous_caps.files / .lines |
| Jalur bebas baris | Lockfile + cuplikan yang dihasilkan (*.snap, *-snapshot.json) |
Glob yang dihitung ke batas berkas tetapi bukan batas baris | autonomy.budget.changes.lines_exempt_paths |
experimental.autonomous_caps.linesExemptPaths |
| Batas banjir per alat | misalnya bash 50, edit 100 | Panggilan per giliran model | autonomy.budget.tool_calls.per_tool |
experimental.autonomous_caps.perTool |
| Pemutus rentetan hanya-alat | Dorongan 15 · akhir ~30 · berhenti 35 | Penyelesaian model hanya-alat berturut-turut | autonomy.stall.tool_only_* |
— |
| Anggaran mutasi gagal | 30 / segmen | Percobaan alat pengubah yang error tanpa keberhasilan | autonomy.stall.failed_mutation_attempts |
— |
| Pembatas ledakan panggilan alat | 30 panggilan / 10s | Jendela bergulir per giliran prosesor | autonomy.budget.tool_calls.rate |
— |
| Anggaran kesalahan berturut-turut | 3 | Kesalahan penyedia/alat berurutan sebelum jalankan menyerah | autonomy.stall.max_consecutive_errors |
— |
Berkas biner (cp dari executable, curl -o dari zip, dan penulisan non-teks lain) tetap dihitung ke batas berkas, tetapi mereka membebankan nol baris. Batas baris mengukur perubahan tekstual. Penulisan teks shell mempertahankan perkiraan ceil(size / 80) agar muatan padat tidak dapat menghindari anggaran dengan sedikit baris baru.
Jalur tidak terlacak yang dilaporkan git check-ignore sebagai diabaikan juga membebankan nol baris dan tetap dihitung sebagai satu berkas. Itu mencakup pohon yang dihasilkan seperti target/ bila verifier mengalihkan keluarannya ke sana (cargo clippy > target/review/clippy.log). Pengecualian hanya berlaku bila git keluar 0. Repositori yang hilang, kegagalan git, dan berkas terlacak mempertahankan beban baris normal, termasuk berkas terlacak yang namanya cocok dengan pola abaikan.
Profil
Setel autonomy.profile untuk mengisi beberapa bidang sekaligus (bidang eksplisit tetap menang):
| Profil | Maksud |
|---|---|
standard |
Bawaan yang dikirim (500 / 3 kelanjutan / ledakan 30·10s / hanya-alat 35) |
quick |
Perbaikan pendek: 80 langkah/segmen, 1 kelanjutan, hanya-alat dan ledakan yang lebih ketat |
long |
Kelompok multi-berkas: 10 kelanjutan, total 10k, hanya-alat/ledakan yang lebih lebar |
goal |
Ruang skala tujuan tanpa membutuhkan /goal |
custom |
Tidak ada benih profil — hanya kunci eksplisit dan konstanta |
Periksa dengan /limits
Dalam sesi, jalankan /limits untuk mencetak tumpukan anggaran yang terselesaikan, penyebut TUI efektif untuk agen aktif, sumber konfigurasi, dan peringatan doctor (misalnya bila agent.steps lebih ketat daripada segmen sesi). Pakai /limits help untuk nama kunci.
Yang ditampilkan TUI: selama jalankan otonom, header melaporkan turn current/max · total current/max · cont current/max. turn adalah segmen kelanjutan saat ini dan memakai batas tempo efektif untuk agen aktif — min(agent.steps, session.max_steps) bila agen dibatasi, jika tidak batas per segmen. total bertahan terhadap kelanjutan otomatis. cont menampilkan ∞ bila tujuan aktif atau mode Super-Long mengangkat batas kelanjutan biasa.
Perutean otomatis: perutean kata kunci dapat mengalihkan sesi ke agen spesialis (Debug, Security, DevOps, …). Spesialis berbagi kebijakan giliran model agen yang tidak terbatas secara bawaan yang sama dengan Dev kecuali Anda menyetel agent.<name>.steps. Nonaktifkan perutean dengan "routing": { "disable": true } jika Anda hanya ingin agen Dev.
Jalankan panjang: pakai /goal atau Super-Long untuk pekerjaan multi-jam — mereka mengangkat batas kelanjutan biasa dan memakai langit-langit kumulatif yang lebih besar (bawaan 20,000), dengan semantik verifikasi / jeda yang didokumentasikan di Mode putaran. /goal mula-mula menulis kontrak yang dapat ditinjau (kriteria penerimaan + rencana verifikasi) dan gagal-tertutup ke jeda jika rencana itu tidak dapat dihasilkan.
Saat batas menghentikan jalankan
Sebelum jalankan biasa mencapai langit-langit giliran model kumulatifnya, AX Code menyuntikkan satu instruksi konvergensi yang dibatasi (paling banyak 50 giliran terakhir, diskalakan turun untuk anggaran kustom kecil). Ia menyuruh model berhenti menjelajah luas, menyelesaikan atau memarkir dengan aman pekerjaan yang sedang berjalan, menjalankan verifikasi tertarget, dan melaporkan pekerjaan yang belum selesai secara jujur. Ia tidak menambah anggaran atau melewati batas apa pun.
Saat anggaran terminal tercapai, session.error menyertakan code opsional yang dapat dibaca mesin, dan peristiwa pemutaran ulang session.end mencatat nilai yang sama sebagai stopCode. Alasan akhir kasar yang sudah ada tetap tidak berubah demi kompatibilitas. Kode batas saat ini adalah:
MODEL_TURN_SEGMENT_LIMITMODEL_TURN_TOTAL_LIMITAGENT_MODEL_TURN_LIMITAGGREGATE_TOOL_CALL_LIMITFILE_CHANGE_LIMITLINE_CHANGE_LIMIT
Pada langit-langit segmen, AX Code melanjutkan otomatis selama anggaran kelanjutan yang dikonfigurasi masih ada. Setelah anggaran itu habis, jalankan berhenti dan pesan menjelaskan apa yang terjadi. Mengirim prompt baru seperti continue memulai jalankan baru yang diarahkan pengguna dengan akuntansi jalankan baru; ia tidak memperpanjang jalankan yang berhenti secara retroaktif. Pakai /goal bila tujuan harus tetap eksplisit dan dapat dilanjutkan sampai selesai, terblokir, atau batas tujuan/runtime. /goal tidak menonaktifkan pengaman izin, isolasi, radius ledak, kemacetan, token, waktu, atau giliran model kumulatif.
Contoh: naikkan anggaran untuk kelompok otonom yang besar
{
"autonomous": true,
"autonomy": {
"profile": "long",
"budget": {
"model_turns": { "per_segment": 500, "total": 20000 },
"tool_calls": {
"per_segment": 1000,
"rate": { "count": 40, "window_seconds": 10 },
"per_tool": { "bash": 80, "edit": 150 }
},
"changes": { "files_total": 100, "lines_total": 10000 }
},
"stall": {
"tool_only_turns": 50,
"tool_only_nudge": 20,
"failed_mutation_attempts": 30,
"max_consecutive_errors": 3
}
},
"agent": {
"debug": { "steps": 200 }
}
}
Kapan mematikan otonom
- Belajar ax-code — lihat apa yang dilakukan agen pada setiap langkah
- Operasi sensitif — tinjau setiap perubahan berkas sebelum diterapkan
- Menelusuri perilaku agen — pahami mengapa agen membuat keputusan tertentu
- Kode yang tidak tepercaya — tinjau panggilan alat saat bekerja dengan repositori yang tidak dikenal
Kapan membiarkan otonom nyala
- Tugas rutin — refaktor, perbaikan bug, migrasi di mana Anda memercayai agen
- Alur CI/CD — eksekusi tanpa interaksi di mana tugas sudah dibatasi kebijakan
- Pemakaian SDK — eksekusi agen terprogram melalui
createAgent() - Tugas besar — perubahan multi-berkas di mana berhenti pada setiap izin akan memakan waktu berjam-jam
Pemakaian tanpa interaksi / CI
Dalam mode tanpa interaksi (ax-code run, ax-code serve, SDK), mode otonom penting — tidak ada TUI untuk menampilkan prompt. Persetujuan otomatis sisi server memastikan agen berjalan sampai selesai tanpa menggantung pada prompt yang tidak dijawab.
# Headless one-shot with autonomous on (default)
ax-code run "Fix all TypeScript errors in src/"
# Explicit override
AX_CODE_AUTONOMOUS=true ax-code run "Migrate API routes"
ax-code run mencetak keluaran alat yang ringkas secara bawaan: keluaran perintah dikurangi ke ekornya, suntingan menampilkan ringkasan diff, dan penulisan todo menampilkan hitungan kemajuan satu baris. Kesalahan tidak pernah disembunyikan — mereka dirender dengan batas ekor yang sama seperti keluaran lain. Teruskan --full untuk memulihkan keluaran alat lengkap (diff penuh, keluaran perintah yang tidak terpotong, daftar todo penuh) untuk audit.
Jaminan keamanan
Bahkan dengan mode otonom nyala:
- Sandbox tetap menegakkan batas — penulisan di luar ruang kerja diblokir terlepas dari mode otonom
- Eskalasi isolasi selalu bertanya — agen tidak dapat menimpa pembatasan sandbox secara diam-diam
- Aturan tolak ditegakkan — aturan izin
"deny"yang eksplisit tetap memblokir panggilan alat - Pilihan otonom tercatat — metadata alat pertanyaan mencakup buku
autonomousDecisionsterstruktur, dan keluaran alat mencakup jawaban yang dipilih agar agen dapat melaporkannya kemudian - Hindari rekayasa berlebih — kelanjutan otonom mengingatkan agen untuk mengutamakan perubahan praktik umum yang paling sederhana dan menghindari abstraksi tanpa 3+ kasus pakai konkret
- Cuplikan sesi tercatat — setiap panggilan alat dicatat untuk audit/pemutaran ulang
- Pengguguran selalu berfungsi — menekan Esc (interupsi) menghentikan agen segera