ورودی تهی که عامل عملیاتی من را از کار انداخت

نمایش (Demo) به مدت سه هفته عالی کار کرد. هر ورودی آزمایشی جواب می‌داد. هر خروجی به جای درست خود می‌رفت. فکر می‌کردم سیستم قابل اعتماد است.

سپس یک تأمین‌کننده ایمیلی با موضوع (subject line) خالی ارسال کرد.

عامل انتظار یک رشته (string) داشت تا مرجع سفارش را استخراج کند. در عوض، یک مقدار تهی (null) دریافت کرد. سیستم کرش نکرد؛ اگر کرش می‌کرد بهتر بود. عامل یک مرجع سفارش جعلی ساخت که واقعی به نظر می‌رسید. سیستم پایین‌دستی آن را پردازش کرد. هیچ‌کس تا چهار ساعت متوجه نشد.

در دموها از ورودی‌هایی استفاده می‌کنید که انتظارشان را دارید. در محیط عملیاتی (Production)، از ورودی‌هایی استفاده می‌شود که انتظارشان را ندارید.

من عملیات عامل را در aienterprise.dk مدیریت می‌کنم. من تمام ردپا (trace) را دیدم. پرامپت به عامل گفته بود که مرجع سفارش را از خط موضوع استخراج کند. این کار اگر خط موضوع وجود داشته باشد، درست عمل می‌کند.

اگر خط موضوع وجود نداشته باشد، یک مدل زبانی بزرگ (LLM) این خلاء را پر می‌کند. چیزی می‌سازد که درست به نظر می‌رسد. این یک نویز تصادفی نیست؛ یک نویز ساختاریافته است. این موضوع خطرناک است چون درست به نظر می‌رسد. شما می‌توانید یک شکست را شناسایی کنید، اما نمی‌توانید به راحتی یک پاسخ اشتباه اما با اعتمادبه‌نفس را تشخیص دهید.

من مدل را دوباره آموزش ندادم. پرامپت را هم تغییر ندادم. من یک محافظ (guard) قبل از فراخوانی مدل اضافه کردم.

حالا، ابتدا یک بررسی ساده انجام می‌شود. پرسش این است: آیا فیلد موضوع وجود دارد و خالی نیست؟ اگر پاسخ منفی باشد، پیام به یک صف انتظار (hold queue) برای بررسی انسانی ارسال می‌شود. عامل هرگز ورودی بد را نمی‌بیند.

این محافظ فقط دوازده خط کد است. این مهم‌ترین چیزی است که امسال ساختم.

الگو ساده است. اگر یک عامل فرض را بر ساختار بگذارد، محیط عملیاتی در نهایت داده‌های بدون ساختار ارسال خواهد کرد. راه حل، مدل هوشمندتر نیست؛ راه حل، تعیین یک مرز است. شما به بررسی‌ای نیاز دارید که ورودی بد را به جای اینکه اجازه دهد مدل حدس بزند، به یک انسان ارجاع دهد.

قابلیت اطمینان (Reliability) تنها ویژگی مهم است. یک دمو نشان می‌دهد که یک عامل می‌تواند وظیفه‌ای را انجام دهد. محیط عملیاتی نشان می‌دهد که یک عامل آن وظیفه را ساعت ۳ صبح با ورودی بد انجام می‌دهد. فقط بخش دوم برای مشتریان شما اهمیت دارد.

عامل من اکنون روزانه ۲۰۰ عملیات را بدون مشکل انجام می‌دهد. صف انتظار دو بار در هفته فعال می‌شود. یک انسان داده‌های غیرعادی را بررسی می‌کند. من یاد می‌گیرم که محیط عملیاتی واقعاً چگونه است.

اگر برای دسته‌های پرخطر تحت قانون هوش مصنوعی اتحادیه اروپا (EU AI Act) عامل می‌سازید، مهلت نهایی ۲ دسامبر ۲۰۲۷ است. این شامل استخدام، بیومتریک و آموزش می‌شود. سیستمی که در مواجهه با ورودی بد حدس می‌زند، در بازرسی (audit) شکست خواهد خورد. این محافظ، حداقلِ الزامات انطباق (compliance) است.

قابلیت اطمینان ویژگی‌ای نیست که بعداً به آن اضافه کنید.

Source: https://dev.to/kimlike/the-null-input-that-broke-my-production-agent-and-what-fixed-it-1e77

Optional learning community: https://t.me/GyaanSetuAi