هنگامی که از مزایای منحصر به فرد ایجاد عاملهای هوش مصنوعی صحبت میشود، عمدتاً دو موضوع مطرح میشود: توانایی فراخوانی ابزارها برای انجام وظایف و توانایی بهبود در طول زمان. حافظه زیربنای ایجاد عاملی است که خود را بهبود میبخشد و میتواند تجربههای بهتری برای کاربران ما ایجاد کند.
در این درس، به بررسی نقش حافظه برای عاملهای هوش مصنوعی و نحوه مدیریت و استفاده از آن به نفع برنامههای خود خواهیم پرداخت.
این درس شامل موارد زیر است:
• درک حافظه عامل هوش مصنوعی: حافظه چیست و چرا برای عاملها اهمیت دارد.
• پیادهسازی و ذخیره حافظه: روشهای عملی برای افزودن قابلیت حافظه به عاملهای هوش مصنوعی، با تمرکز بر حافظه کوتاهمدت و بلندمدت.
• خود بهبوددهی عاملهای هوش مصنوعی: چگونه حافظه به عاملها امکان میدهد از تعاملات گذشته بیاموزند و در طول زمان بهتر شوند.
این درس شامل دو دفترچه آموزشی جامع است:
• 13-agent-memory.ipynb: پیادهسازی حافظه با استفاده از Mem0 و Azure AI Search همراه با Microsoft Agent Framework
• 13-agent-memory-cognee.ipynb: پیادهسازی حافظه ساختاریافته با Cognee، ساخت خودکار گراف دانش مبتنی بر تعبیهها، تجسم گراف و بازیابی هوشمند
پس از اتمام این درس، شما خواهید دانست چگونه:
• انواع مختلف حافظه عامل هوش مصنوعی شامل حافظه کاری، کوتاهمدت و بلندمدت، همچنین اشکال تخصصی مانند حافظه شخصیت و حافظه اپیزودیک را تمییز دهید.
• حافظه کوتاهمدت و بلندمدت عاملهای هوش مصنوعی را با استفاده از Microsoft Agent Framework پیادهسازی و مدیریت کنید، با بهرهگیری از ابزارهایی مانند Mem0، Cognee، حافظه تخته سفید و ادغام با Azure AI Search.
• اصول مربوط به عاملهای هوش مصنوعی خود بهبوددهنده را درک کنید و چگونه سیستمهای مدیریت حافظه قوی به یادگیری و سازگاری مداوم کمک میکنند.
در اصل، حافظه برای عاملهای هوش مصنوعی به مکانیزمهایی اشاره دارد که به آنها اجازه میدهد اطلاعات را ذخیره و بازیابی کنند. این اطلاعات میتواند جزئیات خاصی درباره یک گفتگو، ترجیحات کاربر، اقدامات گذشته یا حتی الگوهای یادگرفته شده باشد.
بدون حافظه، برنامههای هوش مصنوعی اغلب بدون حالت هستند، به این معنی که هر تعامل از ابتدا شروع میشود. این منجر به تجربهای تکراری و ناامیدکننده برای کاربر میشود که عامل «زمینه یا ترجیحات قبلی» را «فراموش» میکند.
هوش یک عامل به شدت با توانایی آن در یادآوری و استفاده از اطلاعات گذشته مرتبط است. حافظه به عاملها این امکان را میدهد تا:
• تفکری باشند: از اعمال و نتایج گذشته بیاموزند.
• تعاملپذیر باشند: حفظ زمینه در یک گفتگو جاری.
• پیشگیرانه و واکنشی باشند: با توجه به دادههای تاریخی نیازها را پیشبینی یا پاسخ مناسب دهند.
• خودمختار باشند: با اتکا به دانش ذخیره شده، عملکرد مستقلتری داشته باشند.
هدف پیادهسازی حافظه، قابل اطمینانتر و توانمندتر کردن عاملها است.
این نوع حافظه مانند یک تکه کاغذ یادداشت است که عامل هنگام انجام یک کار یا فرایند فکری جاری از آن استفاده میکند. این حافظه اطلاعات فوری مورد نیاز برای گام بعدی را نگه میدارد.
برای عاملهای هوش مصنوعی، حافظه کاری معمولاً اطلاعات مرتبطترین از یک گفتگو را ضبط میکند، حتی اگر تاریخ کامل چت طولانی یا بریده شده باشد. تمرکز آن بر استخراج عناصر کلیدی مانند نیازمندیها، پیشنهادات، تصمیمها و اقدامات است.
مثال حافظه کاری
در عامل رزرو سفر، حافظه کاری ممکن است درخواست جاری کاربر را مانند «میخواهم سفری به پاریس رزرو کنم» ثبت کند. این نیاز خاص در زمینه فوری عامل برای هدایت تعامل فعلی نگهداری میشود.
این نوع حافظه اطلاعات را برای مدت زمان یک مکالمه یا جلسه واحد نگه میدارد. این زمینه گفتگو یا چت جاری است که به عامل اجازه میدهد به نوبتهای قبلی دیالوگ مراجعه کند.
در نمونههای SDK پایتون Microsoft Agent Framework، این حافظه به AgentSession نگاشت میشود که با agent.create_session() ایجاد میگردد. جلسه حافظه کوتاهمدت داخلی این فریمورک است: این حافظه زمینه گفتگو را در حین استفاده از همان جلسه حفظ میکند، اما زمانی که جلسه پایان مییابد یا برنامه مجدداً راهاندازی شود این زمینه ذخیره نمیشود. برای حقایق و ترجیحاتی که باید در جلسات مختلف حفظ شوند به حافظه بلندمدت و معمولاً از طریق دیتابیس، شاخص برداری یا ذخیره پایدار دیگری استفاده کنید.
مثال حافظه کوتاهمدت
اگر کاربر بپرسد «قیمت پرواز به پاریس چقدر است؟» و سپس ادامه دهد «اقامت آنجا چطور؟»، حافظه کوتاهمدت تضمین میکند که عامل میفهمد «آنجا» به «پاریس» اشاره دارد در همان گفتگو.
این اطلاعاتی است که در طول چندین مکالمه یا جلسه حفظ میشود. این اجازه میدهد عاملها ترجیحات کاربر، تعاملات تاریخی یا دانش عمومی را در بازههای زمانی طولانیتر به خاطر بسپارند. این موضوع برای شخصیسازی اهمیت دارد.
مثال حافظه بلندمدت
مموری بلندمدت ممکن است این موارد را ذخیره کند که «بن به اسکی و فعالیتهای فضای باز علاقه دارد، قهوه با چشمانداز کوه دوست دارد و به دلیل آسیب قبلی میخواهد از مسیرهای پیشرفته اسکی اجتناب کند». این اطلاعات که از تعاملات گذشته آموخته شده، در جلسات برنامهریزی سفر آینده تاثیر میگذارد و آنها را بسیار شخصیسازی میکند.
این نوع حافظه تخصصی به یک عامل کمک میکند تا «شخصیت» یا «پرسونا»ی ثابتی توسعه دهد. این امکان را به عامل میدهد که جزئیاتی درباره خودش یا نقش تعریف شده برایش به خاطر بسپارد، که تعاملات را روانتر و متمرکزتر میکند.
مثال حافظه شخصیت
اگر عامل سفر بهعنوان «برنامهریز متخصص اسکی» طراحی شده باشد، حافظه شخصیت ممکن است این نقش را تقویت کند و پاسخهای آن را با لحن و دانش یک متخصص هماهنگ سازد.
این حافظه توالی گامهایی را که عامل طی یک کار پیچیده انجام میدهد، شامل موفقیتها و شکستها، ذخیره میکند. مثل به خاطر سپردن «قسمتها» یا تجربیات گذشته برای یادگیری از آنهاست.
مثال حافظه اپیزودیک
اگر عامل تلاش کرده باشد یک پرواز خاص را رزرو کند اما به دلیل عدم دسترسی ناموفق بوده، حافظه اپیزودیک میتواند این شکست را ثبت کند و در تلاش بعدی به گونهای آگاهانهتر گزینههای جایگزین پیشنهاد دهد یا کاربر را آگاه سازد.
این حافظه شامل استخراج و یادآوری موجودیتهای خاص (مانند افراد، مکانها یا اشیاء) و رویدادها از گفتگوها است. این امکان به عامل میدهد تا درک ساختار یافتهای از عناصر کلیدی بحث شده ایجاد کند.
مثال حافظه موجودیت
از یک گفتگو درباره سفر گذشته، عامل ممکن است «پاریس»، «برج ایفل» و «شام در رستوران Le Chat Noir» را به عنوان موجودیتها استخراج کند. در یک تعامل آینده، عامل میتواند «Le Chat Noir» را به خاطر بیاورد و پیشنهاد رزرو جدیدی ارائه دهد.
در حالی که RAG تکنیکی گستردهتر است، «RAG ساختار یافته» به عنوان یک فناوری حافظه قدرتمند برجسته شده است. این روش اطلاعات متراکم و ساختار یافته را از منابع مختلف (مکالمات، ایمیلها، تصاویر) استخراج میکند و برای افزایش دقت، یادآوری و سرعت پاسخها از آن استفاده میکند. برخلاف RAG کلاسیک که تنها بر تشابه معنایی تکیه میکند، RAG ساختار یافته با ساختار ذاتی اطلاعات کار میکند.
مثال RAG ساختار یافته
به جای صرفاً تطبیق کلمات کلیدی، RAG ساختار یافته میتواند جزئیات پرواز (مقصد، تاریخ، زمان، خطوط هوایی) را از یک ایمیل استخراج و در قالب ساختاری ذخیره کند. این امکان جستجوهای دقیقی مانند «کدام پرواز را برای سهشنبه به پاریس رزرو کردهام؟» را فراهم میآورد.
پیادهسازی حافظه برای عاملهای هوش مصنوعی شامل فرایندی سیستماتیک از مدیریت حافظه است که شامل تولید، ذخیره، بازیابی، یکپارچهسازی، بهروزرسانی و حتی «فراموشی» (یا حذف) اطلاعات میباشد. بازیابی اطلاعات جزو جنبههای بسیار مهم است.
یکی از روشهای ذخیره و مدیریت حافظه عامل استفاده از ابزارهای تخصصی مانند Mem0 است. Mem0 به عنوان یک لایه حافظه پایدار عمل میکند که به عاملها اجازه میدهد تعاملات مرتبط را یادآوری کنند، ترجیحات کاربر و زمینههای واقعی را ذخیره کنند و از موفقیتها و شکستها در گذر زمان بیاموزند. ایده این است که عاملهای بدون حالت به عاملهای حالتدار تبدیل شوند.
این سیستم از یک خط لوله حافظه دو مرحلهای: استخراج و بهروزرسانی بهره میبرد. ابتدا پیامهایی که به رشته عامل افزوده میشوند به سرویس Mem0 ارسال میشوند که با استفاده از مدل زبان بزرگ (LLM) تاریخچه گفتگو را خلاصه کرده و خاطرات جدید را استخراج میکند. سپس فاز بهروزرسانی با مدل LLM تصمیم میگیرد که آیا این خاطرات اضافه، تغییر یا حذف شوند و آنها را در پایگاه داده ترکیبی شامل دیتابیس برداری، گراف و کلید-مقدار ذخیره میکند. این سیستم انواع مختلف حافظه را پشتیبانی میکند و میتواند حافظه گرافی برای مدیریت روابط بین موجودیتها را در بر گیرد.
رویکرد قدرتمند دیگر استفاده از Cognee است، یک حافظه معنایی متنباز برای عاملهای هوش مصنوعی که دادههای ساختاریافته و بدون ساختار را به گرافهای دانش قابل جستجو تبدیل میکند که توسط تعبیهها پشتیبانی میشوند. Cognee معماری ذخیرهسازی دوگانه که جستجوی شباهت برداری و روابط گرافی را ترکیب میکند فراهم میآورد و به عاملها امکان میدهد نه تنها بفهمند چه اطلاعاتی مشابه است، بلکه چگونه مفاهیم به هم مرتبط هستند.
این سیستم در بازیابی هیبریدی که ترکیبی از شباهت برداری، ساختار گراف و استدلال مدل زبان بزرگ است، بسیار موفق است - از جستجوی بخشهای خام تا پاسخگویی آگاه از گراف. این سیستم حافظه «زنده» را حفظ میکند که تکامل یافته و رشد میکند و در عین حال به عنوان یک گراف متصل قابل پرسوجو باقی میماند، و پشتیبانی از زمینه جلسه کوتاهمدت و حافظه پایدار بلندمدت را به صورت همزمان فراهم میکند.
دفترچه آموزشی Cognee (13-agent-memory-cognee.ipynb) نشان میدهد چگونه این لایه حافظه یکپارچه ساخته میشود، با مثالهای عملی از وارد کردن منابع داده متنوع، تجسم گراف دانش، و پرسوجو با استراتژیهای مختلف جستجو که به نیازهای خاص عاملها اختصاص یافتهاند.
علاوه بر ابزارهای تخصصی حافظه مانند mem0، میتوانید از خدمات جستجوی قدرتمند مانند Azure AI Search به عنوان پشتیبان ذخیره و بازیابی حافظه استفاده کنید، مخصوصاً برای RAG ساختاریافته.
این امکان را میدهد که پاسخهای عامل خود را با دادههای خودتان پایهگذاری کنید و پاسخهای مرتبطتر و دقیقتری داشته باشید. Azure AI Search میتواند حافظههای مسافرتی خاص کاربر، کاتالوگ محصولات یا هر دانش دامنهای دیگری را ذخیره کند.
Azure AI Search از قابلیتهایی مانند RAG ساختار یافته پشتیبانی میکند که در استخراج و بازیابی اطلاعات متراکم و ساختار یافته از مجموعه دادههای بزرگی مانند تاریخچه گفتگو، ایمیلها یا تصاویر بسیار موفق است. این روش دقت و یادآوری “فرا انسانی” را نسبت به رویکردهای سنتی بخشبندی متن و تعبیهها فراهم میآورد.
یک الگوی رایج برای عاملهای خود بهبوددهنده معرفی یک «عامل دانش» است. این عامل جداگانه، گفتگوی اصلی بین کاربر و عامل اولیه را مشاهده میکند. نقش آن عبارت است از:
شناسایی اطلاعات ارزشمند: تعیین اینکه کدام بخش از مکالمه شایسته ذخیره به عنوان دانش عمومی یا ترجیح خاص کاربر است.
استخراج و خلاصهسازی: استنتاج یادگیری یا ترجیح اساسی از گفتگو.
ذخیره در پایگاه دانش: حفظ این اطلاعات استخراج شده، اغلب در یک پایگاه داده برداری، تا بعداً قابل بازیابی باشد.
تقویت پرسوجوهای آینده: وقتی کاربر پرسوجوی جدیدی مطرح میکند، عامل دانش اطلاعات مرتبط ذخیره شده را بازیابی کرده و به پرسش کاربر اضافه میکند و این زمینه مهم را به عامل اولیه ارائه میدهد (مشابه RAG).
• مدیریت تاخیر: برای جلوگیری از کند شدن تعاملات کاربر، میتوان ابتدا از یک مدل ارزانتر و سریعتر استفاده کرد تا به سرعت بررسی کند آیا اطلاعات ارزش ذخیره یا بازیابی دارد، و تنها هنگامی که لازم است فرایند پیچیدهتر استخراج/بازیابی را فراخوانی کند.
• نگهداری پایگاه دانش: برای یک پایگاه دانش در حال رشد، اطلاعات کمتر استفادهشده میتواند به «ذخیره سرد» منتقل شود تا هزینهها مدیریت شوند.
به Microsoft Foundry Discord بپیوندید تا با دیگر یادگیرندگان ملاقات کنید، در جلسات مشاوره شرکت کنید و سوالات خود درباره عاملهای هوش مصنوعی را پاسخ بگیرید.
سلب مسئولیت: این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیهایی باشند. سند اصلی به زبان مادری خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما در قبال هرگونه سوء تفاهم یا برداشت نادرست ناشی از استفاده از این ترجمه مسئولیتی نداریم.