تیپ #۲۰
توضیح ابزار را طوری بنویسید که مدل واقعاً بفهمد
مدل هیچوقت کد ابزار شما را نمیبیند؛ تنها چیزی که در اختیارش است همان رشتهٔ توضیح داخل schema است. پس آن را مثل مستندات ورود یک همکار تازهوارد بنویسید: ابزار چه کاری میکند، کجا باید صدایش زد و کجا نباید، هر پارامتر چه انتظاری دارد و خروجی چه شکلی برمیگردد. توضیحهای کلی مثل «اطلاعات کاربر را میگیرد» مدل را مجبور به حدس زدن میکند و معمولاً هم اشتباه حدس میزند 👀. محدودیتها را صریح بنویسید، مثلاً «حداکثر ۲۰ نتیجه برمیگرداند و برای صفحهبندی باید از پارامتر cursor استفاده کنید».
توضیح کاملتر
انتخاب ابزار توسط مدل یک تصمیم متنی است: مدل فقط توضیحی را میبیند که شما در schema نوشتهاید و بر اساس همان تصمیم میگیرد کدام ابزار را صدا بزند و با چه آرگومانهایی. اگر توضیح مبهم باشد، مدل یا ابزار اشتباه را انتخاب میکند یا آرگومانها را از خودش میسازد و خطای عجیب میگیرید. در عمل، توضیح ابزار بخشی از prompt است؛ پس همانجا میتوانید شرطهای منفی، مثال ورودی درست و غلط، شکل خروجی و رفتار در حالت خطا را بنویسید. یک نمونهٔ رایج: دو ابزار search_orders و get_order با توضیحهای همپوشان باعث میشوند مدل وقتی فقط نام مشتری را دارد سراغ get_order برود و شکست بخورد؛ با اضافه کردن یک جمله مثل «وقتی فقط نام مشتری را داری از search_orders استفاده کن» مشکل در همان چند کلمه حل میشود. نکتهٔ دوم این است که توضیحها بخشی از پنجرهٔ context را اشغال میکنند، پس هدف دقیق بودن است نه طولانی بودن. توضیح خوب، مثل برچسب روی جعبه، بدون خواندن محتوای جعبه به مدل میگوید داخلش چیست و کجا به کارش میآید.
← بازگشت به همهٔ نکتههای روز