Dapatkan AX Code · GratisDokumentasi

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 /autonomous di prompt, atau
  • Tekan Ctrl+P dan 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.ts untuk persetujuan otomatis izin, perilaku putaran, penanganan penolakan, dan batas otonom.
  • packages/ax-code/src/session/system.ts dan berkas prompt penyedia di bawah packages/ax-code/src/session/prompt/ untuk instruksi alur kerja otonom.
  • packages/ax-code/src/question/ dan packages/ax-code/test/question/question.test.ts untuk heuristik jawaban otomatis pertanyaan dan perilaku eskalasi.
  • packages/ax-code/src/session/blast-radius.ts untuk 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: false mempertahankan 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_LIMIT
  • MODEL_TURN_TOTAL_LIMIT
  • AGENT_MODEL_TURN_LIMIT
  • AGGREGATE_TOOL_CALL_LIMIT
  • FILE_CHANGE_LIMIT
  • LINE_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:

  1. Sandbox tetap menegakkan batas — penulisan di luar ruang kerja diblokir terlepas dari mode otonom
  2. Eskalasi isolasi selalu bertanya — agen tidak dapat menimpa pembatasan sandbox secara diam-diam
  3. Aturan tolak ditegakkan — aturan izin "deny" yang eksplisit tetap memblokir panggilan alat
  4. Pilihan otonom tercatat — metadata alat pertanyaan mencakup buku autonomousDecisions terstruktur, dan keluaran alat mencakup jawaban yang dipilih agar agen dapat melaporkannya kemudian
  5. Hindari rekayasa berlebih — kelanjutan otonom mengingatkan agen untuk mengutamakan perubahan praktik umum yang paling sederhana dan menghindari abstraksi tanpa 3+ kasus pakai konkret
  6. Cuplikan sesi tercatat — setiap panggilan alat dicatat untuk audit/pemutaran ulang
  7. Pengguguran selalu berfungsi — menekan Esc (interupsi) menghentikan agen segera