ازدحام عاملها: ساخت SQLite از روی مستندات، با ۸۰۰ دلار اختلاف
خلاصهٔ کاملتر
تیم کرسر مینویسه اوایل امسال آزمایشهایی برای سنجش مرزهای مقیاسدادن به عاملهای همکار انجام دادن؛ پروژهٔ شاخصش یه ازدحام طولانیمدت بود که از صفر یه مرورگر وب ساخت. اون کار بهعنوان اثبات مفهوم موفق بود ولی خیلی از نرمافزار پرداخته فاصله داشت. حالا برگشتن سراغ کاری که ازدحام قدیمی توش لنگ زده بود: ساختن SQLite از صفر با Rust، فقط از روی مستنداتش.
معماری ازدحام دو نقش داره که هر دو حول تجزیهٔ درختمانند مسئله میچرخن. عاملهای برنامهریز که با هوشمندترین مدلها کار میکنن، هدف رو به تکهها میشکنن و واگذار میکنن؛ عاملهای کارگر که معمولاً با مدلهای سریعتر و ارزونتر کار میکنن، اون تکهها رو اجرا میکنن.
چرا این ساختار جواب میده؟ وقتی یه عامل تنها کل کار رو برمیداره، باید خودش کل درخت رو راه بره و همزمان موقعیت فعلی و هدف کلی رو تو حافظه نگه داره. به گفتهٔ اونا همینه که عاملهای تکنفرهٔ طولانیمدت رو منحرف میکنه: یا تصویر کلی رو گم میکنن، یا تکه رو بدتر انجام میدن. تو ازدحام، برنامهریز پیادهسازی نمیکنه پس متنش با جزئیات پر نمیشه، و کارگر برنامه نمیریزه پس کل متنش صرف یه تکهٔ باریکه. تیم حدس میزنه توان مقیاسپذیری بیشتر از همین کارایی متن میاد تا از خود موازیسازی.
حجم فعالیت اونقدر بالاست که ابزارهای معمول کم میارن. ازدحام مرورگر روی Git به حدود هزار کامیت در ساعت میرسید؛ سیستم جدید به هزار کامیت در ثانیه. برای همین یه سیستم کنترل نسخهٔ تازه از صفر ساختن. تو این تمپو حالتهای شکستی پیدا میشه که تیمهای انسانی نمیبینن: «مغز دوپاره» یعنی دو برنامهریز بیخبر از هم یه مفهوم رو دو جور پیاده میکنن، کشمکش دو برنامهریز سر یه فایل، و تعارض ادغام که کارگرها بد حلش میکنن. راهحلها بهترتیب پرامپت، سندهای طراحی مشترک، و یه عامل ثالث بیطرف بوده.
یه آزمایش جالب دیگه «راهنمای میدانی»ه: پوشهای که کاملاً مال خود عاملهاست و فایل ایندکسش خودکار به هر عامل تازه تزریق میشه. منطقش اینه که وزنهای مدل فریزن، پس همون برخوردهای غافلگیرکننده ارزش ثبتشدن دارن تا مسیر عامل بعدی کوتاهتر بشه.
برای آزمایش SQLite، تیم سورس، تستسوئیت، باینری و دسترسی اینترنت رو دریغ کرد و نتیجه رو با sqllogictest نمره داد؛ ازدحام هیچوقت از وجود این تستسوئیت خبردار نشد. تفاوت هارنس قدیم و جدید تو رفتار خیلی بزرگتر از تفاوت نمرهها بود: اجرای قدیمی Grok 4.5 تو دو ساعت اول ۶۸ هزار کامیت زد، حدود هفتاد برابر سرعت اجرای جدید، ولی بیش از ۷۰ هزار تعارض ادغام انباشت و متوقف شد، در حالی که اجرای جدید تو چهار ساعت زیر هزار تعارض داشت. اجرای قدیمی به ۵۴ کریت پخش شد؛ جدید روی نُه کریت نشست و دیگه اضافه نکرد.
بخش اقتصاد مدل شاید مهمترین یافته باشه. همهٔ ترکیبها کیفیت مشابهی دادن ولی هزینه از ۱۳۳۹ دلار برای ترکیب Opus 4.8 تا ۱۰۵۶۵ دلار برای GPT-5.5 تنها فرق داشت. کارگرها دستکم ۶۹ درصد و تو بیشتر اجراها بالای ۹۰ درصد توکنها رو برمیداشتن، ولی دلارها جور دیگهای تقسیم میشد چون توکن برنامهریز گرونتره. تو اجرایی که GPT-5.5 هم برنامهریز بود هم کارگر، فقط کارگرها ۹۳۷۳ دلار خرج برداشتن؛ تو اجرایی که Opus 4.8 برنامهریزی میکرد و Composer 2.5 کار میکرد، کل ناوگان کارگر ۴۱۱ دلار شد.
نتیجهگیری تیم اینه که لحظههای کمی از یه کار بزرگ واقعاً به هوش مرزی نیاز دارن — تجزیهٔ اولیه، تصمیمهای طراحی و بعضی مصالحهها. وقتی برنامهریز ابهام رو به یه دستور صریح فروکاست، مدلهای ارزونتر فقط باید دنبالش برن. به تعبیر خودشون با ازدحام، واحد کار به «مشخصات» تبدیل میشه: اونا ۸۳۵ صفحه نثر دادن و یه پایگاه داده تحویل گرفتن، و چیزی که کمیاب بوده توصیف درست قصد بوده.
نکات کلیدی:
- ازدحام دو نقش داره: برنامهریز با مدل قوی، کارگر با مدل سریع و ارزون
- مزیت اصلی کارایی متنه، نه صرفاً موازیسازی: برنامهریز پیادهسازی نمیکنه، کارگر برنامه نمیریزه
- سیستم کنترل نسخهٔ اختصاصی برای حدود هزار کامیت در ثانیه ساخته شده
- کیفیت بین ترکیبهای مدل مشابه بود ولی هزینه از ۱۳۳۹ تا ۱۰۵۶۵ دلار فرق داشت
- کد نهایی ازدحام جدید حدود ۹۹۰۰ خط بود، در برابر بیش از ۶۴ هزار خط نسخهٔ قدیمی




