سه هفته کلنجار با یه خطای ایجنت
خلاصهٔ کاملتر
ماجرا از یه جملهی مشتری شروع شد: کاش میشد روی این کارت کلیک کنم و بگم مرتبش کن. مشتری داشت opportunity solution tree (یعنی نقشهای که نیازهای مشتری رو به هدف کسبوکار وصل میکنه) تولیدشده با AI رو نگاه میکرد و یه شاخهی کاملاً تخت و بدون سلسلهمراتب دیده بود. نویسنده میگه نخواست یه دکمهی «مرتب کن» بذاره، خواست بفهمه چرا ایجنت از اول ساختار نساخته.
برای اندازهگیری دو ارزیابی ساخت. اولی tree-shape بود، یه چک کد ساده که فقط شکل درخت رو میشمره: تعداد نود، میانگین بچهها، والدهای میانی، عمق و توزیع بچهها. دومی LLM-as-a-Judge بود، یعنی یه مدل دوم که خروجی مدل اول رو قضاوت میکنه و میگه گروهبندی جا افتاده یا نه. ولی داور کالیبره نشد: recall (وقتی خطا هست، چقدر پیداش میکنه) صد درصد بود، ولی specificity (وقتی خطا نیست، چقدر الکی هشدار نمیده) فقط ۴۳٫۷۵ درصد.
دلیلش خطاهای بالادستی بود. داور گیج میشد چون بعضی فرصتها فقط حرف والدشون رو تکرار میکردن یا key moment بد فرمولبندی شده بود. برای همین دو ارزیابی دیگه ساخت: یکی برای key moment های بد و یکی برای بچهای که چیزی به والد اضافه نمیکنه. بعد از بزرگ کردن مجموعههای کالیبراسیون، داور تکرار والد به recall صد و specificity ۹۳ درصد رسید و داور key moment به recall ۹۰ و specificity صد درصد.
بعد نوبت واریانتها شد و یه الگوی آزاردهنده خودشو نشون داد: هر بار ایجنت رو در پیدا کردن زیرگروه بهتر میکرد، والدهای بدفرمولبندیشده زیاد میشد؛ هر بار قواعد فرمولبندی رو سفتتر میکرد، ایجنت دیگه والد جدید نمیساخت. عوض کردن مدل از Sonnet 4.6 به Sonnet 5 هم جواب نداد: Sonnet 5 قواعد رو خوب رعایت میکرد، ولی جایی که 4.6 یازده والد میانی ساخته بود اون فقط یکی ساخت.
یه نکتهی جالب دیگه هم اینه که داورهای بهظاهر کالیبرهشده روی دادهی واقعی تولید از کار افتادن و بالای ۹۰ درصد نرخ خطا گزارش دادن، جوری که هیچ نودی به ارزیابی اصلی نمیرسید. نویسنده میگه همون tree-shape ساده کافی بود تا ببینه قواعد جدیدش داره کار میکنه و شاخهها ساختار بیشتری پیدا کردن. یه وقفهی کوتاه هم باعث شد بفهمه یکی از پرامپتهای ساخت درخت تازه، زبان قدیمی و متناقض توش مونده.
راهحل نهایی از پرامپت نیومد. اون ارکستراسیون رو عوض کرد: گذاشت ایجنت اول کارشو بکنه و اشتباه هم بکنه، بعد یه auditor کاملاً کدی (همون tree-shape) والدهای پرشلوغ رو پیدا کنه و برشون گردونه به ایجنت تا خودش درستشون کنه. چون پرامپتها روی فرمولبندی خوب تنظیم شده بودن، اصلاحها هم تمیز از آب در اومد. توی واریانت ۱۶، تکرار والد ۷۸ درصد کم شد، key moment بد ۲۹ درصد و والدهای میانی ۶۵ درصد بیشتر شدن.
نکات کلیدی:
- tree-shape یه ارزیابی کاملاً کدیه: تعداد نود، میانگین بچهها، والدهای میانی و عمق درخت رو میشمره
- داور اولیه recall صد درصد ولی specificity ۴۳٫۷۵ درصد داشت و بعد از هفت بار تکرار فقط به ۶۰ درصد رسید
- داورهای کالیبرهشده روی دادهی واقعی خراب شدن و بالای ۹۰ درصد نرخ خطا گزارش دادن
- Sonnet 5 هیچ خطای تکرار والد نداشت، ولی توی درختی که Sonnet 4.6 یازده والد میانی ساخت فقط یکی ساخت
- واریانت ۱۶: ۷۸ درصد کاهش تکرار والد، ۲۹ درصد کاهش key moment بد و ۶۵ درصد افزایش والدهای میانی




