تصور کنید سیستمی را مدیریت میکنید که هیچ خطایی گزارش نمیکند، اما در واقع هیچ کاری هم انجام نمیدهد. این کابوسِ هر مهندس است: وقتی ابزارهای نظارتی شما، سکوت را به جای سلامت تفسیر میکنند.
در ۲۰ اوت ۲۰۲۶، یک نقص تولیدی در آلیس (Alice) — یک عامل (Agent) — که شبیه دستیاری است که میتواند بهطور مستقل ابزارها را مدیریت کند — رخ داد و نقطه ضعفی خطرناک در گزارشدهی سلامت سیستمهای خودترمیمی را افشا کرد. طبق گزارشهای منتشر شده، ورودی تلگرام آلیس در ساعت ۱۶:۲۵ متوقف شد، اما سیستم به مدت ۱۴ ساعت سکوت کرد؛ زیرا مکانیزم بازیابی دقیقاً طبق دستورالعمل عمل میکرد: پنهان کردن شواهدی از تلاشهای شکستخوردهاش.
زمینه شکستهای خاموش
بسیاری از توسعهدهندگان «نبود خطا» را نشانه سلامت میدانند. در واقع، این سکوت اغلب ماسکی است برای سیستمی که در یک حلقه بینهایت از شکست و بازراهاندازی گیر کرده است. همانطور که در تحلیلهای پیشین ما درباره امنیت و پایداری مدلهای عاملمحور اشاره کردیم، تکیه بر گزارشهای سطحی میتواند فاجعهبار باشد. این چالشها در واقع بخشی از یک الگوی بزرگتر هستند که در آن خطاهای شبکهای به عنوان عامل اصلی شکست عاملهای هوش مصنوعی در محیط عملیاتی شناسایی شدهاند. وقتی یک اسکریپت ترمیمی، هر بار پیش از تلاش برای ریبوت، شمارنده خطا را صفر میکند، مانع از آن میشود که این عدد به حد نصاب لازم برای هشدار به اپراتور انسانی برسد.
آلیس اشاره میکند که شکستهای «بلند» (با صدای زیاد) بلافاصله برطرف میشوند زیرا مسیر کار را مسدود میکنند. اما شکستهای خاموش بر نقصهای طولانیمدت غالب هستند، زیرا تنها مواردی هستند که زنده میمانند. این موضوع یک نتیجهگیری تکاندهنده ایجاد میکند: هرچه یک مکانیزم طولانیتر «بدون شکایت» اجرا شود، احتمال اینکه این سکوت ناشی از «لال بودن» باشد تا «سلامت»، بیشتر است.
به نقل از وبسایت dev.to، این شکست به دو شکل متمایز رخ داد:
جزئیات فنی
تله ترمیمی: یک فرآیند شکست میخورد، بازراهاندازی میشد و شمارندهاش را به صفر میرساند. سازوکار دقیق به این شکل بود:
۱. شکست در Snapshot $\rightarrow$ افزایش شمارنده خطا به ۱
۲. سه شکست متوالی $\rightarrow$ بازراهاندازی اپلیکیشن
۳. بازنشانی شمارنده به صفر
۴. تکرار چرخه
از آنجا که حد نصاب هشدار بالاتر از ۳ بود، سیستم هرگز درخواست کمک نکرد، هرچند ۷۰۵ مورد «شکست در Snapshot» در لاگها ثبت شده بود.
هشدار بنبست: یک دیدهبان دسترسی به مدل، از ۶ اوت ۱۰۹ هشدار متوالی به یک پورت SMTP بسته ارسال کرد. هر فریاد در یک Timeout میمرد، اما دیدهبان آن را به عنوان «ارسال شده» ثبت میکرد. مسیر هشدار هرگز بهطور کامل (End-to-End) تست نشده بود و این باعث شد دیدهبان صادق و دقیق، اما کاملاً بیفایده باشد.
این نقطه کور فنی شبیه به کشفی است که در آزمایشگاه چارلز سرهان (Charles Serhan) رخ داد. در ترمیم بافتهای بدن، التهاب صرفاً محو نمیشود؛ بلکه به یک «فاز حل» فعال نیاز دارد که از میانجیهای تخصصی ضدالتهابی مانند رزولوینها (Resolvins)، پروتکتینها (Protectins)، مارسینها (Maresins) و لیپوکسینها (Lipoxins) استفاده میکند تا سیگنال توقف ارسال شود. این مواد به عنوان سیگنالهای صریح برای متوقف کردن ورود نوتروفیلها و فعال کردن پاکسازی سلولهای مرده عمل میکنند.
وقتی این کلید خاموش شکست میخورد، التهاب مزمن میشود. در اینجا بیماری ناشی از «ترمیم بیش از حد» نیست، بلکه ناشی از خرابی کلید خاموش در یک سیستم ترمیمی فعال است. به همین ترتیب، در زیرساختهای هوش مصنوعی نیز، دانستن نحوه ترمیم بیفایده است اگر سیستم فاقد مکانیزم مجزایی برای اعلام «شکست در ترمیم» باشد. این در حالی است که برخی رویکردهای پیشرفتهتر مانند حلقه ترمیم TormentNexus توانستهاند زمان رفع باگهای نرمافزاری را تا ۹۹.۱٪ کاهش دهند، اما موفقیت آنها در گروی شناسایی دقیق خطاهاست.
برای مالکان کسبوکار و مهندسان، این یعنی هرچه یک سیستم بدون شکایت بیشتر کار کند، احتمال اینکه صرفاً «لال» شده باشد بیشتر است. تکیه بر نبود خطا، معیاری ناقص برای محاسبه زمان فعال بودن (Uptime) است. اثبات حیات واقعی مستلزم تأیید آخرین اجرای موفقیتآمیز یک تابع است، نه نبودِ گزارش کرش.
برای رفع این مشکل، آلیس منطق جدیدی را پیاده کرد: شمارش «دورهای ترمیمی» (مجموعهای از سه شکست به علاوه یک بازراهاندازی) به جای شمارش خطاهای تکموردی. اکنون سه دور بدون موفقیت، یک اپراتور انسانی را فرا میخواند (که برای جلوگیری از ایجاد نویز، به یک بار در هر شش ساعت محدود شده است). او همچنین وضعیت ثبت «ارسال شد» را به تأیید تحویل واقعی هشدارها تغییر داد. این نوع بازنگری در ساختار ترمیم، شباهت زیادی به راهکار «سیستم ایمنی جمعی» TormentNexus برای حذف باگهای تکراری دارد که بر خودکارسازی هوشمندانه متمرکز است. شما باید حلقههای خودکارسازی خود را بازبینی کنید تا مطمئن شوید کد ترمیمی، بهطور تصادفی معیارهای خطایی را که میتوانستند سیستم شما را نجات دهند، صفر نمیکند.
گام بعدی شما
- حلقههای خودکارسازی خود را بازبینی کنید تا مطمئن شوید کد ترمیمی، معیارهای خطا را صفر نمیکند.
- بهجای ثبت وضعیت «ارسال شد» برای هشدارها، مکانیزم تأیید تحویل (Delivery Confirmation) را پیاده کنید.
- شمارنده «دورهای ترمیمی» (مجموعه شکستها + ریبوت) را جایگزین شمارنده خطاهای تکموردی کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما درباره تراشههای Blackwell مراجعه کنید.




گفتگو