في هذه الصفحة
- الهدف
- أكبر اكتشاف
- الأدوات التي تم تقييمها
- نتائج مقارنة الأدوات
- OpenCode
- Aider: خيبة الأمل المفاجئة
- Continue.dev
- مقارنة بيئات التشغيل
- ما حدث بشكل خاطئ مع Ollama و OpenCode
- لماذا LM Studio عمل بشكل أفضل
- مقارنة النماذج
- نتائج اختبار استخدام الأدوات الواقعية
- مشكلة نافذة السياق
- OpenCode يحتاج سياقاً أكثر مما تتوقع
- أحجام السياق الموصى بها
- التركيبة النهائية
- رئيسي: عمل المعمارية والتوثيق
- الوضع السريع: المهام السريعة
- مرافق IDE
- جدول القرار السريع
- التثبيت
- Ollama (لـ Continue.dev)
- LM Studio (لـ OpenCode)
- OpenCode
- Continue.dev
- الدروس المستفادة
- مسار الترقية المستقبلية
- الخلاصة
الذكاء الاصطناعي المحلي على MacBook Pro بسعة 16 جيجابايت RAM: ما يعمل فعلاً
مساعدي البرمجة بالذكاء الاصطناعي محلياً فكرة جذابة: لا تكاليف API، الكود يبقى على جهازك، وتجربة مشابهة لـ Claude Code مجاناً. لكن تشغيله بشكل جيد على MacBook Pro M1 بسعة 16 جيجابايت RAM يحتاج تجربة وخطأ أكثر مما تعترف به معظم الأدلة.
هذا المقال يلخص أشهراً من اختبارات واقعية مع أدوات متعددة، بيئات تشغيل، ونماذج. النتيجة فاجأتني.
الهدف
بناء بيئة تطوير ذكاء اصطناعي محلية، بدون اشتراك، يمكنها دعم:
- مناقشات المعمارية والتوثيق
- استكشاف المستودعات والتخطيط
- تعديلات الكود وإعادة الهيكلة وإصلاح الأخطاء
- سجلات قرارات المعمارية وملاحظات Obsidian
- مشاريع Angular و NestJS و .NET و Docker و Kubernetes
يجب أن يعمل الإعداد بالكامل محلياً على MacBook Pro بسعة 16 جيجابايت RAM.
أكبر اكتشاف
قبل مقارنات الأدوات والمعايير، أهم اكتشاف:
قدرة الوكيل > درجة معيار البرمجة
النموذج الذي يمكنه العثور على الملفات وتحرير الكود واستخدام الأدوات وتنفيذ سير عمل متعدد الخطوات غالباً ما يكون أكثر فائدة من نموذج بدرجة معيار برمجة أعلى لا يمكنه القيام بتلك الأشياء بشكل موثوق.
هذا الاكتشاف وحده قلب ترتيب النماذج والأدوات رأساً على عقب.
الأدوات التي تم تقييمها
تم اختبار ثلاثة أطر عمل لوكلاء البرمجة بعمق:
| الأداة | ما هي |
|---|---|
| OpenCode | واجهة طرفية موجهة للوكلاء |
| Aider | مساعد تحرير كود مركز على Git |
| Continue.dev | إضافة VSCode مع محادثة وإكمال تلقائي |
تمت مقارنة بيئتي تشغيل للنماذج المحلية:
| بيئة التشغيل | ما هي |
|---|---|
| Ollama | خادم نماذج محلي بسيط وشائع يعتمد على واجهة الأوامر |
| LM Studio | مدير نماذج بواجهة رسومية مع API متوافق مع OpenAI |
نتائج مقارنة الأدوات
| الأداة | المعمارية | التوثيق | البرمجة | استخدام الأدوات | سهولة الاستخدام | الحكم |
|---|---|---|---|---|---|---|
| OpenCode | 10/10 | 10/10 | 8/10 | 9/10 | 8/10 | مساحة العمل الرئيسية |
| Continue.dev | 6/10 | 4/10 | 7/10 | 5/10 | 10/10 | مرافق IDE |
| Aider | 2/10 | 1/10 | 5/10 | 3/10 | 6/10 | غير موصى به |
OpenCode
OpenCode فاز بمساحة العمل الرئيسية لأنه مصمم لسير عمل وكيل. يخطط، يستكشف المستودعات، يولد التوثيق، ويكتب محتوى طويل بموثوقية.
نقاط القوة: التخطيط، تحليل المعمارية، التوثيق، استكشاف المستودعات، المحتوى الطويل
نقاط الضعف: يحتاج نافذة سياق أكبر، الأداء مرتبط بقدرة النموذج على استخدام الأدوات
Aider: خيبة الأمل المفاجئة
Aider له سمعة جيدة في تحرير الكود. قد تكون مستحقة في إعدادات أخرى. في هذا السير العمل، خيب الظن.
أمر بسيط مثل Create a file containing one line: hello جعل Aider يولد JavaScript عشوائي بدلاً من إنشاء الملف. كما فشل في البحث عن الملفات وتوليد التوثيق.
الحكم لهذا السير العمل: غير موصى به.
Continue.dev
الأبسط من بين الثلاثة. قم بتثبيت إضافة VSCode، ووجهها إلى نموذج محلي، وستعمل. رائعة لمحادثة IDE والشروحات السريعة والإكمال التلقائي. ليست الأداة المناسبة للعمل المعماري أو أي شيء يتطلب تفكيراً متعدد الخطوات.
مقارنة بيئات التشغيل
بيئة التشغيل كانت أكثر أهمية مما توقعت.
| بيئة التشغيل | تجربة OpenCode | إدارة النماذج | استكشاف الأخطاء | الحكم |
|---|---|---|---|---|
| LM Studio | 10/10 | 10/10 | 10/10 | مفضل لـ OpenCode |
| Ollama | 6/10 | 7/10 | 6/10 | ثانوي (Continue.dev) |
ما حدث بشكل خاطئ مع Ollama و OpenCode
عند توصيل OpenCode بنماذج محلية عبر Ollama، ظهرت عدة مشاكل:
- بعض النماذج لم ترجع أي إجابة على الإطلاق
- بعض الردود تم اقتطاعها في منتصف المخرجات
- معالجة السياق كانت غير شفافة, من الصعب معرفة ما تم تحميله فعلاً
- أمر الوكيل لـ OpenCode كان ثقيلاً جداً للسياقات الصغيرة
- التجربة كانت غير متناسقة عبر الجلسات
لماذا LM Studio عمل بشكل أفضل
بعد تحويل OpenCode إلى LM Studio، اختفت المشاكل في الغالب:
- معرف النموذج المحمل بالضبط كان مرئياً عبر
/v1/models - طول السياق كان مرئياً وقابلاً للتكوين في الواجهة
- API المتوافق مع OpenAI جعل استكشاف الأخطاء مباشراً
- النماذج التي فشلت عبر Ollama عملت بشكل صحيح عبر LM Studio
ملاحظة رئيسية: النماذج نفسها لم تكن المشكلة الرئيسية. تركيبة Ollama + OpenCode كانت أقل موثوقية على هذا الجهاز. LM Studio + OpenCode تصرفت بشكل أفضل مع نفس النماذج.
يمكنك التحقق مما يخدمه LM Studio في أي وقت:
curl http://localhost:1234/v1/models
مقارنة النماذج
| النموذج | السرعة | استخدام الأدوات | المعمارية | التوثيق | البرمجة | الدور النهائي |
|---|---|---|---|---|---|---|
| qwen3.5:9b | 7/10 | 10/10 | 10/10 | 9/10 | 8/10 | النموذج الرئيسي |
| qwen3.5:2b | 10/10 | 9/10 | 6/10 | 7/10 | 5/10 | الوكيل السريع |
| Ministral 3B | 8/10 | 8/10 | 7/10 | 8/10 | 6/10 | بديل |
| qwen2.5-coder:7b | 6/10 | 4/10 | 6/10 | 5/10 | 8/10 | متخصص برمجة (وكيل ضعيف) |
| llama3.1:8b | 5/10 | 4/10 | 6/10 | 6/10 | 6/10 | مرفوض |
| gemma4 | 5/10 | 2/10 | 6/10 | 5/10 | 7/10 | مرفوض |
نتائج اختبار استخدام الأدوات الواقعية
من أكثر الاختبارات كشفاً: طلب كل نموذج ببساطة إنشاء وتحرير ملفات باستخدام أدوات OpenCode.
| النموذج | ينشئ ملفات | يحرر ملفات | يستخدم أدوات |
|---|---|---|---|
| qwen3.5:9b | ✅ | ✅ | ✅ |
| qwen3.5:2b | ✅ | ✅ | ✅ |
| Ministral 3B | ✅ | أحياناً | ✅ |
| qwen2.5-coder:7b | مختلط | مختلط | مختلط |
| gemma4 | ❌ | ❌ | ❌ |
gemma4 رفض مهام التحرير على الرغم من رؤية الأدوات المتاحة. llama3.1:8b عمل لكنه قدم قيمة ضعيفة مقابل تكلفة موارده.
qwen2.5-coder:7b يسجل درجات جيدة في معايير البرمجة لكن لديه استخدام أدوات مختلط عملياً, أداؤه كان أقل من المتوقع كعامل OpenCode مقارنة بالتوقعات. هذه هي النتيجة الجوهرية: درجات المعايير لا تتنبأ بقدرة الوكيل.
qwen3.5:9b هو النموذج الرئيسي: استدلال قوي، استخدام موثوق للأدوات، ممتاز للعمل المعماري والتوثيق. qwen3.5:2b هو الرفيق السريع للمهام والملاحظات السريعة.
مشكلة نافذة السياق
من أهم وأكثر الاكتشافات مفاجأة.
OpenCode يحتاج سياقاً أكثر مما تتوقع
عندما تم توصيل OpenCode بنموذج بسياق 8k، ظهر هذا الخطأ فوراً:
n_keep: 26460 >= n_ctx: 8192
ثم لاحقاً، بعد محاولات تقليله:
n_keep: 8232 >= n_ctx: 8192
أمر النظام الأولي لـ OpenCode وحده يتجاوز 8k رمز. هذا يعني أن النموذج لم يتلق أبداً الرسالة الأولى للمستخدم, السياق كان ممتلئاً بالفعل قبل أن تبدأ المحادثة.
الحل: ضبط سياق LM Studio على 32,768 رمزاً ومطابقته في تكوين نموذج OpenCode.
أحجام السياق الموصى بها
| الأداة | بيئة التشغيل | السياق |
|---|---|---|
| OpenCode | LM Studio | 32,768 |
| Continue.dev | أي | 8,192 |
التركيبة النهائية
بعد كل هذه الاختبارات، الإعداد الموصى به له ثلاثة أوضاع:
رئيسي: عمل المعمارية والتوثيق
OpenCode + LM Studio + qwen3.5:9b
السياق: 32,768
استخدم لـ: مراجعات المعمارية، التوثيق، سجلات قرارات المعمارية، التخطيط، استكشاف المستودعات، ملاحظات Obsidian
الوضع السريع: المهام السريعة
OpenCode + LM Studio + qwen3.5:2b
السياق: 32,768
استخدم لـ: أسئلة سريعة، ملاحظات، ملخصات، استكشاف مستودعات
مرافق IDE
Continue.dev + LM Studio أو Ollama + qwen3.5:2b
السياق: 8,192
استخدم لـ: محادثة IDE، شروحات الكود، الإكمال التلقائي، تعديلات صغيرة
جدول القرار السريع
| المهمة | الأداة | بيئة التشغيل | النموذج |
|---|---|---|---|
| مناقشة معمارية | OpenCode | LM Studio | qwen3.5:9b |
| كتابة توثيق | OpenCode | LM Studio | qwen3.5:9b |
| ملاحظات Obsidian / سجلات قرارات | OpenCode | LM Studio | qwen3.5:9b |
| استكشاف مستودع | OpenCode | LM Studio | qwen3.5:9b |
| تخطيط | OpenCode | LM Studio | qwen3.5:9b |
| أسئلة سريعة / ملاحظات | OpenCode | LM Studio | qwen3.5:2b |
| محادثة IDE / شرح | Continue.dev | LM Studio أو Ollama | qwen3.5:2b |
| إكمال تلقائي | Continue.dev | LM Studio أو Ollama | qwen3.5:2b |
التثبيت
Ollama (لـ Continue.dev)
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen3.5:2b
LM Studio (لـ OpenCode)
قم بالتنزيل من موقع LM Studio الرسمي. حمل qwen3.5:9b للعمل الرئيسي أو qwen3.5:2b للوضع السريع، اضبط السياق على 32,768 وابدأ الخادم المحلي.
نصيحة: نماذج Zen من LM Studio فعالة بشكل خاص على الأجهزة ذات RAM المحدود. هي محسنة بشكل جيد لـ Apple Silicon وتستحق التجربة إذا كنت تريد أداءً جيداً دون دفع حدود الذاكرة.
تحقق من أن الخادم يعمل:
curl http://localhost:1234/v1/models
OpenCode
curl -fsSL https://opencode.ai/install | bash
قم بتكوين ~/.config/opencode/opencode.json للتوجيه إلى LM Studio. يجب أن يتطابق اسم النموذج في التكوين تماماً مع id الذي يتم إرجاعه بواسطة /v1/models:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"lmstudio": {
"npm": "@ai-sdk/openai-compatible",
"name": "LM Studio Local",
"options": {
"baseURL": "http://localhost:1234/v1"
},
"models": {
"qwen/qwen3.5-9b": {
"name": "Qwen 3.5 9B (Main)",
"limit": {
"context": 32768,
"output": 2048
}
},
"qwen/qwen3.5-2b": {
"name": "Qwen 3.5 2B (Fast)",
"limit": {
"context": 32768,
"output": 2048
}
}
}
}
}
}
Continue.dev
قم بتثبيت إضافة Continue في VSCode ووجهها إلى LM Studio أو Ollama مع qwen3.5:2b.
الدروس المستفادة
| الافتراض | الواقع |
|---|---|
| أفضل معيار برمجة = أفضل وكيل | خطأ, قدرة استخدام الأدوات تهم أكثر |
| نموذج أكبر = تجربة أفضل | خطأ على 16 جيجابايت RAM |
| qwen2.5-coder:7b هو أفضل نموذج محلي | مبرمج قوي، وكيل ضعيف, استخدام أدوات مختلط |
| Aider هو أفضل أداة برمجة محلية | غير موصى به لسير العمل هذا |
| Ollama هو أفضل بيئة تشغيل | ليس لـ OpenCode على هذا الجهاز |
| حجم السياق تفصيل بسيط | خطأ, OpenCode يتطلب 32k كحد أدنى |
| LM Studio مجرد واجهة رسومية | خطأ, إنها أفضل بيئة تشغيل لـ OpenCode |
مسار الترقية المستقبلية
عند الترقية إلى 32 جيجابايت RAM: قم بتقييم نماذج أكبر وسياقات أوسع.
عند الترقية إلى 64 جيجابايت RAM: أعد تقييم نماذج فئة 32B وسياقات 64k.
على 16 جيجابايت RAM، تجنب تشغيل التطبيقات كثيفة الذاكرة (Docker Desktop، نوافذ متصفح متعددة، فهرسة IDE) في نفس وقت تشغيل نموذج 9B محمل.
الخلاصة
أكبر اكتشاف لم يكن نموذجاً, بل كان تركيبة:
OpenCode + LM Studio قدما تجربة أفضل بشكل جوهري من أي إعداد آخر تم اختباره.
الإعداد الذي يعمل على MacBook Pro M1 بسعة 16 جيجابايت RAM:
- OpenCode للتفكير والتخطيط والكتابة
- Continue.dev لدعم IDE والإكمال التلقائي
- LM Studio كبيئة تشغيل لـ OpenCode
- سياق 32k لـ OpenCode، 8k لـ Continue.dev
- qwen3.5:9b كنموذج رئيسي، qwen3.5:2b للمهام السريعة
المبدأ الذي قاد كل قرار: قدرة الوكيل تهم أكثر من درجات المعايير.
في هذه الصفحة
- الهدف
- أكبر اكتشاف
- الأدوات التي تم تقييمها
- نتائج مقارنة الأدوات
- OpenCode
- Aider: خيبة الأمل المفاجئة
- Continue.dev
- مقارنة بيئات التشغيل
- ما حدث بشكل خاطئ مع Ollama و OpenCode
- لماذا LM Studio عمل بشكل أفضل
- مقارنة النماذج
- نتائج اختبار استخدام الأدوات الواقعية
- مشكلة نافذة السياق
- OpenCode يحتاج سياقاً أكثر مما تتوقع
- أحجام السياق الموصى بها
- التركيبة النهائية
- رئيسي: عمل المعمارية والتوثيق
- الوضع السريع: المهام السريعة
- مرافق IDE
- جدول القرار السريع
- التثبيت
- Ollama (لـ Continue.dev)
- LM Studio (لـ OpenCode)
- OpenCode
- Continue.dev
- الدروس المستفادة
- مسار الترقية المستقبلية
- الخلاصة