Pi مقابل OpenCode - أي عميل برمجة بالذكاء الاصطناعي يجب عليك استخدامه؟
KKTG Analysis
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00هناك الآن وكيلان جادان للبرمجة بالذكاء الاصطناعي مفتوح المصدر يتنافسان على الطرفية
00:00:04واختيار الوكيل الخطأ قد يعني إعادة بناء سير عملك بالكامل لاحقاً.
00:00:10أحدهما يأتي مجهزاً بكل ما قد تحتاجه فور تشغيله، والآخر
00:00:14يأتي بلاشيء تقريباً ويزعم أن هذا هو الهدف تماماً، اليوم نحن
00:00:19نضع “Open Code” و “PI” في مواجهة مباشرة.
00:00:21لذا، بنهاية هذا الفيديو، ستعرف بالضبط أيهما ينتمي إلى طرفيتك.
00:00:27لنبدأ بماهية هذه الأدوات في الواقع.
00:00:30بما أنهما يحلان نفس المشكلة الجوهرية بطرق مختلفة تماماً، فكلاهما
00:00:34Open Code و PI عبارة عن وكلاء برمجة ذكاء اصطناعي قائمين على الطرفية، تقوم بتشغيلهما في
00:00:40طرفيتك، ويتصلان بنماذج لغوية كبيرة مثل Claude أو GPT، ويمكنهما
00:00:45قراءة الكود الخاص بك، وتعديل الملفات، وتشغيل أوامر الصدفة، وإجراء محادثات مطولة
00:00:50حول قاعدة الكود الخاصة بك، فكر فيهما كبدائل مفتوحة المصدر لـ Claude Code.
00:00:55كلاهما مكتوب بلغة TypeScript، وكلاهما مرخص بموجب MIT وكلاهما يدعمان أكثر من 20
00:01:01مزود للنماذج اللغوية الكبيرة، ولكن هنا تنتهي أوجه التشابه تقريباً، فقد تم بناء Open Code
00:01:06من قبل مبتكري terminal.shop ومجتمع من عشاق NeoVim.
00:01:11إنه يتبع ما أسميه نهج “البطاريات المرفقة” الجاهز للاستخدام.
00:01:15تحصل على نظام متعدد الوكلاء مع وكلاء متخصصين لمهام مختلفة، و
00:01:20نظام أذونات مدمج مع حوارات الموافقة، وتكامل مع بروتوكول خادم اللغة
00:01:24لذكاء الكود، ودعم كامل لبروتوكول سياق النموذج (MCP) من أجل
00:01:29الاتصال بالأدوات الخارجية، وقاعدة بيانات SQLite لاستمرارية الجلسة، و
00:01:34حتى تطبيق سطح مكتب قائم على Tauri إلى جانب الواجهة الطرفية.
00:01:40فلسفة Open Code هي أن وكيل البرمجة يجب أن يعمل بشكل جيد على الفور مع
00:01:45إعدادات افتراضية معقولة وتكاملات عميقة، بينما PI الذي أنشأه ماريو زيشنر يتخذ
00:01:51النهج المعاكس. تم ذكر فلسفته بوضوح في ملف README: PI
00:01:56قابل للتوسع بشكل هجومي، لذا لا يضطر لفرض سير عمل معين عليك.
00:02:00PI يشحن عمداً بدون وكلاء فرعيين، بدون دعم MCP، بدون نظام
00:02:05أذونات، بدون وضع التخطيط، وبدون تتبع مدمج للمهام. بدلاً من ذلك،
00:02:11يوفر واجهة برمجة تطبيقات توسعية قوية ويقول: ابدأ ببناء ما تحتاجه بالضبط أو
00:02:17ثبت حزمة مجتمعية تفعل ذلك بطريقتك. النواة تبقى بالحد الأدنى، وكل شيء
00:02:22آخر اختياري. لذا يمثل هذان المشروعان انقساماً فلسفياً حقيقياً
00:02:27في كيفية تصميم أدوات المطورين. دعونا نتعمق في التفاصيل التقنية
00:02:32لكل منهما، ثم سنقارنهما مباشرة. لنبدأ بـ
00:02:36معمارية Open Code. Open Code عبارة عن مستودع موحد (monorepo) يضم حوالي 21 حزمة.
00:02:42المحرك الأساسي يقع في حزمة واحدة، ولكن هناك حزم منفصلة
00:02:46لوحدة تحكم الويب، وتطبيق سطح المكتب، وSDK الخاص بـ TypeScript، ونظام الملحقات،
00:02:52ومكونات واجهة المستخدم المشتركة، والوثائق. تحت الغطاء، يعمل على Bun، وهو
00:02:57أسرع بكثير من Node في التشغيل والتنفيذ. بالنسبة لطبقة تجريد
00:03:02النماذج اللغوية، يستخدم Open Code نسخة AI SDK الخامسة متعددة الاستخدامات. هذه
00:03:08مكتبة يتم صيانتها جيداً وتحظى باعتماد واسع وتوفر واجهة موحدة عبر
00:03:13عشرات المزودين. الفائدة العملية هي أن Open Code يرث
00:03:18دعم المزودين مجاناً تقريباً مع إضافة Vercel SDK لتكاملات جديدة. أحد
00:03:24أبرز ميزات Open Code هو نظامه متعدد الوكلاء. فهو يأتي مع عدة
00:03:30وكلاء متخصصين. وكيل البناء هو الافتراضي، وهو وكيل تطوير كامل الصلاحيات
00:03:35يمكنه القراءة والكتابة والتنفيذ. وكيل التخطيط للقراءة فقط
00:03:40ومصمم لاستكشاف وتحليل الكود دون إجراء تغييرات. يمكنه فقط
00:03:45الكتابة في دليل خطط محدد. وكيل المستكشف هو متخصص
00:03:50متخصص سريع وخفيف للتنقل في الكود، ويقتصر على عمليات البحث والقراءة.
00:03:55وهناك وكيل عام للمهام المعقدة متعددة الخطوات يعمل كوكيل
00:04:00فرعي. يبدل المستخدمون بين هؤلاء الوكلاء بمفتاح Tab، ولكل وكيل
00:04:05يمكنك أيضاً تحديد وكلاء مخصصين في ملف التكوين الخاص بك،
00:04:09وتحديد النموذج الذي يستخدمونه، والأذونات التي يمتلكونها، وما يقوله موجه النظام الخاص بهم.
00:04:14لاستمرارية البيانات، يستخدم Open Code محرك SQLite مع Drizzle ORM
00:04:19حيث تعيش الجلسات والرسائل والأذونات وبيانات اعتماد MCP جميعاً
00:04:25في ملف قاعدة بيانات واحد. هذا خيار معماري ذو مغزى.
00:04:30تمنحك SQLite نزاهة المعاملات، والاستعلام الفعال عبر الجلسات،
00:04:35وملفاً واحداً يسهل نسخه احتياطياً. يقوم Open Code بتشغيله
00:04:41في وضع WAL لتحسين أداء القراءة المتزامنة. نظام أذونات Open Code
00:04:46متعدد الطبقات وتفصيلي. كل استدعاء للأداة يمر عبر فحص الأذونات.
00:04:52يمكنك ضبط القواعد لكل أداة ولكل نمط ملف. على سبيل المثال، قد
00:04:57تسمح بجميع قراءات الملفات ولكن تطلب الموافقة لتعديل ملفات .env وترفض
00:05:03تماماً أوامر الصدفة التي تلمس أدلة الإنتاج. تتسلسل الأذونات
00:05:08عبر مستويات تكوين متعددة من تكوين المستخدم العالمي وصولاً إلى تجاوزات
00:05:13خاصة بالمشروع. عندما يحتاج الوكيل إلى موافقة، فإنه يعرض حواراً تفاعلياً مباشرة
00:05:18في الطرفية، ويمكنك اختيار السماح مرة واحدة أو السماح دائماً بهذا الإجراء. تكامل
00:05:24MCP كامل الميزات. يمكن لـ Open Code الاتصال بخوادم MCP المحلية وعن بعد.
00:05:30يدعم وسائل نقل STDIO و HTTP، ويتعامل مع مصادقة OAuth
00:05:37للخوادم البعيدة، ويسجل الأدوات تلقائياً من خوادم MCP المتصلة.
00:05:42إذا كنت تستخدم بالفعل خوادم MCP مع أدوات أخرى، فسيعمل Open Code
00:05:47معها على الفور. ميزة أخرى ملحوظة هي دعم LSP المدمج.
00:05:53يمكن لـ Open Code تشغيل خوادم بروتوكول خادم اللغة لـ TypeScript و Python و
00:05:58Go و Rust ولغات أخرى. هذا يمنح نموذج الذكاء الاصطناعي إمكانية الوصول إلى ذكاء
00:06:04الكود الحقيقي مثل معلومات التمرير، والذهاب إلى التعريف، ومراجع الرموز بدلاً
00:06:10من الاعتماد فقط على مطابقة الأنماط النصية. إنها ميزة طفيفة ولكنها ذات مغزى
00:06:15لدقة فهم الكود. يحتوي Open Code أيضاً على نظام مهارات
00:06:20متوافق مع تنسيق مهارات Claude Code. المهارات هي ملفات Markdown مع
00:06:25بيانات أمامية تحدد سلوكيات متخصصة، وهناك نظام ملحقات
00:06:30يعتمد على حزم NPM يمكنه التدخل في كل جزء من دورة الحياة تقريباً من
00:06:35تحميل التكوين، إلى تحويل الرسائل، إلى تنفيذ الأدوات. الآن
00:06:40لنلقِ نظرة على معمارية PI. PI هو أيضاً مستودع موحد، ولكن
00:06:45تتمثل الحزم الرئيسية في وكيل البرمجة نفسه، وPi I لطبقة تجريد نماذج اللغة الكبيرة،
00:06:51طبقة التجريد الخاصة به، و Pi agent core لوقت تشغيل الوكيل المستند إلى الحالة، و Pi 2e لـ
00:06:57وكيل عرض الطرفية. هناك أيضاً PiMom، وهو رفيق بوت Slack، و PiPods
00:07:02أهم قرار تقني في PI هو أنه بنى طبقة تجريد النماذج اللغوية الخاصة به
00:07:08من الصفر بدلاً من استخدام Vercel AI SDK.
00:07:12PI-I هي واجهة برمجة تطبيقات موحدة للنماذج اللغوية تدعم أكثر من 30
00:07:20مزوداً، بما في ذلك بعض المزودين الذين لا يغطيهم Vercel AI SDK، مثل
00:07:24Minimax و Kimi. يمنح بناء طبقتهم الخاصة فريق PI سيطرة كاملة على
00:07:30سلوك البث، وتحليل استدعاءات الأدوات، والتحسينات الخاصة بالمزودين.
00:07:35المقايضة هي عبء الصيانة، لكنها تعني أيضاً أن PI يمكنه تنفيذ ميزات
00:07:40مثل التحليل الجزئي لـ JSON أثناء بث وسائط الأداة بالضبط بالطريقة التي
00:07:44يريدونها. تستخدم إدارة جلسات PI تنسيق JSONL، وهو ملف مسطح حيث يمثل كل
00:07:50سطر كائن JSON. كل إدخال له معرف ومعرف أب، مما يسمح بهيكل
00:07:56شجري داخل ملف واحد. هذا ذكاء. يعني أنه يمكنك تفريع
00:08:00المحادثات، والتنقل في شجرة التاريخ الكاملة، والقفز بين الفروع وكل ذلك في
00:08:06ملف واحد يسهل فحصه بأدوات Unix القياسية. يتيح لك أمر الشجرة (tree)
00:08:12تصور تاريخ محادثتك بالكامل والتنقل إلى أي نقطة. أمر
00:08:17التفريع (fork) ينشئ فرعاً جديداً من أي رسالة. إنها حقاً واحدة من
00:08:23أفضل واجهات إدارة المحادثات التي رأيتها في وكيل برمجة. نظام
00:08:28ملحقات PI هو المكان الذي تدب فيه الروح في الفلسفة فعلاً. الملحقات هي
00:08:33ملفات TypeScript يتم تحميلها مباشرة بواسطة JITI، لذا لا توجد خطوة تجميع.
00:08:38يمكن للملحق تسجيل أدوات وأوامر واختصارات لوحة مفاتيح مخصصة. يمكنه
00:08:44الاشتراك في أحداث دورة الحياة مثل بدء الجلسة، وبدء الوكيل، واستدعاءات الأدوات، و
00:08:49اختيار النموذج. يمكنه التفاعل مع المستخدم من خلال حوارات التأكيد، وقوائم
00:08:55الاختيار، وموجهات إدخال النص. يمكنه حتى عرض مكونات TUI مخصصة.
00:09:01تمنحك واجهة برمجة تطبيقات الملحقات إمكانية الوصول إلى مدير الجلسة، وسجل النماذج، ومخزن
00:09:06المصادقة، وناقل الأحداث. بمعنى آخر، يمكن للملحقات أن تفعل أي شيء تقريباً
00:09:11يمكن للنواة فعله. هذا هو المكان الذي تبدأ فيه ميزات PI المحذوفة عمداً في اتخاذ
00:09:16معنى. لا يوجد نظام أذونات مدمج؟ اكتب ملحقاً يعرض حوار
00:09:20تأكيد قبل الأوامر الخطيرة. لا يوجد وكلاء فرعيون؟ قم بتشغيل نسخ PI عبر TMUX أو
00:09:27اكتب ملحقاً ينسق حلقات وكلاء متعددة. لا يوجد MCP؟ قم ببناء
00:09:33مهارة بأداة CLI وملف README أو اكتب ملحقاً يضيف دعم MCP.
00:09:40لا يوجد وضع تخطيط؟ اكتب الخطط في ملفات Markdown أو ابنِ ملحقاً يدير
00:09:45الخطط كما تفضل. عرض الطرفية في PI مبني بشكل مخصص أيضاً. حزمة pi2e
00:09:51تنفذ حزمة pi2e العرض التفاضلي مع ثلاث استراتيجيات لتقليل تحديثات الشاشة
00:09:56التحديثات ويستخدم بروتوكول CSI 2026 للتحديثات الذرية التي تقضي على الوميض.
00:10:02لديه نظام مكونات خاص به مع حاويات ومحررات وعرض للنصوص
00:10:07وعرض Markdown ودعم الصور وقوائم الاختيار. واجهة TUI لوكيل البرمجة مبنية
00:10:13بالكامل على هذا الإطار. لمعالجة الأدوات، يأتي PI مع سبع أدوات
00:10:18مدمجة—READ و Bash و Edit و Write و Grep و Find و LS. هذه مجموعة ضئيلة عمداً.
00:10:25تدعم أداة Bash وضع الحماية الاختياري Docker والبث المباشر
00:10:30للمخرجات. تستخدم أداة التعديل تنسيق الفرق الموحد. جميع الأدوات تتحقق من
00:10:36وسائطها باستخدام AJV قبل التنفيذ وتدعم التنفيذ المتوازي افتراضياً،
00:10:42مما يعني تشغيل استدعاءات أدوات متعددة من النموذج اللغوي بشكل متزامن بدلاً من
00:10:48واحد تلو الآخر. الآن لنقارن بينهما مباشرة في الأبعاد الأكثر أهمية.
00:10:53دعم المزودين. كلاهما يدعم أكثر من 20 مزوداً ويعمل مع أي
00:10:59واجهة برمجة تطبيقات متوافقة مع OpenAI. يستخدم Open Code مكتبة Vercel AI SDK، مما يعني أنه يرث
00:11:06دعم المزودين الجدد مع نمو ذلك النظام البيئي. بنى PI مكتبة PI-I الخاصة به، والتي
00:11:12تمنحه سيطرة أكبر ولكنها تتطلب دمجاً يدوياً للمزودين الجدد. عملياً،
00:11:18كلاهما يغطي جميع المزودين الرئيسيين الذين من المحتمل أن تستخدمهم. نموذج
00:11:22الوكيل: يأتي Open Code مع وكلاء متخصصين متعددين ويتيح لك التبديل بينهم
00:11:27بضغطة مفتاح واحدة. يأتي PI مع وكيل واحد ويقول إذا كنت تريد وكلاء فرعيين،
00:11:33فقم ببنائهم بالملحقات أو شغل نسخاً منفصلة. إذا كنت تريد
00:11:37أوضاعاً متخصصة جاهزة، فإن Open Code هو الفائز هنا. أما إذا كنت تفضل بناء
00:11:42تضاريس وكيلك الخاصة، فإن PI يمنحك الأدوات للقيام بذلك. يستخدم Open Code محرك SQLite،
00:11:47بينما يستخدم PI ملفات JSONL. تمنحك SQLite نزاهة المعاملات والاستعلام
00:11:53الفعال. تمنحك JSONL ملفات قابلة للقراءة البشرية يمكنك فحصها بـ CAT أو GREP،
00:11:58وهيكل الشجرة في PI داخل ملف واحد أنيق. كلاهما يدعم تفريع
00:12:04الجلسات، وواجهة التنقل الشجرية في PI مصممة بشكل جيد للغاية
00:12:08لاستكشاف تاريخ المحادثة. يمتلك Open Code نظاماً مدمجاً شاملاً
00:12:13مع حوارات موافقة وقواعد لكل ملف وذاكرة أذونات مستمرة.
00:12:19PI لا يملك نظام أذونات في نواته ويتوقع من الملحقات معالجة
00:12:25هذا. إذا كنت تريد حواجز حماية على الفور، فإن Open Code هو الخيار الأكثر أماناً. إذا كنت
00:12:30تعمل في حاويات أو تريد تحكماً كاملاً في نموذج الأمان الخاص بك، فإن نهج PI يمنحك
00:12:35مرونة أكبر. دعم MCP: يمتلك Open Code دعماً كاملاً لـ MCP مع OAuth،
00:12:41ووسائل نقل متعددة، وتسجيل تلقائي للأدوات. يرفض PI صراحةً MCP
00:12:48في نواته لصالح المهارات، وهي أدوات CLI موثقة بملفات README.
00:12:54كتب ماريو زيشنر منشور مدونة يجادل بأن MCP يضيف تعقيداً بينما أداة CLI بسيطة
00:13:00مع ملف README تحقق نفس الهدف. إذا كان سير عملك يعتمد
00:13:04بالفعل على خوادم MCP، فإن Open Code هو الخيار الواضح. إذا كنت تفضل فلسفة
00:13:10Unix للأدوات الصغيرة القابلة للتركيب، فقد يروق لك نهج PI أكثر. ذكاء
00:13:16الكود: يمتلك Open Code تكامل LSP مدمج يمنح نموذج الذكاء الاصطناعي
00:13:22إمكانية الوصول إلى معلومات النوع والتعاريف والمراجع. PI لا يتضمن LSP
00:13:28في نواته. هذا يعطي Open Code تفوقاً ملموساً للعمل في اللغات
00:13:32ذات الأنواع القوية حيث يحسن سياق النوع فهم الذكاء الاصطناعي. واجهة
00:13:37الطرفية: كلاهما لديه تطبيقات TUI مخصصة متطورة، ولكن مبنية
00:13:42بشكل مختلف. يستخدم Open Code لغة Solid.js مع إطار عمل OpenID. بينما يستخدم PI
00:13:48إطار عمل PI-2E الخاص به مع العرض التفاضلي. كلاهما يبدو رائعاً
00:13:53ويعطي شعوراً بالاستجابة. يقدم Open Code بالإضافة إلى ذلك تطبيق سطح مكتب قائم على Tauri
00:13:58ووحدة تحكم ويب. PI يعمل بالطرفية فقط، رغم أنه يقدم مكتبة مكونات ويب
00:14:03يمكن للمطورين تضمينها في تطبيقاتهم الخاصة. كلاهما يستخدم تكويناً
00:14:07قائماً على JSON مع مستويات للمشروع وعالمية. يستخدم Open Code تنسيق JSONC،
00:14:14وهو JSON مع تعليقات، وهي لمسة جودة لطيفة. بينما يستخدم PI تنسيق
00:14:19JSON القياسي. كلاهما يدعم تخصيصاً واسعاً للنماذج والأدوات والسلوك. تكوين Open Code
00:14:26أكثر تعقيداً لأن هناك المزيد لتكوينه. تكوين PI أبسط
00:14:31لأن مساحة السطح المدمجة أقل. إذاً أيهما يجب أن تختار؟
00:14:35إليك الأسئلة التي يجب أن تطرحها على نفسك. هل تريد أداة تعمل بكامل
00:14:39ميزاتها بمجرد تشغيلها؟ أم تفضل تجميع سير عملك الخاص؟ إذا
00:14:45كنت تريد تثبيت وكيل برمجة وتجهيز كل شيء في خمس دقائق مع
00:14:49الأذونات، والوكلاء المتعددين، و MCP و LSP وتجربة مصقولة، فإن Open Code مصمم لذلك.
00:14:56إذا كنت تريد نواة مبسطة تخصصها بالضبط وفقاً لاحتياجاتك
00:15:01وكنت مرتاحاً لكتابة ملحقات TypeScript، فإن PI مبني من أجلك.
00:15:06ما مدى أهمية MCP لسير عملك؟ إذا كنت تستخدم بالفعل خوادم MCP
00:15:11أو تخطط لذلك، فإن Open Code يدعمها محلياً. PI لا يفعل ذلك عمداً
00:15:16مفضلاً تكاملات أبسط تعتمد على CLI. هل تعمل بشكل أساسي في لغات
00:15:22ذات أنواع قوية؟ يمنح دعم LSP المدمج في Open Code نموذج الذكاء الاصطناعي فهماً
00:15:28أعمق للكود وهو أمر حيوي لـ TypeScript و Go و Rust واللغات المشابهة.
00:15:34إذا كنت تعمل غالباً في Python أو لغات ديناميكية، فإن هذه
00:15:39الميزة تكون أقل تأثيراً. هل تريد تطبيق سطح مكتب أو واجهة ويب؟
00:15:44يقدم Open Code كليهما إلى جانب الطرفية. PI للطرفية فقط ويفخر بذلك. كيف
00:15:51تشعر تجاه الثقة ووضع الحماية؟ إذا كنت تريد من الوكيل أن يطلب الإذن قبل فعل
00:15:55أي شيء خطير، فإن نظام أذونات Open Code يتعامل مع هذا تلقائياً. أما إذا
00:16:00كنت تفضل تشغيل الوكيل بالكامل في حاوية Docker وتركه يفعل ما
00:16:04يريد داخل ذلك الصندوق، فإن نهج “لا أذونات” في PI يتناسب جيداً مع
00:16:10سير العمل المعتمد على الحاويات. هل أنت مستخدم متقدم يريد تخصيص كل شيء؟
00:16:15نظام ملحقات PI قوي بشكل ملحوظ. يمكنك تعديل كل جانب تقريباً
00:16:20من سلوك الوكيل من تنفيذ الأدوات إلى إدارة الجلسة إلى واجهة
00:16:25TUI نفسها. لدى Open Code نظام ملحقات أيضاً، لكنه يركز أكثر على
00:16:30خطافات محددة بدلاً من التجاوز الكامل للسلوك. إليك الخلاصة
00:16:34الصريحة: Open Code هو المنتج الأكثر نضجاً واكتمالاً للميزات اليوم. فهو
00:16:40يمنحك المزيد فور تشغيله، ويتكامل مع المزيد من الأنظمة الخارجية،
00:16:44وله حاجز دخول أقل. بالنسبة لمعظم المطورين الذين يريدون وكيل برمجة
00:16:49ذكاء اصطناعي مفتوح المصدر، فإن Open Code هو الرهان الأكثر أماناً. PI هو التصميم الأكثر إثارة للاهتمام.
00:16:55فلسفته في البساطة الهجومية والتركيز على الملحقات تجعله قابلاً للتكيف بشكل فريد. إذا
00:17:01كنت من نوع المطورين الذين يخصصون تكوين Neovim لأسابيع
00:17:05قبل كتابة أي كود، إذا كنت تريد وكيلاً يعمل تماماً بالطريقة التي
00:17:09تراها مناسبة، فإن PI يستحق الاستثمار فيه كما أن التنقل الشجري للجلسات فيه
00:17:14هو الأفضل حقاً في فئته. كلا المشروعين مرخصان بـ MIT، وكلاهما يتم صيانتهما بنشاط،
00:17:20وكلاهما يدعمان نفس المجموعة الواسعة من مزودي النماذج اللغوية. يمكنك تجربة كليهما في
00:17:27بعد ظهر يوم واحد. الكود موجود على GitHub ولا يتطلب أي منهما اشتراكاً لكي
00:17:31تبدأ. ثبتهما، وشغلهما على نفس قاعدة الكود، وانظر أيهما يتناسب مع
00:17:37طريقة عملك. هذه هي المقارنة الوحيدة التي تهم حقاً.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video