#এ আই কথন - 004 ( Memory)
আগের কথনে ছিল Orchestration, agent কীভাবে চলে। সেটা how এর answer। তারপর ছিল Grounding, agent কী জানে। সেটা what এর answer। তারপর ছিল Evals, কতটুকু বিশ্বাস করা যায়। সেটা trust এর answer। এই কথনে Memory, agent কতক্ষণ মনে রাখে।
#Memory and #LLM
ধরেন আপনার agent কে একটা কাজ দিলেন। Research করো, plan বানাও, কিছু tool call করো। সে করলো। ভালোই করলো। পরদিন বললেন, "আগেরটার continue করো।" Blank। কিছুই মনে নাই। কোনো decision না, context না, আগের tool-এ কী response আসছিল সেইটাও না।
এইটা bug না। এইটা by design। LLM এর by default কোনো memory নাই। প্রতিটা call নতুন করে শুরু। Context window এ যা আছে সেটাই সব। Window বন্ধ হলে সব গেলো।
আপনি বলবেন, "ঠিকাছে, conversation history রাখবো।" রাখেন। কিন্তু তারপর কী হয় ?
১০টা turn পরে context ভরতে শুরু করবে। ৫০টা tool call এর log ঢুকালে আরও আগে ভরবে। Agent এর notes, results, error logs, সব একসাথে দিলে এইটা আর conversation থাকে না। একটা দেয়াল হয়ে যায় ( becomes a wall of text the LLM has to stare at, nothing to do, মনে করেন single sheet of paper for analogy) আর LLM দেয়ালের মাঝখানের জিনিস ভালো মনে রাখে না। Beginning আর end মনে থাকে, মাঝেরটা হারায়। এইটাকে বলে "lost in the middle" problem।
তাহলে করবেন কী ?
In-context এ রাখবেন এই মুহূর্তে যা দরকার শুধু সেটাই। বাকিটা external storage-এ। vector DB বা database, দরকার হলে retrieve করবেন। (RAG মনে আছে? এইখানেই সেটা কাজে লাগে।)
Conversation এর পুরো history না রেখে summary রাখবেন। Agent কীভাবে কাজ করবে সেইটা system prompt এ bake করে দিবেন।
কিন্তু এই balance টাই আসল সমস্যা। কতটুকু compress করবেন ? কোন detail ফেলে দেওয়া safe ? Summary করতে গিয়ে কোনো decision এর context হারিয়ে গেলে agent পরে same mistake করবে। আপনি টেরও পাবেন না।
এইটা LLM এর limitation না। এইটা আপনার engineering সিদ্ধান্ত। LLM মনে রাখবে না, কিন্তু কী মনে রাখতে হবে সেইটা আপনাকেই design করতে হবে। 😄
এই series এর পরের post এ Context Window নিয়া লিখবো, কীভাবে LLM-কে যত বেশি দেওয়া যায় তত ভালো, and এইটা actually একটা myth। So don't miss that. 😄
#এ আই কথন-004 #AI #Memory #LLM #AgentDesign #ContextWindow