خلاصهی مدیریتی
فرض رایج این است که وقتی یک سیستم چندایجنتی بد کار میکند، مدلها بهاندازهی کافی خوب نیستند. دادهی میدانی این فرض را رد میکند. شکست این سیستمها بیشتر شبیه سوانح صنعتی است تا باگ نرمافزاری: چند خطای کوچک که هیچکدام بهتنهایی فاجعه نیستند، در لایههای متوالی همراستا میشوند و از سیستم عبور میکنند.
- دادهی پایه. تحلیل ۱٬۶۴۲ اجرای واقعی روی هفت فریمورک مطرح، ۱۴ مود شکست تکرارشونده را در سه دسته شناسایی کرد، با توافق بینارزیاب کاپای ۰٫۸۸.۱
- ریشهی شکستها. ۴۴٫۲٪ از مسائل طراحی سیستم، ۳۲٫۳٪ از ناهمترازی بین ایجنتها و ۲۳٫۵٪ از ضعف تأیید و توقف. هیچ دستهای غالب مطلق نیست — یعنی یک راهحل واحد وجود ندارد.
- عدد تکاندهنده. ChatDev روی محک ProgramDev در همان مطالعه ۳۳٫۳٪ موفقیت ثبت کرد. این عدد فقط در همان محک معنا دارد و با نتایج فریمورکهای دیگر روی محکهای متفاوت قابل مقایسهی مستقیم نیست.
- خبر خوب. اصلاح معماری با همان مدلها بهبود ۹٫۴ تا ۱۵٫۶ درصدی داد. یعنی بخش بزرگی از مسئله با پول بیشتر برای مدل حل نمیشود، با طراحی بهتر حل میشود.
- چارچوب فکری. نظریهی «سوانح عادی» چارلز پرو (۱۹۸۴) توضیح میدهد چرا: سیستمی که همزمان پیچیدگی تعاملی و جفتشدگی تنگ دارد، شکست را بهعنوان ویژگی ساختاری تولید میکند، نه بهعنوان نقص.۲
- هشدار ضدشهودی. پرو نشان داد افزودن لایههای ایمنی و افزونگی میتواند اوضاع را بدتر کند، چون خودش پیچیدگی اضافه میکند. رفلکس «یک ایجنت بازبین اضافه کنیم» دقیقاً همین تله است.
اگر هنوز تصمیم نگرفتهاید چندایجنتی بسازید یا نه، اول چندایجنتی یا تکایجنتی را بخوانید — این صفحه فرض میکند شما ساختهاید و حالا کار نمیکند. تعریفهای پایه هم در راهنمای سیستم چندایجنتی آمده.
شکست، باگ نیست — ویژگی ساختاری است
چارلز پرو در ۱۹۸۴ نشان داد سیستمهایی که همزمان دو خصلت دارند — پیچیدگی تعاملی و جفتشدگی تنگ — سوانحی تولید میکنند که او آنها را «عادی» نامید: نه به این معنا که مکررند، بلکه به این معنا که ذاتی خودِ ساختارند. سیستمهای چندایجنتی دقیقاً در همین ربع مینشینند.
دو محور تعریف پرو سادهاند:
- پیچیدگی تعاملی — اجزای سیستم به شیوههایی روی هم اثر میگذارند که طراح پیشبینی نکرده بود. برهمکنشها پنهاناند و در لحظه قابل فهم نیستند.
- جفتشدگی تنگ — بین اجزا لقی وجود ندارد. خروجی هر جزء بلافاصله ورودی جزء بعدی است، فرصتی برای مداخله یا اصلاح نیست.
حالا یک سیستم چندایجنتی را با این دو محور بسنجید. ایجنتها به شیوههایی روی هم اثر میگذارند که در طراحی نبوده: یکی اطلاعاتی را که دیگری لازم دارد منتقل نمیکند، دیگری وظیفه را نامحسوس منحرف میکند، سومی پیشنهاد اولی را کاملاً نادیده میگیرد. و جفتشدگی تنگ است، چون خروجی هر ایجنت مستقیماً ورودی بعدی میشود بیآنکه کسی وسط بایستد.
سیستم چندایجنتی، نرمافزار توزیعشده نیست؛ سازمانی است از تصمیمگیرندههای ناکامل.
چرا این تشخیص اهمیت عملی دارد
اگر شکست را باگ بدانید، دنبال «آن خطِ خراب» میگردید و وقتی پیدایش نمیکنید، مدل را عوض میکنید. اگر شکست را ساختاری بدانید، سراغ کاهش جفتشدگی و پیچیدگی تعاملی میروید — یعنی کاری که داده نشان میدهد جواب میدهد: اصلاح معماری با همان مدلها، بهبود ۹٫۴ تا ۱۵٫۶ درصدی داد.۱
پیش از عوض کردن مدل بپرسید: کدام دو ایجنت من بیش از حد به هم چسبیدهاند، و کدام برهمکنش را هنگام طراحی ندیده بودم؟
مدل پنیر سوئیسی: چرا خطاها با هم جمع میشوند
مدل جیمز ریزن میگوید هر لایهی دفاعی سیستم مثل یک برش پنیر سوئیسی است: حفره دارد، اما حفرهها در جای متفاوتیاند. حادثه وقتی رخ میدهد که حفرههای چند لایه لحظهای روی یک خط قرار بگیرند. در سیستم چندایجنتی، هر ایجنت یک لایه است.
این مدل توضیح میدهد چرا اشکالزدایی سیستمهای چندایجنتی اینقدر سخت است: وقتی به لاگ نگاه میکنید، هیچ ایجنتی «خراب» به نظر نمیرسد. هر کدام کاری کردهاند که در بافت خودشان کاملاً معقول بوده.۳
نمونهی واقعی از یک زنجیرهی چهار لایهای:
دقت کنید لایهی چهارم — همان ایجنت بازبینی که قرار بود ایمنی بیاورد — نهتنها جلوی خطا را نگرفت، بلکه به آن مهر تأیید زد. این دقیقاً هشدار پرو دربارهی افزونگی است: لایهی ایمنیای که اطلاعات کافی ندارد، ایمنی نمیآورد؛ اعتماد کاذب میآورد.
یک ایجنت بازبین فقط وقتی ارزش دارد که به مشخصات اصلی وظیفه دسترسی داشته باشد، نه صرفاً به خروجی مرحلهی قبل. بازبینی که فقط «انسجام» را چک میکند، در برابر خطای مشخصات کاملاً کور است. همین اصلاح — تغییر مرجع بازبینی از خروجی به هدف سطحبالا — در یکی از آزمایشها ۱۵٫۶٪ بهبود مطلق داد.۱
۱۴ مود شکست، در سه دسته
پژوهشگران با بررسی ۱٬۶۴۲ اجرای واقعی، الگوهای شکست را به یک طبقهبندی ۱۴تایی در سه دسته تقلیل دادند — همان منطق تحلیل مود شکست که دهههاست در مهندسی قابلیت اطمینان به کار میرود.۱۶ ارزش این طبقهبندی در این است که به شما زبان مشترک میدهد: بهجای «سیستم کار نمیکند»، میتوانید بگویید «مود ۲٫۴ داریم» — و برای آن یک راهحل مشخص وجود دارد.
سهم هر دسته از کل شکستهای ثبتشده:
و پرتکرارترین مودهای منفرد، که روی هم ۵۳٫۱٪ از رخدادهای مودهای شکست را میسازند:
- تکرار مرحله — ایجنت کاری را که انجام شده دوباره انجام میدهد۱۵٫۷٪
- ناهمخوانی استدلال و کنش — درست فکر میکند، اشتباه عمل میکند۱۳٫۲٪
- ناآگاهی از شرط توقف — ایجنت زمان پایان واقعی را تشخیص نمیدهد۱۲٫۴٪
- نقض مشخصات وظیفه — یکی از قیدهای صریح کار نادیده گرفته میشود۱۱٫۸٪
نکتهی مهم: هیچ دستهای غالب مطلق نیست. یعنی نمیتوانید با یک اصلاح واحد — مثلاً بهتر کردن پرامپتها — بیشتر مسئله را حل کنید. هر دسته راهحل ساختاری متفاوتی میخواهد.
دستهی یک: مشخصات و طراحی سیستم
بزرگترین دسته با ۴۴٫۲٪. این شکستها پیش از اجرا متولد میشوند — در لحظهای که وظیفه، نقشها و شرط توقف را تعریف کردید. هیچ مدلی نمیتواند مشخصاتِ مبهم را جبران کند.
ایجنت محدودیتهای صریح وظیفه را نادیده میگیرد: قالب خروجی، بازهی زمانی، زبان، سقف طول. اغلب چون مشخصات در پرامپت اولیه بوده و در راندهای بعد از زمینه بیرون رفته.
نشانه: خروجی معقول است ولی به یکی از قیدهای اولیه پایبند نیست ← مشخصات را در هر راند دوباره تزریق کنید، نه فقط در ابتدا.ایجنت از مرز نقش خود بیرون میزند و کار ایجنت دیگر را انجام میدهد. ایجنت «بازبین» شروع میکند به بازنویسی، یا ایجنت «پژوهشگر» تصمیم نهایی میگیرد.
نشانه: دو ایجنت خروجی همپوشان تولید میکنند ← در پرامپت هر نقش، صریحاً بنویسید چه کاری را نباید انجام دهد.ایجنت کاری را که قبلاً انجام شده دوباره انجام میدهد. معمولاً چون نمیداند انجام شده، یا چون نتیجهی قبلی در زمینهاش نیست.
نشانه: مصرف توکن بالا بدون پیشرفت ← یک «دفترچهی وضعیت» مشترک نگه دارید که مراحل انجامشده در آن ثبت میشود، و پیش از هر اقدام آن را چک کنید.بخشی از تاریخچه از زمینه بیرون میرود و ایجنت تصمیمی میگیرد که با تصمیمهای قبلی ناسازگار است. این همان جایی است که زوال زمینه به شکست تبدیل میشود.
نشانه: تناقض بین خروجی مراحل ابتدایی و پایانی — و توجه کنید افت کیفیت زمینه بسیار زودتر از سقف اسمی پنجره شروع میشود۷ ← فشردهسازی زمینه با حفظ صریح «تصمیمهای گرفتهشده». مهندسی زمینه این را پوشش میدهد.ایجنت نمیداند کِی کار تمام است، پس یا زودتر میایستد یا تا سقف بودجه ادامه میدهد. رایجترین علت هزینهی افسارگسیخته.
نشانه: اجراهایی که همیشه به سقف مرحله میرسند ← شرط توقف مرکب: سقف مرحله + محدودیت زمان + تشخیص گیر افتادن + سقف بودجه. جزئیات در مهندسی حلقه.دستهی دو: ناهمترازی بین ایجنتها
۳۲٫۳٪ رخدادهای شکست. جالبترین دسته، چون هیچکدام از این مودها «خطا» به معنای متعارف نیستند — هر ایجنت کاری معقول میکند، اما در بافتی که ناقص است. اینها شکستهای ارتباطیاند، نه شناختی.
گفتوگو به نقطهای برمیگردد که قبلاً از آن گذشته بود، و پیشرفت حاصلشده از دست میرود. اغلب پس از یک خطا یا یک پیام نامفهوم.
نشانه: تکرار عین یک تبادل در لاگ ← وضعیت را بیرون از گفتوگو نگه دارید تا ریست شدن گفتوگو، وضعیت را پاک نکند.ایجنت ابهام را تشخیص میدهد اما بهجای پرسیدن، فرض میگیرد و ادامه میدهد. فرضِ نانوشته، همان «حفره»ی مدل پنیر سوئیسی است.
نشانه: خروجی درست است ولی روی فرض اشتباه ← به ایجنت اجازهی صریح پرسیدن بدهید و «توقف برای پرسش» را یک خروجی معتبر تعریف کنید، نه شکست.گفتوگو بهتدریج از هدف اصلی دور میشود بدون آنکه کسی متوجه لحظهی انحراف شود. هر گام کوچک منطقی است؛ مجموعشان بیربط.
نشانه: خروجی نهایی به پرسش اولیه ربط کمی دارد ← در هر N مرحله، هدف اصلی را بازخوانی و انطباق را صریح بررسی کنید.ایجنتی چیزی میداند که ایجنت دیگر لازم دارد، ولی چون کسی نپرسیده منتقلش نمیکند. مشکل، هوش نیست — «نظریهی ذهن» است: نمیفهمد دیگری چه چیزی را نمیداند.
نشانه: ایجنت دوم تصمیمی میگیرد که با داشتن اطلاعات اول نمیگرفت ← ردِ کامل اجرا را به اشتراک بگذارید، نه فقط پیام نهایی.ایجنت پیام دریافتی را عملاً نمیخواند و مسیر خودش را ادامه میدهد. در ساختارهای گروهی با پیامهای زیاد شایعتر است.
نشانه: پاسخی که به محتوای پیام قبلی اشارهای ندارد ← ایجنت را ملزم کنید پیش از پاسخ، نکتهی کلیدی پیام دریافتی را بازگو کند.ایجنت درست استدلال میکند و بعد کاری متفاوت انجام میدهد. مثلاً مینویسد «باید ابتدا موجودی را چک کنم» و بعد مستقیم قیمت میدهد.
نشانه: فاصله بین بخش استدلال و ابزار فراخوانیشده ← اعتبارسنجی برنامهمحور: بررسی کنید کنش انجامشده با کنش اعلامشده یکی است.هیچکدام از این شش مود در لاگ بهصورت خطا ظاهر نمیشوند. سیستم گزارش میدهد همهچیز موفق بوده. تشخیصشان نیاز به بررسی معنایی ردِ اجرا دارد، نه چک کردن کد وضعیت — و این دقیقاً همان چیزی است که ابزارهای پایش سنتی نمیبینند.
دستهی سه: تأیید و توقف وظیفه
۲۳٫۵٪ رخدادهای شکست و کوچکترین دسته — اما پرهزینهترین، چون اینها آخرین خط دفاعیاند. وقتی لایهی تأیید کار نکند، همهی خطاهای دو دستهی قبل بدون مانع به دست کاربر میرسند.
سیستم پیش از تکمیل واقعی وظیفه اعلام پایان میکند. معمولاً چون معیار «تمام شدن» را با «پاسخ دادن» اشتباه گرفته است.
نشانه: خروجی ناقص ولی با لحن قطعی ← معیار تکمیل را بهصورت فهرست قابل بررسی تعریف کنید، نه قضاوت مدل.هیچ بررسی واقعی انجام نمیشود، یا بررسی فقط سطحی است. رایجترین شکلش: ایجنتی که میگوید «به نظر خوب است».
نشانه: مرحلهی تأیید هرگز چیزی رد نمیکند ← اگر بازبین شما تا حالا هیچ خروجیای را برنگردانده، بازبین ندارید.بررسی انجام میشود اما با معیار اشتباه — مثل بازبینی که انسجام متن را چک میکند در حالی که مسئله صحت داده است. این خطرناکترین حالت است چون اعتماد کاذب میسازد.
نشانه: خطاها از فیلتر رد میشوند و «تأییدشده» برچسب میخورند ← بازبین باید به مشخصات اصلی وظیفه دسترسی داشته باشد، نه فقط به خروجی مرحلهی قبل.اصلاح همین دسته بیشترین بازده مستندشده را داشت: افزودن یک مرحلهی تأیید که بهجای خروجی، هدف سطحبالای وظیفه را مبنا میگرفت، ۱۵٫۶٪ بهبود مطلق در نرخ موفقیت داد — بدون تغییر هیچ مدلی.۱
پروفایل شکست هر معماری
مودهای شکست بهطور یکنواخت بین معماریها پخش نشدهاند. هر الگوی معماری مجموعهی مشخصی از حفرهها را میسازد. دانستن اینکه معماری شما مستعد کدام مودهاست، فضای جستوجوی عیبیابی را از ۱۴ به سه یا چهار کاهش میدهد.
| معماری | مودهای مستعد | چرا |
|---|---|---|
| ترتیبی (زنجیرهای) | FM-1.4 گمشدن تاریخچه · FM-2.3 انحراف وظیفه | جفتشدگی بیشینه است. خطای مرحلهی اول بدون مانع تا انتها منتشر میشود و هیچ مسیر موازی برای تشخیص تناقض وجود ندارد. |
| ارکستریتور-کارگر | FM-1.1 نقض مشخصات · FM-2.4 کتمان اطلاعات | سرپرست وظیفه را میشکند و در این شکستن، بخشی از قید اصلی گم میشود. کارگرها هم نمیدانند دیگری چه یافته. |
| سلسلهمراتبی | FM-1.4 · FM-2.4 · FM-3.3 تأیید نادرست | هر لایهی میانی یک نقطهی جدید برای تحریف پیام است — و لایههای بالاتر هرچه دورتر، معیار تأییدشان انتزاعیتر و بیربطتر میشود. |
| گروهی / شبکهای | FM-2.5 نادیده گرفتن ورودی · FM-1.3 تکرار مرحله | حجم پیامها بالاست و مالکیت وظیفه مبهم. چند ایجنت همزمان فکر میکنند کار با آنهاست، یا هیچکدام. |
| مناظره / بحث | FM-2.5 · FM-3.1 توقف زودهنگام | همگرایی زودهنگام روی یک پاسخ، و سرکوب ایجنتی که موضع درست دارد.۱۳ |
| تکایجنت + زیرایجنت فقطخواننده | FM-1.1 · FM-3.2 تأیید غایب | در بسیاری از سناریوهای فقطخواندنی کمریسکتر است؛ چون ارتباط مستقیم میان زیرایجنتها حذف میشود، بخشی از مودهای ناهمترازی کمتر میشوند. |
ردیف آخر تصادفی نیست. وقتی زیرایجنتها فقط میخوانند و فقط به سرپرست گزارش میدهند، سه شرطِ لازمِ دستهی ناهمترازی از بین میرود: ارتباط دوطرفه، مالکیت مشترک وظیفه، و نیاز به دانستن اینکه دیگری چه میداند. این همان استدلالی است که در معماری سوم بهتفصیل آمده — و منطبق با موضعی است که تیمهای تولیدی از دل تجربه به آن رسیدهاند.۶
الگوهای بحثمحور، دستهی خاص خودشان را دارند
اگر معماری شما بر پایهی بحث یا رأیگیری بین ایجنتهاست، دو نکتهی مستقل از این طبقهبندی هم اهمیت دارد. اول اینکه افزایش تعداد راندهای بحث معمولاً عملکرد را پایین میآورد در حالی که افزایش تعداد ایجنتها آن را بالا میبرد۱۱ — یعنی رفلکس رایج «یک راند دیگر اضافه کنیم» مستقیماً مود ۳٫۱ و مصرف بیثمر توکن میسازد. دوم اینکه بخش عمدهی سود این معماریها از رأیگیری میآید نه از خودِ بحث۱۰، و پیکربندیشان بهشدت به تنظیمات حساس است و بین مدلها و مجموعهدادهها منتقل نمیشود.۱۲
بررسی مستقلی روی نُه محک هم نشان داد افزایش بودجهی محاسباتی در این معماریها لزوماً به دقت بیشتر ترجمه نمیشود۸ — پس اگر سیستم بحثمحور شما کند و گران است ولی بهتر نمیشود، این رفتار پیشبینیشده است نه باگ. تحلیل کامل این خانواده در مقالهی مناظرهی مدلها آمده.
پیش از گشتن دنبال ۱۴ مود، معماریتان را در جدول بالا پیدا کنید. سه مودِ محتمل، نقطهی شروع بسیار بهتری از چهارده مودِ ممکن است.
کِی باید تعمیر را متوقف کرد
گاهی مسئله این نیست که سیستم چندایجنتی شما خراب است؛ این است که این کار اصلاً نباید چندایجنتی میبود. چهار نشانه وجود دارد که میگوید وقت تعمیر تمام شده و باید معماری را ساده کرد.
- خط پایهی تکایجنتی همسطح یا بهتر است. اگر یک ایجنت با پرامپت قوی و مثالهای درونزمینهای به همان عدد میرسد، پیچیدگی اضافه هیچ چیزی نمیخرد.۹
- بیشتر شکستهایتان در دستهی دو است. ناهمترازی بین ایجنتها فقط وقتی وجود دارد که چند ایجنت وجود داشته باشد. کاهش تعداد ایجنتها، این دسته را مستقیماً کوچک میکند.
- هر اصلاح، مود جدیدی میسازد. این علامت کلاسیک پارادوکس افزونگی است: هر لایهای که برای ایمنی اضافه میکنید، خودش سطح تعامل تازهای میآورد.۲
- زمان تشخیص علت از زمان توسعه بیشتر شده. وقتی فهمیدن اینکه چرا یک خروجی اشتباه بود، بیشتر از ساختن دوبارهی آن قابلیت طول میکشد، هزینهی نگهداری از ارزش معماری گذشته است.
راهنمای عیبیابی: از نشانه به مود
بیشتر تیمها با یک نشانهی مبهم شروع میکنند: «خروجی گاهی اشتباه است». این جدول نشانههای قابل مشاهده را به مودهای محتمل نگاشت میکند تا بهجای حدس زدن، جای درست را بگردید.
| نشانهای که میبینید | مود محتمل | اولین جایی که باید نگاه کنید |
|---|---|---|
| مصرف توکن بالا بدون پیشرفت | FM-1.3 تکرار مرحله | آیا وضعیت مشترکی از مراحل انجامشده وجود دارد؟ |
| اجرا همیشه به سقف مرحله میرسد | FM-1.5 ناآگاهی از توقف | شرط توقف چند سیگنالی است یا فقط سقف مرحله؟ |
| خروجی معقول ولی روی فرض اشتباه | FM-2.2 نپرسیدن سؤال | آیا «پرسیدن» خروجی معتبری تعریف شده؟ |
| تناقض بین ابتدا و انتهای اجرا | FM-1.4 گمشدن تاریخچه | در کدام مرحله زمینه فشرده شد و چه چیزی حذف شد؟ |
| ایجنت چیزی میگوید و کار دیگری میکند | FM-2.6 ناهمخوانی استدلال و کنش | آیا کنش انجامشده با کنش اعلامشده مقایسه میشود؟ |
| بازبین هیچوقت چیزی رد نمیکند | FM-3.2 تأیید غایب | معیار رد کردن چیست و آیا اصلاً تعریف شده؟ |
| خروجی به پرسش اولیه ربط کمی دارد | FM-2.3 انحراف وظیفه | هدف اصلی هر چند مرحله بازخوانی میشود؟ |
| دو ایجنت کار هم را انجام میدهند | FM-1.2 نقض نقش | آیا در پرامپت هر نقش نوشتهاید چه کاری را نباید بکند؟ |
| خطا رد میشود ولی «تأییدشده» برچسب میخورد | FM-3.3 تأیید نادرست | بازبین به مشخصات اصلی دسترسی دارد یا فقط به خروجی؟ |
عیبیابی بدون خط پایهی عددی بیمعناست. یک مجموعهی ارزیابی با دستکم ۵۰ نمونه بسازید و هر وظیفه را چند بار اجرا کنید — نه یک بار. نرخ موفقیتِ مکرر معیار درست است، نه موفقیت گاهبهگاه.۵
پنج اصلاح ساختاری با بیشترین اثر
این پنج اصلاح بهترتیب نسبت اثر به هزینه مرتب شدهاند. هر پنجتا معماری را عوض میکنند نه مدل را — و همین نکته است، چون داده نشان میدهد اصلاح معماری با همان مدلها ۹٫۴ تا ۱۵٫۶ درصد بهبود میدهد.
- بازبینی را به هدف وصل کنید، نه به خروجیبازبین باید مشخصات اصلی وظیفه را ببیند و بپرسد «آیا این خواسته را برآورده میکند؟» — نه «آیا این متن منسجم است؟». پرسودترین اصلاح مستندشده: ۱۵٫۶٪ بهبود مطلق.
- مشخصات را در هر راند دوباره تزریق کنیدقیدها و هدف نباید فقط در پرامپت اولیه باشند. آنها را در هر مرحله دوباره وارد زمینه کنید — این تنها راه مهار مود ۱٫۱ و ۲٫۳ است.
- وضعیت را بیرون از گفتوگو نگه داریدیک دفترچهی وضعیت ساختاریافته که مراحل انجامشده و تصمیمهای گرفتهشده را ثبت میکند. هم تکرار مرحله را مهار میکند (۱۵٫۷٪ از رخدادهای مود شکست) هم گمشدن تاریخچه را.
- «پرسیدن» را خروجی معتبر تعریف کنیدتا وقتی توقف برای پرسش، شکست محسوب شود، ایجنت فرض میگیرد. یک مسیر رسمی برای برگرداندن سؤال به انسان یا به ایجنت بالادست بگذارید.
- کنش اعلامشده را با کنش انجامشده مقایسه کنیدیک بررسی برنامهمحور — نه مدلمحور — که چک میکند ابزار فراخوانیشده با چیزی که ایجنت گفت میخواهد انجام دهد یکی است. مود ۲٫۶ را که ۱۴٪ شکستهاست مهار میکند.
رفلکس رایج «یک ایجنت ناظر اضافه کنیم» در فهرست بالا نیست، عمداً. طبق هشدار پرو، افزونگی خودش پیچیدگی تعاملی اضافه میکند و میتواند خالصاثر منفی داشته باشد.۲ ایجنت ناظر فقط وقتی مثبت است که اطلاعات متفاوتی داشته باشد — وگرنه فقط یک لایهی پنیر دیگر با همان حفره است.
و اگر بعد از این پنج اصلاح هنوز نتیجه نگرفتید، پرسش درست عوض میشود: شاید مسئله این باشد که این کار اصلاً نباید چندایجنتی میبود. جدول تصمیم معماری این را روشن میکند.
مشاهدهپذیری: چه چیزی را باید لاگ کنید
ابزارهای پایش سنتی کد وضعیت و زمان پاسخ را میبینند، اما هیچکدام از ۱۴ مود بالا کد خطا تولید نمیکنند. برای سیستم چندایجنتی باید معنا را لاگ کنید نه فقط رویداد.
حداقل چیزی که باید در هر مرحله ثبت شود:
| چه چیزی | چه مودی را قابل تشخیص میکند |
|---|---|
| هدف اعلامشدهی ایجنت پیش از هر کنش | FM-2.6 ناهمخوانی استدلال و کنش |
| ابزار فراخوانیشده و پارامترهایش | FM-2.6 و FM-1.2 |
| خلاصهی زمینهای که ایجنت دریافت کرد | FM-1.4 گمشدن تاریخچه · FM-2.4 کتمان اطلاعات |
| فهرست مراحل انجامشده تا این لحظه | FM-1.3 تکرار مرحله |
| فرضهایی که ایجنت گرفته (صریح بپرسید) | FM-2.2 نپرسیدن سؤال |
| معیاری که بازبین بر اساس آن تأیید کرد | FM-3.2 و FM-3.3 |
| دلیل توقف (کدام سیگنال فعال شد) | FM-1.5 و FM-3.1 |
تیمهایی که سیستم چندایجنتی را در مقیاس تولیدی اجرا کردهاند، پایش سطحبالای الگوهای تصمیمگیری و نگهداری بادوام وضعیت را از درسهای اصلی خود شمردهاند.۴
ستون آخر مهمترین است و معمولاً غایب: اگر ندانید سیستم چرا ایستاد، نمیتوانید بین «کار تمام شد» و «بودجه تمام شد» تفکیک کنید — و این دو نتیجهی کاملاً متفاوتی برای کاربر دارند.
اگر لاگ شما فقط ورودی و خروجی هر ایجنت را دارد، عملاً کور هستید. آنچه تشخیص را ممکن میکند، ثبت نیت و فرض است، نه پیام.
هفت اشتباه در رفع اشکال سیستم چندایجنتی
عوض کردن مدل بهعنوان اولین اقدام
گرانترین و کماثرترین کار ممکن. داده نشان میدهد بیشتر شکستها از طراحی میآیند نه از مدل.
درست: اول مود شکست را مشخص کنید، بعد تصمیم بگیرید.افزودن ایجنت ناظر بدون اطلاعات متفاوت
ناظری که همان چیزی را میبیند که بقیه دیدهاند، فقط یک لایهی پنیر دیگر با همان حفره است.
درست: ناظر باید به مشخصات اصلی وظیفه دسترسی داشته باشد، نه فقط به خروجی مرحلهی قبل.اعتماد به لاگهای «موفق»
هیچکدام از مودهای دستهی دو کد خطا تولید نمیکنند. سیستم گزارش میدهد همهچیز خوب بوده.
درست: نمونهگیری دستی از ردِ اجراها، حتی وقتی هیچ خطایی گزارش نشده.تست با یک اجرا بهازای هر سناریو
این سیستمها تصادفیاند. یک اجرای موفق چیزی را ثابت نمیکند.
درست: هر سناریو را چند بار اجرا کنید و نرخ موفقیت مکرر را گزارش دهید.اصلاح پرامپت بهعنوان راهحل همهچیز
پژوهش صریح میگوید بخشی از این شکستها با مهندسی پرامپت تاکتیکی حل نمیشوند و نیاز به تغییر ساختاری دارند.
درست: پرامپت برای دستهی یک کمک میکند؛ دستهی دو و سه اصلاح معماری میخواهند.نداشتن مجموعهی ارزیابی
بدون خط پایهی عددی، هر «بهبود» یک حس است نه یک واقعیت.
درست: دستکم ۵۰ نمونهی ثابت، و اندازهگیری پیش و پس از هر تغییر.نادیده گرفتن گزینهی حذف ایجنت
گاهی بهترین اصلاح، برداشتن یک ایجنت است — نه اضافه کردن. کاهش جفتشدگی، مستقیمترین راه کاهش سوانح ساختاری است.
درست: قبل از افزودن، بپرسید کدام ایجنت را میشود حذف کرد.جمعبندی
سیستمهای چندایجنتی بهخاطر ضعف مدل شکست نمیخورند؛ بهخاطر ساختارشان شکست میخورند. پیچیدگی تعاملی و جفتشدگی تنگ، شکست را به ویژگی سیستم تبدیل میکنند. خبر خوب اینکه هر دوی اینها متغیرهای طراحیاند — یعنی قابل کاهش.
| اگر... | اقدام |
|---|---|
| هنوز نمیدانید کدام مود شکست را دارید | جدول عیبیابی بخش ۱۰ — از نشانه به مود |
| بازبین شما هیچوقت چیزی رد نمیکند | بازبین را به هدف وصل کنید، نه به خروجی (+۱۵٫۶٪) |
| مصرف توکن بالاست بدون پیشرفت | دفترچهی وضعیت مشترک بسازید — مود ۱٫۳ |
| خروجی درست است ولی روی فرض اشتباه | «پرسیدن» را خروجی معتبر تعریف کنید — مود ۲٫۲ |
| لاگها همیشه موفقاند ولی نتیجه بد است | نیت و فرض را لاگ کنید، نه فقط پیام |
| پنج اصلاح را زدید و باز جواب نداد | احتمالاً این کار نباید چندایجنتی میبود |
پیش از افزودن ایجنت بعدی بپرسید کدام ایجنت را میتوانید حذف کنید.
سیستم ایجنتیتان نتیجهی قابل اتکا نمیدهد؟
در فیلتور ابتدا مود شکست را مشخص میکنیم و بعد کوچکترین اصلاح ساختاری را پیشنهاد میدهیم. اگر تشخیص دهیم مسئله با حذف یک ایجنت حل میشود، همین را میگوییم. مشاورهی اولیه رایگان است.
بقیهی این خوشه
پایهها: مهندسی زمینه و مهندسی حلقه. پیادهسازی: ربات بله، ربات تلگرام، خدمات اتوماسیون و درباره فیلتور.
ادامهی مطالعه بر اساس مسئلهی شما
برای جلوگیری از مطالعهی پراکنده، مسیر بعدی را براساس وضعیت پروژه انتخاب کنید.
پرسشهای پرتکرار
چون همزمان دو خصلت دارند که طبق نظریهی سوانح عادی، شکست را ساختاری میکنند: پیچیدگی تعاملی (ایجنتها به شیوههای پیشبینینشده روی هم اثر میگذارند) و جفتشدگی تنگ (خروجی هر ایجنت بلافاصله ورودی بعدی است). تحلیل ۱٬۶۴۲ اجرای واقعی نشان داد ۴۴٫۲٪ رخدادهای شکست در دستهی مسائل طراحی سیستم قرار میگیرند، نه از ضعف مدل.
در سه دسته: مشخصات و طراحی سیستم (نقض مشخصات وظیفه، نقض نقش، تکرار مرحله، گمشدن تاریخچه، ناآگاهی از شرط توقف)، ناهمترازی بین ایجنتها (ریست گفتوگو، نپرسیدن سؤال، انحراف وظیفه، کتمان اطلاعات، نادیده گرفتن ورودی دیگری، ناهمخوانی استدلال و کنش)، و تأیید و توقف (توقف زودهنگام، تأیید ناقص، تأیید نادرست).
تکرار مرحله با ۱۵٫۷٪ — ایجنت کاری را که قبلاً انجام شده دوباره انجام میدهد. بعد از آن ناهمخوانی استدلال و کنش با ۱۳٫۲٪، ناآگاهی از شرط توقف با ۱۲٫۴٪ و نقض مشخصات وظیفه با ۱۱٫۸٪. این چهار مود روی هم بیش از نیمی از کل شکستها را میسازند.
معمولاً نه. بیشتر شکستها از طراحی سیستم و ارتباط بین ایجنتها میآیند نه از توان مدل. در آزمایشهای مستند، اصلاح معماری با همان مدلهای قبلی ۹٫۴ تا ۱۵٫۶ درصد بهبود داد. پیش از عوض کردن مدل، مود شکست را مشخص کنید.
فقط اگر بازبین اطلاعات متفاوتی داشته باشد. بازبینی که همان چیزی را میبیند که بقیه دیدهاند، فقط یک لایهی دیگر با همان حفره است و میتواند به خطا مهر تأیید بزند. طبق نظریهی سوانح عادی، افزونگی خودش پیچیدگی اضافه میکند و ممکن است اثر خالص منفی داشته باشد. بازبین باید به مشخصات اصلی وظیفه دسترسی داشته باشد، نه فقط به خروجی مرحلهی قبل.
چون هیچکدام از مودهای ناهمترازی بین ایجنتها کد خطا تولید نمیکنند. هر ایجنت کاری معقول در بافت خودش انجام میدهد؛ مشکل در فاصلهی بین آنهاست. برای تشخیص باید نیت اعلامشده، فرضهای گرفتهشده، خلاصهی زمینهی دریافتی و دلیل توقف را لاگ کنید — نه فقط پیامها.
ایجنتی چیزی میداند که ایجنت دیگر لازم دارد، ولی چون کسی نپرسیده منتقلش نمیکند. مشکل هوش مدل نیست؛ نظریهی ذهن است — نمیفهمد دیگری چه چیزی را نمیداند. راهحل: ردِ کامل اجرا را بین ایجنتها به اشتراک بگذارید، نه فقط پیام نهایی.
اگر مود شکست شما در دستهی یک باشد (مشخصات و طراحی)، اصلاح پرامپت اغلب کمک میکند. اگر در دستهی دو یا سه باشد — ناهمترازی بین ایجنتها یا ضعف تأیید — پژوهش صریح میگوید مهندسی پرامپت تاکتیکی کافی نیست و تغییر ساختاری لازم است.
چند بار، نه یک بار. این سیستمها تصادفیاند و یک اجرای موفق چیزی را ثابت نمیکند. معیار درست، نرخ موفقیت مکرر است: احتمال اینکه همان وظیفه در چند اجرای مستقل هر بار درست انجام شود. این عدد معمولاً بسیار پایینتر از نرخ موفقیت یک اجراست.
واژهنامه
- سوانح عادیNormal Accidents
- نظریهی چارلز پرو: در سیستمهای دارای پیچیدگی تعاملی و جفتشدگی تنگ، سوانح ویژگی ساختاریاند نه نقص.
- پیچیدگی تعاملیInteractive Complexity
- وقتی اجزای سیستم به شیوههایی روی هم اثر میگذارند که طراح پیشبینی نکرده بود.
- جفتشدگی تنگTight Coupling
- نبود لقی بین اجزا؛ خروجی هر جزء بلافاصله ورودی بعدی است و فرصت مداخله نیست.
- مدل پنیر سوئیسیSwiss Cheese Model
- مدل جیمز ریزن: حادثه وقتی رخ میدهد که حفرههای لایههای دفاعی متوالی روی یک خط قرار بگیرند.
- تکرار مرحلهStep Repetition
- انجام دوبارهی کاری که قبلاً انجام شده؛ پرتکرارترین مود شکست با ۱۵٫۷٪.
- کتمان اطلاعاتInformation Withholding
- ایجنتی اطلاعاتی دارد که دیگری لازم دارد ولی چون پرسیده نشده منتقلش نمیکند.
- ناهمخوانی استدلال و کنشReasoning-Action Mismatch
- ایجنت درست استدلال میکند و بعد کاری متفاوت انجام میدهد.
- انحراف وظیفهTask Derailment
- دور شدن تدریجی گفتوگو از هدف اصلی، بدون لحظهی مشخص انحراف.
- تأیید نادرستIncorrect Verification
- بررسی با معیار اشتباه؛ خطرناکترین حالت چون اعتماد کاذب میسازد.
- شرط توقف مرکبComposite Halt Condition
- ترکیب سقف مرحله، محدودیت زمان، تشخیص گیر افتادن و سقف بودجه — هر چهار مورد با هم.
- نرخ موفقیت مکرر
- احتمال اینکه سیستم همان وظیفه را در چند اجرای مستقل هر بار درست انجام دهد.
منابع
اعداد این مقاله از مقالهی داوریشدهی مرجع این حوزه و مراجع کلاسیک ایمنی سیستم گرفته شدهاند. طبقهبندی ۱۴ مود عیناً از همان مقاله است.
- Why Do Multi-Agent LLM Systems Fail? — طبقهبندی ۱۴ مود، ۱٬۶۴۲ ردِ اجرا روی ۷ فریمورک، کاپای ۰٫۸۸، و آزمایشهای مداخله.
- Normal Accidents: Living with High-Risk Technologies — پیچیدگی تعاملی، جفتشدگی تنگ، و پارادوکس افزونگی.
- Swiss Cheese Model of Accident Causation — همراستایی حفرههای لایههای دفاعی.
- How we built our multi-agent research system — درسهای عملیاتی، مشاهدهپذیری و مدیریت وضعیت.
- τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains — معیار موفقیت مکرر و افت آن با تکرار اجرا.
- Don't Build Multi-Agents — تصمیمهای ضمنی متناقض و ضرورت اشتراک ردِ کامل.
- Context Rot: How Increasing Input Tokens Impacts LLM Performance — پشتوانهی مود گمشدن تاریخچه.
- Multi-LLM-Agents Debate — Performance, Efficiency and Scaling Challenges — بودجهی محاسباتی بیشتر لزوماً دقت بیشتر نمیآورد.
- Rethinking the Bounds of LLM Reasoning: Are Multi-Agent Discussions the Key? — ایجنت تکی با پرامپت قوی بهعنوان خط پایه.
- Debate or Vote: Which Yields Better Decisions in Multi-Agent LLMs? — چرا افزودن لایهی بحث لزوماً کمک نمیکند.
- Voting or Consensus? Decision-Making in Multi-Agent Discussions — ایجنت بیشتر بهتر، راند بیشتر بدتر.
- Should we be going MAD? A Look at Multi-Agent Debate Strategies for LLMs — حساسیت شدید به تنظیمات و دشواری بهینهسازی.
- Can LLM Agents Really Debate? — سرکوب اقلیت و نقش تنوع گروه.
- Model Context Protocol — استاندارد اتصال ایجنت به ابزار و داده.
- A2A Protocol Surpasses 150 Organizations — بلوغ لایهی ارتباط بین ایجنتها.
- Failure Mode and Effects Analysis (FMEA) — روش کلاسیک تحلیل مودهای شکست که الگوی این طبقهبندی است.