تصور کنید یک مشتری گزارش میدهد که ربات تولیدی شما مراحل حیاتی ثبت سفارش را نادیده میگیرد یا در مراحل اجرای عملیات دچار توهم (Hallucination) شده و گامهای اشتباهی را پیشنهاد میدهد؛ در این لحظه هر ثانیه تأخیر در عیبیابی به معنای از دست دادن درآمد و تخریب اعتماد مشتری است. برای جلوگیری از هرجومرج در محیط عملیاتی، یک راهنمای فنی منتشر شده در ۲۲ سپتامبر ۲۰۲۶ در وبسایت dev.to چارچوبی سختگیرانه برای مدیریت این پرامپتهای «نافرمان» ارائه میدهد، بهگونهای که اصلاح یک بخش، باعث شکست کل سیستم نشود.
بسیاری از شکستهای هوش مصنوعی در محیط واقعی، کرشهای ساده یا قطع شدن سرویس نیستند، بلکه لبههای تیز (Edge Cases) ناشی از واریانس هستند؛ جایی که دادههای واقعی و متنوع مشتری با پیشفرضهای محدود پرامپت شما برخورد میکنند. این تضاد باعث ایجاد یک چرخه ناامیدکننده میشود: سیستمی که در محیط استیجینگ (Staging) و تستها عالی عمل میکرد، در دنیای واقعی و در مواجهه با کاربران غیرقابلپیشبینی میشود. این چالش دقیقاً همان شکاف عیبیابی در عاملهای هوش مصنوعی است که باعث تفاوت رفتار مدل در محیط دمو و عملیاتی میشود. طبق این راهنما، تنها راه خروج از این چرخه این است که توسعهدهندگان با پرامپتها مانند «کد» رفتار کنند و همان انضباط بازتولید خطا و تستهای رگرسیون را که در مهندسی نرمافزار سنتی به کار میرود، در اینجا نیز اعمال کنند.
بخش اول: بازتولید، مکانیابی و طبقهبندی
اولین گام این است که تعیین کنید آیا با یک باگ سیستماتیک طرف هستید یا صرفاً با واریانس مدل زبانی (LLM Variance). برای این کار، باید ورودی شکستخورده را ۵ تا ۱۰ بار اجرا کنید. اگر خطا تنها یک بار در ده اجرا رخ داد، این یک مورد واریانس است. اگرچه ثبت این موارد ارزشمند است، اما فوریت بالایی ندارد. اما اگر خطا به طور مداوم و در هر بار اجرا تکرار شد، شما با یک باگ واقعی روبرو هستید که نیاز به اصلاح فوری دارد.
از آنجا که عاملهای (Agents) عملیاتی بهندرت از یک پرامپت واحد استفاده میکنند، شما باید نقطه شکست را در زنجیره شناسایی کنید. عامل شما احتمالاً به توالی پیچیدهای از چندین پرامپت، انتقالهای بینمرحلهای (Handovers)، فراخوانیهای پروتکل زمینهٔ مدل (MCP) — که استانداردی برای اتصال مدل به دادههای خارجی است — و فراخوانیهای API وابسته است. باگ میتواند در هر یک از این حلقهها باشد، بنابراین پیش از دست زدن به کد، باید دقیقاً شناسایی کنید کدام لینک از این زنجیر پاره شده است.
برای دستیابی به این هدف، باید از ردپایها (Traces) و لاگهایی استفاده کنید که سیستم شما باید از پیش برای مشاهده و نظارت بر عاملها داشته باشد. این قابلیت مشاهده (Visibility)، زیربنای گام بعدی یعنی ساخت «عامل تریژ» است.
مکانیسم عامل تریژ (Triage Agent)
برای تسریع در مکانیابی خطا، این راهنما پیشنهاد میکند یک «عامل تریژ» بسازید. این ابزار یک پرامپت یکباره و ساده نیست، بلکه یک مهارت تخصصی است که روی یک مدل کلاس پیشرو (Frontier-class model) اجرا میشود و به ابزارهای نظارتی و مشاهدهپذیری شما دسترسی کامل دارد. در برخی پیادهسازیهای پیشرفته، ترکیب مدلهایی مانند Qwen 3 با پلتفرمهایی نظیر Oxlo.ai برای اتوماسیون کامل این فرآیند رفع خطا به کار گرفته میشود. از آنجا که پرامپتها در واقع کد هستند، این عامل از درون کدبیس شما اجرا میشود تا اکتشاف صحیح را انجام دهد و بفهمد دقیقاً کدام سرویس یا کدام گام در لحظه وقوع خطا، کنترل را به دست گرفته است.
برای اینکه عامل تریژ بتواند درست عمل کند، به ورودیهای دادهای خاصی نیاز دارد:
- ورودی اصلی و اولیه مشتری.
- تمام خروجیهای میانی که در طول زنجیره تولید شدهاند.
- استدلالهای مدل (Reasoning) در هر گام مجزا.
- سوابقی از اینکه کدام ابزار یا کدام پرامپت تصمیمگیرنده در هر مرحله فعال شده است.
سپس عامل تریژ آنچه را که «واقعاً اتفاق افتاده» با آنچه «باید اتفاق میافتاد» مقایسه میکند تا نقطه دقیق شکست را پین (Pinpoint) کند.
طبقهبندی شکست
پس از مکانیابی، باید خطا را در یکی از دو دسته زیر طبقهبندی کنید:
- سمت مشتری (Customer-side): باگ ناشی از یک عدم تطابق در پیکربندی یا ورودیهای ربات کاربر است که با قابلیتهای سیستم شما همخوانی ندارد. در این حالت، باید با مشتری همکاری کنید تا مشکل را در سمت آنها حل کند، بدون اینکه تغییری در سیستم خود ایجاد کنید.
- سمت سیستم (System-side): باگ متعلق به شماست. در اینجا از یافتههای عامل تریژ استفاده میکنید تا تصمیم بگیرید چه اصلاحی لازم است؛ مثلاً افزودن، حذف یا بازنویسی یک دستورالعمل، یا بازسازی پرامپت مربوط به فراخوانی ابزارها.

قبل از اعمال هرگونه اصلاح، یک بررسی نهایی انجام دهید: آیا این باگ تنها محدود به یک ربات خاص است یا در چندین ربات مختلف ظاهر میشود؟ اگر فقط یک ربات است، شما با یک «وصله» (Patch) طرف هستید. اما اگر چندین ربات با شکست مشابه مواجه شدهاند، شما با یک رگرسیون سیستماتیک روبرو هستید. این وضعیت به جای یک اصلاح سریع در کلمات، نیازمand یک زیرساخت ارزیابی (Evaluation Infrastructure) جامع است. این رگرسیونها اغلب زمانی رخ میدهند که پرامپتهای عمومی در مقیاس عملیاتی شکست میخورند و نیاز به استراتژیهای دقیقتری برای طبقهبندی قصد کاربر دارند.
بخش دوم: اصلاح، اعتبارسنجی و استقرار
اصلاح یک پرامپت بسیار فراتر از «تغییر دادن چند کلمه» است. هنگامی که تأیید کردید یک وصله برای یک ربات خاص نیاز است، باید ثابت کنید که این اصلاح کار میکند، پیش از آنکه اجازه دهید ترافیک واقعی تولیدی به آن دسترسی پیدا کند.
تستهای یکپارچگی و آستانهها
شما باید ابتدا یک تست یکپارچگی (Integration Test) پیرامون پرامپت جدید بنویسید که محیط واقعی را تا حد ممکن شبیهسازی کند. این کار شامل شبیهسازی (Mocking) همان مراحلی است که کد شما طی میکند و ارسال درخواستهای واقعی به مدل زبانی بزرگ (LLM).
نکته حیاتی این است که این تست را چندین بار اجرا کنید — برای مثال، یک ورودی مبهم را ۱۰ بار بازپخش کنید — به جای اینکه تنها یک بار آن را تست کنید. سپس باید یک «آستانه پذیرش» (Pass Threshold) تعیین کنید که با مجموعه تستهای شما تنظیم شده باشد. شما نمیتوانید از یک عدد ثابت مانند ۱۰۰٪ استفاده کنید، زیرا خروجی LLM ذاتاً دارای واریانس است. شما باید تعادلی میان «تولرانس خطاهای مثبت کاذب» و «زمانی که تست در CI میگیرد» ایجاد کنید؛ اگر تست بیش از حد سختگیرانه باشد، نویزهای کوچک باعث شکست هر PR میشود، اما اگر بیش از حد سهلگیرانه باشد، تست بیمعنی خواهد بود.
روشهای اعتبارسنجی
اعتبارسنجی باید از طریق بررسی خروجی تست در مقابل رفتار مورد انتظاری که در گزارش باگ اصلی توصیف شده، انجام شود. راهنما دو روش اصلی را پیشنهاد میکند:
۱. تطبیق قطعی (Deterministic matching): استفاده از کلمات کلیدی یا جملات خاصی که حتماً باید در پاسخ حضور داشته باشند. این روش باید در هر جای ممکن اولویت داشته باشد.
۲. مدل زبانی بهمثابه داور (LLM-as-judge): استفاده از یک مدل دوم برای ارزیابی پاسخها در مواردی که خروجی بیش از حد باز است و نمیتوان آن را به رشتههای متنی دقیق گره زد.
مسیر تصاعدی (Escalation Path)
اگر تست یکپارچگی شکست خورد، فرآیند از یک حلقه سختگیرانه پیروی میکند:
- شکست اول: خروجی شکستخورده را دوباره به مدل بدهید و اجازه دهید یک بار دیگر برای اصلاح تلاش کند.
- شکست دوم: حلقه را متوقف کنید. موضوع را به بررسی انسانی ارجاع دهید تا یک مهندس ردپای (Trace) خطا را بررسی کرده و پرامپت را به صورت دستی ویرایش کند.
زمانی که تست با موفقیت پاس شد، باید کل مجموعه تستهای یکپارچگی خود را اجرا کنید. این کار تأیید میکند که اصلاح این باگ خاص، باعث رگرسیون نشده و چیزی را که پرامپت قبلاً به درستی مدیریت میکرد، خراب نکرده است.
استقرار و پیشگیری بلندمدت
استقرار باید تدریجی باشد تا ریسک به حداقل برسد. توالی انتشار پیشنهادی به شرح زیر است:
- انتشار هدفمند (Targeted Rollout): ابتدا اصلاحیه را برای مشتری گزارشدهنده مستقر کنید تا با دادههای زنده اعتبارسنجی شود.
- انتشار عمومی (General Rollout): بسته به اندازه تغییرات، آن را به تمام کاربران گسترش دهید.
- تست A/B: اگر تغییرات گسترده و حیاتی است، انجام تست A/B برای شناسایی زودهنگام رگرسیونها توصیه میشود.
در نهایت، این باگ را به یک مورد تست دائمی تبدیل کنید. آن را به مجموعه دادههای آفلاین خود — مجموعهای که برای ویرایشهای بزرگ پرامپت یا تعویض مدلها استفاده میشود — اضافه کنید تا مطمئن شوید یک باگ را دو بار ارسال نمیکنید.
این تغییر رویکرد به سمت «مهندسی پرامپت به مثابه مهندسی نرمافزار»، پیشفرضهای این حوزه را تغییر میدهد. تمرکز را از «هنر» نوشتن یک پرامپت خوب به «علم» ساخت یک سیستم اعتبارسنجی منتقل میکند. با تبدیل هر شکست در محیط تولید به یک مورد تست جدید، تیمها میتوانند حصاری از قابلیت اطمینان (Reliability Moat) دور عاملهای هوش مصنوعی خود بسازند.
برای پیادهسازی این متد از همین امروز، با بازرسی لاگهای فعلی خود شروع کنید تا ببینید آیا میتوانید ردپای کامل (Full Trace) یک جلسه شکستخورده کاربر را بازسازی کنید یا خیر. بدون این قابلیت مشاهده، عامل تریژ چیزی برای تحلیل نخواهد داشت.
گام بعدی شما
- لاگهای فعلی خود را بررسی کنید تا ببینید آیا میتوانید ردپای کامل (Full Trace) یک جلسه شکستخورده کاربر را بازسازی کنید.
- برای پرامپتهای حیاتی، یک مجموعه داده از «موارد لبه» (Edge Cases) ایجاد کنید و هر تغییر را روی آنها تست کنید.
- یک مدل ارزانتر (مانند GPT-4o-mini) را به عنوان داور برای تستهای یکپارچگی خود تعریف کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو