دیباگ دستیار جستجوی هوش مصنوعی با تریس
خلاصهٔ کاملتر
تو این مقاله اومده که تیم Sentry برای راحتتر کردن جستجو ابزاری به اسم Search Query Assistant ساخته: تو جمله معمولی مینویسی و اون تبدیلش میکنه به Sentry Search Syntax. چون خروجی مدل هر بار میتونه فرق کنه، تیم برای سناریوهای اصلی کاربر eval نوشته، یعنی تستهایی که خروجی مدل رو با جواب درست مقایسه میکنن، و با همون اندازه میگیره که دستیار چقدر درست کار میکنه.
باگ واقعی این بود: وقتی کاربر روی یه attribute عددی سفارشی فیلتر میذاشت، مثلاً تعداد آیتمهای سبد خرید بیشتر از ۱۰، جستجو هیچ رویدادی برنمیگردوند. نویسنده میگه بعضی وقتا میشه eval رو لوکال بازتولید کرد، ولی این مدل مشکلا به دادهای که tool call برمیگردونه یا به نسخه مدل وابستهست و لوکال خودشو نشون نمیده.
برای همین رفتن سراغ نمای Agents تو خود Sentry و با فیلتر بازه زمانی و ایمیل خودشون اون گفتگو رو پیدا کردن. اونجا بهجای یه بلاب JSON، تایملاین کامل رو میبینی: system prompt، تولید مدل و tool callها. از همونجا هم میشه پرید تو trace و دید خود API بکاند چی جواب داده.
ریشه مشکل همینجا پیدا شد: تیم از نتیجه tool call برای ساختن system prompt استفاده میکرد و prompt اسم فیلد رو خالی میآورد، در حالی که سینتکس جستجو فرم tags[field_name, number] رو لازم داره. با همین اطلاعات یه سناریوی eval تازه ساختن و فیکسش کردن. نویسنده میگه این نما اونقدر مفید بوده که اجرای لوکال evalها رو هم به Sentry وصل کردن تا قبل از باز کردن pull request نتیجه رو ببینن.
نکات کلیدی:
- دستیار جستجوی Sentry جملههای زبان طبیعی رو به Sentry Search Syntax تبدیل میکنه
- ریشه باگ: system prompt اسم فیلد رو خالی میآورد، نه به فرم tags[field_name, number]
- نمای AI Conversation تایملاین system prompt و تولید مدل و tool callها رو نشون میده
- از همون تریس میشه مستقیم به API بکاندی که ایجنت صدا زده پرید
- اجرای لوکال evalها هم به Sentry فرستاده میشه تا قبل از PR نتیجه دیده بشه




