تیپ #۲۷

سقف توکن برای هر گام، ترمز هزینه و تأخیر

برای هر گام از حلقهٔ ایجنت یک سقف توکن تعیین کنید، نه فقط یک محدودیت کلی برای کل اجرا 💸. طول خروجی و اندازهٔ کانتکست هم‌زمان روی تأخیر و هزینه اثر می‌گذارند، پس بودجهٔ توکن در عمل بودجهٔ زمان هم هست. بزرگ‌ترین نشتی پنهان معمولاً خروجی ابزارهاست: JSON حجیم را قبل از برگرداندن به کانتکست خلاصه یا فیلتر کنید. وقتی بودجه تمام شد، به‌جای چرخیدن در حلقه، پاسخ ناقص را با پیام روشن برگردانید و مصرف هر گام را لاگ کنید.

توضیح کامل‌تر

هزینهٔ هر فراخوانی مدل تقریباً برابر است با مجموع توکن‌های ورودی ضرب‌در قیمت ورودی به‌علاوهٔ توکن‌های خروجی ضرب‌در قیمت خروجی، و چون تولید توکن خروجی ترتیبی انجام می‌شود، تأخیر هم عمدتاً با تعداد توکن‌های خروجی رشد می‌کند. در یک ایجنت حلقه‌ای، هر گام کل کانتکست قبلی را دوباره به مدل می‌فرستد، پس یک خروجی ابزار حجیم می‌تواند در چند تکرار پشت‌سرهم ضرب شود و هزینه را چند برابر کند. راه‌حل عملی این است که برای هر گام سهمیهٔ مشخصی تعیین کنید، خروجی ابزارها را پیش از افزودن به کانتکست خلاصه یا فیلتر کنید، و در صورت عبور از سهمیه، اجرا را با یک پاسخ ناقص اما شفاف ببندید. مثلاً اگر ابزار جست‌وجو در هر دور بیست هزار توکن برگرداند و حلقه هشت دور بچرخد، فقط بخش ورودی به صد و شصت هزار توکن می‌رسد؛ با خلاصه‌سازی خروجی ابزار به دو هزار توکن، همین اجرا با کسری از هزینه و تأخیر تمام می‌شود. لاگ‌کردن مصرف توکن به تفکیک هر گام هم نشان می‌دهد کدام بخش واقعاً بودجه را می‌خورد و کجا باید سراغ مدل ارزان‌تر یا کانتکست کوچک‌تر رفت.

نکته پیشرفته
← بازگشت به همهٔ نکته‌های روز