چطور ChatGPT حلقهٔ ایجنتش رو ارزونتر میکنه
خلاصهٔ کاملتر
به گفتهٔ نویسنده، لابراتوارهای هوش مصنوعی تندتر از همیشه مدل منتشر میکنن، ولی توانایی فقط نصف تصویره؛ نصف دیگه هزینهٔ هر تسک موفق ـه. تو این مقاله ByteByteGo با مهندسهای OpenAI که تکنیکهای بهینهسازی رو تو سیستمهای پشت Codex و ChatGPT Work پیاده کردن حرف زده. نکتهٔ پایه اینه که درخواست تو مستقیم به مدل نمیره: اول لایهٔ harness کانتکست رو میسازه و ابزارها رو اجرا میکنه، بعد لایهٔ API اعتبارسنجی و توکنایز میکنه، و آخر لایهٔ inference مدل رو رو GPU میچرخونه.
harness رو ماشین کاربر اجرا میشه و مدل تو دیتاسنتر، پس هر صدا زدن مدل یه رفتوبرگشت شبکهست. با HTTPS معمولی هر تماس یعنی یه هندشیک TCP و TLS تازه، بهعلاوهٔ فرستادن دوبارهٔ کل تاریخچه؛ سر بیستمین tool call، harness داره پرامپت اولیه و نوزده فراخوانی و نوزده نتیجه رو دوباره آپلود میکنه تا فقط یه آیتم به تهش اضافه کنه. جوابش یه WebSocket پایدار برای کل نوبته، بهعلاوهٔ فرستادن فقط آیتم جدید با ارجاع به پاسخ قبلی:
{
"type": "response.create",
"previous_response_id": "resp_abc123",
"input": [
{ "type": "function_call_output", "call_id": "call_xyz", "output": "...the new tool result..." }
]
}سه تکنیک دیگه هم رو harness سواره. اول ثابت نگه داشتن ابتدای پرامپت، چون prompt caching توکنبهتوکن مچ میکنه؛ نویسنده مثال میزنه که Codex تعریف ابزارهای MCP رو تو یه hash map نگه میداشت و ترتیبشون هر بار فرق میکرد، پس کش بیصدا میسوخت. دوم deferred discovery: فقط ابزارهای اصلی بهعلاوهٔ یه ابزار جستوجو تو پرامپت میمونن و بقیه با رتبهبندی لغوی BM25 موقع نیاز لود میشن. سوم Code Mode، که مدل بهجای تکتک صدا زدن ابزارها یه برنامهٔ کوچیک مینویسه و فقط نتیجهٔ فشرده وارد کانتکست میشه.
لایهٔ API رو CPU معمولی میچرخه و کاری برای سریعتر کردن GPU ازش برنمیآد؛ فقط میتونه تأخیر کمتری دور اون بذاره. با نگه داشتن مکالمهٔ توکنایزشده تو حافظهٔ سرور، هر درخواست بعدی فقط همون تیکهٔ جدید رو توکنایز میکنه و هزینهش دیگه به طول مکالمه وابسته نیست. چکهای ایمنی هم بهجای اینکه قبل از inference اجرا بشن، همزمان باهاش راه میافتن و تو همون پنجرهٔ انتظار پنهون میشن. OpenAI حتی دید نسلهای مختلف CPU زیر یه لیبل قاطی شدن و قدیمیها حدود ۲۰٪ TTFT بدتری میدن.
رو لایهٔ inference هم چهار تکنیک اصلی مطرح میشه: مسیریابی کشآگاه که هم بار رو پخش میکنه هم درخواست رو به ماشینی برمیگردونه که کش اون مکالمه رو داره؛ مدیریت KV cache بر پایهٔ ترِیسهای واقعی پروداکشن بهجای شهود؛ speculative decoding که یه مدل کوچیک چند توکن بعدی رو پیشنهاد میده و مدل بزرگ همه رو تو یه پاس موازی تأیید میکنه؛ و جدا کردن prefill از decode، چون اولی محاسبهمحوره و دومی حافظهمحور. جمعبندی مهندسها اینه که هیچ تکنیکی بهتنهایی بازی رو عوض نمیکنه؛ برد از زنجیر کردن کلی بهینهسازی کوچیک میآد.
نکات کلیدی:
- معیار واقعی، هزینهٔ هر تسک موفقه، نه فقط توانایی مدل.
- هر اپ ایجنتی سه لایه داره: harness، API و inference — و هر سه کار تکراری انجام میدن.
- WebSocket پایدار بهعلاوهٔ فرستادن فقط دلتا، هم هندشیک تکراری رو حذف میکنه هم حجم آپلود رو.
- prompt caching توکنبهتوکن مچ میکنه، پس یه ترتیب بیثبات تو تعریف ابزارها کل کش رو باطل میکنه.
- deferred discovery و Code Mode کانتکست رو کوچیک نگه میدارن و تعداد رفتوبرگشتها رو کم میکنن.
- تو inference، مسیریابی کشآگاه، مدیریت KV cache، speculative decoding و جدا کردن prefill از decode بیشترین صرفهجویی رو دارن.




