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

Kendali harness dan evaluasi terverifikasi

Status: Aktif

Cakupan: kondisi terkini

Terakhir ditinjau: 2026-09-14

Pemilik: runtime ax-code

Untuk upaya khusus model, sakelar berpikir, dan pemutaran ulang penalaran, lihat kendali penalaran model saat ini.

Kendali konteks dan alat opsional

Aktifkan setiap eksperimen secara mandiri dalam konfigurasi AX Code Anda:

{
  "experimental": {
    "context_recovery": true,
    "mcp_tool_discovery": true,
    "tail_reminders": true,
    "read_only_recipes": true
  }
}

Keempat opsi bawaan mati. Ukur keberhasilan tugas dan waktu yang berlalu dengan model Anda sebelum mengadopsi semuanya bersama-sama. Mereka mempertahankan izin alat dan pengaturan isolasi yang sudah ada. Lihat diagnostik kinerja.

context_recovery mengekspos context_recover dan menambahkan penunjuk sumber ke ringkasan pemadatan yang berhasil. Alat itu menerima kata kunci, ID pesan, ID bagian opsional, dan batas hasil. Ia hanya membaca sesi saat ini, termasuk riwayat pra-pemadatan, dan mengecualikan materi yang dikembalikan, penalaran tersembunyi, serta teks yang diabaikan atau sintetis. Ia mengembalikan ID pesan/bagian asli dan kutipan yang dibatasi. Pencarian memindai paling banyak 100 bagian per halaman dan 16.000 karakter pertama dari setiap bagian; before berlanjut ke bagian yang lebih lama. Kecocokan yang hilang bukan bukti bahwa seluruh riwayat tidak memiliki teks itu. Cabang memakai riwayat salinan mereka dan ID baru. Penetapan kredensial disunting dari kutipan.

mcp_tool_discovery menjaga alat bawaan tetap tersedia dan memperkenalkan tool_search untuk alat MCP yang tersambung. Sebuah pencarian mengembalikan hingga lima skema yang cocok dan membuat alat itu tersedia pada permintaan model berikutnya. Ia tidak mengeksekusi mereka. Pilihan dicakup ke sesi, dibatasi 32 alat, dan dipotong dengan penerimaan saat ini pada setiap permintaan. Skema besar dapat dihilangkan dari hasil pencarian dan dimuat pada permintaan berikutnya. Jika tool_search ditolak, katalog MCP yang diterima secara biasa tetap tersedia. Alat yang sudah ada dan bertentangan bernama tool_search menghasilkan kesalahan.

tail_reminders hanya memindahkan pengingat giliran dinamis yang dihasilkan AX Code ke akhir permintaan penyedia. Pesan pengguna yang tersimpan, penalaran asisten, riwayat alat, dan instruksi statis tetap tidak berubah. Ini dapat mengubah perilaku model dan pemakaian cache; ia tidak dengan sendirinya menetapkan peningkatan kecepatan.

read_only_recipes mengekspos read_recipe. Ia menjalankan hingga delapan panggilan read, glob, atau grep yang bergantung melalui pengirim alat biasa. Setiap anak memiliki pemeriksaan izin, hook, pembatalan, dan bukti sesi sendiri. Sebuah resep tidak dapat mengevaluasi kode, menjalankan perintah shell, menulis berkas, memanggil alat MCP, atau menyarangkan resep lain.

{
  "steps": [
    { "id": "files", "tool": "glob", "parameters": { "pattern": "src/**/*.ts" } },
    {
      "id": "source",
      "tool": "read",
      "parameters": { "filePath": { "$ref": { "step": "files", "path": ["paths", 0] } } }
    }
  ],
  "select": [{ "step": "source", "path": ["text"] }]
}

Hasil glob kanonis berisi paths dan truncated; hasil grep berisi matches dengan path, line, text; hasil baca berisi kind, text yang dirender, dan truncated. Pilih hasil sebelumnya berdasarkan langkah dan jalur properti sendiri. Pilihan larik mendukung filter contains harfiah dan limit. Periksa status yang dikembalikan dan pemotongan. Resep memiliki batas pembatalan 60 detik, anggaran argumen 32KB, anggaran antara 192KB, dan keluaran akhir yang dibatasi. Pembatalan menunggu alat yang dimiliki selesai. Instruksi repositori atau media baru menjeda eksekusi dan mempertahankan keluaran anak biasa agar model melihatnya sebelum melanjutkan. Pilihan yang berhasil mengganti keluaran antara hanya dalam permintaan model; catatan anak asli tetap dalam riwayat. Induk yang terputus mempertahankan keluaran anak.

Koreksi generasi yang sedang berjalan

GET /session/{sessionID}/steering mengembalikan UUID generasi aktif dan tanda terima terkini. Sertakan parameter kueri directory yang sudah ada saat memilih proyek melalui server HTTP.

Kirim POST /session/{sessionID}/steering dengan:

{
  "expectedGeneration": "00000000-0000-4000-8000-000000000001",
  "clientID": "correction_1",
  "text": "Preserve the existing public function signature."
}

Pakai UUID dari GET, bukan UUID contoh. accepted berarti koreksi tertunda. applied berarti ia ditulis sebagai pesan pengguna pada batas putaran dan mencakup ID pesannya; itu tidak menjamin penyelesaian penyedia. rejected berarti ia tidak diterapkan. Hook siklus hidup dapat memveto penerimaan. Koreksi yang diterima memperpanjang generasi yang hampir selesai sebanyak satu iterasi lagi, jadi koreksi yang dikirim di garis akhir diterapkan alih-alih ditolak; pembatalan dan kesalahan tetap menolak koreksi tertunda, dan generasi lama tidak dapat menerima teks untuk penerusnya. Percobaan ulang yang identik mengembalikan tanda terima yang sama yang dipertahankan; konten berbeda di bawah ID klien yang sudah ada mengembalikan HTTP 409. Gestur kirim-sekarang TUI ctrl+s memakai titik akhir ini.

Panggilan alat paralel dalam satu langkah

Bila model memancarkan beberapa panggilan alat dalam satu pesan asisten, runtime mengeksekusinya secara bersamaan melalui gerbang pembaca/penulis yang dicakup sesi. Alat hanya-baca berbagi lajur dan tumpang tindih; suntingan berkas, bash, bash_input, suntingan notebook, ops_apply, alat MCP, dan batch apa pun yang berisi anak yang tidak aman untuk konkurensi mengambil lajur eksklusif dan berjalan sendiri sesuai urutan kedatangan. Panggilan yang digugurkan saat menunggu tidak pernah berjalan. Batch mempertahankan penghalang urutannya sendiri untuk panggilan yang dikirimnya, dan sesi anak memiliki gerbang sendiri.

Tanda terima bersifat lokal proses, paling banyak 256 per sesi dan 32 permintaan tertunda. Tanda terima terminal dan entri sesi tidak aktif dapat digusur. Setelah mulai ulang, ambil generasi baru dan rekonsiliasi pesan tersimpan; API ini tidak menjanjikan pencarian tanda terima yang tahan lama lintas mulai ulang. SDK yang dihasilkan mengekspos session.steering dan session.steer.

Arahkan tindak lanjut tersimpan ke giliran yang berjalan

POST /task-queue/{taskID}/steer menerima teks tindak lanjut antrean ke dalam generasi yang berjalan pada sesi di batas langkah berikutnya — titik pengiriman yang sama dengan POST /session/{sessionID}/steering — dan membatalkan baris antrean dalam permintaan yang sama, mencatat steeredInto (UUID generasi) dan steeredAt pada muatan baris untuk audit. Tindak lanjut hanya-teks hingga 16.000 karakter dapat diarahkan; teks yang diarahkan menerapkan agen, model, dan alat dari giliran yang berjalan. Lampiran, jenis bukan tindak lanjut, baris yang sudah selesai, dan teks yang terlalu besar ditolak dengan HTTP 400, dan baris yang berlomba ke status lain di tengah permintaan mengembalikan HTTP 409.

Respons membawa item antrean terbaru dan tanda terima yang boleh null. Bila tidak ada generasi yang aktif, baris dibiarkan tidak tersentuh dan respons melaporkan generation_not_active dengan tanda terima null; pemanggil kemudian dapat kembali ke POST /task-queue/{taskID}/send-now, yang hanya memindahkan baris ke depan antrean dan tetap menunggu giliran berakhir. Baris yang diarahkan tidak dapat dibatalkan, tetapi tetap terlihat sebagai cancelled dalam riwayat /queue dengan bidang auditnya.

Di TUI, ikatan tombol input_submit_steer (bawaan ctrl+s) mengarahkan draf yang diketik bila ada; dengan penyusun kosong di atas sesi yang sibuk, ia justru mempromosikan awalan yang dapat diarahkan dari antrean tersimpan dalam urutan FIFO, berhenti pada baris pertama yang tidak dapat diarahkan agar tindak lanjut berikutnya tidak pernah melompat ke depannya. Bagian Tindak lanjut di bilah samping dan dialog /queue menawarkan tindakan arahkan-sekarang per baris yang sama, dan petunjuk di dekat tindak lanjut antrean menampilkan tombol yang terikat. SDK yang dihasilkan mengekspos taskQueue.steer.

Usulkan skill dari pekerjaan yang terverifikasi

Kandidat skill adalah catatan eksplisit di penyimpanan lokal AX Code yang sudah ada. Mereka tidak masuk penemuan skill sampai Anda mempromosikannya, dan mereka tidak pernah memicu panggilan model otomatis atau penulisan ulang instruksi.

Buat berkas JSON proposal dengan name, description, applicability, procedure, dan evidence yang berisi sessionID, messageID, dan partID. Bukti harus mengidentifikasi hasil verify_project asli yang berhasil dengan amplop uji atau pemeriksaan tipe yang dieksekusi terhadap revisi Git bersih saat ini. Kalimat keberhasilan atau keluar shell sembarangan tidak memadai. Validasi harus mengutip verifikasi berhasil dari sesi lain pada revisi yang sama.

ax-code skill candidate propose --proposal proposal.json
ax-code skill candidate show verified-procedure
ax-code skill candidate validate verified-procedure --proposal independent-evidence.json
ax-code skill candidate promote verified-procedure
ax-code skill candidate retire verified-procedure

Simpan JSON masukan di luar pohon kerja atau di direktori lokal yang diabaikan agar pemeriksaan revisi bersih tetap bermakna. Promosi membuat .ax-code/skill/{name}/SKILL.md tanpa menimpa skill yang sudah ada. Bukti sumber diperiksa ulang sebelum promosi. Direktori yang berupa tautan simbolis ditolak. Pensiun hanya menghapus berkas kandidat sendiri yang tidak berubah; suntingan manual menimbulkan konflik. Mulai ulang instans runtime yang sudah ada untuk menyegarkan penemuan skill yang di-cache. Pemeriksaan yang lulus menetapkan bukti untuk pemeriksaan itu; tinjau keberlakuan prosedur sebelum promosi.

Tangkap eksperimen yang dipasangkan

Dari checkout sumber, pakai:

pnpm --dir packages/ax-code exec tsx script/harness-eval.ts run /path/to/manifest.json > /path/to/runs.ndjson
pnpm --dir packages/ax-code exec tsx script/harness-eval.ts compare /path/to/runs.ndjson baseline candidate

Manifes operator tepercaya berisi provider/model eksplisit, runtimeRevision, argv CLI command opsional, repetitions, timeoutMs, tepat dua arms bernama, dan tasks. Setiap lengan memiliki features opsional (bendera eksperimental di atas) dan toolProfile. Setiap tugas memasok id, prompt, files sebaris (path/content), dan oracle. Oracle adalah JavaScript tepercaya yang dieksekusi oleh Node setelah proses pengodean keluar; process.argv[1] mengidentifikasi fixture sementara. Kodenya tetap di luar ruang kerja agen dan tidak pernah berasal dari respons model.

Setiap percobaan mendapat fixture Git yang baru. Oracle harus gagal dengan keluar 1 pada fixture awal. Pelari memakai pemanggilan CLI headless yang tetap, berganti urutan lengan antar pengulangan, menerapkan batas waktu, dan menjalankan oracle lagi setelah percobaan selesai. elapsedMs mencakup proses pengodean dan verifikasi pasca-jalankan; verificationMs mengidentifikasi yang terakhir secara terpisah. Penyiapan fixture dan pemeriksaan gagal awal dikecualikan. Aliran mencatat setiap percobaan yang selesai, gagal, waktu habis, atau dibatalkan saat ia selesai. Prompt mentah, keluaran subproses, dan kredensial tidak dipancarkan dalam catatan evaluasi. Kohort yang terputus tetap tidak lengkap dan tidak dapat menghasilkan perbandingan berpasangan.

Perbandingan menolak duplikat serta pasangan tugas/model/kohort/pengulangan yang hilang atau tidak cocok. Percobaan gagal dan belum terverifikasi tetap di penyebut tingkat keberhasilan. Median latensi dan rasio berpasangan secara eksplisit dikondisikan pada keberhasilan terverifikasi. P95 membutuhkan 20 pengamatan berhasil dalam sel tugas/model/kohort/lengan; agregat sel campuran menghilangkannya. Kohort meng-hash manifes, tetapi revisi runtime serta kondisi penyedia/konfigurasi/cache eksternal tetap membutuhkan kendali operator. Jalankan asap yang kecil tidak dapat menetapkan keunggulan kecepatan umum atau membenarkan perubahan bawaan.

Pemilihan kemampuan dan diagnostik pemulihan

Permintaan otonom dapat menyertakan paket konteks agen-panjang bila model memiliki setidaknya 64.000 token konteks, dukungan penalaran, dan dukungan alat. Untuk model tanpa entri registri, ketiganya harus dinyatakan dalam metadata model yang terselesaikan. Paket tambahan memiliki batas perkiraan karakter 2.048 token; itu bukan jendela percakapan. Deklarasi negatif eksplisit dan pembatasan terdaftar mencegah penerimaan. Optimasi teks prompt ini tidak menetapkan kompatibilitas cache atau pemikiran yang dipertahankan, atau mengubah batas waktu serta tempo Super-Long otomatis. Itu mempertahankan aturan kualifikasi dan penimpaan yang sudah ada.

Dua kegagalan alat terstruktur berturut-turut setelah pesan pengguna terbaru (dihitung sebelum pengingat ekor sintetis) meminta penalaran yang lebih dalam pada panggilan model berikutnya bila ada varian upaya yang dapat dipakai. Hasil alat yang berhasil mengatur ulang hitungan. Upaya pengguna yang eksplisit dan opsi penalaran yang dikonfigurasi tetap didahulukan. Ini mengubah pemilihan upaya, bukan batas coba ulang atau izin alat.

Peristiwa pemutaran ulang llm.request lokal mencakup capabilityResolution: protokol, jendela konteks, apakah paket konteks atau mode Super-Long dipilih, kegagalan alat berturut-turut, serta pemilihan penalaran atau alasan yang tidak diterapkan. boundary: "policy-selection" menggambarkan keputusan AX Code; plugin dan SDK penyedia masih dapat mengubah permintaan akhir. Nilai upaya GPT-6 yang eksplisit dipertahankan; API membutuhkan low atau lebih tinggi, bukan none atau minimal. Peristiwa mempertahankan hash permintaan, bukan isi prompt atau kredensial. Varian upaya yang tidak ada tidak menyiratkan bahwa pemikiran bawaan penyedia dinonaktifkan.

Tangkapan harness berpasangan membaca peristiwa JSON CLI step_finish dan tool_use untuk token masukan, keluaran, penalaran, dan baca-cache, panggilan alat yang selesai, serta kesalahan alat. ID bagian duplikat dihitung sekali. metricsStatus adalah observed, partial, atau unavailable; aliran yang terpotong atau rusak serta percobaan yang terputus menahan total. Perbandingan melaporkan jumlah jalankan yang diamati dan yang hilang serta median setiap metrik, termasuk percobaan gagal bila ada pengamatan. Nilai yang hilang tetap hilang. Penghitung ini menggambarkan peristiwa runtime yang dipancarkan, bukan penagihan penyedia, pemakaian sesi anak, atau alat internal CLI bawaan. Aliran teramati yang lengkap tanpa peristiwa alat terminal melaporkan nol panggilan alat. Verifikasi oracle tetap menjadi sumber keberhasilan tugas; pemakaian saja tidak menetapkan pemulihan yang berhasil atau kualitas yang lebih baik.