پرش به محتوای اصلی
پرش به محتوای مقاله

«تست استرس واقعی»؛ معیار سنجش توانمندی عامل‌های هوش مصنوعی در کدنویسی

·۲ تیر ۱۴۰۵۶ دقیقه مطالعه
عکس: ربات‌های برنامه‌نویس در حال ساخت بازی آنلاین چندنفره عظیم به جای اپلیکیشن‌های ساده todo
عکس: ربات‌های برنامه‌نویس در حال ساخت بازی آنلاین چندنفره عظیم به جای اپلیکیشن‌های ساده todo
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

استفاده از یک بازی MMO به عنوان محک (Benchmark) برای سنجش توانایی عامل‌های کدنویس در حفظ ثبات معماری در مقیاس بزرگ، به جای ارزیابی‌های تک‌فایلی.

تصور کنید می‌خواهید یک دنیای آنلاین زنده بسازید که در آن هزاران متغیر از اقتصاد و امنیت گرفته تا پیشرفت شخصیت‌ها، اینونتاری‌ها، سیستم‌های اجتماعی، محتوا، استقرار (Deployment) و یک کلاینت پاسخگو که به سروری کنترل‌کننده متصل است، هم‌زمان در حال تغییر باشند. در چنین محیطی، هر زیرسیستم می‌تواند هر زیرسیستم دیگری را مختل کند؛ این دقیقاً همان هرج‌و‌مرج معماری است که پروژه World of ClaudeCraft با استفاده از Claude Fable 5 در طول یک هفتهای توسعه به قلب آن زد. این موفقیت در پی آن می‌آید که مدل Claude Fable 5 جهشی فنی در توانمندی‌های کدنویسی را تجربه کرده است

به جای استفاده از بنچمارک‌های ساده و تکراری یا ساخت ویژگی‌های ایزوله مانند اپلیکیشن‌های لیست کارهای روزانه (Todo App)، این پروژه ثابت کرد که عامل (Agent) — ابزاری که می‌تواند هدف را بفهمد و برای رسیدن به آن برنامه‌ریزی کند — قادر است سیستم‌هایی را پیاده‌سازی کند که در آن شبکه در زمان واقعی (Real-time Networking)، وضعیت‌های پایدار (Persistent State) و محاسبات پیچیده مبارزات با هم تلاقی می‌کنند.

اکثر ارزیابی‌های فعلی از هوش مصنوعی بر «صحت محلی» تمرکز دارند؛ یعنی اگر مدل بتواند یک فیلد را در یک فرم اصلاح کند، موفق تلقی می‌شود. اما ساخت یک دنیای آنلاین نیازمند حفظ یک مدل منسجم در ده‌ها فایل به‌هم‌پیوسته‌ است. طبق گزارشی که در ۲۳ ژوئن ۲۰۲۶ در وب‌سایت dev.to منتشر شد، این پروژه به عنوان یک «مصنوع دست‌ساز مهندسی و ابطال‌پذیر» (Falsifiable Engineering Artifact) عمل می‌کند تا مشخص شود آیا هوش مصنوعی می‌تواند ساختارهای معماری (Architectural Invariants) را در مقیاس بزرگ حفظ کند یا خیر.

تصویری از یک کاراکتر بازی در حال برنامه‌نویسی به جای ساختن یک برنامه ساده todo list.

همان‌طور که در تحلیل‌های پیشین ما درباره‌ی امنیت مدل‌های بازمتن اشاره کردیم، مدیریت پیچیدگی در مقیاس بالا همیشه نقطه ضعف مدل‌ها بوده است، اما در اینجا استراتژی متفاوتی به کار رفته است.

موفقیت این پروژه مدیون یک قانون سخت‌گیرانه است: استفاده از یک شبیه‌سازی قطعی (Deterministic) با زبان TypeScript که توسط هر میزبان استفاده می‌شود. این انتخاب معماری، که در پوشه src/sim قرار دارد، مانع از آن می‌شود که با رشد پروژه، کدها به «کنفتی کد» یا تکه‌های پراکنده و بی‌ربط تبدیل شوند. در این ساختار، رندرینگ و رابط کاربری (HUD) به جای تعامل مستقیم با یک پیاده‌سازی بتنی، با یک رابط به نام IWorld صحبت می‌کنند تا پیچیدگی‌های فنی و ماشین‌افزار سیستم از لایه نمایش پنهان بماند.

جزئیات فنی این سامانه به شرح زیر است:

  • حالت آفلاین: یک شبیه‌سازی محلی که رابط IWorld را تامین می‌کند تا کاربر بتواند از طریق دکمه "Play Offline" فوراً بازی را تجربه کند.
  • سرور چندنفره: یک سرور authoritative (مرجع) که تمام محاسبات مربوط به تاس‌های مبارزات، غنائم (Loot)، اعتبار ماموریت‌ها، معاملات تجاری، تراکنش‌های فروشندگان و پیشرفت شخصیت‌ها را از طریق پروتکل‌های REST و WebSockets مدیریت می‌کند. این سرور برای ذخیره و پایداری وضعیت شخصیت‌ها از پایگاه داده PostgreSQL استفاده می‌کند.
  • محیط RL: یک میزبان بدون رابط گرافیکی (Headless) با Python و Gymnasium که اجازه می‌دهد عامل‌های یادگیری تقویتی (Reinforcement Learning) بتوانند علیه منطق واقعی بازی آموزش ببینند.

قطعی بودن (Determinism) در اینجا به عنوان یک «ضریب تقویت‌کننده» عمل می‌کند. شبیه‌سازی بازی به زمان ساعت دیواری یا تابع Math.random() وابسته نیست. به نقل از مستندات پروژه، توسعه‌دهندگان می‌توانند با تعیین یک «بذر» (Seed) برای محیط و بازپخش اقدامات (Replay)، هر اپیزود یا اتفاق خاصی را دقیقاً بازتولید کنند. این یعنی مبارزات آفلاین و آنلاین دقیقاً قوانین یکسانی دارند و تست‌ها به جای دنبال کردن خطاهای گذرا و متغیر، روی ریشه‌های فنی تمرکز می‌کنند. علاوه بر این، گروه‌های خودکار (Automated Parties) می‌توانند سیاه‌چاله‌ها را پاکسازی کنند تا رگرسیون‌ها در بخش‌های مبارزات، میزان تهدید (Threat)، شفا-بخش‌ها، غنائم و اسکریپت‌های رویارویی شناسایی شوند. حتی سیستم‌های تزئینی مانند آب‌وهوای محیطی (Biome Weather) فقط در لایه رندر هستند تا مطمئن شوند بارش باران نمی‌تواند به طور تصادفی وضعیت بازی (Game State) را تغییر دهد.

آنچه به عنوان یک آزمایش ۴۸ ساعته آغاز شد، اکنون به دنیایی قابل بازی با سطوح ۱ تا ۲۰ تبدیل شده است. این بازی اکنون دارای ۹ کلاس شخصیتی، ۳ منطقه باز و نزدیک به ۹۰ ماموریت است. سیستم‌های پیچیده‌ای مانند سیاه‌چاله‌های instance-based، مکانیک‌های باس‌های مرحله، سیستم‌های گروه‌بندی (Parties)، تجارت، دوئل‌ها، PvP رتبه‌بندی‌شده و ۱۴ مکان (Locale) مختلف در آن پیاده شده است. وب‌سایت تخصصی MMORPG.com نتایج را «به طرز شگفت‌آوری کامل» توصیف کرده و اشاره نموده که این بازی حتی از برخی دموهای استودیویی که چرخه‌ی توسعه‌ی بسیار طولانی‌تری داشتند اما در شرایط ناپایدارتری بودند، روان‌تر اجرا می‌شود.

برای عبور از نیاز به یک خط لوله عظیم دارایی‌های گرافیکی (Asset Pipeline) و تیم‌های حرفه‌ای هنری، توسعه‌دهندگان از تولید رویه‌ای (Procedural Generation) استفاده کردند. بسیاری از بخش‌های بازی در زمان اجرا (Runtime) تولید می‌شوند:

  • بصری‌ها: مناظر، زمین‌ها و آیکون‌های مربوط به جادوها.
  • اتمسفر: تولیدکننده‌های دینامیک آب‌وهوا و صدا.
  • انیمیشن: جابه‌جایی‌های لحظه‌ای و افکت‌های بصری.

اگرچه پروژه در موارد مناسب از دارایی‌های دارای اعتبار و لایسنس‌های رایگان استفاده کرده است، اما تولید در زمان اجرا هزینه‌های هماهنگی را کاهش داد. یک توسعه‌دهنده می‌توانست خانواده‌ی یک موجود یا یک بایوم (Biome) را بدون منتظر ماندن در صف تولیدات هنری تغییر دهد. این امر فاصله میان یک ایده فنی و نتیجه‌ی قابل تست را فشرده کرد و اجازه داد کد، بدون حذف کامل هنر، مسیر جهت‌دهی هنری را هدایت کند.

با این حال، هوش مصنوعی جایگزین استودیو نشد. مدل تصمیم نگرفت که چرا دنیا باید وجود داشته باشد، «حس بازی» (Game Feel) قابل قبول را تعریف نکرد و انتخاب نکرد که کدام ویژگی‌ها باید حذف شوند. هدایت انسانی برای قضاوت درباره لذت‌بخش بودن مبارزات، مدیریت سرویس زنده و بررسی مشارکت‌های جامعه در GitHub حیاتی بود. ارزش نرم‌افزار تنها در کامپایل شدن نیست، بلکه در جایی است که انسانی بتواند محدودیت‌های آن را توضیح دهد و مسئولیت نتیجه را بپذیرد.

یک بازی MMO هرگونه تفکر تک‌بعدی یا محلی را مجازات می‌کند. اضافه کردن یک قابلیت ساده به یک کلاس شخصیتی، یک کار ساده نیست و نیازمند به‌روزرسانی هم‌زمان در چندین بخش است:

  • قوانین شبیه‌سازی و هزینه‌های مصرف منابع.
  • زمان‌های بازسازی (Cooldown) و اعتبارسنجی هدف‌گیری یا محدوده برد.
  • مدیریت دستورات سرور و پایداری داده‌ها.
  • بازخوردهای کلاینت، نوارهای اکشن و Tooltip‌ها.
  • بومی‌سازی، بات‌ها و تعادل بین PvE و PvP.

اینجاست که عامل‌های کدنویس با افق برنامه‌ریزی بلندمدت (Long-horizon) اهمیت می‌یابند. چالش واقعی، تولید ۱۰ فایل مجزا نیست، بلکه حفظ یک مدل منسجم در تمام این فایل‌ها در حالی است که محصول در حال تغییر است. این موضوع ارزش یک توسعه‌دهنده AI را از «تولید خطوط کد» به «اعتبارسنجی تصمیمات تاثیرگذار در هر ساعت» تغییر می‌دهد. در این مسیر، دستیابی به دقت‌های بالا در تحلیل داده‌ها گاهی با چالش‌های حریم خصوصی همراه شده است، موضوعی که در توسعه مدل‌های پیشرفته‌تر همواره مورد بحث است.

این پروژه تاکنون بیش از ۱۰۰۰ ستاره و ۳۰۰ فورک در GitHub دریافت کرده است. جالب این است که مدلی که بذر پروژه را کاشت، تنها سه روز در دسترس بود و سپس دسترسی به آن قطع شد، اما دنیایی که خلق کرد همچنان در حال رشد است. این نشان می‌دهد AI می‌تواند هزینه ساخت اولین نسخه قابل بازی را به شدت کاهش دهد، اما تعامل جامعه متن‌باز است که تعیین می‌کند آیا آن سیستم زنده می‌ماند یا خیر.

در حال حاضر هر کسی می‌تواند مخزن پروژه را کلون کرده و با استفاده از Docker دنیای بازی را به صورت محلی اجرا کند. فرآیند نصب شامل کلون کردن مخزن، کپی فایل .env.example به .env با یک رمز عبور قوی برای POSTGRES_PASSWORD و اجرای دستور docker compose up -d --build است تا بازی در آدرس http://localhost:8787 در دسترس قرار گیرد.

به جای شمارش تعداد فایل‌های تولید شده، محک جدید این است که آیا سیستم با افزایش پیچیدگی، همچنان قابل اعتبارسنجی باقی می‌ماند یا خیر. هر کسی می‌تواند با شکستن یک اصل در src/sim/ یا اضافه کردن یک مکانیک جدید برای باس‌ها، تست کند که مدل معماری کمک‌گرفته از AI کجا شکست می‌خورد. World of ClaudeCraft پیشنهاد می‌دهد که عصر بعدی کدنویسی AI با این معیار سنجیده شود که عامل‌ها چقدر خوب می‌توانند پیامدهای متقاطع (Cross-cutting Consequences) را در یک کدبیس عظیم مدیریت کنند. بنچمارک مفید بعدی برای کدنویسی AI نباید یک لندینگ پیج دیگر باشد؛ بلکه باید سیستمی باشد که قطعات متحرک آن به اندازه کافی زیاد باشد تا بتواند در برابر توسعه‌دهنده «مقاومت» کند.

گام بعدی شما

  • مخزن پروژه را کلون کنید و با تغییر یک متغیر در src/sim/ بررسی کنید که آیا مدل AI می‌تواند اثرات این تغییر را در سایر فایل‌ها به درستی پیش‌بینی و اصلاح کند.
  • ساختار IWorld را مطالعه کنید تا ببینید چگونه جداسازی لایه منطق از نمایش، امکان تست‌های سریع‌تر را فراهم می‌کند.
  • اگر در حال ساخت یک سیستم پیچیده هستید، به جای درخواست «نوشتن کد»، از AI بخواهید «قواعد معماری» (Invariants) سیستم شما را تعریف و در تمام فایل‌ها حفظ کند.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این پروژه ثابت می‌کند که عامل‌های هوش مصنوعی از مرحله‌ی تولید تکه‌کدهای ساده عبور کرده و قادر به مدیریت سیستم‌های با وابستگی متقاطع هستند. این دستاورد از منظر اعتبار فنی نشان می‌دهد که هوش مصنوعی می‌تواند هزینه‌ی تبدیل ایده به محصول اولیه (MVP) را در پروژه‌های سنگین به شدت کاهش دهد.

تأثیر برای ایران

به دلیل متن‌باز بودن پروژه و استفاده از Docker، توسعه‌دهندگان ایرانی می‌توانند بدون محدودیت API، معماری این سیستم را بررسی کرده و برای پیاده‌سازی عامل‌های کدنویس در پروژه‌های داخلی از آن الگو بگیرند.

·نگاه ما
تحریریه دات‌هوش

جایگزینی بنچمارک‌های ایزوله با «مصنوعات مهندسی» مثل یک بازی MMO، نقطه پایان عصر ارزیابی‌های سطحی است. ارزش واقعی عامل‌های کدنویس اکنون در توانایی حفظ سازگاری معماری (Architectural Consistency) در طول زمان نهفته است، نه در سرعت نوشتن تک‌فایل‌ها. این تغییر پارادایم، نقش برنامه نویس را از یک «نویسنده» به یک «معمار و بازرس» تبدیل می‌کند.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.