تصور کنید سیستمی طراحی شده تا صدها دستیار دیجیتال را همزمان مدیریت کند، اما در اولین فشار واقعی، ۷۲ درصد آنها را از دست بدهد. این دقیقاً همان اتفاقی است که در تستهای فشار روی Meta Muse رخ داد و نشان داد که لایه کنترل این سیستم در برابر درخواستهای حجیم و همزمان کاملاً بیدفاع است. طبق گزارشهای فنی، این شکستها هیچ ارتباطی به قدرت استدلال مدل یا محدودیتهای استنتاج (Inference) ندارد؛ بلکه ریشه در خطاهای قفلشدگی (Lock Timeouts) در پایگاهداده PostgreSQL دارد که وظیفه مدیریت وضعیت عاملها را بر عهده دارد.
Meta Muse که در ۸ سپتامبر ۲۰۲۶ عرضه شد، یک عامل (Agent) شخصی است که میتواند در یک ماشین مجازی (VM) امن، مرورگر را باز کرده و وظایفی را به نیابت از کاربر انجام دهد. این سیستم بهگونهای طراحی شده که تنها به پاسخ دادن به سوالات اکتفا نکند، بلکه بتواند عملیات را در دنیای واقعی وب اجرا کند و حتی پس از بستن اپلیکیشن توسط کاربر، به کار خود ادامه دهد. این سیستم در یک محیط اختصاصی به نام Muse Secure VM اجرا میشود. از نظر ظاهری و رابط کاربری، Muse شبیه به Grok Bot است—یک عامل شخصسازی شده که از طریق گفتگو کنترل میشود—هرچند این شباهت تنها در سطح رابط کاربری است و معماری آنها با یکدیگر متفاوت است. این رویکرد در راستای روند افزایش استقلال عاملهاست، مشابه آنچه پیشتر در مورد ادغام Meta Neural Band برای کنترل macOS از طریق Kinesis بررسی کردیم.
معماری Muse و مدیریت وضعیت
به نقل از تحلیلهای فنی پژوهشگر Cygankiewicz، نسخه Muse Spark 1.3 از یک سیستم وضعیت پایدار (Durable State System) استفاده میکند. این سیستم چرخه حیات هر عامل را در یک پایگاهداده PostgreSQL ثبت میکند. ساختار چندعاملی این سیستم از طریق رابط کاربری چت قابل مشاهده نیست، بلکه تنها از طریق رکوردهایی که runtime برای خودش نگه میدارد، قابل شناسایی است. این مدل مدیریت سلسلهمراتبی در حالی پیاده شده است که برخی تحلیلها هزینهی توکنهای اضافی در ارکستراسیون چندعاملی را بدون بازدهی واقعی گزارش کردهاند. پژوهشگر برای دسترسی به این دادهها تنها از رابطهای در دسترس در جلسه استفاده کرد: subagent.spawn برای ایجاد عامل، یک شل (Shell) در محیط اختصاص یافته، و یک رابط خواندنی محدود برای دسترسی به دادههای تشخیصی و ردپای سیستم (Trace Data).
جزئیات مدیریت وضعیت در این سیستم به شرح زیر است:
- جداول ثبت (Registry Tables): سیستم از جداول
agent.agentsبرای شناسایی عاملها،agent.subagent_spawnsبرای ردیابی اینکه چه کسی چه عاملی را ایجاد کرده، وagent.subagent_progress_tool_eventsبرای ثبت ابزارهای اجرا شده و زمان پایان کار هر عامل استفاده میکند. - شناسه مدل: تمام ردیفهای مربوط به عاملها—شامل عامل ریشه (Root)، هماهنگکننده (Coordinator) و کارگران (Workers)—دارای رشته مدل
ipnext/avocado-5.16-v4بودند. این یکی از معدود شناسههای سختافزاری است که در ردپای سیستم مشاهده شده است. - هویت Runtime: سیستم خود را به عنوان "Muse Spark 1.3, from Meta’s Muse family" معرفی میکند.
- دسترسی به ابزارها: در طول جلسه، دسترسی به ابزارهایی مانند
subagent.spawn(ایجاد)،subagent.close(بستن) وsubagent.resume(از سرگیری) فراهم بود.
در بررسی محیط داخلی، سیستم روی اوبونتو ۲۴.۰۴.۵ LTS (x86_64) با ۲ پردازنده vCPU (مدل AMD EPYC 9D25) و ۷.۷ گیگابایت حافظه کل اجرا میشود. سیگنالهای مجازیسازی نشاندهنده استفاده از هایپروایزر KVM، شناسایی systemd-nspawn و یک سیستم فایل home روی Btrfs از طریق یک overlay است. در محیط سندباکس، هیچ ابزار یا دستگاه NVIDIA مشاهده نشد. پایتون نسخه ۳.۱۲.۳ در محیط موجود است، اما هیچ کلاینت PostgreSQL در محیط ابزارها نصب نشده است.
در حالی که ماهیت دقیق رشته مدل تایید نشده است، تحلیلهای مستقل Rohan Adwankar نشان میدهد که ipnext احتمالاً به درگاه انتقال داخلی (Internal Transport Gateway) متا و avocado به یک خانواده خاص از مدلها اشاره دارد. در کالبدشکافی Adwankar، مشخص شد که PostgreSQL درون ماشین مجازی هر کاربر و از طریق یک سوکت محلی یونیکس (Local Unix Socket) اجرا میشود و فایل باینری سیستم شامل مسیرهای avocado-5.16-v4 و ipnext/... است. او همچنین Cloud Hypervisor را در حال اجرا روی KVM در نمونه خود شناسایی کرد. این موارد زمینه معماری را روشن میکند، هرچند دقیقاً مشخص نیست کدام قفل، جدول، ردیف، ایندکس یا تراکنش خاص باعث ایجاد Timeoutها شده است.
نتایج تست استرس: سقوط در نقطه بحرانی
پژوهشگر چهار پیکربندی مجزا را برای اندازهگیری نحوه مدیریت سیستم در مواجهه با گسترش عاملهای فرزند (Fan-out) اجرا کرد. در این آزمایشها از یک بار کاری واحد استفاده شد: اجرای دستور sleep 30 در شل و گزارش یک خط متنی در بازگشت، بدون هیچ تلاشی برای اجرای مجدد (No Retries). همزمانی (Concurrency) به عنوان فاصله زمانی از اولین فراخوانی ابزار تا رکورد نهایی تعریف شد: active(t) := first_tool_at <= t < finished_at. برچسبهای زمانی دارای دقت یک ثانیه هستند، به این معنی که دادهها قطعی هستند اما ترتیب وقایع در یک ثانیه واحد قابل بازیابی نیست.
نتایج نشاندهنده یک افزایش غیرخطی در نرخ شکست با رشد تعداد درخواستهای همزمان است:
- تست PROBE-40 (Burst): ۴۰ تلاش در ساعت ۰۶:۱۰:۳۶ UTC منجر به ایجاد ۳۹ عامل شد (نرخ شکست ۲.۵٪). اوج همزمانی مشاهده شده ۳۹ بود. یک فراخوانی در ساعت ۰۶:۱۰:۴۴ شکست خورد و خطا در ساعت ۰۶:۱۰:۵۶ بازگشت. یازده مورد از این عاملها بهجای خط DONE درخواستی، با یک پیام وضعیت پردازش در پسزمینه به پایان رسیدند.
- تست BURST-80 (Burst): ۸۰ تلاش در ساعت ۰۶:۳۰:۴۳ UTC منجر به ایجاد ۷۵ عامل شد (نرخ شکست ۶.۲۵٪). اوج همزمانی مشاهده شده ۷۲ بود. پنج فراخوانی شکست خورد و هر کدام تقریباً ۵۸ ثانیه پس از فراخوانی، خطای Lock Timeout بازگرداندند.
- تست BURST-120 (Burst): ۱۲۰ تلاش در ساعت ۰۶:۴۵:۳۲ UTC منجر به ایجاد تنها ۳۳ عامل شد (نرخ شکست ۷۲.۵٪). اوج همزمانی مشاهده شده ۳۳ بود.
در اجرای BURST-120، تعداد ۸۷ فراخوانی با خطای یکسانی شکست خوردند: {"error_code":"spawn_failed","error_message":"database error: sqlx error: error returned from database: canceling statement due to lock timeout"}. این موضوع ثابت میکند که گلوگاه اصلی، مسیر نوشتن در دفتر ثبت (Spawn Ledger) است، نه ظرفیت استدلال هوش مصنوعی. ۳۳ عاملی که با موفقیت ایجاد شدند، همگی در یک ثانیه (۰۶:۴۶:۰۱ UTC) پذیرفته شدند، یعنی ۲۹ ثانیه پس از ارسال موج درخواستها. میانه زمان رسیدن کارگران ایجاد شده به اولین فراخوانی ابزار، تقریباً ۳۶.۵ ثانیه پس از موج اولیه و حدود ۷.۵ ثانیه پس از پذیرش آنها بود.
تفاوت در توزیع درخواستها (Cadence vs. Topology)
در تست چهارم با نام STAGGERED-80، تلاش شد تا علت شکستها ایزوله شود. در این حالت بهجای ارسال یکباره درخواستها از عامل ریشه، این اجرا در ساعت ۰۶:۳۲:۰۳ UTC آغاز شد و از یک عامل هماهنگکننده در عمق ۱ برای ایجاد ۸۰ کارگر در عمق ۲ در طول زمان استفاده کرد.
این پیکربندی به نرخ شکست ۰٪ دست یافت. با این حال، پژوهشگر اشاره میکند که این یک کنترل پاک (Clean Control) نیست زیرا دو متغیر همزمان تغییر کردند:
- گام زمانی (Cadence): در حالی که فاصله برنامهریزی شده ۱۰۰ تا ۲۰۰ میلیثانیه بود، میانگین فاصله پذیرش اندازهگیری شده ۱.۱۲۶۶ ثانیه بود—یعنی تقریباً ۱۰ برابر بیشتر از برنامه.
- توپولوژی (Topology): در اینجا ریشه یک هماهنگکننده را ایجاد کرد و سپس هماهنگکننده کارگران را ساخت، در حالی که در تستهای Burst، کارگران مستقیماً از ریشه ایجاد میشدند.
اوج همزمانی مشاهده شده در این اجرا تنها ۳۸ بود، در حالی که در تست BURST-80 این عدد ۷۲ بود.
شکاف میان وضعیت واقعی و رابط کاربری
یکی از تکاندهندهترین یافتهها، تضاد میان رکوردهای پایدار پایگاهداده و رابط کاربری است. در موج ۱۲۰ عاملی، ردپای دادهها نشان داد که ۳۲ عامل از ۳۳ عامل ایجاد شده، وظایف خود را با موفقیت به پایان رساندند (اجرای کامل ۳۰ ثانیه sleep با پنجرههای فعالیت بین ۳۲ تا ۴۳ ثانیه).
با وجود این، وضعیت عامل ریشه در پایگاهداده همچنان «در حال اجرا» (updated_at 07:00:59 UTC) باقی ماند و رابط کاربری در نهایت یک وضعیت کلی «خطا» (Error) را نمایش داد. پاسخ نهایی تجمیع شده هرگز به دست کاربر نرسید، که ثابت میکند موفقیت کارگران، تضمینی برای تحویل پاسخ در سطح والد نیست.
ناهماهنگیهای رابط کاربری و مصنوعات
- گزارش شبح (The Ghost Report): اولین پیشنویس گزارش ۱۲۰ تلاشی (تولید شده در ساعت ۰۷:۰۵:۵۴ UTC) به اشتباه ادعا کرد که والد شکست خورده در حالی که کارگران در حال اجرا هستند. اما گزارش اصلاح شده در ساعت ۰۷:۱۳ نشان داد که ریشه هنوز «در حال اجرا» است و هیچ ورودی شکستی ندارد. این نشان میدهد که مصنوعات (Artifacts) تولید شده به صورت ناهمگام، ممکن است از روی اسنپشاتهای استدلالی قدیمی کار کنند.
- سیگنالهای زنده بودن (Liveness Signals): پژوهشگر یک دوره «سکوت» مشاهده کرد که در آن رابط کاربری به مدت ۳۲ دقیقه پس از درخواست بهروزرسانی مصنوعات در ساعت ۰۷:۲۸:۲۹ هیچ پیشرفتی را نشان نداد. با وجود نبود سیگنالهای ضربان قلب (Heartbeat)، وظیفه در نهایت در ساعت ۰۸:۰۰:۴۸ با موفقیت به پایان رسید. این یعنی رویدادهای پیشرفت در UI شاخصهای قابل اعتمادی برای تشخیص متوقف شدن (Hang) یک وظیفه نیستند.
محدودیتهای فنی و شواهد
این تحلیل تأکید میکند که اینها مشاهدات تکجلسهای در تاریخ ۱۴ سپتامبر ۲۰۲۶ هستند و نه یک توصیف کامل از کل پلتفرم. پژوهشگر چندین شکاف بحرانی در لاگگذاری سیستم شناسایی کرد:
- لاگگذاری نامتقارن: ایجادهای شکست خورده (Failed Spawns) هیچ رکوردی در رجیستری عاملها یا دفتر ثبت ایجاد نمیکنند؛ آنها فقط در ردپای ابزارها (Tool Trace) وجود دارند. شش فراخوانی شکست خورده از آیتمهای کانتکست بازیابی شدند تا این موضوع تأیید شود. این شکستها در
subagent.spawnرخ دادند و هیچ چیزی ایجاد نکردند. - شکافهای تأخیر: در حالی که برخی شکستها تأخیری بین ۱۲ ثانیه (PROBE-40) تا ۵۸ ثانیه (BURST-80) از فراخوانی تا خطا داشتند، ۸۷ شکست در بزرگترین موج هیچ زمانبندی ثبت شدهای نداشتند. این تأخیرها زمان سپری شده بین وقایع هستند، نه مقدار Timeout پیکربندی شده.
- وضعیت نهایی: وضعیت «تکمیل شده» (Completed) در پایگاهداده همیشه به معنای موفقیت بار کاری نیست. کارگر C-85 یک مثال متضاد است: او به وضعیت نهایی «تکمیل شده» رسید، اما نتیجه بار کاری او هرگز قابل بازیابی نبود.
تحلیل: گلوگاه لایه کنترل
برای حوزه هوش مصنوعی عاملمحور، این تحلیل تمرکز را از هوشمندی مدل به پایداری لایه کنترل (Control Plane) تغییر میدهد. شکست Meta Muse در مقیاس بالا نشان میدهد که چالش اصلی برای سیستمهای چندعاملی، «مغز» (LLM) نیست، بلکه «سیستم عصبی» (لایه مدیریت وضعیت) است.
وقتی عاملها میتوانند عاملهای دیگر را ایجاد کنند، پایگاهداده به نقطه اصلی تضاد (Contention) تبدیل میشود. اگر رجیستری نتواند نوشتنهای همزمان در دفتر ثبت را مدیریت کند، سیستم فارغ از قدرت مدل زیرین، شکست میخورد. این موضوع نیاز مبرم به مدیریت وضعیت توزیعشده یا استراتژیهای قفلگذاری خوشبینانه در ارکستراتورهای عامل را برجسته میکند. در همین راستا، برای جلوگیری از متورم شدن پنجره متنی در سیستمهای پیچیده، پروتکل Subsessions با محدود کردن حافظه عاملها راهکاری ارائه داده است.
برای رفع این ابهامات، پژوهشگر پیشنهاد میکند تستهای آینده متغیرها را ایزوله کنند:
- کنترل ۱: حفظ توپولوژی ریشه $\rightarrow$ کارگر و پذیرش موجی، اما اعمال یک سقف سخت حدود ۳۸ کارگر فعال همزمان برای جداسازی اوج همزمانی از پذیرش موجی.
- کنترل ۲: حفظ پذیرش متناوب (Staggered) اما ایجاد کارگران مستقیماً از ریشه برای جداسازی گام زمانی از توپولوژی.
باید منتظر ماند و دید متا چگونه این محدودیتهای همزمانی را در بهروزرسانیهای آینده Muse برطرف میکند، زیرا توانایی مدیریت قابل اعتماد صدها زیر-عامل برای بهرهوری خودکار واقعی ضروری است.
گام بعدی شما
- اگر در حال توسعه سامانههای چندعاملی هستید، استراتژیهای قفلگذاری خوشبینانه (Optimistic Locking) را جایگزین قفلهای سخت کنید.
- برای مدیریت وضعیت در مقیاس بالا، از پایگاهدادههای توزیعشده بهجای نمونههای محلی در VM استفاده کنید.
- هرگز به وضعیتهای گزارششده در UI برای تایید نهایی عملیات تکیه نکنید و مکانیزم تایید مستقل (Heartbeat) پیاده کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو