پرامپت رو بدون گیت به پروداکشن نفرست
خلاصهٔ کاملتر
به گفتهٔ نویسنده، بیشتر تیمهایی که فیچر مبتنی بر LLM دارن هیچوقت یه تغییر کد رو بدون تست و گیت CI منتشر نمیکنن، ولی همون تیم یه پرامپت رو دستکاری میکنه، یه خروجی رو نگاه میکنه و مستقیم میفرسته پروداکشن. حرف اصلی مقاله اینه که پرامپت هم یه وابستگیه؛ عوضش کنی رفتار پاییندستی جابهجا میشه، بدون هشدار کامپایلر، بدون بیلد قرمز و بدون هیچ سیگنال واضحی تو مسیر درخواست.
چیزی که این خرابی رو خطرناک میکنه بیصدا بودنشه: کد خراب معمولاً اکسپشن میده یا تایماوت میشه، ولی پرامپت خراب فقط لحنش افت میکنه، از فرمت خارج میشه، یه جور تازه توهم میزنه یا نامحسوس کمدقتتر میشه — و همهٔ این حالتها با یه پاسخ معتبر و متنی که ظاهرش سالمه برمیگردن. هیچچیزی تو چرخهٔ عادی درخواست و پاسخ، خروجی سالم رو از خروجی افتکرده جدا نمیکنه.
نویسنده چند قاعده میذاره تا گیت به نمایش تبدیل نشه: fail closed باشه، یعنی اگه برای یه نسخه از پرامپت هنوز هیچ اجرای ارزیابیای وجود نداره، پیشفرض جلوش گرفته بشه؛ فقط آخرین اجرا حساب بشه نه هر اجرای قدیمیای؛ یه وضعیت فقطخواندنی برای داشبورد و اپراتور جدا از مسیر promote باشه؛ و دلیل توقف قابلاقدام باشه، چون یه پیام خالی مثل «متوقف شد» به نویسندهٔ پرامپت هیچ نقطهٔ شروعی نمیده.
رو Microsoft Foundry واحد promote، خودِ نسخهست نه متن پرامپت: هر بار ذخیره کردن یه نسخهٔ تغییرناپذیر میسازه و ترافیک بین نسخهها جابهجا و در صورت نیاز برگردونده میشه. ارزیابها هم آمادهان — Groundedness و Relevance برای دریفت واقعیتمحور، Coherence و Fluency برای لحن و فرمت، ارزیابهای رفتار ایجنتی و ارزیابهای ریسک و ایمنی. اکشن microsoft/ai-agent-evals هم نسخهٔ کاندید و baseline رو با دیتاست خودت اجرا میکنه و امتیازها رو با فاصلهٔ اطمینان و تست معناداری برمیگردونه.
یه هشدار مهم هم تو مقاله هست: فعلاً هیچ API ای وجود نداره که خودش رو آستانهٔ امتیاز تو، promote رو متوقف کنه؛ پس منطق fail closed کار پایپلاین خودته. نویسنده تلهٔ اصلی رو هم اسم میبره: گیتی که کند، مبهم یا پرسروصدا باشه دور زده میشه، یکی «فقط همین یه بار» از override اضطراری استفاده میکنه و شش ماه بعد اون override میشه مسیر عادی. حلقهٔ ارزیابی باید در حد چند دقیقه بمونه، خروجی خطا شفاف باشه و راه فرار اضطراری لاگشده و قابلانتساب باشه.
نکات کلیدی:
- پرامپت یه آرتیفکته که میتونه رفتار پروداکشن رو عوض کنه، پس مثل هر آرتیفکت دیگهای دیتاست تست و گیت لازم داره.
- خرابی پرامپت بیصداست: پاسخ معتبر برمیگرده و فقط کیفیت خروجی افت کرده.
- گیت باید fail closed باشه و فقط آخرین اجرای ارزیابی رو مبنا بذاره، نه یه پاس قدیمی.
- نردبون بلوغ چهار پله داره: بدون فرآیند، بازبینی دستی، گیت ارزیابی خودکار، و ارزیابی مداوم رو ترافیک واقعی.
- تو Foundry نسخه واحد promote ـه و اکشن ai-agent-evals مقایسهٔ کاندید و baseline رو با تست معناداری انجام میده.
- گیت کند و مبهم دور زده میشه؛ override اضطراری باید باشه ولی لاگشده و قابلمشاهده.




