تصور کنید یک برنامهنویس هستید که باید باگهای مبهمی مثل «لینکها کار نمیکنند» را به یک هوش مصنوعی بسپارید تا اصلاح کند؛ احتمالاً پاسخ مدل، کدی است که در محیطی خیالی درست کار میکند اما در پروژه شما شکست میخورد.
به نقل از مستندات پروژه MonkeyCode، یک «بسته باگ» (Bug Packet) ساختاریافته در قالب JSON میتواند ابهامی را که باعث میشود عاملهای هوشمند (AI Agents) — مانند دستیارهای خودکاری که میتوانند کد بنویسند و اجرا کنند — محیطهای جعلی بسازند، کاملاً حذف کند. این رویکرد در ۱۴ ژوئیه ۲۰۲۶ عملیاتی شد تا گزارشهای مبهم گیتهاب را به سوابق قابل بررسی توسط ماشین تبدیل کند.
bیشتر توسعهدهندگان گزارشهای کوتاهی مینویسند که برای انسان قابل درک است اما برای AI مانند یک «تولیدکننده ابهام» عمل میکند. در حالی که یک انسان میفهمد منظور از «لینکهای شکسته» چیست، یک عامل از بستر ضربه زدن، مسیرهای مورد انتظار و تعریف دقیق «پایان موفقیتآمیز» بیخبر است. همین شکاف باعث میشود مدلها کدهایی تولید کنند که منطقی به نظر میرسند اما از نظر فنی نادرست هستند. این موضوع یادآور چالشهای بنیادینی است که در بررسی علت انحراف عاملهای هوشمند در مأموریتهای طولانی به آنها پرداختیم، جایی که فقدان راهنمایی دقیق منجر به خروج مدل از مسیر هدف میشود.
همانطور که در تحلیلهای پیشین ما درباره امنیت و پایداری عاملهای AI اشاره کردیم، نبودِ دادههای مرجع باعث افزایش نرخ خطا در استنتاج مدلها میشود. برای حل این مشکل، رویکرد MonkeyCode از یک طرحواره (Schema) خاص در فایل bug-packet.json استفاده میکند. طبق گزارش وبسایت dev.to، یک بسته معتبر باید شامل نُه فیلد مشخص باشد تا عامل مجبور نشود شکافهای اطلاعاتی را با «داستانهای باورپذیر» پر کند. این سختگیری در داده ورودی، مکمل استقرار حفاظهای فنی برای جلوگیری از تخریب مخازن کد است تا اطمینان حاصل شود تغییرات پیشنهادی AI بر پایه واقعیات محیطی باشند.
یک مثال واقعی در مورد مشکل شماره ۸۲۴ در MonkeyCode است. در این گزارش ذکر شده بود که کلیک روی لینکهای Markdown که با /workspace/... شروع میشوند، بهجای باز کردن فایل، کاربر را به صفحه اصلی میبرد. اصلاحیه مربوطه در PR #۸۵۹ شفاف کرد که یک کلیک معمولی باید پیشنمایش فایل را باز کند، در حالی که باز کردن در تب جدید یا کپی کردن لینک باید «لینک عمیق» (Deep Link) مدیر فایل را حفظ کند.
اجزای اصلی این چارچوب عبارتاند از:
- محیط (Environment): تثبیت دقیق کامیت (مثلاً نسخه
c58bcd4dd4b7031f469a1271f276d22550b8f523) و سطح نمایش. - بازتولید (Reproduction): لیستی ترتیبی و اجباری از گامها برای فعال کردن باگ.
- انتظار در برابر مشاهده (Expected vs. Observed): تفکیک صریح آنچه «باید رخ دهد» از آنچه «در واقع رخ میدهد».
- پذیرش (Acceptance): تعریف خط پایان مشخص (مثلاً اطمینان از باز شدن پیشنمایش در کلیک معمولی).
- ناشناختهها (Unknowns): لیست صریح دادههای مفقود (مثل نسخه مرورگر) تا مدل حدس نزند.
- شواهد (Evidence): ثبت مشاهدات واقعی بهجای نتایج تستهای جدید نویسنده.
این سامانه توسط یک اعتبارسنج Node.js مدیریت میشود که هرگونه رکورد مبهم را رد میکند. یک اسکریپت تست (node test-bug-packet.mjs) تایید میکند که تنها بستههای معتبر اجازه ورود به خط لوله CI را دارند. در مورد باگ ۸۲۴، این بسته توانست مسیر شکست را مستقیماً به اصلاحیه PR #۸۵۹ متصل کند و نتایج Linter و بیلد آنلاین را بهعنوان شاهد ثبت کند. این رویکردِ ثبت دقیق شواهد، شباهت زیادی به تلاشهای پروژه Causari برای پر کردن شکاف عیبیابی از طریق ثبت زنجیره علیّت دارد.
برای شما بهعنوان کاربر، این تغییر یعنی نقش شما از «مهندس پرامپت» (Prompt Engineering) — یعنی هنر سؤال درست پرسیدن برای گرفتن بهترین جواب — به «مالک محدوده» (Scope Owner) تغییر میکند. بهجای نوشتن پرامپتهای طولانی، شما بسته JSON و یک دستور کوتاه میدهید: «فقط روی نسخه تثبیتشده بازتولید کن، قبل از تغییر مسیر، برای تمام رفتارهای پذیرش یک تست شکستخورده بنویس و مدیریت URL را فراتر از مسیر /workspace گسترش نده».
این متد این فرض را که «یک ایشوی گیتهاب بستر کافی برای یک مدل زبانی بزرگ (LLM) است» به کلی تغییر میدهد. با جداسازی واقعیات از حدسیات، پلی قطعی بین باگ گزارششده و اصلاح تأییدشده ایجاد میشود و چرخه آزمون و خطا در ترمیمهای AI کاهش مییابد. توسعهدهندگان میتوانند با افزودن مسیر اسکرینشاتها یا نسخههای مرورگر به فیلد شواهد، این فرمت را گسترش دهند تا بهجای ریختن تمام کامنتهای گیتهاب در پنجره متنی (Context Window) — که شبیه میز کاری است که فقط جای چند ورق دارد — یک رکورد سبک و مستند داشته باشند.
گام بعدی شما
- اگر از عاملهای کدنویسی استفاده میکنید، سعی کنید توصیفات باگهای خود را در چهار بخش «محیط، گامهای بازتولید، رفتار مشاهدهشده و رفتار مورد انتظار» دستهبندی کنید.
- ساختار JSON را برای تعریف «شرایط پذیرش» (Acceptance Criteria) در تسکهای کوچک خود به کار ببرید تا نرخ توهم مدل کاهش یابد.
- ابزارهای اعتبارسنج (Validator) سادهای بسازید که اجازه ندهند تسکهای ناقص به دست AI برسند.
اما این نظمدهی به دادهها تنها بخشی از ماجراست؛ بررسی کنیم که چگونه پروتکل MCP میتواند این بستههای داده را بهصورت استاندارد بین مدلهای مختلف جابهجا کند.




گفتگو