هنگام بحث درباره مزایای منحصر به فرد ایجاد عاملهای هوش مصنوعی، دو موضوع اصلی مطرح میشود: توانایی فراخوانی ابزارها برای انجام وظایف و توانایی بهبود در طول زمان. حافظه پایهای است برای ایجاد عاملی که خود را بهبود میبخشد و میتواند تجربههای بهتری برای کاربران ما ایجاد کند.
در این درس، به این خواهیم پرداخت که حافظه برای عاملهای هوش مصنوعی چیست و چگونه میتوانیم آن را مدیریت کرده و برای بهرهوری برنامههای خود استفاده کنیم.
این درس شامل موارد زیر خواهد بود:
• درک حافظه عاملهای هوش مصنوعی: حافظه چیست و چرا برای عوامل اهمیت دارد.
• پیادهسازی و ذخیرهسازی حافظه: روشهای عملی برای افزودن قابلیتهای حافظه به عاملهای هوش مصنوعی شما، با تمرکز بر حافظه کوتاهمدت و بلندمدت.
• ساخت عاملهای هوش مصنوعی خودبهبوددهنده: چگونه حافظه باعث میشود عوامل بتوانند از تعاملات گذشته بیاموزند و در طول زمان بهبود یابند.
این درس شامل دو آموزش جامع دفترچه یادداشت است:
• 13-agent-memory.ipynb: پیادهسازی حافظه با استفاده از Mem0 و Azure AI Search همراه با Microsoft Agent Framework
• 13-agent-memory-cognee.ipynb: پیادهسازی حافظه ساختاریافته با Cognee، ساخت خودکار نمودار دانش با پشتیبانی از embeddingها، نمایش نمودار و بازیابی هوشمند
پس از اتمام این درس، شما خواهید دانست چگونه:
• انواع مختلف حافظه عامل هوش مصنوعی را تشخیص دهید، شامل حافظه کاری، کوتاهمدت و بلندمدت، همچنین اشکال تخصصی مانند حافظه پرسونایی و حافظه اپیزودیک.
• حافظه کوتاهمدت و بلندمدت را برای عاملهای هوش مصنوعی پیادهسازی و مدیریت کنید با استفاده از Microsoft Agent Framework و بهرهگیری از ابزارهایی مانند Mem0، Cognee، حافظه Whiteboard و ادغام با 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 است، حافظه معنایی متنباز برای عاملهای هوش مصنوعی که دادههای ساختاریافته و بدون ساختار را به نمودارهای دانش قابل پرسوجو تبدیل میکند که با embeddingها پشتیبانی میشوند. Cognee معماری دو فروشگاهی را فراهم میکند که جستجوی شباهت برداری را با روابط نمودار ترکیب میکند و به عاملها امکان میدهد نه فقط بدانند چه اطلاعاتی مشابه است بلکه چگونه مفاهیم به هم مرتبطاند.
Cognee در بازیابی ترکیبی که شباهت برداری، ساختار نمودار و استدلال مدل زبان بزرگ را ترکیب میکند، برجسته است - از جستجوی بخشهای خام تا پاسخدهی سوالات آگاه به نمودار. این سیستم حافظه زنده را حفظ میکند که در حال تحول و رشد است و در عین حال به عنوان یک نمودار متصل قابل پرسوجو باقی میماند، حمایت از زمینه جلسات کوتاهمدت و حافظه بلندمدت پایدار را دارد.
آموزش دفترچه یادداشت Cognee (13-agent-memory-cognee.ipynb) ساخت این لایه حافظه یکپارچه را به همراه مثالهای عملی جذب دادههای متنوع، نمایش نمودار دانش و پرسوجو با استراتژیهای جستجوی مختلف منطبق با نیازهای خاص عامل نشان میدهد.
فراتر از ابزارهای تخصصی حافظه مانند Mem0، میتوانید از خدمات جستجوی قوی مانند Azure AI Search به عنوان پشتیبان ذخیره و بازیابی حافظهها استفاده کنید، به ویژه برای RAG ساختاریافته.
این امکان میدهد پاسخهای عامل خود را با دادههای خودتان تقویت کنید و پاسخهای مرتبطتر و دقیقتر ارائه دهید. Azure AI Search میتواند برای ذخیره خاطرات سفر خاص کاربر، کاتالوگ محصولات یا هر دانش حوزه خاص دیگری به کار رود.
Azure AI Search قابلیتهایی مانند RAG ساختاریافته را پشتیبانی میکند که برای استخراج و بازیابی اطلاعات متراکم و ساختاریافته از دادههای بزرگ مانند تاریخچه مکالمات، ایمیلها یا حتی تصاویر بسیار عالی است. این دقت و بازیابی را نسبت به روشهای سنتی تقسیمبندی متن و embedding به شکل «فوقالعاده انسانی» افزایش میدهد.
یک الگوی رایج برای عاملهای خودبهبوددهنده شامل معرفی یک «عامل دانش» است. این عامل جداگانه مکالمه اصلی بین کاربر و عامل اصلی را مشاهده میکند. نقش آن به شرح زیر است:
شناسایی اطلاعات ارزشمند: تعیین اینکه آیا بخشهایی از مکالمه ارزش ذخیره شدن به عنوان دانش عمومی یا ترجیح خاص کاربر را دارند.
استخراج و خلاصهسازی: خلاصهکردن یادگیری یا ترجیح اصلی از مکالمه.
ذخیره در پایگاه دانش: این اطلاعات استخراج شده را نگهداری، اغلب در یک پایگاه داده برداری به گونهای که بعداً قابل بازیابی باشد.
تقویت پرسشهای آینده: وقتی کاربر پرسش جدیدی آغاز میکند، عامل دانش اطلاعات ذخیرهشده مرتبط را بازیابی کرده و به درخواست کاربر اضافه میکند، زمینه کلیدی را به عامل اصلی فراهم میآورد (مشابه RAG).
• مدیریت تأخیر: برای جلوگیری از کند شدن تعاملات کاربر، ابتدا میتوان از یک مدل ارزانتر و سریعتر استفاده کرد تا به سرعت بررسی کند آیا اطلاعات ارزش ذخیره شدن یا بازیابی دارد و فرآیند پیچیده استخراج/بازیابی را تنها در صورت نیاز فراخوانی کند.
• نگهداری پایگاه دانش: برای یک پایگاه دانش در حال رشد، اطلاعات کمتر استفاده شده را میتوان به «ذخیرهگاه سرد» منتقل کرد تا هزینهها مدیریت شود.
به Microsoft Foundry Discord بپیوندید تا با سایر یادگیرندگان ملاقات کنید، در ساعات کاری شرکت کنید و سوالات خود درباره عاملهای هوش مصنوعی را پاسخ بگیرید.
مهندسی زمینه برای عاملهای هوش مصنوعی
کاوش Microsoft Agent Framework
سلب مسئولیت: این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیهایی باشند. سند اصلی به زبان مادری خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما در قبال هرگونه سوء تفاهم یا برداشت نادرست ناشی از استفاده از این ترجمه مسئولیتی نداریم.