Orkas Orkas
Beranda Blog Arsitektur
Arsitektur

Deteksi Loop Bukan Deteksi Berhenti: Menangkap Agen Yang Berputar Tanpa Berulang

Orkas memiliki tiga penjaga lingkaran. Tak satu pun dari mereka menangkap model yang mampu yang terhenti, karena ketiganya bertanya apakah itu mengulangi dirinya sendiri - dan model yang macet tidak pernah melakukannya. Inilah titik buta, definisi sisi output dari kemajuan yang kami pinjam dari BEACON, dan apa yang kami rencanakan untuk diukur sebelum mengubah apa pun.

Ini adalah yang pertama dari serangkaian catatan desain pada agen cakrawala panjang, didorong oleh pembacaan yang cermat dari SUAR (Universitas Zhejiang, arXiv:2605.06078).

Agar seorang agen dapat bertahan dalam tugas yang panjang, kami pikir dua hal harus benar:

  • Itu terus membuat kemajuan menuju tujuan. Itu pecah menjadi pemadatan konteks (apa yang aman untuk dilupakan), desain tonggak sejarah (bagaimana Anda tahu sebuah langkah benar-benar dilakukan), dan pencegahan kios (ketika macet, sesuatu harus diperhatikan).
  • Itu dapat mencerminkan dan meningkatkan.

Postingan ini mencakup pencegahan kios, karena itulah yang paling merugikan kami.

Versi pendek Agen yang berputar tanpa mengulangi masih perlu ditangkap Kapal deteksi kios di Orkas, jadi jangka panjang memberi tahu Anda bahwa itu macet daripada diam-diam menghabiskan sisa anggaran Anda.
Unduh Orkas — gratis

Gejalanya

Kami memiliki laporan pengguna, dan melihatnya secara internal juga: beberapa tugas yang sangat panjang berhenti bergerak maju di bagian jalan.

Lihat log dan agennya adalah Sibuk — membaca file, mencari, menjalankan perintah, tidak pernah menganggur. Tetapi setengah jam kemudian tidak ada yang maju.

Penjelasan pertama kami adalah kehilangan konteks: pemadatan menjatuhkan catatan bahwa jalur telah dicoba, jadi agen pergi dan mencobanya lagi. Membaca kode dan log bersama-sama, itu ternyata hanya setengah dari cerita.

Kami sudah memiliki penjaga — tiga tingkat dari mereka

TingkatKriteriaAmbang batas
Ulangi dengan tepatNama alat + argumen yang dikanonisasi, byte-identikLOOP_WARN=3 Memperingatkan / LOOP_HARD=5 Paksa-berhenti
Hampir duplikatIdentik kecuali bidang id / stempel waktu yang tidak stabilNEAR_DUP_LOOP_WARN=6 / NEAR_DUP_LOOP_HARD=12
Konvergensi putaran≥2 pemadatan Dan ≥75% dari anggaran tool-loop dibakarSPIN_CONVERGENCE_MIN_COMPACTIONS=2
SPIN_CONVERGENCE_TOOL_LOOP_RATIO=0.75

Komentar pada tingkat ketiga itu berbunyi, kata demi kata: Sinyal senyawa "mungkin berputar setelah kehilangan konteks". Seseorang sudah melihat ini datang. Jadi masalahnya tidak pernah ada yang dibangun - itu adalah apa yang kita bangun tidak bisa menangkapnya.

Titik buta: ketiganya adalah detektor sisi input

Tanda tangan setiap kunci tingkat adalah tool name + canonicalized args. Itu menjawab dengan tepat satu pertanyaan: Apakah kamu melakukan hal yang sama dua kali?

Tetapi model yang mumpuni yang macet tidak mengulangi panggilan. Itu melakukan ini:

read file A → grep X → re-read A with a different line range
  → run a slightly different command → read file B → grep again …

Setiap panggilan memiliki tanda tangan yang berbeda. Ketiga tingkatan tetap diam. Dan di seluruh bentangan itu, jumlah Perubahan status yang dapat diverifikasi adalah nol: tidak ada file yang benar-benar ditulis ulang, tidak ada perintah yang menghasilkan hasil baru, tidak ada yang tidak dapat diubah terjadi sama sekali.

Deteksi loop bukanlah deteksi kios. Yang pertama melihat masukan. Yang kedua harus melihat output.

Kertas itu menyediakan definisi sisi keluaran yang tepat

Hadiah dalam segmen BEACON:

r_t = R_ms · γ^(t_k − t)    if the segment ends in a milestone
    = 0                     otherwise

Segmen yang tidak berakhir dalam tonggak menghasilkan Persis nol, terlepas dari berapa banyak tindakan yang dikandungnya. Hitungan tindakan tidak pernah masuk ke dalam rumus. Itu adalah formalisasi terbersih dari Sibuk ≠ sedang berkembang Kita telah melihat.

Lapisan dasar masih lebih keras. Garis dasar adalah rata-rata kelompok Per-langkah Kembali, jadi segmen yang mengambil 8 langkah di mana kelompok rata-rata 5 memiliki Seluruh Keuntungan miring negatif, dan skala penalti dengan overshoot. Berputar bukan hanya tidak terbalas; itu secara aktif dan proporsional dihukum.

Gambar 8 dari makalah menunjukkan lintasan yang gagal di mana dua tindakan terakhir menerima sebuah Identik −2,20. Ekor itu — peregangan setelah tonggak terakhir yang tidak pernah mencapai yang lain — adalah bentuk matematis dari pemintalan. Dan itu umum: lintasan yang menyelesaikan setidaknya satu subtujuan tetapi gagal dalam tugas tetap stabil di 39–47% Dari sampel.

Satu ablasi mengesampingkan pemicu hitungan langkah

MempartisiSkorVs. garis dasar (72.8)
Perpecahan 5 arah acak74.2+1.4
Tonggak sejarah yang nyata91.4+17.2

Membagi dengan jumlah langkah yang sewenang-wenang hampir tidak berharga. Pemisahan berdasarkan struktur nyata sangat berharga.

Sekarang lihat kembali kriteria tingkat ketiga kita — 75% dari anggaran tool-loop yang dikonsumsi. Itu adalah pemicu penghitungan langkah yang sewenang-wenang. Itu menanyakan berapa banyak yang telah Anda bakar, bukan apa yang telah Anda capai. Bentuk yang tepat adalah:

✗  if steps > N                              → intervene
✓  if steps > N AND zero verified milestones → intervene

Yang kedua tidak akan gagal pada tugas panjang yang sah yang sedang berlangsung, karena tugas seperti itu mencapai tonggak sejarah di sepanjang jalan. Yang pertama akan.

Ada juga lingkaran umpan balik positif

Letakkan konstanta berdampingan. Pemadatan memicu pada 82% dari jendela konteks. Konvergensi spin membutuhkan dua pemadatan ditambah 75% dari anggaran loop sebelum menyala.

spin → context fills → compaction fires → durable state summarized away
     → re-derive what was lost → spin more

Detektor putaran menyimpulkan putaran dengan mengamati bahwa pemadatan terjadi berulang kali - tetapi pemadatan adalah langkah yang menyebabkan amnesia. Itu mendeteksi gejala hilir, dan harus menunggu lingkaran berputar dua kali.

Lebih buruk lagi, intervensinya adalah untuk mendorong model untuk kembali bertahan pada keadaan tahan lamanya. Jika keadaan yang tahan lama justru seperti yang dipadatkan, tidak ada yang tersisa untuk bertahan kembali. Ini adalah tambalan lapisan prompt untuk masalah lapisan keadaan.

Apa yang kami tambahkan: deteksi kios sisi output

Tingkat keempat, dibangun dari dua penghitung. Keduanya diturunkan secara mekanis dari pengamatan alat yang sudah dicatat oleh tuan rumah; tidak ada yang membutuhkan penilaian model.

Langkah-langkah sejak tonggak terakhir yang diverifikasi. Metrik kemajuan yang paling sederhana, digunakan dalam kriteria gabungan di atas daripada sendirian.

Perubahan status baru yang diduplikasi. Yang lebih berguna dari keduanya:

  • Pembacaan file yang hash kontennya cocok dengan pembacaan sebelumnya bukanlah informasi baru — membaca ulang file yang sama pada rentang baris yang berbeda membuat hash tidak berubah.
  • Perintah yang namanya, kode keluar, dan hash keluarannya semuanya cocok dengan yang dijalankan sebelumnya bukanlah informasi baru.
  • Tulisan di mana after-hash sama dengan before-hash berarti tidak ada yang benar-benar ditulis.

Penghitung ini menargetkan dengan tepat tanda tangan kasus yang cocok meleset: Setiap tindakan berbeda, informasi mendapatkan nol. Kriterianya bersifat mekanis dan tidak memerlukan pemahaman semantik.

Maka tekanan harus terus menerus daripada satu dorongan:

surface the counter in context so the model can see it
  → force a plan revision (admit this path is dead)
    → ask the user
      → abort, but preserve the milestones already achieved

Anak tangga terakhir itu penting. Jika lari akan berhenti, itu harus berhenti menahan apa yang diperolehnya - yang merupakan 39-47% yang sama dari kemajuan parsial yang diukur kertas yang dibuang.

Apa yang kertas tidak berikan kepada kita

BEACON adalah metode pelatihan. Itu membentuk gradien sehingga kebijakan yang terlatih kurang rentan untuk mengembara, tetapi itu memiliki Tidak ada deteksi runtime atau mekanisme intervensi Miliknya sendiri. Ini memberikan definisi kemajuan, bukan pengontrol. Ambang batas, tangga eskalasi, dan kondisi pembatalan adalah milik kami untuk dirancang.

Garis dasar per langkahnya juga membutuhkan panjang segmen rata-rata kelompok sebagai referensi. Dalam produksi, tugas pengguna yang diberikan biasanya berjalan tepat sekali, jadi tidak ada grup. Pengganti terbaik yang tersedia adalah statistik historis atas tugas-tugas serupa, yang jauh lebih berisik dan tidak membawa jaminan isolasi varians kertas.

Langkah pertama adalah mengukur, bukan memperbaiki

Sebelum mengubah logika keputusan apa pun, kami ingin instrumen dan menjawab pertanyaan yang saat ini tidak dapat kami lakukan: dari warung yang terjadi dalam produksi, berapa banyak yang tipe amnesia dan berapa banyak yang tidak memiliki tipe gradien?

  • Sebagian besar ditemani oleh Keuntungan informasi pada nol sementara tanda tangan panggilan semuanya berbeda → tipe tanpa-gradasi. Tiga tingkatan yang ada secara struktural tidak dapat menangkapnya, dan deteksi sisi keluaran adalah perbaikannya.
  • Sebagian besar ditemani oleh Membaca ulang konten yang sudah dipadatkan → tipe-amnesia. Apa yang perlu diperbaiki adalah apa yang dipertahankan oleh pemadatan.

Kedua kesimpulan itu membutuhkan investasi yang sama sekali berbeda. Mengukur terlebih dahulu lebih murah daripada merancang terlebih dahulu, dan instrumentasinya hampir gratis karena pengamatan sudah ada.

Semua hal di atas bergantung pada satu gagasan yang telah diandalkan oleh catatan ini tanpa definisi: sebuah Diverifikasi Tonggak sejarah. Yang Catatan selanjutnya Adalah tentang itu. Mengapa sebuah langkah dinyatakan selesai bukanlah bukti bahwa itu, yang mana dua bagian sudah ada dalam produk tanpa pernah terhubung, dan satu kriteria yang tidak dimiliki makalah: lihat ireversibilitas, bukan kepentingan.