Ajanlarda bellek: Simple/Postgres Memory, oturum anahtarları, "sohbet neden unutuyor"

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.

Sohbet neden "unutuyor": en sık görülen nedenler

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.

  • Bağlı bellek düğümü yok: Bağlı bir bellek alt düğümü olmadan, AI Agent Node'un belleği yoktur, her istek izole olarak işlenir.
  • Oturum anahtarı sabit veya boş: Oturum anahtarı her istekte aynı sabit değere sahipse veya eksikse, tüm konuşmalar aynı bellek havuzunda toplanır ya da hiç eşleştirilmez.
  • Chat Trigger "From Memory" olarak ayarlanmamış: Chat Trigger Node hakkındaki n8n dokümantasyonuna göre, "Load Previous Session" seçeneğini "From Memory" olarak ayarlamanız ve tetikleyiciyi ve ajanı aynı bellek düğümüne bağlamanız gerekir, aksi takdirde ajan önceki geçmişi yüklemez.
  • Kuyruk modunda Simple Memory: n8n'i birden fazla worker ile kuyruk modunda çalıştıranlar, Simple Memory düğümü dokümantasyonuna göre buna güvenemez, çünkü n8n ardışık çağrıların aynı worker tarafından işleneceğini garanti etmez.

Oturum anahtarı: bellek eşlemesinin kalbi

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.

Simple Memory ile Postgres Memory: temel fark

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.

Chat Trigger ve ajanı doğru şekilde bağlama

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.

Pratikte: çaba ne zaman değer

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.

n8n ajanlarında bellek hakkında sık sorulan sorular

n8n'de oturum anahtarı tam olarak nedir?

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.

Simple Memory bazen neden yeterli olmuyor?

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.

Bir workflow'da birden fazla bellek düğümü kullanabilir miyim?

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.

Belleğin çalışması için Chat Trigger'da ekstra bir şey ayarlamam gerekir mi?

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 hakkında

NordFlux UG (haftungsbeschränkt)

NordFlux, kuruluşlar için dijital çalışanlar kurar: tekrar eden işleri üstlenen otomasyonlar ve KI ajanları. Kontrol sizde kalır.

Hakkımızda daha fazlası
Ücretsiz ön analiz

Otomasyon veya KI hakkında somut sorularınız mı var?

Ücretsiz bir ön analizde durumunuzu doğrudan görüşürüz. Bağlayıcı değildir.