26 KiB
(برای مشاهده ویدیو این درس روی تصویر بالا کلیک کنید)
الگوهای طراحی چندعاملی
به محض اینکه شروع به کار روی پروژهای کنید که شامل چند عامل است، باید الگوی طراحی چندعاملی را در نظر بگیرید. اما ممکن است بلافاصله روشن نباشد که چه زمانی باید به چند عامل سوئیچ کرد و مزایای آن چیست.
معرفی
در این درس، قصد داریم به سؤالات زیر پاسخ دهیم:
- چه سناریوهایی برای استفاده از چند عامل مناسب هستند؟
- مزایای استفاده از چند عامل نسبت به فقط یک عامل واحد که چند کار انجام میدهد چیست؟
- بلوکهای ساختمانی پیادهسازی الگوی طراحی چندعاملی چیستند؟
- چگونه میتوانیم دید کافی نسبت به نحوه تعامل عوامل متعدد با یکدیگر داشته باشیم؟
اهداف یادگیری
پس از این درس باید بتوانید:
- سناریوهایی که در آنها چند عامل کاربرد دارند را شناسایی کنید
- مزایای استفاده از چند عامل نسبت به یک عامل واحد را تشخیص دهید.
- بلوکهای ساختمانی پیادهسازی الگوی طراحی چندعاملی را درک کنید.
تصویر بزرگتر چیست؟
چند عامل یک الگوی طراحی است که اجازه میدهد چند عامل با هم همکاری کنند تا به یک هدف مشترک دست یابند.
این الگو به صورت گستردهای در حوزههای مختلف از جمله رباتیک، سیستمهای خودران و محاسبات توزیعشده استفاده میشود.
سناریوهایی که چندعامل کاربرد دارند
پس چه سناریوهایی استفاده از چند عامل را مفید میکند؟ پاسخ این است که سناریوهای زیادی وجود دارد که استفاده از چند عامل مفید است، به ویژه در موارد زیر:
- بارهای کاری بزرگ: بارهای کاری بزرگ میتوانند به وظایف کوچکتر تقسیم شده و به عوامل مختلف تخصیص داده شوند که این امکان پردازش همزمان و تکمیل سریعتر را فراهم میکند. نمونهای از این حالت در مورد پردازش دادههای بزرگ است.
- کارهای پیچیده: کارهای پیچیده مانند بارهای کاری بزرگ، میتوانند به زیرکارهای کوچکتر تقسیم شده و به عوامل مختلف تخصیص داده شوند که هر کدام در جنبه خاصی از کار تخصص دارند. نمونه خوب این حالت در خودروهای خودران است که عوامل مختلف مدیریت ناوبری، شناسایی موانع و ارتباط با خودروهای دیگر را بر عهده دارند.
- تخصص متنوع: عوامل مختلف میتوانند تخصصهای متنوعی داشته باشند و این امکان را فراهم کنند که جنبههای مختلف یک کار را بهتر از یک عامل واحد مدیریت کنند. برای این مورد، نمونه خوبی در حوزه مراقبتهای بهداشتی است که عوامل میتوانند مدیریت تشخیص، برنامههای درمان و پایش بیمار را انجام دهند.
مزایای استفاده از چند عامل نسبت به یک عامل واحد
سیستم یک عاملی ممکن است برای کارهای ساده خوب باشد، اما برای کارهای پیچیدهتر، استفاده از چند عامل میتواند مزایای فراوانی داشته باشد:
- تخصصی شدن: هر عامل میتواند برای انجام یک کار خاص تخصصی شود. نبود تخصص در یک عامل واحد یعنی شما عاملی دارید که همه کارها را انجام میدهد اما ممکن است هنگام مواجهه با یک کار پیچیده دچار سردرگمی شود. مثلاً ممکن است کاری را انجام دهد که برای آن مناسبترین نباشد.
- مقیاسپذیری: افزودن عوامل بیشتر برای توسعه سیستمها آسانتر است تا اینکه یک عامل را بیش از حد بارگذاری کنیم.
- تحمل خطا: اگر یک عامل خراب شود، بقیه میتوانند به کار خود ادامه دهند و این اطمینان از قابلیت اطمینان سیستم را فراهم میکند.
مثالی میزنیم، بیایید برای یک کاربر یک سفر رزرو کنیم. سیستم یک عاملی باید همه جنبههای فرآیند رزرو سفر را مدیریت کند، از پیدا کردن پرواز تا رزرو هتل و خودروهای اجارهای. برای انجام این کار با یک عامل، این عامل باید ابزارهایی برای انجام همه این کارها داشته باشد. این میتواند منجر به یک سیستم پیچیده و یکپارچه شود که نگهداری و گسترش آن دشوار است. اما سیستم چند عاملی میتواند عوامل متفاوتی را برای پیدا کردن پروازها، رزرو هتلها و خودروهای اجارهای داشته باشد. این باعث میشود سیستم مدولارتر، آسانتر برای نگهداری و مقیاسپذیرتر باشد.
این را با یک آژانس مسافرتی سنتی که به صورت یک فروشگاه کوچک اداره میشود، در مقایسه با یک آژانس مسافرتی که به صورت یک فرانشیز اداره میشود مقایسه کنید. فروشگاه کوچک دارای یک عامل است که همه جنبههای فرآیند رزرو سفر را مدیریت میکند، در حالی که فرانشیز عوامل مختلفی دارد که جنبههای متفاوت فرآیند رزرو سفر را مدیریت میکنند.
بلوکهای ساختمانی پیادهسازی الگوی طراحی چندعاملی
قبل از اینکه بتوانید الگوی طراحی چندعاملی را پیادهسازی کنید، باید بلوکهای ساختمانی تشکیلدهنده الگو را بشناسید.
بیایید این موضوع را دوباره با مثال رزرو سفر برای یک کاربر ملموستر کنیم. در این مورد، بلوکهای ساختمانی شامل موارد زیر هستند:
- ارتباط عوامل: عوامل پیدا کردن پروازها، رزرو هتلها و خودروهای اجارهای باید با هم ارتباط برقرار کرده و اطلاعاتی درباره ترجیحات و محدودیتهای کاربر به اشتراک بگذارند. شما باید روی پروتکلها و روشهای این ارتباط تصمیم بگیرید. به طور مشخص، عامل پیدا کردن پروازها باید با عامل رزرو هتلها ارتباط برقرار کند تا اطمینان حاصل شود که هتل برای همان تاریخهای پرواز رزرو شده است. این یعنی عوامل باید اطلاعات مربوط به تاریخهای سفر کاربر را به اشتراک بگذارند، بنابراین باید تصمیم بگیرید کدام عوامل اطلاعات را به اشتراک میگذارند و چگونه این کار را انجام میدهند.
- مکانیزمهای هماهنگی: عوامل باید اقدامات خود را هماهنگ کنند تا اطمینان حاصل شود که ترجیحات و محدودیتهای کاربر برآورده میشود. مثلاً کاربر ممکن است ترجیح دهد یک هتل نزدیک فرودگاه داشته باشد، در حالی که محدودیت ممکن است این باشد که خودروهای اجارهای فقط در فرودگاه موجود هستند. این یعنی عامل رزرو هتل باید با عامل رزرو خودرو هماهنگ شود تا ترجیحات و محدودیتهای کاربر حفظ شود. شما باید تصمیم بگیرید چگونه عوامل اقدامات خود را هماهنگ میکنند.
- معماری عامل: عوامل باید ساختار داخلی داشته باشند تا از تعاملات با کاربر یاد بگیرند و تصمیمگیری کنند. برای مثال، عامل پیدا کردن پروازها باید ساختار داخلی داشته باشد تا تصمیم بگیرد کدام پروازها به کاربر پیشنهاد شود. بنابراین، شما باید تصمیم بگیرید چگونه عوامل تصمیم میگیرند و از تعامل با کاربر یاد میگیرند. نمونهای از یادگیری و بهبود عامل میتواند استفاده از مدل یادگیری ماشینی توسط عامل پیدا کردن پروازها باشد تا بر اساس ترجیحات گذشته کاربر پرواز توصیه کند.
- دید به تعاملات چندعاملی: باید دید کافی داشته باشید که عوامل متعدد چگونه با هم تعامل دارند. این یعنی باید ابزارها و تکنیکهایی برای ردیابی فعالیتها و تعاملات عوامل فراهم کنید. این میتواند به صورت ابزارهای ثبت و پایش، ابزارهای تجسم و معیارهای عملکرد باشد.
- الگوهای چندعاملی: الگوهای مختلفی برای پیادهسازی سیستمهای چندعاملی وجود دارد، مانند معماری متمرکز، غیرمتمرکز و ترکیبی. شما باید الگوی مناسبی که با مورد استفاده شما همخوانی دارد را انتخاب کنید.
- انسان در حلقه: در بیشتر موارد، انسان در حلقه وجود دارد و باید به عوامل دستور دهید که چه زمانی باید مداخله انسانی درخواست کنند. این میتواند به صورت کاربری باشد که هتل یا پرواز خاصی را میخواهد که توسط عوامل توصیه نشده است یا درخواست تأیید قبل از رزرو پرواز یا هتل.
دید به تعاملات چندعاملی
مهم است که دید کافی نسبت به نحوه تعامل عوامل متعدد با یکدیگر داشته باشید. این دید برای رفع اشکال، بهینهسازی و اطمینان از کارایی کلی سیستم حیاتی است. برای رسیدن به این هدف، باید ابزارها و تکنیکهایی برای ردیابی فعالیتها و تعاملات عوامل داشته باشید. این میتواند به صورت ابزارهای ثبت و پایش، ابزارهای تجسم و معیارهای عملکرد باشد.
برای مثال، در مورد رزرو سفر برای یک کاربر، میتوانید یک داشبورد داشته باشید که وضعیت هر عامل، ترجیحات و محدودیتهای کاربر و تعاملات بین عوامل را نشان دهد. این داشبورد میتواند تاریخهای سفر کاربر، پروازهای پیشنهادی توسط عامل پرواز، هتلهای پیشنهادی توسط عامل هتل و خودروهای اجارهای پیشنهادی توسط عامل خودرو را نمایش دهد. این به شما دید واضحی میدهد که چگونه عوامل با هم تعامل دارند و آیا ترجیحات و محدودیتهای کاربر رعایت میشود یا خیر.
بیایید هر یک از این جنبهها را دقیقتر بررسی کنیم.
-
ابزارهای ثبت و پایش: میخواهید برای هر اقدامی که یک عامل انجام میدهد ثبت وقایع انجام دهید. یک ورودی ثبت میتواند اطلاعاتی درباره عاملی که عملیات را انجام داده، عملیات انجام شده، زمان انجام عملیات، و نتیجه آن را ذخیره کند. این اطلاعات میتواند برای رفع اشکال، بهینهسازی و موارد دیگر استفاده شود.
-
ابزارهای تجسم: ابزارهای تجسم میتوانند به شما کمک کنند تعاملات بین عوامل را به صورت شهودیتری مشاهده کنید. برای مثال، میتوانید نموداری داشته باشید که جریان اطلاعات بین عوامل را نشان دهد. این میتواند به شناسایی گلوگاهها، ناکارآمدیها و سایر مسائل در سیستم کمک کند.
-
معیارهای عملکرد: معیارهای عملکرد میتوانند به شما در ردیابی اثربخشی سیستم چندعاملی کمک کنند. برای مثال، میتوانید زمان انجام یک کار، تعداد کارهای انجام شده در واحد زمان، و دقت توصیههایی که عوامل ارائه میدهند را ردیابی کنید. این اطلاعات میتواند به شناسایی حوزههای قابل بهبود و بهینهسازی سیستم کمک کند.
الگوهای چندعاملی
بیایید به برخی الگوهای مشخص بپردازیم که میتوانیم برای ساخت برنامههای چندعاملی استفاده کنیم. در اینجا چند الگوی جالب که ارزش بررسی دارند آمده است:
چت گروهی
این الگو زمانی مفید است که بخواهید برنامه چت گروهی بسازید که در آن چند عامل بتوانند با یکدیگر ارتباط داشته باشند. موارد استفاده معمول این الگو شامل همکاری تیم، پشتیبانی مشتری و شبکههای اجتماعی است.
در این الگو، هر عامل نماینده یک کاربر در چت گروهی است و پیامها بین عوامل با استفاده از پروتکل پیامرسانی رد و بدل میشوند. عوامل میتوانند پیام به چت گروهی بفرستند، پیام دریافت کنند و به پیامهای دیگر عوامل پاسخ دهند.
این الگو میتواند با معماری متمرکز اجرا شود که تمام پیامها از طریق سرور مرکزی عبور میکند، یا معماری غیرمتمرکز که پیامها را به صورت مستقیم رد و بدل میکند.
تحویل کار
این الگو زمانی مفید است که بخواهید برنامهای بسازید که در آن چند عامل بتوانند کارها را به یکدیگر تحویل دهند.
موارد استفاده معمول این الگو شامل پشتیبانی مشتری، مدیریت وظایف و خودکارسازی جریان کاری است.
در این الگو، هر عامل نماینده یک وظیفه یا مرحلهای در جریان کاری است و عوامل میتوانند کارها را بر اساس قوانین از پیش تعیین شده به عوامل دیگر واگذار کنند.
فیلترینگ مشارکتی
این الگو زمانی مفید است که بخواهید برنامهای بسازید که در آن چند عامل بتوانند برای ارائه توصیه به کاربران همکاری کنند.
دلیل اینکه بخواهید چند عامل همکاری کنند این است که هر عامل میتواند تخصص متفاوتی داشته باشد و به روشهای مختلف در فرایند توصیه نقش داشته باشد.
بیایید مثالی بزنیم که کاربری میخواهد توصیه درباره بهترین سهام برای خرید در بازار بورس دریافت کند.
- کارشناس صنعت: یک عامل میتواند متخصص در یک صنعت خاص باشد.
- تحلیل تکنیکال: عامل دیگری میتواند متخصص در تحلیل تکنیکال باشد.
- تحلیل بنیادی: عامل دیگر میتواند متخصص در تحلیل بنیادی باشد. با همکاری این عوامل میتوانند توصیهای جامعتر به کاربر ارائه دهند.
سناریو: فرآیند بازپرداخت
سناریویی را در نظر بگیرید که مشتری در تلاش است بازپرداخت محصولی را دریافت کند، ممکن است عوامل زیادی در این فرآیند درگیر باشند اما بیایید آنها را بین عوامل خاص این فرآیند و عوامل عمومی که در بخشهای دیگر کسبوکار استفاده میشوند تقسیم کنیم.
عوامل خاص فرآیند بازپرداخت:
عوامل زیر میتوانند در فرآیند بازپرداخت دخیل باشند:
- عامل مشتری: این عامل نماینده مشتری است و مسئول شروع فرآیند بازپرداخت است.
- عامل فروشنده: این عامل نماینده فروشنده است و مسئول پردازش بازپرداخت است.
- عامل پرداخت: این عامل نماینده فرآیند پرداخت است و مسئول بازپرداخت وجه به مشتری است.
- عامل حل اختلاف: این عامل نماینده فرآیند حل اختلاف است و مسئول حل هر مشکلی است که حین بازپرداخت به وجود میآید.
- عامل تطابق: این عامل مسئول تضمین مطابقت فرآیند بازپرداخت با قوانین و سیاستها است.
عوامل عمومی:
این عوامل میتوانند توسط بخشهای دیگر کسبوکار شما استفاده شوند.
- عامل حمل و نقل: این عامل نماینده فرآیند حمل و نقل است و مسئول ارسال محصول به فروشنده است. این عامل میتواند هم برای فرآیند بازپرداخت و هم برای حمل و نقل کلی محصولات در خریدها استفاده شود.
- عامل بازخورد: این عامل نماینده فرآیند جمعآوری بازخورد است و مسئول دریافت بازخورد از مشتری است. بازخورد میتواند در هر زمان داده شود، نه فقط هنگام بازپرداخت.
- عامل ارجاع: این عامل نماینده فرآیند ارجاع است و مسئول ارجاع مشکلات به سطح بالاتر پشتیبانی است. میتوانید از این نوع عامل برای هر فرآیندی که نیاز به ارجاع مشکل دارد استفاده کنید.
- عامل اعلان: این عامل نماینده فرآیند ارسال اعلان است و مسئول ارسال اعلان به مشتری در مراحل مختلف فرآیند بازپرداخت است.
- عامل تحلیل: این عامل نماینده فرآیند تحلیل است و مسئول تحلیل دادههای مربوط به فرآیند بازپرداخت است.
- عامل حسابرسی: این عامل نماینده فرآیند حسابرسی است و مسئول حسابرسی فرآیند بازپرداخت است تا اطمینان حاصل شود به درستی انجام میشود.
- عامل گزارشدهی: این عامل نماینده فرآیند گزارشدهی است و مسئول تولید گزارش درباره فرآیند بازپرداخت است.
- عامل دانش: این عامل نماینده فرآیند دانش است و مسئول نگهداری پایگاه دانش مرتبط با فرآیند بازپرداخت است. این عامل میتواند هم درباره بازپرداختها و هم بخشهای دیگر کسبوکار دانش داشته باشد.
- عامل امنیت: این عامل نماینده فرآیند امنیت است و مسئول تضمین امنیت فرآیند بازپرداخت است.
- عامل کیفیت: این عامل نماینده فرآیند کیفیت است و مسئول تضمین کیفیت فرآیند بازپرداخت است.
لیست زیادی از عوامل پیشتر ذکر شد، هم برای فرآیند خاص بازپرداخت و هم برای عوامل عمومی که میتوانند در بخشهای دیگر کسبوکار استفاده شوند. امیدوارم این اطلاعات به شما ایده بدهد که چگونه میتوانید تصمیم بگیرید کدام عوامل را در سیستم چندعاملی خود به کار ببرید.
تمرین
یک سیستم چندعاملی برای فرآیند پشتیبانی مشتری طراحی کنید. عوامل دخیل در این فرآیند، نقشها و وظایف آنها و نحوه تعاملشان با یکدیگر را مشخص کنید. هم عوامل اختصاصی فرآیند پشتیبانی مشتری و هم عوامل عمومی که میتوانند در سایر بخشهای کسبوکار استفاده شوند را در نظر بگیرید.
قبل از خواندن راهحل زیر کمی فکر کنید، ممکن است به تعداد عوامل بیشتری نسبت به آنچه فکر میکنید نیاز داشته باشید.
نکته: به مراحل مختلف فرآیند پشتیبانی مشتری فکر کنید و همچنین عواملی را که برای هر سیستمی لازم است در نظر بگیرید.
راهحل
ارزیابی دانش
سؤال: چه زمانی باید استفاده از چند عامل را در نظر بگیرید؟
- A1: زمانی که حجم کار کوچک و وظیفه ساده است.
- A2: زمانی که حجم کار زیاد است
- A3: زمانی که وظیفه ساده است.
خلاصه
در این درس، الگوی طراحی چندعامله را بررسی کردیم، از جمله موقعیتهایی که چند عامل کاربرد دارد، مزایای استفاده از چند عامل نسبت به یک عامل منفرد، اجزای ساختاری پیادهسازی الگوی طراحی چندعامله، و چگونگی مشاهده تعاملات بین عوامل مختلف.
سوالات بیشتری درباره الگوی طراحی چندعامله دارید؟
به Microsoft Foundry Discord بپیوندید تا با دیگر یادگیرندگان ملاقات کنید، در ساعت کاری حضور داشته باشید و سوالات خود درباره عوامل هوش مصنوعی را مطرح کنید.
منابع بیشتر
درس قبلی
درس بعدی
تذکر مهم:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. هرچند ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است حاوی اشتباهات یا نادرستیهایی باشند. سند اصلی به زبان بومی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، استفاده از ترجمه حرفهای انسانی توصیه میشود. ما مسئول هیچگونه سو تفاهم یا برداشت نادرست ناشی از استفاده از این ترجمه نیستیم.


