tools.loopDetection altında yapılandırılır:
- Döngü algılama (
enabled) - varsayılan olarak devre dışıdır. Tekrarlanan örüntüler ve bilinmeyen araç yeniden denemeleri için kayan araç çağrısı geçmişini izler. - Compaction sonrası koruma -
enabledaçıkçafalseolarak ayarlanmadığı sürece etkindir. Her Compaction yeniden denemesinden sonra devreye girer ve agent pencere içinde aynı(tool, args, result)üçlüsünü yinelerse çalıştırmayı iptal eder.
tools.loopDetection.enabled: false olarak ayarlayın.
Bunun var olma nedeni
- İlerleme sağlamayan tekrarlayan dizileri algılamak.
- Yüksek frekanslı, sonuç üretmeyen döngüleri (aynı araç, aynı girdiler, tekrarlanan hatalar) algılamak.
- Bilinen yoklama araçlarına özgü tekrarlanan çağrı örüntülerini algılamak.
- Bağlam taşması -> Compaction -> aynı döngü çevrimlerini süresiz çalışmaya bırakmak yerine kesmek.
Yapılandırma bloğu
Genel ayar:agents.entries.*.tools.loopDetection konumunda):
Alan davranışı
exec için ilerleme yokluğu karması; kararlı komut sonuçlarını (durum,
çıkış kodu, zaman aşımı bayrağı, çıktı) karşılaştırır ve süre, PID, oturum kimliği
ve çalışma dizini gibi değişken çalışma zamanı meta verilerini yok sayar. Giden mesaj gönderme
sonuçlarının karması alınırken çağrı başına değişken kimlikler (mesaj kimliği, dosya kimliği, zaman damgası)
çıkarılır; böylece bir “gönderildi” sonucu, farklı bir “gönderildi”
sonucuyla aynı görünmez. Bir çalıştırma kimliği mevcut olduğunda geçmiş yalnızca o çalıştırma içinde
değerlendirilir; dolayısıyla zamanlanmış Heartbeat çevrimleri ve yeni çalıştırmalar, önceki
çalıştırmalardan kalan eski döngü sayılarını devralmaz.
Önerilen kurulum
- Daha küçük modeller için
enabled: trueolarak ayarlayın. Amiral gemisi modeller kayan geçmiş algılamasına nadiren ihtiyaç duyar ve Compaction sonrası korumadan yararlanmaya devam ederken ana anahtarıfalseolarak bırakabilir. - Compaction sonrası koruma dâhil her şeyi devre dışı bırakmak için
açıkça
tools.loopDetection.enabled: falseolarak ayarlayın.
Compaction sonrası koruma
Bağlam taşmasını izleyen bir Compaction yeniden denemesinden sonra çalıştırıcı, sonraki birkaç araç çağrısında kısa pencereli bir korumayı devreye alır. Agent bu pencere içinde aynı(toolName, argsHash, resultHash) üçlüsünü yeterince yinelerse koruma, Compaction işleminin
döngüyü kıramadığı sonucuna varır ve çalıştırmayı bir compaction_loop_persisted hatasıyla iptal eder.
Koruma, tek bir farkla ana tools.loopDetection.enabled bayrağı tarafından denetlenir:
bayrak ayarlanmamışken veya true iken etkin kalır ve yalnızca
bayrak açıkça false olarak ayarlandığında kapanır. Bu bilinçli bir tercihtir; koruma,
aksi takdirde sınırsız miktarda token tüketecek Compaction döngülerinden çıkmak için vardır,
bu nedenle yapılandırma yapmamış bir kullanıcı da korumadan yararlanır.
- Sonuçlar değişirken koruma hiçbir zaman iptal etmez; yalnızca pencere boyunca bayt düzeyinde aynı olan sonuçlar korumayı tetikler.
- Yalnızca bir Compaction yeniden denemesinin hemen ardından devreye girer, çalıştırmanın diğer noktalarında değil.
Compaction sonrası koruma, hiç
tools.loopDetection bloğu yazmamış olsanız bile ana bayrak açıkça false olmadığı sürece çalışır. Doğrulamak için bir Compaction olayından hemen sonra Gateway günlüğünde post-compaction guard armed for N attempts ifadesini arayın.Günlükler ve beklenen davranış
Bir döngü algılandığında OpenClaw bir döngü olayı kaydeder ve önem derecesine bağlı olarak sonraki araç çevrimini uyarır veya engeller; normal araç erişimini korurken kontrolsüz token harcamasına ve kilitlenmelere karşı koruma sağlar.- Önce uyarılar gelir.
- Bir örüntü uyarı eşiğini aşacak kadar sürdüğünde engelleme uygulanır.
- Kritik eşikler sonraki araç çevrimini engeller ve çalıştırma kaydında açık bir döngü algılama nedeni gösterir.
- Compaction sonrası koruma, soruna neden olan aracı ve aynı çağrı sayısını belirten
compaction_loop_persistedhataları üretir.
İlgili
Exec onayları
Kabuk yürütmesi için izin verme/reddetme ilkesi.
Düşünme düzeyleri
Akıl yürütme çabası düzeyleri ve sağlayıcı ilkesi etkileşimi.
Alt agent'lar
Kontrolden çıkan davranışı sınırlamak için yalıtılmış agent’lar oluşturma.
Yapılandırma başvurusu
Tam
tools.loopDetection şeması ve birleştirme semantiği.