وقتی درباره مزایای منحصربهفرد ساخت عوامل هوش مصنوعی صحبت میکنیم، دو موضوع اصلی معمولاً مطرح میشود: توانایی فراخوانی ابزارها برای انجام وظایف و توانایی بهبود با گذر زمان. حافظه در پایه ایجاد عاملی است که خودش را بهبود میبخشد و میتواند تجربیات بهتری برای کاربران ما خلق کند.
در این درس، به بررسی حافظه در عوامل هوش مصنوعی خواهیم پرداخت و چگونگی مدیریت و استفاده از آن را به نفع برنامههای خود بررسی میکنیم.
این درس پوشش میدهد:
• درک حافظه عوامل هوش مصنوعی: حافظه چیست و چرا برای عوامل ضروری است.
• پیادهسازی و ذخیره حافظه: روشهای عملی برای افزودن قابلیتهای حافظه به عوامل هوش مصنوعی شما، با تمرکز بر حافظه کوتاهمدت و بلندمدت.
• خودبهبودی عوامل هوش مصنوعی: چگونه حافظه به عوامل اجازه میدهد از تعاملات گذشته بیاموزند و با گذزمان بهبود یابند.
این درس شامل دو دفترچه یادداشت جامع است:
• 13-agent-memory.ipynb: حافظه را با استفاده از Mem0 و Azure AI Search با فریمورک Semantic Kernel پیادهسازی میکند
• 13-agent-memory-cognee.ipynb: حافظه ساختاریافته را با Cognee پیادهسازی میکند که به صورت خودکار نمودار دانش مبتنی بر جاسازیها میسازد، نمودار را تجسم میدهد و بازیابی هوشمند را انجام میدهد
پس از اتمام این درس، شما خواهید توانست:
• تفاوت انواع مختلف حافظه عامل هوش مصنوعی را درک کنید، از جمله حافظه کاری، کوتاهمدت و بلندمدت، همچنین شکلهای تخصصی مانند حافظه شخصیت و اپیزودیک.
• حافظه کوتاهمدت و بلندمدت را برای عوامل هوش مصنوعی با استفاده از فریمورک Semantic Kernel پیادهسازی و مدیریت کنید، با بهرهگیری از ابزارهایی مانند Mem0، Cognee، حافظه Whiteboard و ادغام با Azure AI Search.
• اصول پشت عوامل خودبهبودی هوش مصنوعی را بفهمید و اینکه چگونه سیستمهای مدیریت حافظه قوی به یادگیری مداوم و سازگاری کمک میکنند.
در ذات خود، حافظه برای عوامل هوش مصنوعی به مکانیزمهایی اشاره دارد که به آنها اجازه میدهد اطلاعات را حفظ و بازیابی کنند. این اطلاعات میتواند جزئیات خاص درباره یک گفتوگو، ترجیحات کاربر، اقدامات گذشته یا حتی الگوهای یادگرفتهشده باشد.
بدون حافظه، برنامههای هوش مصنوعی معمولاً بدون حالت (stateless) هستند، یعنی هر تعامل از صفر شروع میشود. این منجر به تجربه کاربری تکراری و ناامیدکنندهای میشود که عامل «سابقه یا ترجیحات قبلی را فراموش میکند».
هوش یک عامل عمیقاً وابسته به توانایی آن در به یادآوردن و استفاده از اطلاعات گذشته است. حافظه به عوامل امکان میدهد:
• بازتابی (Reflective): از اقدامات و نتایج گذشته بیاموزند.
• تعاملی (Interactive): حفظ زمینه در یک مکالمه جاری.
• پیشدستانه و واکنشی (Proactive and Reactive): پیشبینی نیازها یا پاسخ مناسب بر اساس دادههای تاریخی.
• خودمختار (Autonomous): با تکیه بر دانش ذخیرهشده، مستقلتر عمل کنند.
هدف پیادهسازی حافظه این است که عوامل قابل اعتمادتر و توانمندتر شوند.
این را به عنوان یک برگ کاغذ یادداشت فکر کنید که عامل هنگام انجام یک وظیفه یا فرایند فکری در حال انجام از آن استفاده میکند. این حافظه اطلاعات فوری مورد نیاز برای محاسبه قدم بعدی را نگه میدارد.
برای عوامل هوش مصنوعی، حافظه کاری معمولاً مرتبطترین اطلاعات از یک گفتوگو را ضبط میکند، حتی اگر تاریخچه کامل گفتگو طولانی یا کوتاه شده باشد. تمرکز آن بر استخراج عناصر کلیدی مانند نیازها، پیشنهادات، تصمیمات و اقدامات است.
مثال حافظه کاری
در یک عامل رزرو سفر، حافظه کاری ممکن است درخواست فعلی کاربر را بگیرد، مانند “من میخواهم یک سفر به پاریس رزرو کنم”. این نیاز خاص در زمینه فوری عامل نگه داشته میشود تا تعامل جاری را هدایت کند.
این نوع حافظه اطلاعات را در طول یک گفتوگوی واحد یا جلسه نگه میدارد. این زمینه چت فعلی است که اجازه میدهد عامل به نوبتهای قبلی دیالوگ مراجعه کند.
مثال حافظه کوتاهمدت
اگر کاربر بپرسد «هزینه پرواز به پاریس چقدر است؟» و سپس بپرسد «اقامتگاه آنجا چطور؟» حافظه کوتاهمدت تضمین میکند که عامل میداند «آنجا» به «پاریس» در همان گفتگو اشاره دارد.
این اطلاعاتی است که در چندین گفتگو یا جلسه حفظ میشود. این اجازه میدهد عوامل ترجیحات کاربر، تعاملات تاریخی یا دانش کلی را در طول زمانهای طولانیتر به یاد داشته باشند. این برای شخصیسازی مهم است.
مثال حافظه بلندمدت
حافظه بلندمدت ممکن است ذخیره کند که «بن از اسکی و فعالیتهای بیرونی لذت میبرد، قهوه با منظره کوه دوست دارد و به خاطر آسیب قبلی میخواهد از شیبهای پیشرفته اسکی اجتناب کند». این اطلاعات، که از تعاملات قبلی آموخته شده است، بر توصیهها در جلسات برنامهریزی سفر آینده تأثیر میگذارد و آنها را کاملاً شخصیسازیشده میسازد.
این نوع حافظه تخصصی به عامل کمک میکند شخصیت یا «شخصیت» ثابتی ایجاد کند. به عامل اجازه میدهد تا جزئیاتی درباره خود یا نقش مورد نظرش به یاد داشته باشد و تعاملات را روانتر و متمرکزتر کند.
مثال حافظه شخصیت
اگر عامل سفر برای «برنامهریز اسکی خبره» طراحی شده باشد، حافظه شخصیت ممکن است این نقش را تقویت کند و پاسخهای آن را مطابق با لحن و دانش یک خبره تنظیم کند.
این حافظه توالی قدمهایی را که عامل در انجام یک کار پیچیده برداشته است ذخیره میکند، از جمله موفقیتها و شکستها. این مانند به یاد آوردن «اپیزودها» یا تجربههای گذشته برای یادگیری از آنهاست.
مثال حافظه اپیزودیک
اگر عامل تلاش کرده باشد پروازی خاص را رزرو کند اما به دلیل عدم دسترسی موفق نبوده، حافظه اپیزودیک میتواند این شکست را ثبت کند و اجازه دهد عامل پروازهای جایگزین را امتحان کند یا در تلاش بعدی کاربر را بهتر راهنمایی کند.
این حافظه در استخراج و به یاد سپردن موجودیتهای خاص (مانند افراد، مکانها یا اشیا) و رویدادها از گفتگوها دخیل است. این امکان را به عامل میدهد تا فهم ساختاریافتهای از عناصر کلیدی بحثشده بسازد.
مثال حافظه موجودیت
از گفتگویی درباره سفر گذشته، عامل ممکن است «پاریس»، «برج ایفل» و «شام در رستوران Le Chat Noir» را به عنوان موجودیت استخراج کند. در تعامل آینده، عامل میتواند «Le Chat Noir» را به یاد آورد و پیشنهاد رزرو جدید دهد.
هرچند RAG یک تکنیک گستردهتر است، «RAG ساختاریافته» به عنوان یک فناوری حافظه قدرتمند برجسته شده است. این فناوری اطلاعات متراکم و ساختاریافته را از منابع مختلف (مکالمات، ایمیلها، تصاویر) استخراج میکند و برای بهبود دقت، بازیابی و سرعت پاسخها به کار میرود. برخلاف RAG کلاسیک که فقط بر همسویی معنایی متکی است، RAG ساختاریافته با ساختار ذاتی اطلاعات کار میکند.
مثال RAG ساختاریافته
به جای تطبیق کلمات کلیدی، RAG ساختاریافته میتواند جزئیات پرواز (مقصد، تاریخ، زمان، شرکت هواپیمایی) را از یک ایمیل استخراج کرده و به صورت ساختاریافته ذخیره کند. این امکان پرسوجوهای دقیق مانند «چه پروازی روز سهشنبه به پاریس رزرو کردم؟» را فراهم میسازد.
پیادهسازی حافظه برای عوامل هوش مصنوعی شامل یک فرایند سیستماتیک از مدیریت حافظه است که شامل تولید، ذخیره، بازیابی، ادغام، بهروزرسانی و حتی «فراموشی» (یا حذف) اطلاعات میشود. بازیابی جزو جنبههای حیاتی است.
یکی از راههای ذخیره و مدیریت حافظه عامل استفاده از ابزارهای تخصصی مانند Mem0 است. Mem0 به عنوان لایه حافظه پایدار عمل میکند که به عوامل اجازه میدهد تعاملات مهم را به یاد آورند، ترجیحات کاربر و زمینههای واقعی را ذخیره کنند و از موفقیتها و شکستها در طول زمان بیاموزند. ایده این است که عوامل بدون حالت به عوامل دارای حالت تبدیل شوند.
این سیستم از طریق فرآیند دو مرحلهای حافظه: استخراج و بهروزرسانی کار میکند. ابتدا پیامهای اضافه شده به رشته عامل به سرویس Mem0 ارسال شده، که از یک مدل زبان بزرگ (LLM) برای خلاصهسازی تاریخچه گفتگو و استخراج حافظههای جدید استفاده میکند. سپس یک مرحله بهروزرسانی هدایت شده توسط LLM مشخص میکند که آیا این حافظهها باید اضافه، تغییر یا حذف شوند و آنها را در یک پایگاه داده هیبریدی ذخیره میکند که میتواند شامل پایگاههای داده برداری، نموداری و کلید-مقدار باشد. این سیستم همچنین از انواع مختلف حافظه پشتیبانی میکند و میتواند حافظه نموداری برای مدیریت روابط میان موجودیتها را دربرگیرد.
رویکرد قدرتمند دیگر استفاده از Cognee است، یک حافظه معنایی متنباز برای عوامل هوش مصنوعی که دادههای ساختاریافته و غیرساختاریافته را به نمودارهای دانش قابل پرسوجو تبدیل میکند که توسط جاسازیها پشتیبانی میشوند. Cognee معماری دو ذخیرهای دارد که جستجوی تشابه برداری را با روابط نموداری ترکیب میکند و به عوامل اجازه میدهد نه تنها اطلاعات مشابه، بلکه نحوه ارتباط مفاهیم با یکدیگر را درک کنند.
این سیستم در بازیابی ترکیبی (hybrid retrieval) که تلفیقی از تشابه برداری، ساختار نموداری و استدلال LLM است، تخصص دارد — از جستجوی تکههای خام تا پرسش و پاسخ با آگاهی از نمودار. این سیستم حافظه زنده را حفظ میکند که تحول و رشد مییابد در حالی که به عنوان یک نمودار متصل قابل پرسوجو باقی میماند و از زمینه جلسه کوتاهمدت و حافظه پایدار بلندمدت پشتیبانی میکند.
دفترچه یادداشت Cognee (13-agent-memory-cognee.ipynb) نشان میدهد چگونه این لایه حافظه یکپارچه ساخته میشود، با مثالهای عملی شامل جذب منابع داده متنوع، تجسم نمودار دانش و پرسوجو با استراتژیهای جستجوی متفاوت مطابق نیازهای خاص عامل.
فراتر از ابزارهای تخصصی حافظه مانند mem0، میتوانید از خدمات جستجوی قدرتمندی مانند Azure AI Search به عنوان بکاند برای ذخیره و بازیابی حافظهها استفاده کنید، بهخصوص برای RAG ساختاریافته.
این امکان را فراهم میکند که پاسخهای عامل خود را بر اساس دادههای خودتان پایهریزی کنید و پاسخهای مرتبطتر و دقیقتری ارائه دهید. Azure AI Search میتواند برای ذخیره حافظههای سفر مخصوص کاربر، کاتالوگهای محصول یا هر دانش تخصصی دیگری استفاده شود.
Azure AI Search قابلیتهایی مانند RAG ساختاریافته را پشتیبانی میکند که در استخراج و بازیابی اطلاعات متراکم و ساختاریافته از مجموعه دادههای بزرگ مانند تاریخچه مکالمات، ایمیلها یا حتی تصاویر بسیار توانمند است. این کار «دقت و بازیابی فرابشری» در مقایسه با روشهای سنتی تقسیم متن و جاسازی فراهم میکند.
الگوی رایج برای عوامل خودبهبود این است که یک «عامل دانش» معرفی شود. این عامل جداگانه مکالمه اصلی بین کاربر و عامل اصلی را نظارت میکند. نقش آن این است که:
شناسایی اطلاعات ارزشمند: تعیین کند آیا بخشی از گفتگو ارزش ذخیره شدن به عنوان دانش کلی یا ترجیح خاص کاربر را دارد.
استخراج و خلاصهسازی: یادگیری یا ترجیح اساسی را از گفتگو استخراج کند.
ذخیره در پایگاه دانش: این اطلاعات استخراجشده را غالباً در یک پایگاه داده برداری ذخیره کند تا بعداً بازیابی شود.
تقویت پرسوجوهای آینده: وقتی کاربر پرسوجوی جدیدی شروع میکند، عامل دانش اطلاعات ذخیره شده مرتبط را بازیابی کرده و به پرسش کاربر اضافه میکند، و به عامل اصلی زمینه مهمی میدهد (مشابه RAG).
• مدیریت تأخیر (Latency Management): برای جلوگیری از کند شدن تعاملات کاربر، ابتدا میتوان از مدلی ارزانتر و سریعتر استفاده کرد که به سرعت بررسی کند آیا اطلاعات ارزش ذخیره شدن یا بازیابی را دارد، و تنها در مواقع لازم فرآیند استخراج/بازیابی پیچیدهتر را فعال کرد.
• نگهداری پایگاه دانش: برای پایگاه دانشی در حال رشد، اطلاعات کمتر استفادهشده میتوانند به «ذخیره سرد» منتقل شوند تا هزینهها مدیریت شود.
به Azure AI Foundry Discord بپیوندید تا با سایر یادگیرندگان دیدار کنید، در ساعات پاسخ به سوالات شرکت کنید و سوالات خود درباره عوامل هوش مصنوعی را مطرح کنید.
سلب مسئولیت: این سند با استفاده از سرویس ترجمه مبتنی بر هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش میکنیم دقت را به حداکثر برسانیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل اشتباهات یا نادرستیهایی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما مسئول هیچگونه سوء تفاهم یا تفسیر نادرست ناشی از استفاده از این ترجمه نیستیم.