بهطور کلی، میتوان دو نوع حافظه را در نظر گرفت: حافظه کوتاهمدت و حافظه بلندمدت.
حافظه کوتاهمدت برای ذخیرهسازی موقتی اطلاعات در جریان یک تعامل با کاربر به کار میرود.
برای مثال، گفتیم معمولاً تنها یک ایجنت (Agent) نداریم، بلکه گرافی از ایجنتها وجود دارد که با همکاری یکدیگر وظیفه تحقق درخواست کاربر را بر عهده دارند. حال اگر خروجی یکی از ایجنتها باید توسط ایجنت دیگری بررسی شود (الگوی Reflection)، این سؤال پیش میآید که ایجنت دوم چگونه به خروجی ایجنت اول دسترسی داشته باشد؟
در اینجا از حافظه کوتاهمدت استفاده میکنیم. حافظهای که معمولاً بهصورت موقتی ذخیره میشود. در این حافظه، اطلاعاتی که سایر ایجنتها به آن نیاز دارند، نگهداری میگردد.
در کتابخانهی Google ADK این مفهوم با واژهی State بیان میشود. اگر به پشتصحنهی State نگاهی بیندازید، خواهید دید چیزی جز یک دیکشنری (Dictionary) نیست.
برای نمونه، یک ایجنت خروجی خود را با یک کلید خاص در این دیکشنری ذخیره میکند و ایجنت دیگر با دسترسی به همین دیکشنری، اطلاعات موردنیاز خود را میخواند.
کاربرد دیگر حافظه کوتاهمدت، در موقعیتی است که کاربر در حال چت با ایجنت است. در این حالت، لازم است محتوای گفتگوهای اخیر (مثلاً چند دقیقه پیش) در همان صفحه حفظ شود تا جریان مکالمه حفظ گردد. این اطلاعات معمولاً در قالب Events در کتابخانهی Google ADK ذخیره میشوند. مستندات این کتابخانه به این شکل آن را تعریف میکند:
An Event in ADK is an immutable record representing a specific point in the agent's execution. It captures user messages, agent replies, requests to use tools (function calls), tool results, state changes, control signals, and errors.
در کنار حافظه کوتاهمدت، به حافظه بلندمدت نیز نیاز داریم. جایی برای ذخیرهی اطلاعاتی که به تعامل خاصی محدود نمیشوند.
برای مثال، اگر چند ماه پیش سلیقهی کاربر را شناسایی کردهایم و میخواهیم آن را در خروجی ایجنتها لحاظ کنیم، این داده باید در حافظه بلندمدت ذخیره شود. چنین اطلاعاتی معمولاً در پایگاه داده (Database) نگهداری میشوند.
در واقع، حافظه بلندمدت زیربنای اصلی ساخت سرویسهای مبتنی بر RAG است که در فصل مخصوص خود بررسی میکنیم.
#ADP_AG_CH_8
@metapageai