چطور Datadog رگرسیونهای پنهان در ایجنت AI خودش رو شکار میکنه
خلاصهٔ کاملتر
Bits AI SRE ایجنت خودمختار Datadog برای بررسی حوادث پروداکشنه. این سیستم روی متریکها، لاگها، تریسها، متادیتای زیرساخت و تلمتری شبکه استدلال میکنه تا ریشه مشکلات رو پیدا و برطرف کنه. ولی تیم سازندهاش با یه معضل جدی مواجه شد: هر بار که یه فیچر جدید اضافه میکردن، ممکن بود کیفیت بررسیهای دیگهای که ظاهراً ربطی نداشتن، بدون هیچ اخطاری افت کنه.
یه نمونه واقعی از این مشکل اینه که تیم یه فیچر اضافه کرد که نام سرویس رو از مانیتور در حال بررسی به کانتکست اولیه ایجنت اضافه میکرد. روی چند تست داخلی خوب کار میکرد، ولی در واقع سیگنالهای نامرتبط زیادی رو وارد میکرد و استدلال ایجنت رو در سناریوهای دیگه خراب میکرد. این رگرسیونها تا وقتی که به صورت گستردهای داخلی دیده نشدن، قابل تشخیص نبودن.
تست ابزارها به صورت جداگانه هم جواب نداد، چون ارزش Bits دقیقاً در اینه که چطور ابزارها رو به هم زنجیر میکنه و روی خروجیهاشون استدلال میکنه. شکستها اغلب از تعامل بین مراحل بود، نه یه ابزار خاص. اجرای مجدد بررسیهای زنده هم مقیاس نمیداد؛ نتایج جمعآوری نمیشدن و محیطها تغییر میکردن. راهحل نهایی دو بخش اصلی داشت: یه مجموعه لیبل نمایانگر و یه پلتفرم اجرا و امتیازدهی.
هر لیبل ارزیابی نشاندهنده یه سناریوی بررسی واقعیه که Bits باهاش روبرو میشه. این لیبل دو بخش داره: ground truth که ریشه مشکل رو مشخص میکنه، و world-snapshot که سیگنالهای موجود در زمان وقوع مشکل رو حفظ میکنه. مثلاً یه لیبل ممکنه ریشه مشکل رو OOM kill شدن یه پاد Kubernetes تعریف کنه، با یه world snapshot که کوئریهای لازم برای پیدا کردن متریکهای حافظه، لاگهای کانتینر و رویدادهای دیپلویمنت رو نگه داره. ایجنت هیچوقت مستقیماً ریشه مشکل رو نمیبینه؛ فقط به همون سیگنالهایی دسترسی داره که موقع وقوع حادثه موجود بودن.
برای مقیاسدهی به تولید لیبلها، تیم یه رویکرد هوشمندانه داشت: وقتی کاربران روی یه بررسی Bits بازخورد میدن، اون سیگنال به همراه اطلاعات بررسی برای ساخت یه ground truth و world snapshot استفاده میشه. به این ترتیب هر تعامل کاربر به یه لیبل ارزیابی بالقوه تبدیل میشه. این رویکرد سرعت ایجاد لیبل رو یه مرتبه بزرگی افزایش داد.
پلتفرم ارزیابی هم Bits رو روی مجموعه لیبلها اجرا میکنه، نتایج رو امتیازدهی میکنه و عملکرد رو در طول زمان رصد میکنه. این سیستم میتونه لیبلها رو بر اساس ابعاد مختلف (مثل نوع شکست یا تکنولوژی) دستهبندی کنه، بررسیها رو به صورت موازی اجرا کنه، و مقایسه عملکرد بین ورژنهای مختلف رو ممکن کنه. این یعنی تیم میتونه بفهمه که یه بهبود در بررسیهای Kafka Lag آیا به طور تصادفی بررسیهای Kubernetes رو خراب کرده یا نه.
نکات کلیدی:
- رگرسیونهای پنهان در ایجنتهای AI بزرگترین چالش توسعهان؛ هیچ تست یونیتی اونا رو نمیگیره
- تست ابزارهای AI به صورت ایزوله کافی نیست؛ ارزیابی باید روی کل زنجیره استدلال ایجنت انجام بشه
- لیبلهای ارزیابی باید هم ground truth (ریشه مشکل) و هم world-snapshot (سیگنالهای زمان وقوع) داشته باشن
- جاسازی تولید لیبل در خود محصول (از طریق بازخورد کاربران) سرعت ایجاد دیتاست رو یه مرتبه بزرگی بالا برد
- پوشش متنوع سناریوها (از Kubernetes تا Kafka تا منطق بیزینسی) برای جلوگیری از تورم مصنوعی نتایج ضروریه




