JavaScript heap out of memory: n8n bellek sorunlarını giderme
n8n "JavaScript heap out of memory" hatası mı veriyor? İşte NODE_OPTIONS, dosya sistemi modu ve execution pruning ile çözümü.
Bir n8n ajanının sohbet geçmişini neden unuttuğu, oturum anahtarlarının nasıl çalıştığı ve Simple Memory ya da Postgres Memory'nin ne zaman doğru seçim olduğu.
Bir n8n sohbet botu ilk yanıttan sonra artık kullanıcının adını veya önceki soruları hatırlamıyorsa, bunun nedeni neredeyse her zaman AI Agent Node'un bellek yapılandırmasıdır, dil modelinin kendisi değil. n8n bir konuşma geçmişini otomatik olarak kaydetmez: yalnızca Simple Memory veya Postgres Chat Memory gibi bir bellek düğümünü ajana bağladığınızda ve bu düğüm her konuşma için benzersiz bir oturum anahtarına sahip olduğunda, ajan önceki mesajları yeniden bulabilir. Oturum anahtarı eksikse, her çalıştırmada aynıysa veya Chat Trigger "From Memory" olarak ayarlanmamışsa, ajan sanki her mesaj yeni bir konuşma başlatıyormuş gibi davranır. Durum: Temmuz 2026.
Bellek düğümünün kendisiyle uğraşmadan önce, pratikte tekrar tekrar aynı belirtiye yol açan tipik hata kaynaklarına bir göz atmakta fayda var.
Oturum anahtarı, n8n'in belirli bir konuşmayı bellekte sakladığı anahtardır. n8n dokümantasyonuna göre, hem Simple Memory hem de Postgres Chat Memory, "the key to use to store the memory in the workflow data"'yı, Postgres durumunda ise veritabanı tablosunu belirlemek için tam olarak bu tek zorunlu parametreyi ister. Pratikte bu şu anlama gelir: her konuşmanın kendi sabit değerine ihtiyacı vardır, örneğin Chat Trigger'dan gelen sohbet kimliği, telefon senaryolarında bir telefon numarası veya CRM'inizden bir müşteri kimliği. Bunun yerine her çalıştırmada değişen bir ifade kullanırsanız, her mesajda yeni, boş bir bellek oluşur. Kolayca gözden kaçan bir ayrıntı: bellek düğümleri gibi alt düğümler, dokümantasyona göre ifadeleri her zaman yalnızca ilk öğe için çözer, normal düğümler gibi her öğe için ayrı ayrı değil. Bir toplu işte birden fazla sohbet mesajı işlerseniz, bu yanlış veya karışık bir oturum anahtarına yol açabilir.
Düğüm listesinde Window Buffer Memory olarak listelenen Simple Memory, dokümantasyona göre konuşma geçmişini doğrudan çalışan n8n örneğinin workflow verilerinde tutar ve bu da onu bir ajana bellek kazandırmanın en hızlı yolu yapar. Sorun şu: bu bellek kalıcı olarak bir veritabanına bağlı değildir ve n8n'e göre kuyruk modunda çalışan bir üretim workflow'unda açıkça güvenilir şekilde çalışmaz. Postgres Chat Memory ise her mesajı, n8n'in gerektiğinde otomatik olarak oluşturduğu kendi Postgres veritabanınızdaki bir tabloya yazar. Böylece geçmiş, yeniden başlatmalara, dağıtımlara ve birden fazla worker sürecine dayanır. Her iki düğüm türü de, ajanın bağlam olarak kaç önceki etkileşimi dikkate aldığını belirleyen "Context Window Length" parametresini paylaşır: çok yüksek bir değer, token tüketimini ve yanıt süresini gereksiz yere artırır. Postgres ile önemli olan: aynı workflow'da birden fazla Postgres Chat Memory düğümü bağlarsanız, dokümantasyona göre bunlar varsayılan olarak aynı bellek örneğine erişir. Ayrı konuşmalar bu nedenle farklı düğümler değil, farklı oturum anahtarları gerektirir.
Sıkça gözden kaçan bir adım, Chat Trigger Node'un kendisiyle ilgilidir. Yalnızca orada "Load Previous Session"ı "Off"tan "From Memory"ye çevirdiğinizde, bir bellek düğümü bağlama olasılığı ortaya çıkar ve n8n bir oturum başladığında önceki geçmişi yükler. n8n ayrıca, her iki bileşenin de aynı gerçeklik kaynağını kullanması için Chat Trigger ve ajanı aynı bellek düğümüne bağlamayı açıkça önerir. Aksi takdirde, farklı oturum anahtarlarına sahip iki ayrı bellek düğümü, tek ve aynı konuşma için iki paralel, tutarsız bellek oluşturur; bu da düzensiz veya çelişkili yanıt davranışı olarak kendini gösterir.
Dahili bir test botu veya bir proof of concept için Simple Memory genellikle yeterlidir. Bir ajan gerçek müşteri verileriyle üretimde çalışmaya başladığında, aynı anda birden fazla kullanıcıya hizmet verdiğinde veya kimin ajana ne zaman ne söylediğinin izlenebilir olması gerektiğinde, Postgres Chat Memory gibi kendi veritabanınızda kalıcı depolama daha sağlam bir seçimdir, çünkü geçmiş orada dışa aktarılabilir, kontrol edilebilir ve gerekirse silinebilir. Böyle bir mimariyi temiz bir oturum anahtarı konseptiyle birlikte kurmak isteyenler, NordFlux'un yapay zeka ajanı hizmetlerinde ve genel olarak n8n otomasyonunda bir başlangıç noktası bulur.
Oturum anahtarı, bir bellek düğümünün bir konuşma geçmişini kaydettiği ve yeniden bulduğu tanımlayıcıdır. Her konuşma için sabit ve benzersiz olmalıdır, örneğin Chat Trigger'dan gelen sohbet kimliği, aksi takdirde ajan önceki mesajları artık eşleştiremez.
n8n dokümantasyonuna göre Simple Memory, geçmişi çalışan örneğin workflow verilerinde tutar ve bu nedenle bir veritabanına bağlı değildir. Birden fazla worker ile kuyruk modunda çalışan üretim workflow'larında düğüm bu nedenle açıkça güvenilir şekilde çalışmaz, çünkü sonraki çağrıların aynı worker'a ulaşacağı garanti edilmez.
Evet, ancak birden fazla Postgres Chat Memory düğümü, dokümantasyona göre varsayılan olarak aynı bellek örneğine erişir. Ayrı konuşmalar için farklı oturum anahtarlarına ihtiyacınız vardır, mutlaka farklı düğümlere değil.
Evet. "Load Previous Session" seçeneği "From Memory" olarak ayarlanmalıdır, aksi takdirde n8n tetikleyiciyi bir bellek düğümüne bağlamaz ve önceki geçmişi yüklemez. Ayrıca, Chat Trigger ve ajan aynı bellek düğümüne bağlanmalıdır.
NordFlux, kuruluşlar için dijital çalışanlar kurar: tekrar eden işleri üstlenen otomasyonlar ve KI ajanları. Kontrol sizde kalır.
n8n "JavaScript heap out of memory" hatası mı veriyor? İşte NODE_OPTIONS, dosya sistemi modu ve execution pruning ile çözümü.
n8n'deki tüm tetikleyici türlerine genel bakış: Schedule, Webhook, Polling, Manual ve Chat; her senaryo için kullanım önerisiyle birlikte.
Yapay zeka (YZ) ajanları için Make mi, n8n mi: Kurulum, çalıştırma başına maliyet ve veri üzerinde kontrol açısından farklar karşılaştırması.
Oturum anahtarları, Simple Memory ile Postgres Memory arasındaki doğru seçim ve Chat Trigger ile ajanın doğru bağlanması, bir sohbetin tutarlı kalıp kalmayacağını belirler. NordFlux, n8n ajanlarınızın bellek mimarisini kullanım hacminize ve gereksinimlerinize uygun şekilde kurar.