فاز 16 · درس 8

تخصصی‌سازی نقش‌ها در سیستم‌های چندایجنتی: برنامه‌ریز، ناقد، مجری و اعتبارسنج

نوع
مفهومی و ساختنی
زمان
حدود 60 دقیقه
زبان‌ها
Python (stdlib)
پیش‌نیاز
فاز 16 · درس 04 (مدل‌های پایه)، فاز 16 · درس 05 (ناظر)
چهار چرخ‌دنده‌ی متصل با جنس‌های متفاوت شیشه‌ای، فلزی، چوبی و دیجیتالی که با دقت درون یک سازوکار ساعت در حال چرخش هستند
فهرست مطالب
  1. صورت مسئله
  2. مفاهیم اصلی
  3. چهار نقش بنیادین
  4. الگوی SOP در MetaGPT
  5. حذف ارتباطی توهم در ChatDev
  6. چرا مدل اعتبارسنج از همه مهم‌تر است؟
  7. ناقد در برابر مدل اعتبارسنج
  8. پادالگو (Anti-pattern)
  9. نگاشت به فریم‌ورک‌ها
  10. پیاده‌سازی
  11. استفاده از ابزار
  12. تحویل به پروداکشن
  13. تمرین‌ها
  14. اصطلاحات کلیدی
  15. برای مطالعه‌ی بیشتر

وقتی چند ایجنت عمومی را در یک گروه گفتگو کنار هم می‌گذارید، نتیجه اغلب تکرار کدهای متوسط و تاییدهای بی‌فایده است. افزودن تعداد مدل‌ها یا تکرار گفتگوها کیفیت نهایی را تغییر نمی‌دهد؛ راه‌حل واقعی، تفکیک دقیق وظایف و تخصیص نقش‌های متمایز است.

در معماری‌های مدرن چندایجنتی، تفکیک نقش‌ها به چهار جزء اصلی برنامه‌ریز (Planner)، مجری (Executor)، ناقد (Critic) و اعتبارسنج (Verifier) باعث می‌شود سیستم به‌جای حدس‌های تصادفی، به یک پایپ‌لاین مهندسی‌شده تبدیل شود. تکیه‌گاه اصلی این زنجیره، اعتبارسنجی قطعی و مبتنی بر کد است که جلوی توهم مدل‌های زبانی را می‌گیرد.

کدها و منطق پیاده‌سازی این درس کاملاً سبک هستند و برای اجرای تست‌ها نیازی به GPU یا زیرساخت‌های ابری سنگین ندارید. همچنین در صورت استفاده از API مدل‌های زبانی در ایران، تنظیم یک کلاینت سازگار با OpenAI یا استفاده از گیت‌وی‌های ارائه‌دهنده‌ی دسترسی برای اجرای این پایپ‌لاین‌ها کافی خواهد بود.

رایج‌ترین شیوه‌ی تفکیک وظایف در سیستم‌های چندایجنتی سال 2026 این است: یک ایجنت برنامه‌ریزی می‌کند، یکی اجرا می‌کند و یکی وظیفه‌ی نقد یا اعتبارسنجی را بر عهده می‌گیرد. مقاله MetaGPT (arXiv:2308.00352) این ساختار را در قالب دستورالعمل‌های استاندارد عملیاتی (SOP) که درون پرامپت نقش‌ها کدنویسی شده‌اند، صورت‌بندی می‌کند: مدیر محصول، معمار، مدیر پروژه، مهندس و مهندس تضمین کیفیت (QA)؛ بر اساس قاعده‌ی Code = SOP(Team). پروژه‌ی ChatDev (arXiv:2307.07924) نقش‌های طراح، برنامه‌نویس، بازبین و تستر را از طریق یک «زنجیره‌ی گفت‌وگو» زنجیر می‌کند و برای رفع توهم از «حذف ارتباطی توهم» (communicative dehallucination) بهره می‌گیرد (ایجنت‌ها جزئیات جاافتاده را صریحاً درخواست می‌کنند). در این میان، مدل اعتبارسنج (verifier) تکیه‌گاه اصلی است: جمیری و همکاران در چارچوب MAST (arXiv:2503.13657) نشان می‌دهند که ریشه‌ی تک‌تک شکست‌های سیستم‌های چندایجنتی به نبود یا نقص سازوکار اعتبارسنجی بازمی‌گردد. شرکت PwC نیز گزارش داده که افزودن حلقه‌های اعتبارسنجی ساختاریافته در CrewAI دقت را 7 برابر کرده است (از 10% به 70%).

صورت مسئله

سیستم‌های چندایجنتی عمومی، خروجی‌های معمولی تولید می‌کنند. اگر سه برنامه‌نویس را در یک گروه چت بگذارید، سه روایت مختلف از همان کد متوسط را تحویل می‌دهند. می‌توانید ایجنت‌های بیشتری اضافه کنید و دورهای گفت‌وگو را افزایش دهید، اما همچنان از آستانه‌ی (threshold) کیفیت عبور نکنید.

راه‌حل، افزایش تعداد ایجنت‌ها نیست؛ بلکه استفاده از ایجنت‌های متفاوت است. نقش‌های متمایز تعریف کنید. به ناقد ابزارهایی بدهید که برنامه‌ریز در اختیار ندارد. برای مدل اعتبارسنج هم یک مجموعه‌تست عینی و قطعی فراهم کنید. حالا سیستم به‌جای حدس‌های موازی، به اختلاف‌نظر داخلی همراه با اصلاحات مبتنی بر شواهدِ عینی مجهز می‌شود.

مفاهیم اصلی

چهار نقش بنیادین

برنامه‌ریز (Planner). هدف را بررسی می‌کند و فهرست مراحل یا مشخصات فنی (spec) می‌سازد. ابزارها: بازیابی دانش، مستندات. خروجی: برنامه‌ی ساختاریافته.

مجری (Executor). مراحل برنامه را یکی‌یکی پیش می‌برد و دست‌سازه (artifact) را تولید می‌کند. ابزارها: ابزارهای کاری واقعی (کامپایلر کد، شل سیستم‌عامل، کلاینت API). خروجی: دست‌سازه.

ناقد (Critic). خروجی مجری را با نیت (intent) برنامه‌ریز می‌سنجد. ابزارها: دسترسی فقط‌خواندنی به دست‌سازه، تحلیل ایستا. خروجی: تایید یا رد همراه با دلایل.

مدل اعتبارسنج (Verifier). دست‌سازه را بررسی و یک آزمون قطعی (deterministic) روی آن اجرا می‌کند. ابزارها: ابزار اجرای آزمون (test runner)، تحلیل‌گر نوع داده (type checker)، اعتبارسنج طرح‌واره (schema validator). خروجی: قبولی یا رد به همراه شواهد (evidence).

ناقد نقشی ذهنی، سلیقه‌ای و معمولاً مبتنی بر مدل زبانی است. مدل اعتبارسنج نقشی عینی، قطعی و اغلب مبتنی بر کد دارد. این دو یکی نیستند.

الگوی SOP در MetaGPT

پروژه‌ی MetaGPT (arXiv:2308.00352) رویه‌های استاندارد مهندسی نرم‌افزار را در قالب پرامپت نقش‌ها پیاده می‌کند:

  • مدیر محصول (Product Manager) سند نیازمندی‌های محصول (PRD) را می‌نویسد.
  • معمار (Architect) طراحی سیستم را انجام می‌دهد.
  • مدیر پروژه (Project Manager) وظایف (tasks) را تقسیم می‌کند.
  • مهندس (Engineer) کد را پیاده‌سازی می‌کند.
  • مهندس تضمین کیفیت (QA Engineer) تست‌ها را اجرا می‌کند.

هر نقش یک طرح‌واره‌ی ورودی و خروجی کاملاً صلب دارد. پرامپت نقش دقیقاً می‌گوید که این نقش چیست و چه خروجی‌ای باید تولید کند. فرمول Code = SOP(Team) به همین معناست: رویه‌های استاندارد قطعی، تیمی از مدل‌های زبانی را به یک پایپ‌لاین (pipeline) پیش‌بینی‌پذیر تبدیل می‌کنند.

حذف ارتباطی توهم در ChatDev

پروژه‌ی ChatDev یک حرکت کلیدی اضافه می‌کند: وقتی مجری به جزئیات مشخصی نیاز دارد که در برنامه نیامده است، پیش از ادامه‌ی کار صریحاً آن را از طراح می‌پرسد. این کار مانع از خطای کلاسیک مدل‌های زبانی می‌شود؛ یعنی سرهم‌کردن اطلاعات با ظاهری فریبنده و موجه.

نحوه‌ی پیاده‌سازی: در پرامپت نقش قید می‌شود: «هر زمان به اطلاعات مشخصی نیاز داشتی که به تو داده نشده است، پیش از تولید خروجی، آن را صریحاً و با ذکر نام از نقش مربوطه بپرس.»

چرا مدل اعتبارسنج از همه مهم‌تر است؟

جمیری و همکاران (در پژوهش MAST) علل 1642 مورد شکست در اجرای سیستم‌های چندایجنتی را ردگیری کردند. 21.3% از آن‌ها به شکاف‌های اعتبارسنجی مربوط می‌شد؛ یعنی سیستم پاسخی را تحویل داده بود که هیچ‌کس آن را بررسی نکرده بود. 79% باقی‌مانده نیز اغلب به این برمی‌گشت که «بررسی مشخصی بی‌صدا با شکست مواجه شده یا اصلاً اجرا نشده بود». اعتبارسنجی ستون اصلی و تکیه‌گاه سیستم است.

شرکت PwC در سال 2025 (در پیاده‌سازی‌های عملیاتی CrewAI) گزارش داد که افزودن یک حلقه‌ی اعتبارسنجی ساختاریافته، دقت را از 10% به 70% رساند؛ یعنی 7 برابر بهبود، تنها از جانب یک نقش.

ناقد در برابر مدل اعتبارسنج

  • ناقد یک مدل زبانی است که کیفیت دست‌سازه را بررسی می‌کند؛ قضاوتی ذهنی دارد و ممکن است فریب متنی ظاهرپسند اما نادرست را بخورد.
  • مدل اعتبارسنج یک برنامه‌ی قطعی است که روی دست‌سازه اجرا می‌شود؛ قضاوتی عینی دارد و نتیجه‌ی قبولی یا رد را همراه با شواهد مستند برمی‌گرداند.

از هر دو استفاده کنید. ناقد ایرادهای مربوط به سبک و سلیقه را می‌گیرد که مدل اعتبارسنج متوجه آن‌ها نمی‌شود. مدل اعتبارسنج هم باگ‌هایی را شکار می‌کند که ناقد نمی‌بیند، زیرا این خطاها فقط در محیط اجرا (runtime) خود را نشان می‌دهند.

پادالگو (Anti-pattern)

تمام نقش‌های سیستم شما مدل زبانی باشند و خروجی همه‌ی آن‌ها «به نظر من خوب است» باشد. این، حالت شکست کلاسیک در MAST است. دست‌کم یک مدل اعتبارسنج بگذارید که قبولی یا رد کار را با اجرای کد تعیین کند، نه با قضاوت یک مدل زبانی.

نگاشت به فریم‌ورک‌ها

  • CrewAI — کلاس Agent(role, goal, backstory) ابزار اصلی و استاندارد برای تخصصی‌سازی نقش‌ها است.
  • LangGraph — گره‌ها پرامپت‌های اختصاصی می‌گیرند و یال‌ها جریان پایپ‌لاین را تحمیل می‌کنند.
  • AutoGen — کلاس‌های ConversableAgentِ ویژه‌ی هر نقش با نام‌های تک‌کلمه‌ای در یک GroupChat.
  • OpenAI Agents SDK — ابزارهای دست‌به‌دست‌کردن وظیفه (handoff tools) میان ایجنت‌های تخصصی.
تخصصی‌سازی نقش‌هایک دست‌سازه، چهار نقش
ROLE SPECIALIZATIONMore agents do not help; different agents do. The plan, the artifact, a subjective critique, and a deterministic check are separate roles with separate tools. The verifier is load-bearing: MAST traces nearly every multi-agent failure to missing or broken verification. A reject sends the artifact back to re-plan.رد → برنامه‌ریزی مجددPLANEXECCRITICVERIFYجریان دست‌سازه میان نقش‌های متمایزبرنامه‌ریز (□) · مجری (○) · منتقد (◇، کیفی) · مدل اعتبارسنج (⬡، قطعی)
افزایش تعداد ایجنت‌ها کمکی نمی‌کند، بلکه تنوع نقش ایجنت‌ها مؤثر است. برنامه‌ریزی، دست‌سازه، نقد کیفی و ارزیابی قطعی، نقش‌هایی مجزا با ابزارهای اختصاصی هستند. مدل اعتبارسنج نقشی حیاتی دارد: ردگیری محاسبات در MAST نشان می‌دهد تقریباً تمام شکست‌های چندایجنت ناشی از نبود یا نقص در اعتبارسنجی است. رد شدن باعث بازگشت دست‌سازه به مرحله‌ی بازبرنامه‌ریزی می‌شود.

پیاده‌سازی

فایل code/main.py یک پایپ‌لاین 4 نقشه برای ساخت یک تابع ساده‌ی پایتونی را پیاده‌سازی می‌کند:

  • برنامه‌ریز مشخصات فنی می‌سازد.
  • مجری رشته‌ی کد را تولید می‌کند.
  • ناقد (شبیه‌سازی‌شده با مدل زبانی) ایرادهای واضح را مشخص می‌کند.
  • مدل اعتبارسنج کد تولیدشده را در یک ساندباکس (sandbox) با دستور exec در برابر یک تست بررسی می‌کند.

این دمو دو بار اجرا می‌شود: یک بار که مجری کد درستی می‌نویسد (ناقد و مدل اعتبارسنج هر دو تایید می‌کنند) و یک بار که مجری کدی مغایر با مشخصات فنی می‌نویسد (ناقد متوجه باگ نمی‌شود چون ظاهر موجهی دارد، اما مدل اعتبارسنج آن را شکار می‌کند چون تست رد می‌شود).

اجرا:

python3 code/main.py

استفاده از ابزار

فایل outputs/skill-role-designer.md یک وظیفه را می‌گیرد و فهرست نقش‌ها (3 تا 5 نقش)، طرح‌واره‌ی ورودی/خروجی هر نقش و تستِ مدل اعتبارسنج را تحویل می‌دهد. پیش از متصل‌کردن ایجنت‌ها به یک فریم‌ورک، از این ابزار استفاده کنید.

تحویل به پروداکشن

چک‌لیست:

  • حداقل یک مدل اعتبارسنج قطعی. هرگز تمام کار را به مدل‌های زبانی نسپارید.
  • طرح‌واره‌ی صریح ورودی/خروجی برای هر نقش. برنامه‌ریز به‌جای متن ساده، مشخصات فنی ساختاریافته برمی‌گرداند؛ مجری نیز همان طرح‌واره را می‌خواند.
  • حذف ارتباطی توهم. مجری باید هنگام کمبود اطلاعات، آن را از برنامه‌ریز بپرسد؛ هرگز اطلاعات سرهم نکنید.
  • ترتیب ناقد و مدل اعتبارسنج. اول ناقد را اجرا کنید (کم‌هزینه است و مشکلات طراحی را می‌گیرد)، سپس مدل اعتبارسنج را اجرا کنید (کندتر است و باگ‌ها را درمی‌آورد).
  • سقف بودجه حلقه (Loop budget). پیش از ارجاع کار به انسان، حداکثر 2 دور بازنگری میان ناقد و مجری در نظر بگیرید.

تمرین‌ها

  1. فایل code/main.py را اجرا کنید و ببینید مدل اعتبارسنج چطور باگی را که ناقد ندیده بود شکار می‌کند. یک بررسی تحلیل ایستا (شمارش دفعات تکرار return) به عنوان مدل اعتبارسنج اضافه کنید. این بررسی چه خطاهایی را پیدا می‌کند که تست محیط اجرا متوجه آن‌ها نمی‌شود؟
  2. نقش پنجمی اضافه کنید: «تحلیل‌گر نیازمندی‌ها» که خواسته‌ی کاربر را به مشخصات فنی آماده برای برنامه‌ریز تبدیل کند. چه درخواست‌هایی برای حذف ارتباطی توهم باید به این نقش فرستاده شوند؟
  3. بخش 3 («Agents») مقاله MetaGPT را بخوانید. طرح‌واره‌ی ورودی/خروجی هر یک از 5 نقش MetaGPT را فهرست کنید.
  4. نمودار زنجیره‌ی گفت‌وگو در پروژه‌ی ChatDev را ببینید (تصویر شماره 3 در مقاله arXiv:2307.07924). مشخص کنید حذف ارتباطی توهم در چه نقطه‌ای حلقه‌ای را که ممکن بود تا بی‌نهایت ادامه پیدا کند می‌شکند.
  5. رشد 7 برابری دقت در گزارش PwC نتیجه‌ی حلقه‌های اعتبارسنجی بود. سه وظیفه فرض کنید که افزودن مدل اعتبارسنج کمکی به آن‌ها نمی‌کند؛ یعنی جاهایی که بررسی قطعی درستی کار غیرممکن است یا هزینه‌ی بسیار سنگینی دارد.

اصطلاحات کلیدی

اصطلاح در گفت‌وگوها چه می‌گویند معنای واقعی چیست
تخصصی‌سازی نقش (Role specialization) «ایجنت‌های متفاوت، کارهای متفاوت» پرامپت‌های سیستمی متمایز که مشخصاً برای نقش‌های برنامه‌ریز، مجری، ناقد و مدل اعتبارسنج تنظیم شده‌اند.
الگوی SOP (SOP pattern) «دستورالعمل عملیاتی استاندارد کدنویسی‌شده» دیدگاه MetaGPT: طرح‌واره‌های ورودی/خروجی سخت‌گیرانه برای هر نقش، یک تیم را به یک پایپ‌لاین پیش‌بینی‌پذیر تبدیل می‌کنند.
حذف ارتباطی توهم (Communicative dehallucination) «پیش از بافتن اطلاعات، سؤال بپرس» الگوی ChatDev: مجری به‌جای از خود درآوردن جزئیات جاافتاده، آن‌ها را مستقیماً از برنامه‌ریز می‌پرسد.
ناقد (Critic) «بازبین مبتنی بر مدل زبانی» ارزیاب ذهنی و سلیقه‌محور. مسائل کیفی و نگارشی را می‌گیرد، اما ممکن است فریب کلمات موجه را بخورد.
مدل اعتبارسنج (Verifier) «بررسی قطعی» بررسی قبولی/رد مبتنی بر کد. ابزار اجرای آزمون، بررسی‌کننده‌ی نوع داده، اعتبارسنج طرح‌واره. فریب نمی‌خورد.
شکاف اعتبارسنجی (Verification gap) «هیچ‌کس بررسی نکرد» ریشه‌ی 21.3% از شکست‌های MAST؛ پاسخی به عنوان خروجی نهایی تحویل شده بدون این‌که آزمونی برای کشف باگ آن اجرا شده باشد.
حلقه‌ی بازنگری (Revision loop) «ناقد کار را پس فرستاد» رد خروجی توسط ناقد که باعث اجرای دوباره‌ی مجری همراه با دریافت بازخورد می‌شود. این بخش به سقف بودجه نیاز دارد.
پادالگوی تماماً مبتنی بر LLM (All-LLM anti-pattern) «به نظر من خوب است» همه‌ی نقش‌ها مدل زبانی باشند و هیچ بررسی قطعی کدی وجود نداشته باشد؛ الگوی کلاسیک شکست‌های MAST.

برای مطالعه‌ی بیشتر

سؤالات متداول

تفاوت اصلی بین ناقد (Critic) و مدل اعتبارسنج (Verifier) چیست؟

ناقد معمولاً یک مدل زبانی است که نگاهی کیفی و ذهنی دارد و ممکن است فریب خروجی‌های موجه اما غلط را بخورد؛ درحالی‌که اعتبارسنج یک ابزار یا اسکریپت قطعی مبتنی بر کد (مثل تستر یا تایپ‌چکر) است که نتیجه‌ی قبولی یا رد را با شواهد عینی مشخص می‌کند.

پادالگوی تماماً مبتنی بر LLM (All-LLM anti-pattern) چیست و چه خطری دارد؟

حالتی است که تمام نقش‌های پایپ‌لاین مدل زبانی باشند و هیچ بررسی قطعی با کد انجام نشود؛ در این حالت ایجنت‌ها صرفاً خروجی‌های یکدیگر را بدون سنجش عملکردی واقعی تأیید می‌کنند که عامل شکست سیستم است.

منظور از حذف ارتباطی توهم (Communicative dehallucination) در پروژه‌ی ChatDev چیست؟

روشی است که طی آن اگر ایجنت مجری برای ادامه‌ی کار به جزئیاتی نیاز داشته باشد که در برنامه‌ی اولیه ذکر نشده، به‌جای سرهم‌کردن اطلاعات خیالی، صریحاً آن جزئیات را از نقش برنامه‌ریز یا طراح درخواست می‌کند.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.