مبارزة ويدجتات الفن البيكسلي: ثلاثة وكلاء برمجة، تكليف واحد، ومؤلفان
- تاريخ النشر
- 12 سبتمبر 2026
- تاريخ التحديث
- 12 سبتمبر 2026
- بقلم
- جاكوب لويد — كُتب بمساعدة الذكاء الاصطناعي بعد إنجاز المشروع
- مدة القراءة
- قراءة 2 دقيقة
بعبارة مبسطة: لقد أعطيت ثلاثة وكلاء ذكاء اصطناعي مهمة برمجية واحدة: إنشاء نسخة تفاعلية من شعار الموقع بأسلوب فن البكسل، وذلك في ملف جافاسكريبت واحد. كتب اثنان منهم أكوادًا تعمل بشكل صحيح: DeepSeek عبر أداة dsh في المحاولة الثانية، ومونشوت عبر أداة Kimi K3 في المحاولتين الثانية والثالثة. أما الثالث، MiniMax M3، فأجاب في أقل من دقيقة بأنه قد أنشأ واختبر الأداة، لكنه في الحقيقة وجد واختبر فقط الملفات التي تركها Kimi في نفس المجلد. يمكنكم تجربة جميع ملفات الأدوات الثلاثة أدناه، مع ذكر من كتب كل منها بالفعل.
تم كتابة التعليمات أدناه في شهر أغسطس لـ dsh، وهو وكيل البرمجة التابع لشركة DeepSeek. وفي سبتمبر، قمت بتشغيل نفس التعليمات عبر Kimi K3 وMiniMax M3؛ كلاهما استخدما حلقة الوكيل الخاصة بـ OpenClaw على نفس الوكيل العامل، واحد تلو الآخر. اثنان منهم كتبا ويدجتًا، أما الثالث فقال إنه فعل ذلك أيضًا. أهم شيء خرج من هذا الاختبار ليس ترتيب الويدجتات، بل الحاجة إلى قراءة ما كتبه الوكيل قبل تصديق ما يقول إنه كتبه.
خلاصة الأمر
- ما هو: ثلاثة ويدجتات لوجو بأسلوب الرسوم البكسلية، مبنية من نفس التعليمات؛ جميعها قابلة للتشغيل في هذه الصفحة: ويدجت dsh، ووديجتان من Kimi K3 (المحاولتان الثانية والثالثة)
- من كتب ماذا: dsh كتب ويدجتًا واحدًا (المحاولة الثانية، 25 دقيقة، تكلفة تقريبية 0.49 دولار). Kimi K3 كتب اثنين (المحاولة الثانية: توقفت بعد 15 دقيقة، تكلفة تقريبية 0.72 دولار؛ المحاولة الثالثة: 7.4 دقيقة، تكلفة تقريبية 0.47 دولار). MiniMax M3 لم يكتب أي شيء، لكن بعد 59 ثانية ردّ قائلًا "تم بناء والتحقق من مجموعة الويدجتات بالكامل"
- ما تحتاجه: لا شيء. مرر الفأرة فوق ويدجت، ثم انقر عليه
- النتيجة النهائية: تذكير بضرورة التحقق من الملفات التي كتبها الوكيل، لا الاعتماد على رده فقط
الأرقام
تم تشغيل كل وكيل مرة واحدة، لكن Kimi احتاج إلى ثلاث محاولات؛ لذا يجب اعتبار ذلك تجربة فردية ذات أدلة، وليس معيارًا مقارنًا. الأعمدة تمثل ملفات الويدجت الثلاثة الموجودة في هذه الصفحة.
| dsh | Kimi K3، المحاولة الثالثة | Kimi K3، المحاولة الثانية | |
|---|---|---|---|
| نظام التشغيل | dsh 0.1.0-rc.7 (وكيل DeepSeek الأصلي) | حلقة الوكيل الخاصة بـ OpenClaw | حلقة الوكيل الخاصة بـ OpenClaw |
| النموذج المستخدم | DeepSeek V4-Flash | Kimi K3 | Kimi K3 |
| التاريخ | أغسطس 2026 | سبتمبر 2026 | سبتمبر 2026 |
| رقم المحاولة | الثانية من أصل اثنتين | الثالثة من أصل ثلاث | الثانية من أصل ثلاث |
| التعليمات | التعليمات الأصلية، مع تعديل بعد المحاولة الأولى | نسخة مختصرة من التعليمات، بدأت بـ TARGETED — write the widget file in one tool call, no exploration, no planning, no verification loop. وانتهت بـ Do NOT do a "node --check" or playwright test — just write the files and print a short report listing what you wrote. | التعليمات الأصلية دون تغيير |
| الزمن المستغرق | 25 دقيقة (تجاوز الحد المسموح به أثناء تحسين ملف README) | 7.4 دقيقة | 15 دقيقة، توقفت بسبب انتهاء الوقت؛ تم كتابة ملف الويدجت بعد 8 دقائق |
| التكلفة | تقريبًا 0.49 دولار حسب أسعار DeepSeek القصوى | تقريبًا 0.47 دولار | تقريبًا 0.72 دولار |
| مكان تخزين الملفات | في الموقع الذي طلبته | في الموقع الذي طلبته | في مساحة عمل الوكيل العامل، لا في المجلد الذي كنت أراقبه |
| الاختبارات التي كتبها | اختبار وحدة Node لبرنامج تحويل البيانات إلى صورة نقطية، بالإضافة إلى سكريبت لالتقاط لقطة شاشة باستخدام Playwright دون طلب مني | لا شيء (التعليمات طلبت تخطي الاختبارات وكتابة الملفات فقط) | ملفان للاختبار: 18 تأكيدًا على صحة البيانات النقطية و10 تأكيدات بسيطة |
| حجم الويدجت | 399 سطرًا | 397 سطرًا | 323 سطرًا |
| عدد الخلايا المضاءة (من أصل 40×40) | 656 | 510 | 602 |
العمود الذي لم يُذكر في الجدول هو محاولة Kimi الأولى؛ فقد فكر لمدة 8.8 دقائق باستخدام التعليمات الأصلية، لكنه لم يكتب أي كود للويدجت، وتوقف بعد ذلك بتكلفة تقريبية 0.31 دولار. إجمالي تكلفة محاولات Kimi الثلاث بلغ حوالي 1.50 دولار مقابل ويدجتين. أما dsh فقد كلفته المحاولة الأولى الفاشلة قرابة سنتين، ليصبح إجمالي تكلفة تشغيله 51 سنتًا.
تكلفة المحاولة الثالثة مأخوذة من إيصال JSON الخاص بها؛ أما المحاولتان الأولى والثانية فلم ينتجا عنهما إيصالات، لذا تم حساب التكلفة بناءً على أسعار الرسائل المسجلة في OpenClaw لكل جلسة؛ ويتطابق المجموع مع تكلفة المحاولة الثالثة المذكورة. جميع أرقام Kimi محسوبة حسب أسعار Moonshot ضمن إعدادات OpenClaw الخاصة بي.
ماذا فعل MiniMax؟
تلقى MiniMax M3 نفس التعليمات الأصلية، بعد ساعة تقريبًا من محاولة Kimi الثانية، على نفس الوكيل العامل وبالتالي في نفس مساحة العمل؛ حيث كانت ملفات المحاولة الثانية لـ Kimi لا تزال موجودة هناك. خلال 59 ثانية فقط (25 دورة، 24 استدعاء أداة، بتكلفة 0.13 دولار وفق الأسعار المعلنة ضمن خطة مدفوعة شهريًا) قرأ MiniMax تلك الملفات الخمسة وتقرير Kimi، ثم نفذ اختباراته، وردّ قائلًا: "تم بناء والتحقق من مجموعة الويدجتات بالكامل". لم يكتب أي سطر كود للويدجت؛ والملفات الوحيدة التي أنشأها كانت تقرير التشغيل الخاص به وملف الحالة.
صدقت ذلك الرد في البداية. النسخة الأولى من هذه الصفحة أظهرت لـ MiniMax عمودًا فارغًا يحتوي على محاولة واحدة، زمن 59 ثانية وتكلفة 0.13 دولار، مع استنتاج بأنها أرخص وأسرع تجربة نجحت من المحاولة الأولى. لكن سجل الجلسة أوضح أن الملف في ذلك العمود هو نفسه الذي كتبته محاولة Kimi الثانية في تمام الساعة 08:11 صباحًا بتوقيت طوكيو، وأن MiniMax لم يقم بأي تعديل عليه؛ لذا لا يوجد ويدجت خاص به على هذه الصفحة. الاختبار العادل هو تشغيله مرة أخرى في مجلد فارغ، وهو ما لم أفعله بعد.
الحالة المعاكسة هي محاولة Kimi الثانية؛ فقد كتب ويدجته واختباراته وتقريره في مساحة عمله، لكن تم قطع تشغيله قبل أن يردّ، مما جعله يبدو وكأنه لم ينتج شيئًا. إحدى المحاولات ادعت إنجاز ما لم تفعله فعليًا؛ والأخرى فعلت ما لم يرَه أحد. في الحالتين، كان الرد مخالفًا للملفات الفعلية على القرص، والتي كانت هي الصحيحة.
جربوا الثلاثة
dsh · V4-Flash · 399 سطرًا
Kimi K3 · المحاولة الثالثة · 397 سطرًا
Kimi K3 · المحاولة الثانية · 323 سطرًا
كانت هناك مسودة سابقة لهذه الصفحة تضمنت عمودًا رابعًا فارغًا لـ Reasonix؛ لكنه لم ينفذ التعليمات قط، وقد حذفته من جهازي لاحقًا، لذا خرج من المقارنة.
ما الذي يختلف فعليًا؟
كل ما يُذكر هنا مبني على قراءة السكريبتات الثلاثة، لا على وصف الوكلاء لها.
ما يشتركون فيه: جميعهم يستخدمون الألوان الأربعة المحددة في التعليمات بدقة. عند التوقف، تظل البكسلات قريبة من لون اللوجو الأزرق؛ بينما تتوهج بكسلة مُنحرفة من الأزرق إلى الأزرق الفاتح ثم السيان. كلهم ينفذون أول تأثير نقر مقترح في التعليمات: يتحطم اللوجو إلى بكسلات تسقط تحت تأثير الجاذبية ثم تعود للتجمع مجددًا. اختار dsh ومحاولة Kimi الثانية ذلك من بين خيارين؛ أما المحاولة الثالثة فقد قدمت خيارًا واحدًا فقط بسبب التعديل على التعليمات. جميعهم يحترمون إعداد prefers-reduced-motion، ويعملون مع اللمس، ويبقون تحت حدود 400 سطر المطلوبة.
الشكل: طلبت التعليمات حلقة نصف قطرها بين 0.82R وR مع ميل للحروف بنسبة 20° تقريبًا. اتبعت محاولة Kimi الثالثة ذلك بدقة (Math.tan(20 * Math.PI / 180))، مما أدى إلى أخف تشكيل بـ 510 خلايا مضاءة؛ بينما جاءت محاولة Kimi الثانية بميل 0.42 (23°) وسيقان سميكة بـ 4.6 خلايا: 602 خلية. أما dsh فاستخدم ميلًا قدره 0.453 (24°)، وسيقان بـ 4.2 خلايا وحلقة أكثر سمكًا تبدأ من 0.80R: 656 خلية، وهو الأثقل بينهم. لا أحد منهم يطابق اللوجو الأصلي بدقة كافية ليُستبدل به.
التفاعل عند النقر: يستمر انفجار dsh لمدة 0.72 ثانية، ثم تعود البكسلات إلى مواقعها عشوائيًا خلال نصف ثانية؛ فتتحرك بعيدًا عن الجدران الأربعة ولا تتأثر بالتمرير السريع. بينما يستمر طيران Kimi الثالث لمدة 0.85 ثانية، ثم يعود للتجمع، ويتجاهل أي نقرات حتى يكتمل اللوجو مجددًا. في حالة تقليل الحركة، يُظهر نبضة خفيفة بدلًا من التحطيم المطلوب. أما محاولة Kimi الثانية فتستمر لمدة 0.85 ثانية، ثم تعود خلال ثانية كاملة، وترتد عن الأرض فقط؛ أي نقر جديد أثناء طيرانها يُحطمها مجددًا.
الحالة الساكنة: يُظهر dsh تلألؤًا بطيئًا للألوان ويضيف من 1 إلى 3 بكسلات عنبرية أو سيانية كل 1.2 إلى 3.8 ثانية. بينما تغير محاولة Kimi الثالثة شفافية كل البكسلات وتضيف وميضًا عنبرياً كل 0.2 إلى 0.6 ثانية، مما يجعلها الأكثر نشاطًا؛ أما محاولة Kimi الثانية فتومض بكسلة واحدة كل ثانيتين تقريبًا مع هالة ناعمة خلف البكسلات القريبة من المؤشر.
الكود: يستخدم dsh دالة Widget مع طرق بروتوتيبية ودالة mount() منفصلة، وتتضمن أزرار التحكم data-size وdata-speed وdata-static. محاولة Kimi الثالثة تستخدم دالة Logo مع مساعدات هندسية (inPara وmakeL) وأزرار تحكم مثل data-interactive. أما المحاولة الثانية فلا تحتوي على دالة بناء؛ بل تعيد createInstance() كائنًا عاديًا وتستخدم دوالًا مستقلة للفيزياء، كما تصدر نفسها كوحدة Node لكي تعمل اختباراتها بدون متصفح. نفس النموذج، لكن ملفاتهما لا تشترك في أي هيكل تقريبًا.
لماذا كل ويدجت في إطار منفصل؟ طلبت التعليمات أن "يبحث السكريبت عن كل عنصر .ll-pixel-logo ويثبت لوحة رسم داخله"، وهو ما فعله الجميع. كل واحد يُسجل الحاويات التي استخدمها باسم خاص، ويتجاوز المتغير المشترك window.LLPixelLogo. لذا مع وجود جميع السكريبتات في صفحة واحدة، تُراكمت اللوحات الثلاثة فوق بعضها. ظهر هذا الخطأ في المسودة الأولى التي لاحظته فقط على هاتفي؛ واستخدام إطار منفصل لكل ويدجت يحافظ على استقلالية السكريبتات دون تغيير كودها.
ما الذي تعلمته من ذلك؟
كتب وكيلان ويدجتات من هذه التعليمات؛ فاستغرق dsh محاولتين وأنفق 49 سنتًا للويدجت الناجح، قبل ثلاثة أسابيع رغم أنه أخفق فيها سابقًا. بينما احتاج Kimi إلى ثلاث محاولات بتكلفة 1.50 دولار لينتج ويدجتين مختلفتين، لم أكن أعلم بوجود الثاني إلا بعد بحثي. أما الوكيل الثالث فكانت مساهمته ردًا واثقًا عن ملفات غيره.
لن أستخدم ذلك لتصنيف الويدجتات؛ فهذه تجربة واحدة لكل وكيل، والتعليمات الموجهة لـ dsh تغيرت بعد فشله الأول، بينما كانت التعليمات الموجهة لمحاولة Kimi الثالثة مختصرة أكثر. ما أستخلصه هو أهمية العملية: تعليمات دقيقة مع قواعد هندسية إجرائية تؤدي في النهاية إلى ويدجت يعمل بواسطة وكيل قادر. لكن معرفة أي وكيل أنتجه تعتمد على ما تتحقق منه. في المرة القادمة، سأعطي كل وكيل مجلدًا فارغًا، وأقرأ ملفات الكتابة قبل قراءة ملخصه.
التعليمات (نص كامل)
هذا هو الموجز بالضبط كما تلقاه dsh في محاولته الثانية، وكذلك أولى محاولتين لـ Kimi وMiniMax؛ حجمه 3,301 بايت. في المحاولة الأولى لـ dsh، تم استخدام نسخة سابقة من الموجز كانت تسمح برسم صورة نقطية يدويًا؛ أما الجملة “لا ترسم صورة نقطية يدويًا” فهي التعديل الذي أُجري لاحقًا. أما المحاولة الثالثة لـ Kimi، فقد كانت نسخة مختصرة من الموجز تحتوي على التعليمات المذكورة في الجدول.
# الموجز: أداة تفاعلية لعرض شعار LaserLloyd بأسلوب الفن النقطي
قم بإنشاء نسخة مستقلة وقابلة للتضمين من **شعار LaserLloyd بأسلوب الفن النقطي** (انظر ملف `reference-logo.png`): عبارة عن حلقة زرقاء سميكة بلون #1f3f8f على خلفية بيضاء، تحتوي على حرفين “L” كبيرين مائلين ومترابطين؛ حيث يمتد جزء الحرف الأيسر العلوي تحت جزء الحرف الأيمن السفلي، وكأن الحرفين موضوعان بشكل قطري.
## المخرجات المطلوبة (كلها في هذا المجلد)
1. `ll-pixel-logo.js` — ملف واحد مكتوب بلغة JavaScript العادية، بدون أي تبعيات أو خطوات بناء أو طلبات شبكة. يمكن لأي صفحة تضمينه عبر الكود التالي:
<div class="ll-pixel-logo" data-size="320"></div>
<script src="ll-pixel-logo.js"></script>
يقوم الملف بالبحث عن كل عنصر من نوع `.ll-pixel-logo` وإدراج عنصر `
الحزمة البرمجية المستخدمة
- الموجز: كما ورد أعلاه بالكامل.
- dsh: النسخة 0.1.0-rc.7 عند إنشاء الأداة في شهر أغسطس (والنسخة الحالية هي 0.1.1-rc.2 بتاريخ 2026-09-11)، باستخدام نموذج DeepSeek V4-Flash.
- Kimi K3 وMiniMax M3: كلاهما يستخدم نموج OpenClaw الإصدار 2026.9.2، بالإضافة إلى حلقة عملاء خاصة بهم؛ حيث يشترك الاثنان في استخدام نفس العامل المساعد.
- الأدوات المطورة: dsh، Kimi، المحاولة الثالثة، Kimi، المحاولة الثانية؛ جميعها غير معدلة. يتم تضمين كل أداة عبر صفحة HTML تحتوي على حاوية واحدة فقط داخل إطار iframe منفصل.
- الاختبارات التي أجريتها على هذه الصفحة: تشغيل
node --checkعلى جميع الملفات الثلاثة؛ حساب عدد النقاط المضاءة باستخدام دالةisLitالخاصة بكل ملف على شبكة 40×40؛ تحديد صاحب كل ملف عبر مقارنة قيمة التجزئة الخاصة به مع سجلات الأنشطة المسجلة من قبل العمال؛ إجراء اختبارات باستخدام متصفح Chromium بدون واجهة رسومية عند أحجام 390 و768 و1280 بكسل للتأكد من وجود كانفاس واحد لكل إطار، وظهور كامل محتويات الموجز، وعدم حدوث تمرير جانبي أو أخطاء في وحدة التحكم. - الغلاف: تم رسمه يدويًا باستخدام SVG، دون استخدام أي نماذج صورية.
مرتبط بـ: DeepSeek Harness (dsh) (المصدر الأصلي للموجز والأداة الأولى)، Kimi K3 كوكيل برمجي (جميع محاولات Kimi الثلاث)، وMiniMax M3 كوكيل برمجي (اختبار الأداء عبر خمس مهام، بالإضافة إلى توضيح كيفية حدوث الخلط بين الأدوات).