اگر امروز در حال ساخت عاملهای هوش مصنوعی هستید، احتمالاً ساعتها وقت خود را صرف تغییر دستی پرامپتها و منطق برنامهریزی میکنید تا بتوانید موارد خاص و خطاهای احتمالی (edge cases) را مدیریت کنید. در ۱۷ ژوئن ۲۰۲۶، راهنمای فنی منتشرشده در dev.to روشی را افشا کرد که این بهبودها را از طریق ساخت یک سیستم چند-عاملی (MAS) خود-تکاملیافته — که از شکستهای خود درس میگیرد — خودکار میکند.
بیشتر چارچوبهای فعلی عاملها بر دستورالعملهای ایستا تکیه دارند. تصور کنید تیمی از کارکنان دارید که هرگز از اشتباهاتشان درس نمیگیرند؛ آنها صرفاً همان خطا را تکرار میکنند تا زمانی که مدیری دفترچه راهنمایشان را تغییر دهد. این سیستم جدید، دفترچه ایستای آنها را با یک حلقه یادگیری پویا جایگزین میکند تا عاملها بر اساس تجربه جمعی تکامل یابند.
چشمانداز سیستمهای MAS خود-تکاملیافته
یک سیستم MAS خود-تکاملیافته برای این طراحی شده است که فراتر از اجرای ایستای دستورات حرکت کند. هدف نهایی این است که عاملهایی ایجاد شوند که بتوانند:
- در یک محیط مشترک فعالیت کنند.
- بهطور مداوم از هر دو موردِ موفقیتها و شکستها بیاموزند.
- سیاستهای داخلی خود را بر اساس تجربه جمعی گروه بهروزرسانی کنند.
- بهطور پویا با وظایف جدید یا تغییر شرایط محیطی سازگار شوند.
برای دستیابی به این هدف، سیستم سه فناوری کلیدی را ترکیب میکند: asyncio در پایتون برای اجرای همزمان (concurrent execution)، یادگیری تقویتی ساده یا Q-learning برای تطبیقپذیری، و یک ساختار حافظه مشترک برای اشتراک دانش و بازپخش تجربیات (experience replay).
به نقل از آموزشهای dev.to، معماری این سیستم برای رسیدن به خودمختاری بر چهار رکن اصلی استوار است:
- محیط GridWorld: یک شبکه ۵ در ۵ شامل موانع و پاداشها (مثلاً نقطه هدف در مختصات [۴, ۴] که ۱۰ امتیاز پاداش میدهد).
- عاملهای Q-Learning: موجودات مستقلی که جدولهای Q را برای ردیابی ارزش اقدامات در وضعیتهای خاص نگه میدارند.
- هماهنگکننده (Coordinator): مدیری که با استفاده از asyncio پایتون، چندین عامل را بهطور همزمان اجرا کرده و تجربیات را از طریق یک حافظه مشترک از نوع deque توزیع میکند.
- موتور تکامل (Evolution Engine): مکانیزمی که ۳۰٪ از برترین عاملها از نظر عملکرد را انتخاب کرده و فرزندانی جهشیافته برای بهبود نسل بعدی میسازد.
جزئیات محیط و مکانیسمهای عامل
محیط یک شبکه کنترلشده ۵ در ۵ است که عاملها باید در آن مسیریابی کنند. این محیط شامل نشانگرهای پاداش خاصی است؛ برای مثال، پاداشی معادل ۵ امتیاز در نقطه (۳, ۴) و جریمهای معادل ۲- امتیاز در نقطه (۱, ۱) تعریف شده است. همچنین موانعی در نقاط (۱, ۲)، (۲, ۲) و (۳, ۳) قرار داده شدهاند تا توانایی مسیریابی عاملها به چالش کشیده شود.
هر عامل با نرخ یادگیری ۰.۱، ضریب تخفیف ۰.۹۵ و مقدار اپسیلون ۰.۱ مقداردهی اولیه میشود. آنها با چهار اقدام ممکن با جهان تعامل میکنند: عدد ۰ برای بالا، ۱ برای پایین، ۲ برای چپ و ۳ برای راست.
برای پیادهسازی این بخش، سیستم از استراتژی «اپسیلون-حریص» (epsilon-greedy) برای انتخاب اقدام استفاده میکند. این روش تعادلی میان «اکتشاف» (exploration) محیط و «بهرهبرداری» (exploitation) از پاداشهای شناختهشده ایجاد میکند. عاملها از طریق یک قانون بهروزرسانی استاندارد در Q-learning یاد میگیرند و خطای تفاوت زمانی (temporal difference error) را برای اصلاح سیاستهای داخلی خود محاسبه میکنند.
جزئیات هماهنگی و تکامل
هماهنگکننده چرخه حیات عاملها را مدیریت میکند. در یک پیکربندی معمولی، این بخش ممکن است ۲۰ عامل را بهطور همزمان کنترل کند. این واحد از یک حافظه مشترک shared_memory با اندازه پیشفرض ۱۰۰۰ استفاده میکند تا توپلهای شامل (وضعیت، اقدام، پاداش، وضعیت بعدی، پایان) را ذخیره کند. این کار به سیستم اجازه میدهد تا مسیر جمعی تمام عاملها را ردیابی نماید.
فرآیند تکامل، یک المان ژنتیکی را به هوش مصنوعی اضافه میکند. موتور تکامل بهطور دورهای عاملها را بر اساس مجموع پاداشهایشان (که معیار برازش یا Fitness است) مرتب میکند. در این مرحله، بهترین عامل بدون تغییر نگه داشته میشود — تکنیکی که به آن «نخبهگرایی» (Elitism) میگویند — و سپس جدولهای Q سایرین دچار جهش میشوند.
- انتخاب: موتور تکامل از یک نسبت انتخاب (مثلاً ۰.۳) برای شناسایی برترینهای عملکرد استفاده میکند.
- جهش: نرخ جهش (مثلاً ۰.۰۵) اعمال میشود. سیستم نویز تصادفی گوسی (با میانگین ۰ و انحراف معیار ۰.۱) را به ورودیهای جدول Q اضافه میکند.
- برش (Clipping): برای حفظ پایداری سیستم، مقادیر جهشیافته Q بین بازه ۱۰- تا ۱۰ محدود (Clip) میشوند.
این مکانیسم جهش به سیستم اجازه میدهد مسیرهای بهینهتری را برای رسیدن به هدف پیدا کند، مسیرهایی که هیچ عامل منفردی نمیتوانست بهتنهایی کشف کند. در یک اجرای عملی، سیستم ممکن است طی ۲۰ نسل تکامل یابد و هر عامل در هر نسل ۵۰ اپیزود را تکمیل کند.
برای یک توسعهدهنده کاربردی، این تغییر به معنای آن است که تمرکز از «مهندسی پرامپت» به «مهندسی پاداش» منتقل شود. بهجای اینکه دقیقاً به عامل بگویید چگونه یک مشکل را حل کند، شما تعریف میکنید که موفقیت چه شکلی است و اجازه میدهید حلقه تکاملی، بهینهترین مسیر را پیدا کند.
این رویکرد معیار قابلیت اطمینان عاملها را تغییر میدهد. با اجازه دادن به تکامل، سیستم میتواند با تغییر شرایط محیطی — مانند جابجایی موانع — بدون نیاز به بازنویسی کد توسط برنامهنویس، خود را وفق دهد. در واقع، پشته فناوری AI به ارگانیسم زندهای تبدیل میشود که خود را در لحظه بهینه میکند.
شما میتوانید با پیادهسازی یک جدول Q ساده در پایتون شروع کنید و سپس آن را به یک سیستم تحت مدیریت Coordinator گسترش دهید تا ببینید چگونه حافظه جمعی، سرعت یادگیری فردی را افزایش میدهد.
گام بعدی شما
- پیادهسازی یک جدول Q ساده در پایتون برای درک نحوه بهروزرسانی ارزش اقدامات.
- گسترش سیستم با افزودن یک Coordinator برای مدیریت همزمان چندین عامل با استفاده از asyncio.
- آزمایش تغییر نرخ جهش (Mutation Rate) برای مشاهده تأثیر آن بر سرعت رسیدن به هدف.
اما برای پیادهسازی این سیستم در مقیاس صنعتی، مدیریت حافظه مشترک چالش اصلی است — به تحلیل ما دربارهی بهینهسازی حافظه در سیستمهای توزیعشده مراجعه کنید.




گفتگو