الوحدة 8 — الأعطال النموذجيّة: الحلقات والانحراف والأدوات سيّئة الوصف
كتالوج مبنيّ على 300 تشغيل حقيقيّ لوكيل البحث. كلّ عطل يُعرَض بأثره، ثمّ تفسيره، ثمّ علاجه. اقرأه بعينَي مصلِّح: يومًا ما ستراه في سجلّاتك، وسيوفّر لك ساعتَين.
العطل 1: الحلقة اللانهائيّة
الأثر: الوكيل يبلغ حدّ التكرار، بعد استدعاء recherche_web تسع مرّات بمتغيّرات صياغة قريبة («Postgres 16 features», «Postgres 16 what's new», «Postgres 16 changes» ...).
التفسير: الأداة تعيد نتائج ضجيج (المحرّك يعطي مدوّنات إعادة تدوير)، النموذج لا يجد ما يريد، يعيد المحاول ة بصياغة أخرى ظنًّا أنّها الحلّ.
العلاج:
- مذكِّرة استدعاء: في تعليمة النظام، نُدرج «إن استدعيت أداة أكثر من ثلاث مرّات بلا نتيجة مفيدة، توقّف وقدّم أفضل ما لديك».
- تنويع إجباريّ: بعد استدعائَين لأداة، لا يُسمح بها في الخطوتَين القادمتَين (نُخفيها من قائمة الأدوات).
- إشعار للفريق: بلوغ حدّ التكرار يُنشئ تنبيهًا؛ الأداة نفسها قد تحتاج تحسينًا (سنراه في الوحدة 9).
العطل 2: الانحراف عن السؤال
الأثر: السؤال «هل يدعم Postgres 16 التقسيم المنطقيّ؟». الوكيل ينتهي بمذكّرة عن «مقارنة Postgres 15 و16» بلا إجابة على التقسيم.
التفسير: الأداة recherche_web أعادت صفحة مقارنة عامّة، النموذج قرأها بحماس، توسّعت مذكّراته الوسطى، ونسي السؤال الأصليّ.
العلاج:
- تعليمة تُذكِّر بالسؤال في كلّ خطوة: نُدرج السؤال حرفيًّا قبل كلّ نداء نموذج، لا مرّة واحدة في البداية.
- حدّ للانحراف: قبل التسليم، سؤال متحقِّق: «هل المذكّرة تُجيب على
{السؤال الأصليّ}؟». إن لا، نُعيد.
العطل 3: الأداة سيّئة الوصف
الأثر: النموذج يستدعي resumer_page باستمرار بدل lire_page، مع أنّ السؤال يحتاج تفاصيل. المذكّرة النهائيّة مبهمة.
التفسير: وصف resumer_page يقول «يقرأ صفحة ويعطي ملخّصًا»؛ ووصف lire_page يقول «يقرأ صفحة». النموذج يفضّل الملخّص ظنًّا أنّه «أذكى».
العلاج:
- إعادة صياغة الوصف مع معيار اختيار صريح:
lire_page«لأخذ التفاصيل الحرفيّة؛ يُستعمل حين تحتاج اقتباسًا دقيقًا»،resumer_page«للنظرة العامّة على صفحة طويلة؛ لا يُعطي اقتباسات». - الأفضل: دمج الأداتَين في
lire_page(url, mode: "détaillé"|"résumé"). الاختيار الآن معلَّم لا مُختار.