سیستمهای حافظه ایجنت
مدل زبانی بهتنهایی هیچ حافظهای بین دو فراخوانی جداگانه ندارد. هر آنچه بهعنوان «حافظه» در یک ایجنت میبینید، در واقع یک لایهی مهندسیشده در اطراف مدل است.
چرا ایجنت به حافظه نیاز دارد؟
بدون حافظه، هر تعامل با ایجنت از صفر شروع میشود: کاربر باید هر بار خودش را دوباره معرفی کند، ترجیحاتش را دوباره بگوید، و ایجنت هیچ درسی از تعاملات قبلی نمیگیرد. حافظه این وضعیت را حل میکند — اما انواع مختلفی دارد که هرکدام مسئلهی متفاوتی را حل میکنند.
حافظه کوتاهمدت (Short-term)
همان پنجره کانتکست فعلی مکالمه — تاریخچهی پیامهای همین گفتوگو. سادهترین نوع حافظه، اما با پایان مکالمه یا پر شدن پنجره کانتکست از بین میرود.
حافظه بلندمدت (Long-term)
اطلاعاتی که باید بین جلسات مختلف باقی بمانند (ترجیحات کاربر، تاریخچهی خرید). معمولاً در یک پایگاهداده برداری ذخیره میشود و در ابتدای هر مکالمهی جدید، بخشهای مرتبط آن بازیابی میشود — دقیقاً با همان مکانیزم RAG.
حافظه رویدادی (Episodic)
رکورد مشخصی از رویدادهای گذشته: «کاربر در تاریخ ۱۴۰۴/۰۳/۱۲ سفارش X را ثبت و بعد لغو کرد». برخلاف حافظهی معنایی که «حقایق کلی» را نگه میدارد، حافظهی رویدادی «اتفاقات مشخص» را با جزئیات زمانی ثبت میکند.
حافظه معنایی (Semantic)
حقایق کلی و پایدار دربارهی دنیا یا کاربر: «کاربر به محصولات ورزشی علاقه دارد»، «سایز کفش کاربر ۴۲ است». این نوع حافظه معمولاً از تجمیع چند رویداد یا تعامل مکرر استخراج میشود.
حافظه رویهای (Procedural)
دانش «چطور انجامدادن» یک کار — مثلاً توالی درست فراخوانی ابزارها برای تکمیل یک سفارش. این نوع حافظه اغلب بهشکل قوانین، الگو یا حتی خودِ کد/پرامپت سیستم تعبیه میشود، نه یک رکورد دادهای ساده.
نحوه پیادهسازی
| نوع حافظه | محل ذخیرهسازی رایج |
|---|---|
| کوتاهمدت | آرایه پیامها در حافظه برنامه (RAM) |
| بلندمدت / معنایی | پایگاهداده برداری (Vector DB) |
| رویدادی | پایگاهداده رابطهای یا لاگ ساختیافته |
| رویهای | پرامپت سیستم، فایل قوانین، یا کد |
فراموشی و تجمیع حافظه (Forgetting & Consolidation)
حافظهای که هرگز چیزی را حذف نمیکند، بهمرور به یک انبار بینظم و پرهزینه تبدیل میشود — هم از نظر فضای ذخیرهسازی، هم از نظر کیفیت بازیابی (هرچه رکوردهای بیربط بیشتر باشند، بازیابی معنایی نویزیتر میشود). به همین دلیل سیستمهای حافظهی بالغ معمولاً یک لایهی مدیریت هم دارند:
- Consolidation (تجمیع) — چند رویداد جزئی و مرتبط (حافظهی رویدادی) بهمرور در یک حقیقت کلیتر (حافظهی معنایی) خلاصه میشوند؛ مثلاً پنج بار خرید کفش ورزشی، به رکورد «کاربر به پوشاک ورزشی علاقه دارد» تبدیل میشود.
- Decay (افت اهمیت با گذر زمان) — رکوردهای قدیمیتر و کمتر استفادهشده، امتیاز پایینتری در رتبهبندی بازیابی میگیرند تا اطلاعات تازهتر در اولویت باشد.
- حذف صریح — کاربر باید بتواند بخشی از حافظهی خودش را پاک کند (الزام رایج حریم خصوصی)؛ این یعنی حافظه باید از ابتدا با قابلیت حذف انتخابی طراحی شود، نه فقط افزودن.
سوالات متداول
آیا هر ایجنت به همهی این انواع حافظه نیاز دارد؟
نه. یک ایجنت سادهی پاسخگویی ممکن است فقط به حافظهی کوتاهمدت نیاز داشته باشد؛ یک دستیار خرید شخصیسازیشده به ترکیبی از هر چهار نوع نیاز دارد.
تفاوت حافظه بلندمدت با RAG چیست؟
RAG یک تکنیک بازیابی است؛ حافظه بلندمدت یکی از کاربردهای همان تکنیک است — RAG را روی «دانش عمومی سازمان» اجرا میکنید، حافظه بلندمدت را روی «تاریخچهی مخصوص یک کاربر».