العودة إلى الرئيسية

لم يستطع ذكائي الاصطناعي رؤية ملفاتي

مقال واضح وعملي عن الذكاء الاصطناعي لجمهور مهني.

القراءة الصوتية غير متاحة في هذا المتصفح
لم يستطع ذكائي الاصطناعي رؤية ملفاتي

الوسوم

ملخص سريع

مقال واضح وعملي عن الذكاء الاصطناعي لجمهور مهني.

ذكائي الاصطناعي لم يستطع رؤية ملفاتي — فبُرت خادم MCP بلا تبعيات خارجية

ذكائي الاصطناعي لم يستطع رؤية ملفاتي — فبُرت خادم MCP بلا تبعيات خارجية

لأشهر طويلة، كان نموذجي اللغوي الكبير المحلي يشبه زميلاً باهراً محبوساً في غرفة عازلة للصوت. كان لديّ نسخة سريعة تعتمد على Mistral تعمل عبر Ollama على محطتي العمل، ومجموعة متزايدة من السكربتات والدفاتر المبعثرة عبر مجلد المنزل. كان النموذج يستطيع التفكير، وكتابة الكود، وتصحيح الأجزاء التي ألصقها في نافذة الدردشة، لكنه لم يكن يدري ما يقع على بُعد مجلدين. إذا أردت منه مراجعة ملف إعدادات، أو تلخيص سجلات الأمس، أو التحقق مما إذا كانت دالة ما قد طُبّقت فعلاً في وحدة أخرى، كان عليّ النسخ واللصق والتمني ألا تفيض نافذة السياق. كانت الاحتكاك خفياً في البداية، ثم صار يصيبني بالجنون. كنت أشغل الذكاء الاصطناعي محلياً للحفاظ على خصوصية البيانات وسرعة سير العمل، ومع ذلك كنت لا أزال أعمل كجسر نسخ-ولصق يدوي بين نظام ملفاتي ونموذجي.

احتجت شيئاً يجلس بين القرص والنموذج اللغوي: مترجم خفيف يتحدث لغة نظام الملفات ولغة الذكاء الاصطناعي معاً. كان بروتوكول سياق النموذج (MCP) يكتسب زخماً كوسيلة لإتاحة الأدوات والموارد للمساعدين بطريقة موحدة، لكن معظم التطبيقات المرجعية التي وجدتها كانت مبنية فوق سلاسل تبعيات ثقيلة — خوادم Node.js بمئات الحزم npm، أو بيئات Python تتطلب Conda لمجرد قراءة ملف نصي. بدا ذلك متناقضاً مع فلسفة المحلية أولاً والثقة الدنيا التي جذبتني إلى Ollama والنماذج ذات الأوزان المفتوحة في المقام الأول. فقررت بناء خادم MCP خاص بي من الصفر، بلا تبعيات خارجية على الإطلاق، وتعليم ذكائي الاصطناعي الرؤية.

النقطة العمياء للنماذج اللغوية المحلية

تشغيل النماذج محلياً يحل مشكلتين كبيرتين: الخصوصية والاستجابة السريعة. عندما تعيش أوزانك على وحدة معالجة الرسومات الخاصة بك ولا تغادر طلباتك الجهاز، تتخلص من جولات الشبكة ذهاباً وإياباً ومخاوف حوكمة البيانات لدى الأطراف الثالثة. جعلت مجتمعات النماذج المفتوحة، بما فيها المنشورات على Hugging Face والمكدسات المُحسّنة للاستدلال المحلي، من السهل جداً سحب نموذج Mistral أو Llama أو Qwen والبدء بالدردشة. Ollama على وجه الخصوص حوّل الاستدلال المحلي إلى تجربة بأمر واحد. النموذج موجود، متحمس للمساعدة، وغير مدرك تماماً للعالم خارج حدود عمليته.

المشكلة معمارية. تقرأ عملية النموذج اللغوي المحلي من الإدخال القياسي أو حمولة واجهة برمجة التطبيقات، تحسب الاستجابة، وتكتب إلى الإخراج القياسي. لا تتصفح المجلدات، أو تفتح جداول البيانات، أو تتتبع السجلات — ما لم يغذِ التطبيق المستضيف تلك البيانات صراحةً في الطلب. هذا التصميم ميزة للأمان — يمنع النموذج من حذف ملفاتك عن غير قصد — لكنه يصبح عيباً للإنتاجية. ينتهي بك الأمر مع محرك تفكير قوي لا يملك ذاكرة دائمة لمشروعك ولا أعضاء حسية لبيئتك. أنت الحساس. كل قراءة ملف، وكل قائمة مجلدات، وكل عملية grep يجب أن تؤديها بنفسك، تُقطّر في طلب، وتُضغط عبر نافذة سياق — وإن كانت تتسع — لا تزال محدودة.

أردت أن يستطيع النموذج طلب المعلومات عند الحاجة. إذا سألت: "لماذا فشل البناء؟" يجب أن يستطيع الذكاء الاصطناعي النظر في Makefile، والتحقق من ملف البيئة، وتفحص سجل الأخطاء بنفسه. يتطلب ذلك بروتوكولاً.

يأتي بروتوكول سياق النموذج

بروتوكول سياق النموذج هو معيار مفتوح مصمم لربط المساعدين الذكيين بالأنظمة الخارجية بطريقة منظمة وآمنة. بدلاً من حشو قاعدة بيانات برمجية بأكملها في طلب والتمني بخير، يتيح MCP للمساعد استدعاء الأدوات، وقراءة الموارد، وجلب البيانات التي يحتاجها فقط، بالضبط عندما يحتاجها. يحوّل الدردشة الساكنة إلى حلقة وكيل تفاعلية: يسأل المستخدم، يتفكر النموذج في المعلومات الناقصة، ينفذ العميل استدعاء أداة، ويُدمج النموذج النتيجة في إجابته النهائية.

مفهومياً، يجلس MCP في نفس الطبقة مع معماريات الإضافات القديمة، لكنه أكثر حبيبية وتوحيداً. يُفصح الخادم عن قدرات — ربما قارئ ملفات، أو واجهة استعلام قاعدة بيانات، أو حاسبة — ويعلن العميل تلك القدرات للنموذج. النموذج نفسه لا يتحدث HTTP أو JSON-RPC؛ يصدر طلبات بلغة طبيعية يُخططها العميل إلى رسائل بروتوكول. يعني هذا الفصل بين الاهتمامات أن النموذج يبقى قابلاً للنقل بينما يبقى طبقة التكامل صريحاً.

لإعداد محلي، أبسط نقل هو الإدخال القياسي والإخراج القياسي. يصبح خادم MCP المُطلق من العميل عملية فرعية طويلة العمر. يكتب العميل رسائل JSON-RPC إلى stdin الخادم ويقرأ الاستجابات من stdout. لا منافذ مفتوحة، لا شهادات TLS لإدارتها، ولا قواعد جدار نار للعبث بها. إنه تناسب أنيق لجهاز يعيش فيه النموذج والعميل والبيانات جميعاً على نفس الصندوق.

لماذا يهمّ صفر التبعيات

عندما بدأت البحث في خوادم MCP الموجودة، صعقت من سرعة انتفاخ "قارئ ملفات بسيط" إلى سلسلة توريد برمجية كاملة. قد يتطلب الخادم النموذجي إصدار Node.js محدداً، وعشرات حزم npm لتحليل الوسائط والتسجيل، وتبعيات متعدية تُعدّ بالمئات. المكافئ Python غالباً ما يسحب FastAPI وPydantic وإطار ويب لمجرد إتاحة دالة واحدة. هذه المكدسات جيدة لبرمجيات الإنتاج SaaS، لكنها بدا ثقيلة لأداة وظيفتها الوحيدة قراءة الملفات من حاسبي المحمول.

صفر التبعيات ليس تبسيطاً لذاته؛ إنه استراتيجية أمان وصيانة. كل حزمة خارجية هي نقطة كسر أو اختراق محتملة. اختفاء على غرار left-pad، أو حساب مشرف مخترق، أو تبعية خامدة مع CVE جديد يمكن أن يُعطل الأداة — أو يجعلها أسوأ، غير آمنة. عندما تبني جسراً بين وكيل ذكاء اصطناعي وملفاتك الشخصية، يجب أن تستطيع تدقيق الجسر بأكمله بقراءة ملف مصدر واحد.

بكتابة الخادم بلغة أنظمة بمكتبة قياسية قوية — فكر في Go أو Rust أو Zig — استطعت تجميع ثنائي ثابت واحد. لا مُفسّر وقت تشغيل لتثبيته، لا مدير حزم لاستدعائه، ولا بيئة افتراضية لتفعيلها. أستطيع نسخه إلى جهاز زميل، أو إسقاطه على مشغل CI، أو تخزينه في مستودع git وتوقع سلوك متطابق. يتوافق هذا التنقل تماماً مع روح أدوات الذكاء الاصطناعي المحلية التي تتبناها مجتمعات Ollama والأوزان المفتوحة للنماذج. إذا كان النموذج مكتفياً ذاتياً، يجب أن يكون الأداة التي تغذيه مكتفياً ذاتياً أيضاً.

معمارية خادم MCP لنظام الملفات

استقررت على تصميم بثلاثة أجزاء متحركة: طبقة النقل، وسجل الأدوات، وصندوق عزل نظام الملفات. ينطق النقل JSON-RPC 2.0 عبر stdio. عند الإقلاع، يطبع الخادم مصافحة تهيئة، ثم يدخل حلقة تقرأ سطراً واحداً في كل مرة من stdin.

المصادر

أسئلة شائعة

عن ماذا يتحدث هذا المقال؟

يتناول هذا المقال موضوع "لم يستطع ذكائي الاصطناعي رؤية ملفاتي" ضمن تصنيف نماذج محلية. مقال واضح وعملي عن الذكاء الاصطناعي لجمهور مهني.

لمن يفيد هذا المقال؟

يفيد القراء المهتمين بفهم أدوات وتقنيات الذكاء الاصطناعي بطريقة عملية وواضحة.

ما الخطوة التالية؟

اقرأ المقال كاملاً، راجع المصادر المرفقة، ثم جرّب الأفكار المناسبة لاحتياجك بحذر.