تیپ #۵
تفاوت حافظه کوتاهمدت و بلندمدت در ایجنتها
حافظه کوتاهمدت ایجنت چیزی جز پنجرهی بافت (context window) نیست: تاریخچهی گفتگو و نتیجهی ابزارها در طول یک تسک، که با پایان نشست پاک میشود. در مقابل، حافظه بلندمدت بیرون از مدل و در یک انبار واقعی مثل دیتابیس برداری، جدول کلید-مقدار یا فایل نگهداری میشود و فقط وقتی به آن نیاز باشد بازیابی میشود 🗂️. قاعدهی عملی این است که پنجرهی بافت را سبک نگه دارید و هر چیزی که باید بعد از نشست باقی بماند را با یک نوشتن صریح در حافظهی بیرونی ثبت کنید.
توضیح کاملتر
هر ایجنت در هر لحظه فقط به آنچه در پنجرهی بافت مدل جا شده دسترسی دارد و این پنجره هم محدود است و هم پرهزینه. حافظه کوتاهمدت همان وضعیت جاری گفتگو و خروجی ابزارهاست که معمولاً در قالب state گراف یا لیست پیامها نگهداری میشود و با پایان نشست از بین میرود. حافظه بلندمدت اما یک تصمیم معماری است: باید مشخص کنید چه چیزی، کجا و با چه کلیدی ذخیره شود و در چه شرایطی بازیابی شود. بدون چنین سیاستی، ایجنت یا همهچیز را داخل پرامپت میریزد و کانتکست میترکد، یا هیچچیز را به خاطر نمیسپارد و هر بار از صفر شروع میکند. برای مثال یک ایجنت پشتیبانی میتواند پلن کاربر و مشکلات حلشدهی قبلی را در یک استور کلید-مقدار بنویسد و در شروع نشست بعدی فقط خلاصهی مرتبط را بخواند. ابزارهایی مثل LangGraph با مفهوم store و checkpoint دقیقاً همین تفکیک را پیاده میکنند. نکتهی کلیدی این است که حافظهی بلندمدت یک قابلیت خودکار مدل نیست، بلکه رفتاری است که شما در ایجنت طراحی میکنید.
← بازگشت به همهٔ نکتههای روز