Bu, uzun soluklu ajanlar üzerine tasarım notları dizisinin ilki; şu çalışmanın dikkatli bir okumasından doğdu: BEACON (Zhejiang Üniversitesi, arXiv:2605.06078).
Bir ajanın uzun bir görev boyunca sağlam kalabilmesi için iki şeyin doğru işlemesi gerektiğini düşünüyoruz:
- Hedefe doğru ilerlemeyi sürdürmesi. Bu; bağlam sıkıştırma (neleri unutmanın güvenli olduğu), kilometre taşı tasarımı (bir adımın gerçekten bittiğini nasıl anlayacağınız) ve duraklamayı önleme (takıldığında bir şeyin bunu fark etmesi gerekir) konularına ayrılır.
- Kendini değerlendirip geliştirebilmesi.
Bu yazı duraklamayı önlemeyi ele alıyor; çünkü bize en pahalıya mal olan konu buydu.
Belirti
Kullanıcılardan bildirimler aldık ve içeride de gördük: bazı çok uzun görevler, bir noktadan sonra ilerlemeyi bırakıyor.
Günlüklere baktığınızda ajan meşgul — dosyaları okuyor, arama yapıyor, komut çalıştırıyor, hiç boş durmuyor. Ama yarım saat sonra hiçbir şey ilerlememiş oluyor.
İlk açıklamamız bağlam kaybıydı: sıkıştırma, bir yolun zaten denendiğine dair kaydı düşürmüş, ajan da gidip aynı yolu yeniden denemişti. Kodu ve günlükleri birlikte okuyunca bunun hikâyenin yalnızca yarısı olduğu ortaya çıktı.
Zaten korumalarımız vardı; hem de üç katmanlı
| Katman | Ölçüt | Eşikler |
|---|---|---|
| Birebir tekrar | Araç adı + standartlaştırılmış argümanlar, bayt düzeyinde aynı | LOOP_WARN=3 uyar / LOOP_HARD=5 zorla durdur |
| Neredeyse aynı | Değişken kimlik / zaman damgası alanları dışında aynı | NEAR_DUP_LOOP_WARN=6 / NEAR_DUP_LOOP_HARD=12 |
| Yerinde sayma yakınsaması | ≥2 sıkıştırma ve Araç döngüsü bütçesinin ≥%75'i tüketilmiş | SPIN_CONVERGENCE_MIN_COMPACTIONS=2SPIN_CONVERGENCE_TOOL_LOOP_RATIO=0.75 |
Üçüncü katmandaki yorum, kelimesi kelimesine şöyle: Bileşik “bağlam kaybından sonra yerinde sayıyor olabilir” sinyali. Birisi bunu önceden görmüştü. Yani sorun hiçbir şey geliştirilmemiş olması değildi; geliştirdiğimiz şeyin bunu yakalayamamasıydı.
Kör nokta: üçünün de girdi tarafını izleyen dedektörler olması
Her katmanın esas aldığı imza şu: araç adı + standartlaştırılmış argümanlar. Bu, tam olarak tek bir soruyu yanıtlıyor: aynı şeyi iki kez mi yapıyorsun?
Ama takılıp kalan yetenekli bir model çağrıları tekrarlamaz. Şunu yapar:
A dosyasını oku → grep X → A'yı farklı bir satır aralığıyla yeniden oku
→ biraz farklı bir komut çalıştır → B dosyasını oku → yeniden grep …Her çağrının imzası farklıdır. Üç katman da sessiz kalır. Ve tüm bu süre boyunca doğrulanabilir durum değişikliği sayısı sıfırdır: gerçekten yeniden yazılmış bir dosya yoktur, yeni sonuç üreten bir komut yoktur, geri döndürülemez hiçbir şey gerçekleşmez.
Döngü tespiti, duraklama tespiti değildir. İlki girdilere bakar. İkincisi çıktılara bakmak zorundadır.
Makale tam da bu çıktı odaklı tanımı sağlıyor
BEACON'ın segment içi ödülü:
r_t = R_ms · γ^(t_k − t) bölüm bir kilometre taşıyla sona ererse
= 0 aksi haldeBir kilometre taşıyla sonlanmayan segmentin kazandığı ödül tam olarak sıfırdır, kaç eylem içerdiğinden bağımsız olarak. Eylem sayısı formüle hiç girmez. Bu, şu ayrımın gördüğümüz en açık biçimsel ifadesidir: meşgul olmak ≠ ilerlemek .
Referans değer katmanı daha da katıdır. Referans değer, grubun ortalama adım başına getirisidir; dolayısıyla grup ortalaması 5 adımken 8 adım süren bir segmentin tüm avantajı negatife kayar ve ceza, aşım miktarıyla orantılı artar. Yerinde saymak yalnızca ödülsüz kalmaz; aktif biçimde ve orantılı olarak cezalandırılır.
Makalenin 8. şekli, son iki eylemin aldığı değerin aynı, −2.20 olduğubaşarısız bir yürütme yolunu gösteriyor. Bu kuyruk — son kilometre taşından sonra başlayıp bir sonrakine hiç ulaşmayan bölüm — yerinde saymanın matematiksel biçimidir. Üstelik yaygındır: en az bir alt hedefi tamamlayıp görevi başaramayan yürütme yollarının oranı sabit olarak 39–47% örneklerde görülür.
Bir ablasyon deneyi, adım sayısına dayalı tetikleyicileri eliyor
| Bölümleme | Puan | referans değere (72.8) göre |
|---|---|---|
| Rastgele 5 parçaya bölme | 74.2 | +1.4 |
| Gerçek kilometre taşları | 91.4 | +17.2 |
Rastgele adım sayılarına göre bölmek neredeyse hiçbir katkı sağlamıyor. Gerçek yapıya göre bölmek ise çok şey kazandırıyor.
Şimdi üçüncü katman ölçütümüze yeniden bakın — araç döngüsü bütçesinin %75'inin tüketilmesi. Bu, rastgele bir adım sayısına dayalı tetikleyici. Ne başardığınızı değil, ne kadar tükettiğinizi soruyor. Doğru yapı şöyle:
✗ adım sayısı > N ise → müdahale et
✓ adım sayısı > N VE doğrulanmış kilometre taşı yoksa → müdahale etİkinci ölçüt, gerçekten uzun süren ama ilerleyen bir görevde yanlış tetiklenmez; çünkü böyle bir görev yol boyunca kilometre taşlarına ulaşır. İlki ise yanlış tetiklenir.
Bir de pozitif geri besleme döngüsü var
Sabitleri yan yana koyun. Sıkıştırma, bağlam penceresinin %82'sinde tetikleniyor. Yerinde sayma yakınsamasının tetiklenmesi için iki sıkıştırma ve döngü bütçesinin %75'inin tüketilmesi gerekiyor.
yerinde say → bağlam dolar → sıkıştırma tetiklenir → kalıcı durum özetlenirken kaybolur
→ kaybolanı yeniden çıkar → daha fazla yerinde sayYerinde sayma dedektörü, sıkıştırmanın tekrar tekrar gerçekleştiğini gözlemleyerek yerinde sayma sonucunu çıkarıyor. Oysa unutkanlığa yol açan adım, sıkıştırmanın ta kendisi. Aşağı akıştaki bir belirtiyi tespit ediyor ve döngünün iki kez dönmesini beklemek zorunda.
Daha kötüsü, müdahalesi modeli yeniden kalıcı durumuna dayanmaya yönlendirmek. Sıkıştırmada kaybolan tam da kalıcı durumsa dayanacak hiçbir şey kalmamış demektir. Bu, durum katmanındaki bir soruna istem katmanında yapılan bir yama.
Eklediğimiz şey: çıktı odaklı duraklama tespiti
İki sayaçtan oluşan dördüncü bir katman. İkisi de ana uygulamanın zaten kaydettiği araç gözlemlerinden mekanik olarak türetiliyor; hiçbiri modelin değerlendirmesine ihtiyaç duymuyor.
Son doğrulanmış kilometre taşından bu yana geçen adım sayısı. Mümkün olan en basit ilerleme ölçütü; tek başına değil, yukarıdaki bileşik ölçütte kullanılıyor.
Tekrarları ayıklanmış yeni durum değişiklikleri. İkisinden daha faydalı olanı:
- İçerik özeti önceki bir okumayla eşleşen dosya okuması yeni bilgi değildir; aynı dosyayı farklı bir satır aralığında yeniden okumak özeti değiştirmez.
- Adı, çıkış kodu ve çıktı özeti önceki bir çalıştırmayla aynı olan komut yeni bilgi değildir.
- İşlem sonrası özeti işlem öncesi özetine eşit olan bir yazma işlemi, gerçekte hiçbir şey yazılmadığı anlamına gelir.
Bu sayaç, imza eşleştirmenin kaçırdığı durumu tam olarak hedefler: her eylem farklı, bilgi kazanımı sıfır. Ölçüt mekaniktir ve anlamsal kavrayış gerektirmez.
Ardından baskı, tek bir yönlendirmeden ibaret değil, sürekli olmalıdır:
modelin görebilmesi için sayacı bağlamda göster
→ planın gözden geçirilmesini zorunlu kıl (bu yolun çıkmaz olduğunu kabul et)
→ kullanıcıya sor
→ sonlandır, ancak ulaşılan kilometre taşlarını koruBu son basamak önemlidir. Çalışma duracaksa kazandıklarını koruyarak durmalıdır; makalenin çöpe atıldığını ölçtüğü %39–47'lik kısmi ilerleme tam da budur.
Makalenin bize vermediği şeyler
BEACON bir eğitim yöntemidir. Gradyanları şekillendirerek eğitilmiş politikanın amaçsızca dolaşmaya daha az yatkın olmasını sağlar, ancak kendisine ait çalışma zamanı tespit veya müdahale mekanizması yoktur . Bir denetleyici değil, ilerleme tanımı sunar. Eşikleri, kademeli müdahale basamaklarını ve sonlandırma koşullarını bizim tasarlamamız gerekir.
Adım başına referans değeri de bir grubun ortalama segment uzunluğunu referans almayı gerektirir. Üretimde belirli bir kullanıcı görevi genellikle tam olarak bir kez çalıştırılır; dolayısıyla ortada grup yoktur. Kullanılabilecek en iyi alternatif, benzer görevlerin geçmiş istatistikleridir. Bu ise çok daha gürültülüdür ve makaledeki varyans yalıtımı güvencesini taşımaz.
İlk hamle düzeltmek değil, ölçmek
Herhangi bir karar mantığını değiştirmeden önce ölçüm altyapısını kurmak ve şu anda yanıtlayamadığımız bir soruyu yanıtlamak istiyoruz: üretimdeki duraklamaların kaçı unutkanlık türünde, kaçı gradyan yokluğu türünde?
- Çoğunlukla eşlik eden durum çağrı imzalarının tümü farklıyken bilgi kazanımının sıfır olmasıysa → gradyan yokluğu türü. Mevcut üç katman yapısal olarak bunu yakalayamaz; çözüm çıktı odaklı tespittir.
- Çoğunlukla eşlik eden durum sıkıştırma sırasında zaten kaybolmuş içeriğin yeniden okunmasıysa → unutkanlık türü. Düzeltilmesi gereken, sıkıştırmanın neleri koruduğudur.
Bu iki sonuç tamamen farklı yatırımlar gerektirir. Önce ölçmek, önce tasarlamaktan daha ucuzdur; gözlemler zaten mevcut olduğu için ölçüm altyapısının maliyeti de neredeyse sıfırdır.
Yukarıdaki her şey, bu notun tanımlamadan dayandığı tek bir kavrama bağlı: doğrulanmış kilometre taşı. Sonraki not bununla ilgili. Bir adımın tamamlandığının söylenmesinin neden tamamlandığına kanıt olmadığı, üründe zaten bulunan ama hiç birleştirilmemiş iki parçanın hangileri olduğu ve makalede bulunmayan bir ölçüt: öneme değil, geri döndürülemezliğe bakmak.