Müştəri xidməti agentu yaradarkən, demo layihəsini real məhsula çevirmək üçün düzgün backend qurmaq zəruri hissədir. Əvvəl LangGraph agenti yalnız prosessin yaddaşında məlumatları saxlayırdı, amma bu yanaşma istehsal ortamında çox məhdud imkanlar təqdim edir.
In-Memory Yaddaş Məhdudiyyətləri
Başlanğıcda, booking sistemi iki Python komponenti ilə işləyirdi. Birincisi, LangGraph checkpointer idi—bu, agent qrafının her addımında vəziyyəti saxlayan state persistence təbəqəsi. İkincisi, təyin olunmuş texniklərin və booking-lərin saxlandığı sadə Python siyahısı idi. Bu struktur test məqsədləri üçün ideal idi, lakin əsl problemlər ortaya çıxırdı:
- Proses yenidən başladığında bütün booking-lər və söhbət sınırları silinirdi
- Müxtəlif sessialar bir-birinin yaratdığı appointment-ləri görmə imkanı yoxdu
- İki sessiyanın eyni vaxt slotunu təklif etmə riski mövcud idi (double-booking)
PostgreSQL-ə Keçid Strategiyası
Bu məhdudiyyətləri aradan qaldırmaq üçün PostgreSQL seçildi. Sistem yenidən strukturlaşdırıldı: agentin işçi yaddaşı olan AgentState hələ də LangGraph-da qalır, lakin persistent məlumatlar PostgreSQL checkpointer və booking engine-i vasitəsilə saxlanılır. Bu yanaşmanın üstün tərəfi, Streamlit, WhatsApp və ya hər hansı digər interfeysin eyni backend-dən istifadə edə biləcəyidir.
BookingRepository Protocol Deseni
Arxitekturanın ən mühüm hissəsi BookingRepository protokolu idi. Bu, qraf nodu-larının birbaşa Postgres-ə əvvəl, sabit bir interfeys üzərində asılı olmasını təmin edir. Sistem technicians(), list_bookings() və create_booking() metodlarını təyin edir. Uygulama zamanı PostgresBookingRepository yaxud InMemoryBookingRepository plugged edilir. Bu elastiklik lokal testlər üçün bellə datanın istifadəsinə, istehsalda isə Postgres istifadəsinə imkan verir.
Qraf Nodu-larında Məlumat Axını
Actual booking prosesində yalnız iki nod repository-yə müraciət edir. Generate schedule options nodu list_bookings() çağırır—Postgres istifadə edərkən bunun SELECT sorğusu olur—mövcud booking-ləri yüklənir və texniklərin məlumatları eməl olunur. Deterministic qaydalar tətbiq edilir: sonrakı 7 gün, bazar günləri atlanan, müəyyən başlama vaxtları və sürmə. Confirm booking nodu isə create_booking() çağırır və yazılış əməliyyatı yerinə yetirir. Sistem təkrar overlap yoxlaması edilir, appointment təsdiqlənir və booking.id state-ə əlavə edilir.
Checkpointer Arxitekturası
LangGraph-ın checkpointer-i conversation state-ini saxlayır. Hər turn-də AgentState update-lənir, messages, booking_details, calculated_price, time_options və digər sahələr eməl olunur. DATABASE_URL ortam dəyişkəni təyin olunarsa, checkpointer PostgreSQL-ə keçir, əks halda yaddaşda qalır. Bu, app startup-da create_persistence() funksiyası tərəfindən idarə edilir.
Praktiki Tətbiq üçün Nəticə
Bu yeni arxitektura ilə booking agenti gerçəkten multi-session, multi-interface məhsula çevrilir. Məlumatlar persistent, synchronized və scalable olur. Məqalənin devam hissəsində Docker-lə quraşdırma və hosted Postgres instance-ə əlavə etmə göstəriləcək.
Mənbə: Towards Data Science