Pi مقابل OpenCode - أي عميل برمجة بالذكاء الاصطناعي يجب عليك استخدامه؟

KKTG Analysis
컴퓨터/소프트웨어창업/스타트업AI/미래기술

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طريقة عملك. هذه هي المقارنة الوحيدة التي تهم حقاً.

Key Takeaway

يعد Open Code الخيار الأكثر نضجاً للمطورين الذين يبحثون عن وكيل برمجة شامل يدعم LSP و MCP فور التشغيل، بينما يمثل PI منصة قابلة للتطوير للمستخدمين المتقدمين الراغبين في بناء سير عمل مخصص بالكامل عبر ملحقات TypeScript وهيكل محادثات شجري.

Highlights

  • يتميز Open Code بنهج البطاريات المرفقة الجاهز للاستخدام مع نظام متعدد الوكلاء يشمل وكلاء متخصصين للبناء والتخطيط والمستكشف.

  • يعتمد PI فلسفة التقليلية الهجومية حيث يشحن بدون دعم MCP أو نظام أذونات مدمج أو وكلاء فرعيين لفرض مرونة كاملة في التخصيص.

  • يستخدم Open Code محرك SQLite مع Drizzle ORM لإدارة الجلسات والأذونات بينما يعتمد PI على تنسيق JSONL لتخزين المحادثات في هيكل شجري.

  • يدعم Open Code بروتوكول خادم اللغة (LSP) للغات مثل TypeScript و Python و Go و Rust لتعزيز دقة فهم الكود عبر معلومات النوع والتعاريف.

  • يوفر PI واجهة برمجة تطبيقات (API) للملحقات تسمح بتعديل كل جانب من سلوك الوكيل بما في ذلك تنفيذ الأدوات وإدارة الجلسات وواجهة TUI.

  • يعمل Open Code على Bun لضمان سرعة التشغيل والتنفيذ بينما يستخدم PI مكتبة PI-I الخاصة به لدعم أكثر من 30 مزوداً للنماذج اللغوية.

Timeline

مقارنة الأسس التقنية والهوية البرمجية

  • يعد Open Code و PI بدائل مفتوحة المصدر لـ Claude Code تعتمد على الطرفية للاتصال بالنماذج اللغوية.
  • يشترك المشروعان في استخدام لغة TypeScript وترخيص MIT ودعم أكثر من 20 مزوداً للنماذج اللغوية.
  • يركز Open Code على تقديم تجربة متكاملة تتضمن وكلاء متخصصين ودعماً لبروتوكول سياق النموذج (MCP).

يعمل كلاهما كوكلاء برمجة يمكنهم قراءة الملفات وتعديلها وتشغيل أوامر الصدفة. ينبع الفرق الجوهري من الفلسفة التصميمية، حيث يسعى Open Code لتوفير إعدادات افتراضية معقولة وتكاملات عميقة تشمل تطبيق سطح مكتب قائم على Tauri. في المقابل، يهدف PI إلى عدم فرض أي سير عمل معين على المطور، تاركاً المهمة للإضافات المجتمعية.

هيكلية Open Code ونظام الوكلاء المتعددين

  • يعتمد Open Code على Bun في التشغيل ويستخدم Vercel AI SDK لتجريد النماذج اللغوية.
  • يوزع النظام المهام على وكيل البناء للتطوير ووكيل التخطيط للقراءة فقط ووكيل المستكشف للتنقل الخفيف.
  • يسمح مفتاح Tab للمستخدمين بالتبديل الفوري بين الوكلاء المتخصصين حسب طبيعة المهمة.

يتكون مستودع Open Code من 21 حزمة تغطي واجهة الويب وتطبيق سطح المكتب وSDK الخاص بالمطورين. تضمن طبقة Vercel AI SDK الحصول على دعم تلقائي للمزودين الجدد في السوق. يتيح نظام الوكلاء المخصصين للمستخدم تحديد نماذج معينة وأذونات فريدة وموجهات نظام (System Prompts) لكل وكيل بشكل مستقل.

إدارة البيانات والأمان في Open Code

  • تخزن قاعدة بيانات SQLite الجلسات والرسائل وبيانات اعتماد MCP في ملف واحد لضمان نزاهة المعاملات.
  • يفرض نظام الأذونات فحصاً تفصيلياً لكل أداة بناءً على نمط الملف أو نوع العملية.
  • يوفر تكامل LSP المدمج لذكاء الاصطناعي إمكانية الوصول إلى مراجع الرموز ومعلومات التمرير في اللغات ذات الأنواع القوية.

يستخدم محرك SQLite وضع WAL لتحسين أداء القراءات المتزامنة وتسهيل النسخ الاحتياطي. يتدرج نظام الأذونات من الإعدادات العالمية إلى مستوى المشروع، مع عرض حوارات تفاعلية في الطرفية لطلب موافقة المستخدم عند تنفيذ عمليات حساسة مثل تعديل ملفات البيئة (.env). يعالج دعم MCP وسائل نقل STDIO و HTTP مع دعم مصادقة OAuth للخوادم البعيدة.

فلسفة PI المعمارية ونظام JSONL الشجري

  • بنى فريق PI مكتبة PI-I الخاصة بهم لدعم مزودين مثل Minimax و Kimi مع تحسين تحليل JSON الجزئي.
  • تعتمد إدارة الجلسات على ملفات JSONL مسطحة تسمح بتفريع المحادثات والتنقل في شجرة التاريخ.
  • تتيح أوامر tree و fork للمستخدمين تصور مسارات الحوار المختلفة والقفز بين فروع التاريخ بسهولة.

يمنح بناء طبقة التجريد الخاصة سيطرة كاملة على سلوك البث واستدعاءات الأدوات بعيداً عن قيود المكتبات الخارجية. يمثل هيكل JSONL حلاً ذكياً حيث يمتلك كل إدخال معرفاً وأباً، مما يحول الملف النصي البسيط إلى قاعدة بيانات شجرية. هذا النهج يسهل فحص الجلسات باستخدام أدوات Unix القياسية مثل grep و cat.

نظام الملحقات القوي والواجهة الطرفية في PI

  • يتم تحميل ملحقات TypeScript مباشرة بواسطة JITI دون الحاجة لخطوة تجميع مسبقة.
  • تنفذ حزمة pi2e العرض التفاضلي لتقليل تحديثات الشاشة والقضاء على الوميض باستخدام بروتوكول CSI 2026.
  • يدعم PI التنفيذ المتوازي للأدوات افتراضياً لتسريع معالجة المهام المتعددة.

تمتلك الملحقات في PI صلاحيات توازي نواة النظام، حيث يمكنها تسجيل اختصارات لوحة المفاتيح والاشتراك في أحداث دورة حياة الوكيل. يرفض النظام تضمين MCP أو نظام أذونات مدمج، موجهاً المستخدمين لبناء هذه الوظائف كملحقات إذا لزم الأمر. تعتمد أدوات التعديل تنسيق الفرق الموحد (Unified Diff) وتخضع جميع المدخلات للتحقق بواسطة AJV قبل التنفيذ.

دليل اختيار الوكيل المناسب لسير العمل

  • يتفوق Open Code في بيئات العمل التي تتطلب أماناً فورياً وتكاملاً مع LSP و MCP.
  • يعد PI الخيار الأمثل للمطورين الذين يفضلون فلسفة Unix والأدوات الصغيرة القابلة للتركيب والتخصيص العميق.
  • يدعم كلاهما واجهات OpenAI، مما يجعل التجربة العملية على قاعدة كود حقيقية هي الفيصل النهائي.

يعتبر Open Code منتجاً ناضجاً يوفر حاجز دخول منخفض بفضل واجهاته المتعددة (سطح المكتب، الويب، الطرفية). بينما يستهدف PI المستخدمين المتقدمين الذين يقضون وقتاً في تخصيص أدواتهم مثل Neovim، حيث يوفر أقوى نظام ملحقات متاح. تظل الميزة التنافسية لـ Open Code في دعم اللغات ذات الأنواع القوية، بينما تكمن قوة PI في مرونة إدارة الجلسات وتوفير الموارد.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video