مهندسة في Thomson Reuters تشغّل وكيل برمجة دون اتصال بالإنترنت على Qwen3.5 9B في الهيمالايا

تعيش ريتيكا جيندال، المهندسة الرئيسية في Thomson Reuters، في سفوح الهيمالايا، حيث تنقطع الشبكة والكهرباء بانتظام. ولكي لا تفقد وكيل البرمجة بمجرد انقطاع الإنترنت، شغّلته بالكامل على جهاز Mac باستخدام OpenCode وOllama والنموذج المفتوح Qwen3.5 9B. جاءت التجربة واضحة النتيجة. كان Wi-Fi مطفأً، ولم يعد المضيف الخارجي قابلًا للحل، ومع ذلك عثر الوكيل على خلل في حاسبة المصروفات، وعدّل سطرًا واحدًا، وشغّل الاختبارات. اجتازت الاختبارات الخمسة جميعها. وثمة شرط واحد: يجب تنزيل المشروع والاعتماديات والنموذج مسبقًا. • يبلغ حجم نموذج 9B بعد التنزيل 6,6–7,6 ГБ، ويُستحسن تخصيص ذاكرة أكبر لسياق 64k • يطلب OpenCode إذنًا لكل تعديل ولكل أمر • تمرينان آخران، هما تقرير CSV ومحلّل السجلات، لم تُجرَ لهما اختبارات دون اتصال بعد

معالج بواسطة الذكاء الاصطناعي من Latent Space (swyx)؛ بتحرير Hamidun News
مهندسة في Thomson Reuters تشغّل وكيل برمجة دون اتصال بالإنترنت على Qwen3.5 9B في الهيمالايا
المصدر: Latent Space (swyx). كولاج: Hamidun News.
استمع للمقال
بطاقة الحقائق والأرقام
المعيارالتفاصيل
المصدر الأصليLatent Space (swyx) ↗
رئيس التحرير
حقيقة رئيسية #1يبلغ حجم نموذج 9B بعد التنزيل 6,6–7,6 ГБ، ويُستحسن تخصيص ذاكرة أكبر لسياق 64k
حقيقة رئيسية #2يطلب OpenCode إذنًا لكل تعديل ولكل أمر
حقيقة رئيسية #3تمرينان آخران، هما تقرير CSV ومحلّل السجلات، لم تُجرَ لهما اختبارات دون اتصال بعد

تنقطع الشبكة في سفوح الهيمالايا بقدر ما تنقطع الكهرباء. هناك تعيش ريتيكا جيندال، Principal Engineer في Thomson Reuters. أرادت أن تعرف كم يبقى من سير العمل مع وكيل البرمجة إذا قُطع الإنترنت تمامًا. وكانت الإجابة محددة. فالمجموعة المكوّنة من OpenCode 1.19.4 وOllama والنموذج المفتوح Qwen3.5 9B على جهاز Mac واحد تعثر على الخلل، وتقترح التعديل، وتشغّل الاختبارات والـ Wi-Fi مطفأ. المثال صغير: إصلاح بسطر واحد تجتاز بعده الاختبارات الخمسة كلها. لكن هذه المجموعة قابلة لإعادة الإنتاج، وموثقة حتى مستوى الأوامر.

كيف رُكّبت المجموعة العاملة دون اتصال

توزيع الأدوار بسيط. يحتفظ Ollama بالنموذج ويشغّل خدمة محلية، بينما يقرأ OpenCode ملفات المشروع ويقترح التعديلات وينفّذ الأوامر. يوجّه ملف الإعدادات opencode.json النموذجين الرئيسي والمساعد (model وsmall_model) إلى Qwen3.5 9B، ويشير baseURL إلى http://127.0.0.1:11434/v1. المزوّد المحلي وحده مفعّل، وأدوات الويب محظورة، ويطلب الوكيل إذنًا لتعديل الملفات ولأوامر shell. يبدأ Ollama مع OLLAMA_NO_CLOUD=1 وطول سياق OLLAMA_CONTEXT_LENGTH=65536. يُنزَّل النموذج بالأمر ollama pull qwen3.5:9b ما دام الإنترنت متاحًا. ويجري التشغيل بالخيار --pure الذي يعطّل الإضافات الخارجية.

ومن البدائل تذكر المؤلفة Aider: فهو يعمل أيضًا مع Ollama، ويناسب من يحتاج إلى سيناريو تعديل أكثر توجيهًا.

أي نموذج تختار وكم ذاكرة يحتاج

في الاختيار اعتمدت المؤلفة النتائج المنشورة في بطاقة Qwen، لا قياساتها الخاصة على الحاسوب المحمول. يختبر LiveCodeBench v6 توليد الشيفرة، ويقيّم BFCL-V4 استدعاء الدوال، أي قدرة الوكيل على اختيار الأداة وتمرير المعاملات الصحيحة.

  • Qwen3.5 4B: LiveCodeBench v6 — 55,8؛ BFCL-V4 — 50,3؛ حجم التنزيل 3,3–4,0 ГБ.
  • Qwen3.5 9B (استُخدم في الاختبار): 65,6 و66,1؛ حجم التنزيل 6,6–7,6 ГБ.
  • Qwen3.5 27B: حجم التنزيل 17–20 ГБ، ولا ترد نتائج اختبارات أداء له في المادة.
  • gpt-oss-20b: LiveCodeBench v6 — 74,6؛ نتيجة BFCL-V4 غير منشورة.

اختيرت نسخة 9 مليارات معامل لأن استدعاء الأدوات فيها أفضل بوضوح مما في 4B. وحجم التنزيل لا يساوي متطلبات الذاكرة RAM. فبالنسبة إلى بناء Qwen3.5 9B بحجم 6,6 ГБ، يخصص Voltti ما بين 12 و16 ГБ من الذاكرة، وقد يتطلب إعداد بسياق 64k أكثر من ذلك. كما يلزم هامش للتطبيقات الأخرى.

وتتناول المادة الغلاف البرمجي نفسه على حدة. فقد قارنت الورقة التمهيدية The Scaffold Effect in Coding Agents بين OpenCode وGoose وOpenHands-SDK على 50 مهمة من Terminal-Bench Pro مع نموذجين سحابيين:

  • Qwen3.6 Plus: Goose — 48% [34–62%]، OpenCode — 50% [36–64%]، OpenHands-SDK — 50% [36–64%].
  • MiniMax M2.5: Goose — 38% [24–52%]، OpenCode — 46% [32–60%]، OpenHands-SDK — 46% [32–60%].

تتداخل فترات الثقة عند مستوى 95%، ويحذّر المؤلفون من أن معظم الفروق غير واضحة إحصائيًا. لكن استهلاك الرموز (tokens) يختلف بشكل حاد: إذ يستهلك OpenCode نحو 40 ضعف الرموز التي يستهلكها Goose لكل مهمة محلولة. وبالنسبة إلى API سحابي، فهذا مال مباشر. أما بالنسبة إلى نموذج محلي، فهو وقت توليد وضغط على السياق. ولا تصلح هذه الأرقام للتنبؤ بأداء 9B على حاسوب محمول، لأن الاختبار جرى على نماذج سحابية.

ماذا أظهر الاختبار مع إطفاء Wi-Fi

مشروع الاختبار هو حساب المصروفات: خمسة مبالغ منها مبلغ مُسترد، والمجموع الصحيح 25,50. يطبع البرنامج الابتدائي 8,00، أي قيمة آخر مبلغ، لأن الدالة تعيد كتابة المجموع في كل تكرار. تفشل ثلاثة اختبارات: الحساب العشري، والمبالغ المستردة، ومثال البيانات الحقيقية. أما الإدخال الفارغ والعنصر الواحد فيمران.

في وضع الاتصال تلقى الوكيل طلبًا تشخيصيًا وقرأ الشيفرة، لكنه اقترح في البداية pytest، مع أن المشروع يستخدم unittest المدمجة. وأتاح طلب الإذن بالتشغيل رؤية الأمر قبل تنفيذه. وخلصت المؤلفة إلى أنها ستكتب في الموجّه (prompt) في المرة القادمة: python3 -m unittest -v.

بعد التحقق من Ollama عبر curl على localhost، أطفأت المؤلفة Wi-Fi. وانتهى الطلب إلى عنوان خارجي بخطأ Could not resolve host. اقترح الوكيل التعديل `total = Decimal(amount)` → `total += Decimal(amount)`، وطلب إذنًا بالتعديل، وشغّل الاختبارات. ثم أجرت المؤلفة الفحص بنفسها: الاختبارات الخمسة كلها خضراء، وملف الاختبارات لم يتغير.

أما التمرينان الآخران، تقرير CSV ومحلّل السجلات، ولكل منهما سبعة اختبارات، فهما موجودان في المستودع، لكن لا توجد حتى الآن تجارب تشغيل دون اتصال عليهما. ومهمة CSV تحديدًا ستكون امتحانًا أكثر صدقًا: إذ يتعين على الوكيل هناك إكمال دالة، لا تصحيح سطر واحد.

والاستنتاج العملي لمن يعمل في القطار أو الطائرة أو في منطقة ضعيفة التغطية: يجب أن يكون كل ما تحتاجه على القرص قبل انقطاع الاتصال. وهذا يشمل النموذج واعتماديات المشروع والوثائق. شغّلوا الإعداد نفسه الذي ستستخدمونه دون اتصال. أعطوا الوكيل أمر الاختبارات بدقة، وأبقوا المهام ضيقة: خلل واحد أو ميزة صغيرة. راجعوا الفروقات (diff) وشغّلوا الاختبارات الأصلية بأنفسكم. وراقبوا الذاكرة: فسياق 64k والتطبيقات المفتوحة يلتهمان ما تبقى بعد النموذج. أما المستودع الكبير أو الإطار البرمجي غير المألوف، فلم تختبرهما هذه التجربة بعد.

القصة

أسئلة وأجوبة حول الخبر

ما أبرز التفاصيل حول كيف رُكّبت المجموعة العاملة دون اتصال؟

توزيع الأدوار بسيط. يحتفظ Ollama بالنموذج ويشغّل خدمة محلية، بينما يقرأ OpenCode ملفات المشروع ويقترح التعديلات وينفّذ الأوامر. يوجّه ملف الإعدادات opencode.json النموذجين الرئيسي والمساعد (model وsmall_model) إلى Qwen3.5 9B، ويشير baseURL إلى http://127.0.0.1:11434/v1. المزوّد المحلي وحده مفعّل، وأدوات الويب محظورة، ويطلب الوكيل إذنًا لتعديل الملفات ولأوامر shell. يبدأ Ollama مع OLLAMA_NO_CLOUD=1 وطول سياق OLLAMA_CONTEXT_LENGTH=65536. يُنزَّل النموذج بالأمر ollama pull qwen3.5:9b ما دام الإنترنت متاحًا. ويجري التشغيل بالخيار --pure الذي يعطّل الإضافات الخارجية. ومن البدائل

ما أبرز التفاصيل حول أي نموذج تختار وكم ذاكرة يحتاج؟

في الاختيار اعتمدت المؤلفة النتائج المنشورة في بطاقة Qwen، لا قياساتها الخاصة على الحاسوب المحمول. يختبر LiveCodeBench v6 توليد الشيفرة، ويقيّم BFCL-V4 استدعاء الدوال، أي قدرة الوكيل على اختيار الأداة وتمرير المعاملات الصحيحة. Qwen3.5 4B: LiveCodeBench v6 — 55,8؛ BFCL-V4 — 50,3؛ حجم التنزيل 3,3–4,0 ГБ. Qwen3.5 9B (استُخدم في الاختبار): 65,6 و66,1؛ حجم التنزيل 6,6–7,6 ГБ. Qwen3.5 27B: حجم التنزيل 17–20 ГБ، ولا ترد نتائج اختبارات أداء له في المادة. gpt-oss-20b: LiveCodeBench v6 — 74,6؛ نتيجة BFCL-V4 غير منشورة. اختيرت نسخة 9 مليارات معامل لأن استدعاء الأدوات فيها أفضل بوضوح م

ما أبرز التفاصيل حول ماذا أظهر الاختبار مع إطفاء Wi-Fi؟

مشروع الاختبار هو حساب المصروفات: خمسة مبالغ منها مبلغ مُسترد، والمجموع الصحيح 25,50. يطبع البرنامج الابتدائي 8,00، أي قيمة آخر مبلغ، لأن الدالة تعيد كتابة المجموع في كل تكرار. تفشل ثلاثة اختبارات: الحساب العشري، والمبالغ المستردة، ومثال البيانات الحقيقية. أما الإدخال الفارغ والعنصر الواحد فيمران. في وضع الاتصال تلقى الوكيل طلبًا تشخيصيًا وقرأ الشيفرة، لكنه اقترح في البداية pytest، مع أن المشروع يستخدم unittest المدمجة. وأتاح طلب الإذن بالتشغيل رؤية الأمر قبل تنفيذه. وخلصت المؤلفة إلى أنها ستكتب في الموجّه (prompt) في المرة القادمة: python3 -m unittest -v. بعد التحقق من Oll

ZK
جمال حميدون — مدير المنتجات في Alpina Digital ومدير منتج AlpinaGPT. يبني منتجات الذكاء الاصطناعي منذ 2019. بدأ Hamidun News كمشروع شخصي ثم أصبح مُجمِّعًا إنتاجيًا بأكثر من 6000 قارئ.
✦ Hands-On AI Engineering · Hamidun Academy

Build & Ship Production AI Agents Without Boilerplate Code

Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.

Start 72h Free Trial →Vibe-Coding Intensive
ما رأيك؟
جارٍ تحميل التعليقات…