| 👀 خبر در یک نگاه:
گوگل راهنمایی منتشر کرده که هشت الگوی طراحی اصلی برای سیستمهای چندایجنت را معرفی میکند. این الگوها با تکیه بر کیت توسعه ایجنت گوگل، به توسعهدهندهها کمک میکنند معماریهای مقیاسپذیر، قابل دیباگ و قابل اعتماد بسازند؛ از پایپلاین ترتیبی تا الگوی انسان در حلقه و الگوی ترکیبی. |
گوگل بهتازگی راهنمایی منتشر کرده که هشت الگوی طراحی ضروری برای سیستمهای چندایجنت (multi-agent systems) را توضیح میدهد؛ از پایپلاینهای ترتیبی تا معماری انسان در چرخه تصمیمگیری (human-in-the-loop). این راهنما برای هر الگو توضیحهای مشخص و عملی ارائه میکند و بههمراه آن، نمونه کدهایی برای کیت توسعه ایجنت گوگل (Agent Development Kit) هم در اختیار میگذارد.
چرا این راهنما منتشر شد؟
گوگل میگوید ساخت اپلیکیشنهای ایجنتمحور پیچیده و مقیاسپذیر، به همان رویکرد منضبطی نیاز دارد که در سایر سیستمهای نرمافزاری به کار میرود؛ چون تکیه بر یک موجودیت واحد باعث ایجاد گلوگاه (Bottleneck) میشود و اثرات نامطلوبی روی کارایی، دیباگپذیری و عملکرد سیستم دارد.
الگوی بنیادین برای سیستمهای چندایجنتی
گوگل هشت معماری یا الگوی بنیادین را شناسایی کرده که به توسعهدهندهها کمک میکند سیستمهای چندایجنت را بهصورت ساختیافته طراحی کنند. این الگوها بر پایه سه الگوی اجرایی اصلی هستند که در کیت توسعه ایجنت گوگل (Agent Development Kit) ارائه میشود: ترتیبی (Sequential)، حلقهای (Loop) و موازی (Parallel).
۱- پایپلاین ترتیبی
سادهترین الگو، پایپلاین ترتیبی (Sequential Pipeline) است؛ الگویی که در آن ایجنتها مثل یک خط مونتاژ کنار هم قرار میگیرند و هر ایجنت خروجی خودش را به ایجنت بعدی منتقل میکند.
گوگل میگوید:
«این الگو خطی، قطعی و بهطرز خوشایندی ساده برای دیباگ است، چون همیشه دقیقا مشخص است داده از کجا آمده است.»
۲- الگوی هماهنگکننده/توزیعکننده
یک تغییر جزئی در پایپلاین ترتیبی، الگوی هماهنگکننده/توزیعکننده (Coordinator/Dispatcher) است؛ الگویی که در آن یک ایجنت نقش تصمیمگیرنده را دارد، درخواست را دریافت میکند و آن را به یک ایجنت تخصصی ددر ادامه مسیر ارجاع میدهد.
۳- الگوی موازی پخش/تجمیع
الگوی موازی پخش/تجمیع (parallel fan-out/gather) زمانی کاربرد دارد که چند ایجنت بتوانند بهصورت همزمان کار کنند و هرکدام مسئولیت مشخصی داشته باشند.
مثلا برای بررسی یک درخواست ادغام (Pull Request)، یک ایجنت اصلی میتواند ایجنتهای موازی ایجاد کند تا وظایف مشخصی مثل اعمال استانداردهای کدنویسی (Style)، ممیزی امنیتی (Security Auditing) و تحلیل عملکرد (Performance Analysis) را انجام دهند.
ایجنتهای موازی خروجی خودشان را به یک ایجنت تجمیعکننده (Synthesizer Agent) میدهند. این ایجنت خروجیها را تجمیع میکند و در نهایت PR را تایید یا رد میکند.
۴- تفکیک سلسلهمراتبی
در سناریوهای پیچیدهتر، توسعهدهندهها میتوانند ایجنتها را با استفاده از تفکیک سلسلهمراتبی (Hierarchical Decomposition) سازماندهی کنند؛ بهطوری که ایجنتهای سطح بالا اهداف پیچیده را به زیروظیفهها خرد میکنند و اجرای آنها را به ایجنتهای دیگر واگذار میکنند.
۵- الگوی تولیدکننده و منتقد
وقتی قابلیت اتکای خروجی حیاتی است، میتوان از الگوی تولیدکننده و منتقد (generator and critic) استفاده کرد؛ الگویی که در آن یک ایجنت مسئول تولید محتواست و ایجنت دیگری آن را اعتبارسنجی میکند و در صورت نیاز، بازخورد میدهد تا ایجنت اول خروجی خودش را بهصورت تکرارشونده بهبود دهد.
۶- الگوی بهبود تکرارشونده
الگوی بهبود تکرارشونده (Iterative Refinement) شکل تعمیمیافتهای از الگوی تولیدکننده و منتقد است. در این الگو، خروجی ایجنت تولیدکننده به یک ایجنت نقدکننده (Critique Agent) و یک ایجنت اصلاحکننده (Refiner Agent) سپرده میشود و این ایجنتها بهصورت تکرارشونده با هم کار میکنند تا خروجی اولیه بهبود پیدا کند.
در برخی موقعیتها لازم است تصمیمهایی گرفته شود که اثرات غیرقابل بازگشت دارند یا پیامدهای مهمی بههمراه میآورند؛ مثل اجرای تراکنشهای مالی، استقرار کد در محیط پروداکشن یا اقدام بر اساس دادههای حساس.
۷- الگوی human-in-the-loop
در چنین شرایطی، الگوی human-in-the-loop میتواند راهحل باشد. در این الگو، یک ایجنت ابزار تایید، میتواند اجرای فرایند را در نقاط لازم متوقف کند و منتظر بماند تا یک بازبین انسانی نتیجه پیشنهادی را تایید یا رد کند.
۸- الگوی ترکیبی
در نهایت، الگوی ترکیبی (Composite Pattern) امکان ترکیب هرکدام از الگوهای دیگر را فراهم میکند؛ مثلا استفاده از یک هماهنگکننده (Coordinator) برای مسیریابی درخواستها، یک ایجنت موازی برای افزایش سرعت پردازش و یک حلقه تولیدکننده و منتقد برای اطمینان از کیفیت خروجی.
سخن پایانی
همانطور که اشاره شد، راهنمای گوگل نمودارهای دقیق و قطعهکدهایی را شامل میشود که نشان میدهند چطور میتوان با استفاده از کیت توسعه ایجنت گوگل (Agent Development Kit) همه این الگوها را پیادهسازی کرد. برای درک کامل جزئیات، این سند را مطالعه کنید.
اگر دنبال یک نگاه جایگزین به استفاده از ADK در سیستمهای چندایجنت هستید، راهنمای هانگسیک شین (Hangsik Shin) را هم بررسی کنید.
منبع: infoq.com




دیدگاهتان را بنویسید