ایجنت هوش مصنوعی Stream برای بررسی خطاهای پروداکشن
خلاصهٔ کاملتر
تیم Stream که API چتشون به اپهایی با بیش از یک میلیارد کاربر سرویس میده، یه ایجنت ساخته که اولین بررسی خطاهای پروداکشن رو انجام میده. نویسنده میگه قبلاً بیشتر وقتش صرف پیدا کردن علت میشد تا درست کردنش. این کار گستردهست، بیشتر خوندنیه و نتیجهش قابل چک کردنه، پس برای ایجنت مناسبه. ولی خود fix نیاز به قضاوت داره، برای همین کار رو تقسیم کردن: ایجنت میگرده و آدم تصمیم میگیره.
هر مسئله از یه pipeline کوتاه رد میشه. اول Claude Haiku (یه مدل کوچیک و سریع) تشخیص میده اصلاً بررسی لازمه یا نه. بعد Claude Opus تو یه sandbox بررسی میکنه و جواب یا fix پیشنهادی میده. بعد یه session جدا سعی میکنه نتیجه رو رد کنه و در آخر جواب تو thread مربوط تو Slack پست میشه. تو یه نمونهٔ واقعی، CPU کش یه کلاستر ۱۰۰ درصد شده بود. ایجنت پیشنهاد داد تعداد shardها دو برابر بشه و بعد از اعمالش CPU به حدود ۵۶ درصد رسید.
چهار تصمیم طراحی امنش کردن. اول، هر ادعا باید به یه نتیجهٔ query یا یه خط کد ارجاع بده. اینجوری مهندس لازم نیست کل بررسی رو تکرار کنه و فقط citationها رو چک میکنه. دوم، یه session با context تازه (یعنی بدون استدلالها و نقاط کور جلسهٔ اول) دنبال توضیح جایگزین میگرده. اگه نتونه تأیید کنه، جواب با برچسب «Not verified» پست میشه. دوباره فرستادنش برای بررسی رو عمداً خودکار نکردن، چون ظرفیت روزانه رو نصف میکرد.
سوم، ایجنت از پایه read-only هست. نویسنده میگه چون ایجنت متن غیرقابل اعتماد مثل پیام مشتری میخونه، خطر prompt injection (یعنی جاسازی دستور مخرب تو متن ورودی) وجود داره. پس محدودیتها تو محیط گذاشته شدن، نه تو دستورهای مدل. یه container ایزوله با کپی read-only از کد، ابزارهایی که نمیتونن چیزی بنویسن، credentialهای دیتابیس بیرون از sandbox، شبکهٔ بسته و فیلتری که secretها و متن مشتری رو قبل از پست بلاک میکنه.
چهارم، مدل فقط پیشنهاد میده و هر کار بیرونی رو سرویس انجام میده. فقط اعضای تیم مهندسی چت میتونن fix رو تأیید کنن. تغییر کد یه draft PR میشه که ریویوی معمولی میخوره، و fix عملیاتی یه runbook میشه که یه مهندس اجراش میکنه.
برای تست هم یه مجموعهٔ ۲۲ موردی دارن که بیشترش از thread و incidentهای واقعی اومده. توش پیامهایی هست که باید همون اول کنار گذاشته بشن، یه تلهٔ «ابزار ناموجود» برای گرفتن جوابهای ساختگی، و اشتباههای قبلی خود ایجنت. چون تست با مدل واقعی اجرا میشه و هزینه داره، دستی اجراش میکنن نه روی هر commit.
نکات کلیدی:
- Claude Haiku برای triage و Claude Opus برای بررسی اصلی استفاده میشه
- هر ادعای ایجنت باید به نتیجهٔ query یا خط مشخصی از کد ارجاع بده
- جوابهایی که تأیید نشدن با برچسب «Not verified» پست میشن
- محدودیتهای امنیتی تو محیط و sandbox هستن، نه تو prompt
- مجموعهٔ تست ۲۲ مورد داره و اشتباههای قبلی ایجنت هم توشه




