n8n'de Toplu AI Agent İşlemede Sessiz Bağlam Sızıntısı Düzeltildi
n8n'in AI Agent toplu işleme özelliğinde araç çağrısı geçmişlerinin öğeler arasında sızmasına neden olan sessiz hata ve düzeltmesi.
n8n'in AI Agent düğümünde Batch Processing özelliği açıkken, aynı turda birden fazla öğe araç çağrısı yaptığında ciddi bir hata ortaya çıkıyor: bir öğenin konuşma geçmişi diğerine sızıyor ya da tamamen kayboluyor. Sorun executeBatch.ts'nin sadece ilk öğenin previousRequests verisini saklayıp diğerlerini atmasından, buildSteps.ts'nin de bu paylaşılan geçmişi hangi öğeye ait olduğuna bakmaksızın her öğeye eklemesinden kaynaklanıyor. Sonuç, hiçbir hata veya uyarı vermeden yanlış cevaplar üreten sessiz bir veri bozulması.
Çözüm üç küçük adımdan oluşuyor: her araç çağrısı adımını itemIndex ile etiketlemek, batch birleştirmesinde geçmişleri atmak yerine birleştirmek, ve her öğenin geçmişini yeniden oluştururken sadece kendi etiketli girdilerine göre filtrelemek. Düzeltme öncesi başarısız, sonrası başarılı iki regresyon testiyle ve mevcut 338 testin bozulmadığıyla doğrulandı. Ayrı bir sorun olarak, iterationCount sayacının hâlâ batch genelinde paylaşıldığı belgelenmiş ama bu PR'ın kapsamı dışında bırakılmış.
Geliştirici, Sentry'nin Seer aracı ve Gemini ile bağımsız analizler çalıştırarak aynı kök nedene ve neredeyse aynı düzeltmeye ulaşıldığını gösterdi — ancak Seer'in otomatik ürettiği yamanın test içermemesi, insan doğrulamalı düzeltmenin neden hâlâ vazgeçilmez olduğunu somut biçimde ortaya koyuyor.