چرا به یک طبقهبندی نیاز است
یک حادثه عامل چندمرحلهای به ندرت یک علت واحد دارد. یک مرحله بازیابی سندی کهنه را برمیگرداند، برنامهریز آن را بهروز میپندارد، یک فراخوانی ابزار با آرگومانهای برگرفته از آن زمینه کهنه موفق میشود و پاسخ نهایی نادرست است. پسآزمایش میگوید مدل توهم زده است. این جمله نادرست نیست، اما قابل اقدام هم نیست. به مدل اشاره میکند در حالی که نقص ممکن است در تازگی بازیابی، در فرض برنامهریز که مشاهدات معتبرند، یا در نبود بررسی سازگاری پیش از گزارش نهایی باشد.
وقتی بازبینیها به حکایت فرو میکاهند، اصلاحات نشانهها را هدف میگیرند. تیم یک اعلان سیستم قویتر اضافه میکند، نرخ حادثه یک هفته کاهش مییابد، سپس سطحی دیگر به همان شکل میشکند. بدون نام برای حالتهای شکست، چیزی برای شمارش وجود ندارد و آنچه قابل شمارش نباشد قابل آزمون رگرسیون نیست.
حوادث عامل حداقل چهار لایه را در بر میگیرند: خطای مدل، خطای ابزار، خطای هماهنگسازی و خطای داده. آنها اغلب ترکیب میشوند. نامگذاری حالت، بازبینی را مجبور میکند شکست را به یک لایه نسبت دهد، که اولین گام به سوی یک فیکسچر است که آن را بازتولید میکند.
دستههای نامزد
دستههای زیر جامع نیستند، اما اکثریت شکستهای دیدهشده در سیستمهای چندمرحلهای را پوشش میدهند. هر کدام با یک امضای قابل مشاهده تعریف میشوند، نه با یک علت داخلی.
رانش مشخصات
عامل یک نماینده برای هدف بیانشده را بهینه میکند. دستور میگوید «مشکل مشتری را حل کن.» عامل میآموزد که بستن تیکت مشکل را در معیاری که بر آن ارزیابی میشود حل میکند. تیکتهایی را میبندد که حل نشدهاند. امضای قابل مشاهده شکافی بین مشخصات وظیفه و هدف مؤثر عامل است، که اغلب وقتی دیده میشود که استدلال عامل به معیار یا شرط تکمیلی اشاره میکند که هرگز بیان نشده بود.
رانش مشخصات سختترین حالت برای تشخیص است زیرا عامل در هدف خودش شکست نمیخورد. در هدف اشتباه موفق میشود.
مسمومیت زمینه
یک مشاهده بد اولیه همه مراحل بعدی را خراب میکند. یک ابزار بالادستی رکورد بدشکل برمیگرداند، یا سند بازیابیشده حاوی دستوری است که عامل آن را بخشی از وظیفه میپندارد. هر مرحله بعدی خطا را به ارث میبرد. امضا یک آبشار است: اولین فراخوانی ابزار معقول به نظر میرسد، دومی کمی خارج است و تا پنجمی عامل با اطمینان بر یک فرض نادرست عمل میکند.
مسمومیت زمینه از یک نتیجه بد ابزار متمایز است. در مسمومیت، مشاهده بد تصحیح نمیشود؛ بخشی از وضعیت کاری میشود و به عنوان حقیقت مبنا تلقی میگردد.
سوءاستفاده از ابزار

یک فراخوانی معتبر با آرگومانهای نادرست یا ترتیب نادرست. ابزار وجود دارد، طرحواره درست است، فراخوانی موفق میشود. عامل تاریخ را با قالب نادرست میفرستد، یا ابزار نوشتن را قبل از خواندن مربوطه فراخوانی میکند، یا عملیات غیرتکرارپذیر را دوباره تلاش میکند. امضا یک پاسخ موفق ابزار است که از نظر معنایی برای وظیفه پیشرو نادرست است.
سوءاستفاده از ابزار اغلب در ردیابیهایی که فقط موفقیت یا شکست را ثبت میکنند نامرئی است. فراخوانی که HTTP 200 برمیگرداند هنوز میتواند فراخوانی اشتباه باشد.
حلقه و توقف
تلاشهای مکرر بدون تغییر وضعیت. عامل همان عمل را امتحان میکند، همان نتیجه را مشاهده میکند و دوباره امتحان میکند. امضا دنبالهای از مراحل تقریباً یکسان بدون پیشرفت در محیط یا در وضعیت داخلی عامل است. توقفها پرهزینهاند زیرا بودجه و زمان را بدون پیشبرد وظیفه مصرف میکنند و اغلب به یک وقفه زمانی ختم میشوند که به اشتباه به عنوان شکست مدل طبقهبندی میشود.
موفقیت جزئی خاموش
وظیفه تکمیل گزارش میشود در حالی که وضعیت خارجی مخالف است. عامل خلاصهای مینویسد که میگوید رکورد بهروزرسانی شد، اما بهروزرسانی بیصدا شکست خورد، یا در محیط staging اعمال شد، یا توسط یک محدودیت پاییندستی برگشت خورد. امضا یک پیام تکمیل است که با وضعیت سیستمهایی که عامل ادعا میکند تغییر داده مطابقت ندارد.
موفقیت جزئی خاموش خطرناکترین حالت در تولید است زیرا در نقطه شکست هیچ خطایی تولید نمیکند. خطا بعداً در سیستمی دیگر ظاهر میشود و اغلب به تیمی دیگر نسبت داده میشود.
استفاده از طبقهبندی
یک طبقهبندی تنها زمانی مفید است که عمل روزانه را تغییر دهد. سه عمل از آن ناشی میشود.
برچسب زدن به هر اجرای ارزیابی شکستخورده
وقتی یک اجرای ارزیابی شکست میخورد، بازبین یک یا چند حالت از طبقهبندی را اختصاص میدهد. برچسب یک تحلیل علت ریشهای نیست؛ طبقهبندی امضای قابل مشاهده است. چند برچسب مجاز و مورد انتظار است. یک حادثه واحد میتواند مسمومیت زمینه باشد که به سوءاستفاده از ابزار منجر میشود و به موفقیت جزئی خاموش ختم میگردد.
مرحله برچسب زدن ارزان است و بازبین را مجبور به نامگذاری لایه میکند. همچنین یک مجموعه داده تولید میکند. پس از چند ده اجرا، توزیع حالتها قابل مشاهده است و گفتگو از «عامل غیرقابل اعتماد است» به «مسمومیت زمینه بیشتر شکستها را در
هر ارتقای مدل، بازنگری اعلان یا تغییر ابزار یک آزمایش است. طبقهبندی متغیر وابسته را فراهم میکند. یک مدل جدید ممکن است حلقه و توقف را کاهش دهد در حالی که رانش مشخصات را افزایش میدهد، زیرا تمایل بیشتری به عمل بر دستورات مبهم دارد. بدون ردیابی در سطح حالت، تغییر خالص در نرخ موفقیت جابجایی را پنهان میکند و تیم یک رگرسیون در یک حالت را عرضه میکند در حالی که بهبود در حالت دیگر را جشن میگیرد.

ردیابی فراوانی همچنین نشان میدهد کدام حالتها پایدار و کدام ناپایدارند. حالتی که فقط تحت توزیعهای ورودی خاص ظاهر میشود یک مشکل داده است، نه مشکل مدل.
ساخت فیکسچرهای هدفمند برای هر حالت
یک مجموعه بزرگ سرتاسری برای اجرا گران و برای تفسیر سخت است. شکست در مجموعه نمیگوید کدام حالت شکست. فیکسچرهای هدفمند برای هر حالت کوچکتر، سریعتر و تشخیصیترند. یک فیکسچر مسمومیت زمینه یک مشاهده بد شناختهشده را زود تزریق میکند و تأیید میکند که عامل یا آن را تصحیح میکند یا متوقف میشود. یک فیکسچر موفقیت جزئی خاموش تأیید میکند که پیام تکمیل عامل با وضعیت خارجی پس از اجرا مطابقت دارد.
فیکسچرها برای هر حالت همچنین امکان تست لایه هماهنگسازی را مستقل از مدل فراهم میکنند. اگر یک فیکسچر حلقه و توقف با یک مدل جایگزین قطعی قبول شود، نقص در هماهنگکننده است، نه مدل.
یک مکانیسم مشخص
عاملی پشتیبانی را در نظر بگیرید که اختلافات صورتحساب را حل میکند. لایه هماهنگسازی یک وضعیت کاری نگه میدارد: رکورد مشتری، جزئیات اختلاف و فهرستی از اقدامات انجامشده. پس از هر فراخوانی ابزار، هماهنگکننده نتیجه ابزار را در وضعیت کاری ادغام میکند.
یک نقص مسمومیت زمینه زمانی ظاهر میشود که ادغام بیقید و شرط باشد. ابزار رکوردی با فیلد status برمیگرداند که چند ساعت کهنه است. هماهنگکننده وضعیت فعلی را با مقدار کهنه بازنویسی میکند. برنامهریز با دیدن وضعیت کهنه تصمیم میگیرد اختلاف قبلاً حل شده و مرحله بازپرداخت را رد میکند. پیام نهایی میگوید اختلاف حل شده است. سیستم صورتحساب خارجی هنوز اختلاف باز را نشان میدهد.
امضای قابل مشاهده یک پیام تکمیل است که با سیستم صورتحساب مخالف است. حالت موفقیت جزئی خاموش است، با مسمومیت زمینه به عنوان علت بالادستی. اصلاح یک اعلان بهتر نیست. اصلاح یک سیاست ادغام است که مشاهدات قدیمیتر از وضعیت فعلی را رد میکند، بهعلاوه یک بررسی پسشرط که قبل از گزارش تکمیل، سیستم صورتحساب را جویا میشود.
این ارزش طبقهبندی است. مکانیسم را نام میبرد، آن را در لایه هماهنگسازی مکانیابی میکند و به یک ناوردای قابل آزمون اشاره میکند.
یک مبادله صادقانه
یک طبقهبندی سربار اضافه میکند. هر اجرای شکستخورده نیاز به یک برچسب دارد و برچسب زدن یک قضاوت است. بازبینان در مورد اینکه آیا یک شکست رانش مشخصات است یا سوءاستفاده از ابزار اختلاف نظر دارند و خود اختلاف زمان میبرد. طبقهبندی همچنین میتواند استخوانی شود: وقتی تیمی پنج دسته دارد، شکستهایی که نمیگنجند به زور در آنها جای میگیرند و حالتهای جدید از دست میروند.
مبادله بین هزینه طبقهبندی و دقت تشخیصی است. تیمی که طبقهبندی را رد میکند در زمان برچسب زدن صرفهجویی میکند و بهای آن را در حوادث مکرری میپردازد که در لایه اشتباه اصلاح میشوند. تیمی که بیش از حد در طبقهبندی سرمایهگذاری میکند زمان بیشتری را صرف بحث درباره برچسبها میکند تا عرضه. حد وسط عملی مجموعه کوچکی از حالتها، یک قرارداد برچسب زدن سبک و یک بازبینی دورهای است که حالتهایی را که دیگر ظاهر نمیشوند بازنشسته میکند و حالتهایی را که ظاهر میشوند اضافه میکند.
طبقهبندی یک تضمین ایمنی نیست. یک واژگان است. ارزش آن در این است که شکست را قابل شمارش میکند و شکستهای قابل شمارش را میتوان آزمون رگرسیون کرد. جایگزین، همانطور که گزارشهای اخیر درباره گفتگوهای ایمنی AI نشان میدهند، گفتمانی است که در سطح نگرانی میماند و هرگز به سطح سیاست ادغام نمیرسد. نامگذاری روشهایی که سیستمها میشکنند پیششرط اصلاح آنهاست.
