ممارس للبرمجة بالذكاء الاصطناعي يبني خلال 4 أيام بوتًا لـ«ياندكس لافكا» مع 498 اختبارًا ومن دون صلاحية الدفع
رغم أنه ليس مطورًا محترفًا، بنى صاحب المشروع بمساعدة وكلاء الذكاء الاصطناعي، خلال أربعة أيام و143 عملية إيداع برمجي، بوتًا على Telegram يعرف محتويات الثلاجة، ويعد قوائم وجبات تناسب الميزانية والسعرات الحرارية، ويضيف المنتجات إلى سلة «ياندكس لافكا». ولا يستطيع البوت الدفع، عن قصد. المبدأ الأساسي للمشروع: النموذج يقترح والكود يتحقق. أما أكثر الأخطاء إزعاجًا فلم تظهر إلا عند استخدام واجهة API الفعلية، ولم تكشفها الاختبارات الـ498 التي اعتمدت على محاكاة الواجهة.
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
يتكرر الحوار نفسه في البيت كل أسبوع: «ماذا سنأكل؟» — «وماذا لدينا؟» — «نصف كيس أرز ودجاج أوشك على التلف». قرر صاحب مقال على Habr معالجة هذا السيناريو ببوت. وهو ليس مطورًا محترفًا؛ يستخدم Python لأغراضه الشخصية، ويترك كتابة الكود لوكلاء الذكاء الاصطناعي. والنتيجة بعد 4 أيام و143 عملية إيداع برمجي: بوت على Telegram مزود بتطبيق مصغر Mini App، يعرف محتويات الثلاجة، ويعد قوائم الوجبات، ويملأ سلة التسوق في «ياندكس لافكا».
لا يستطيع البوت الدفع: فالكود لا يتضمن أصلًا أدوات لإتمام الطلب أو تسديد ثمنه. هذه أولى قواعد المشروع. قد يخطئ النموذج في المنتج أو الكمية أو السعر، فلتبقَ أخطاؤه في سلة يراجعها إنسان قبل الدفع.
النموذج يقترح والكود يتحقق
هذا مبدأ يستحق اعتماده في أي مشروع يستخدم نموذجًا لغويًا كبيرًا LLM. يبتكر النموذج الأطباق ويختار المنتج من بين الخيارات التي عُثر عليها. أما كل ما يمكن حسابه فيتولاه الكود: عدد الأيام يساوي N بالضبط، والسعرات ضمن ±15% من الهدف، والتكلفة لا تتجاوز الميزانية مضافًا إليها 15%، وعدد العبوات، وتوافر المنتجات في المستودع. وتُعاد أي مخالفة إلى النموذج لتصحيحها مع تحديد المشكلة بدقة.
لنأخذ مثال البصل. كانت قائمة الوجبات تتطلب 950 غ من البصل و900 غ من لحم البقر، لكن الكود كان يقرّب عدد العبوات دائمًا إلى العدد الصحيح الأعلى، فتصل إلى السلة ثلاث عبوات وزن كل منها 400 غ. جاء الإصلاح في موضعين: أُضيف إلى الموجّه مقدار مرجعي قدره 30–40 غ للشخص، وأُدخل هامش سماح في الكود. إذا كان الوزن المتاح من العبوات الكاملة يقل عن المطلوب بما لا يتجاوز 15%، فلا تُضاف عبوة أخرى. وفي حالة أخرى، كانت الثلاجة تحتوي على «جبن قريش»، بينما ورد في القائمة «جبن قريش 5%»، فلم يتعرف البوت عليه واشترى المزيد. وحُلّت المشكلة باستخدام المطابقة بالكلمات بدلًا من التطابق الحرفي.
طريقة العمل مهمة أيضًا: مواصفات تُبنى بطرح الأسئلة واحدًا تلو الآخر، وخطة مقسمة إلى مهام صغيرة، وتطوير موجه بالاختبارات TDD، ومراجعة يجريها وكيل آخر يعمل بنموذج مختلف. كشفت المراجعة الأولى 8 مشكلات خطيرة. فمثلًا، كانت عملية حفظ قائمة الوجبات تستبدل الملف أولًا، ثم قد تفشل أثناء العرض وتتسبب في إفساد البيانات. ويعمل ملف STATE.md، الذي يتضمن قسمًا بعنوان «المزالق»، بوصفه ذاكرة مشتركة بين الوكلاء.
ما لم تكشفه الاختبارات الـ498
اعتمدت جميع الاختبارات على واجهات محاكاة، لكن المحاكاة ليست سوى تصور الوكيل لواجهة API. وكشف أول تشغيل فعلي تسعة عيوب.
أبرزها أن العنوان يحدد مستودع تجهيز الطلبات. بدت السلة مثالية، لكن نصف المنتجات ظهر في التطبيق بحالة «نفدت الكمية»، رغم أن API كانت تعيد حالة «متوفر». اختار الوكيل أول عنوان في المفضلة، بينما كان التطبيق يستخدم عنوانًا آخر. العلاج: تغيير العنوان ومعرّف الموقع معًا، والتحقق من التوافر عبر صفحة المنتج، والانتظار 2 ثانية بعد الإضافة ثم إعادة قراءة السلة. ويجب أيضًا أن يطابق سعر منتج مرجعي، مثل الأرز أو الحنطة السوداء، سعره في التطبيق حتى الروبل الأخير.
أما المزالق الأخرى فمألوفة أيضًا. يضيف Chromium إلى قيمة ملف تعريف الارتباط 32 بايت من بصمة تجزئة النطاق، ومن دون إزالتها يتعطل httpx. وكان الوكيل يشغّل نسخة الأمس من الخادم من site-packages بدلًا من النسخة الجديدة، فكان عدد الأدوات 14 بدلًا من 15. وكان النموذج «يفكر» افتراضيًا: نحو 95% من الرموز كانت تذهب إلى الاستدلال، ولم يكن توليد قائمة الوجبات يكتمل خلال 120 ثانية، لذلك عُطّل الاستدلال في مهام من نوع «أعِد JSON». وقدمت إحدى القوائم الغداء نفسه خمسة أيام متتالية مع الالتزام الشكلي بالميزانية؛ لذا أصبح الكود يتحقق من التكرار ومن حصة مصدر بروتين واحد في القائمة.
القيود والدروس المستفادة
يعمل البوت عبر واجهة الويب API غير الرسمية للاڤكا باستخدام ملفات تعريف ارتباط الجلسة، لذلك قد يتوقف عن العمل في أي لحظة، وقد لا يروق ذلك لياندكس. ولا ينشر صاحب المشروع الكود: فملفات تعريف الارتباط تتيح الوصول إلى الحساب بأكمله، ما يجعل توزيعه بأمان أمرًا صعبًا. ويستخدم هو حسابًا منفصلًا من دون بطاقات تحتوي على رصيد، ولا يرسل إلى النموذج إلا أسماء المنتجات وأحجام العبوات والأسعار.
الدروس العملية للمطورين وفرق المنتجات واضحة. أولًا: انقلوا جميع الحسابات من النموذج اللغوي إلى الكود، وأعيدوا إلى النموذج ملاحظات محددة عن المشكلات. ثانيًا: لضمان قيود مثل «لا تنفق المال»، فإن غياب الأداة اللازمة أكثر موثوقية من وضع التعليمات في الموجّه. ثالثًا: اختبروا النظام في ظروف فعلية في أقرب وقت ممكن، لأن المحاكاة تخفي أكثر الأخطاء كلفة. رابعًا: أنشئوا للوكلاء ملفًا مشتركًا يوثق المزالق؛ فسيوفر وقتًا أكثر مما يوفره تغيير النموذج.
- 19 يوليو 2026ياندكس لافكا تكسر الحلقة المفرغة للتوصيات عبر استكشاف (exploration) مخصّص لكل مستخدم
- 2 مايو 2026«Яндекس» توسّع التوصيل الروبوتي ليشمل ضواحي موسكو وأحياء جديدة في قازان ونيجني نوفغورود
- 30 أبريل 2026في AI Dev Day عرضت Yandex كيف يغيّر الذكاء الاصطناعي التطوير في Avito وOzon وT-Bank
- 19 يوليو 2026مطوّر يبني أداة لتفريغ الفيديو إلى نص خلال 30 دقيقة عبر «البرمجة بالإحساس» في Codex
أسئلة وأجوبة حول الخبر
ما أبرز التفاصيل حول النموذج يقترح والكود يتحقق؟
هذا مبدأ يستحق اعتماده في أي مشروع يستخدم نموذجًا لغويًا كبيرًا LLM. يبتكر النموذج الأطباق ويختار المنتج من بين الخيارات التي عُثر عليها. أما كل ما يمكن حسابه فيتولاه الكود: عدد الأيام يساوي N بالضبط، والسعرات ضمن ±15% من الهدف، والتكلفة لا تتجاوز الميزانية مضافًا إليها 15%، وعدد العبوات، وتوافر المنتجات في المستودع. وتُعاد أي مخالفة إلى النموذج لتصحيحها مع تحديد المشكلة بدقة. لنأخذ مثال البصل.
ما أبرز التفاصيل حول ما لم تكشفه الاختبارات الـ498؟
اعتمدت جميع الاختبارات على واجهات محاكاة، لكن المحاكاة ليست سوى تصور الوكيل لواجهة API. وكشف أول تشغيل فعلي تسعة عيوب. أبرزها أن العنوان يحدد مستودع تجهيز الطلبات. بدت السلة مثالية، لكن نصف المنتجات ظهر في التطبيق بحالة «نفدت الكمية»، رغم أن API كانت تعيد حالة «متوفر». اختار الوكيل أول عنوان في المفضلة، بينما كان التطبيق يستخدم عنوانًا آخر. العلاج: تغيير العنوان ومعرّف الموقع معًا، والتحقق من التوافر عبر صفحة المنتج، والانتظار 2 ثانية بعد الإضافة ثم إعادة قراءة السلة.
ما أبرز التفاصيل حول القيود والدروس المستفادة؟
يعمل البوت عبر واجهة الويب API غير الرسمية للاڤكا باستخدام ملفات تعريف ارتباط الجلسة، لذلك قد يتوقف عن العمل في أي لحظة، وقد لا يروق ذلك لياندكس. ولا ينشر صاحب المشروع الكود: فملفات تعريف الارتباط تتيح الوصول إلى الحساب بأكمله، ما يجعل توزيعه بأمان أمرًا صعبًا. ويستخدم هو حسابًا منفصلًا من دون بطاقات تحتوي على رصيد، ولا يرسل إلى النموذج إلا أسماء المنتجات وأحجام العبوات والأسعار. الدروس العملية للمطورين وفرق المنتجات واضحة.
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.