Claude Code + Multica = إعداد وكيل الذكاء الاصطناعي المثالي

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

Transcript

00:00:00حسناً، تدّعي Multicore أنها الأداة التي يمكنها تحويل عملائك إلى زملاء عمل حقيقيين،
00:00:05بحيث يمكن إعداد Claude Code وOpenCode وCodex CLI وHermes وغيرها باستخدام
00:00:11مطالبات النظام الخاصة بها ومهاراتها الخاصة وتعيين مهام لها مع تحديثات الحالة، ويمكنها تنبيهك
00:00:16إذا احتاجت إلى مساعدتك، وجدولة المهام المتكررة، ويمكنك التحدث مباشرة إلى عميلك.
00:00:21لكن هل تستحق هذه النسخة مفتوحة المصدر من إجراءات Claude والعملاء المدارين وقتك حقاً؟
00:00:27اضغط على اشتراك ودعنا نكتشف ذلك.
00:00:32الآن، الطريقة المقصودة لاستخدام Multicore هي تثبيتها على جهاز عملك، الذي يحتوي بشكل مثالي
00:00:37على عميل برمجة يعمل عبر الطرفية مثل Claude Code أو OpenCode، ثم توصيله بـ
00:00:42واجهة مستخدم سحابية لـ Multicore.
00:00:44لكننا لن نفعل ذلك، سنتبع مسار الاستضافة الذاتية بالكامل.
00:00:48لذا سنقوم بتثبيت Multicore على خادم افتراضي خاص (VPS)، وسأشرح السبب لاحقاً.
00:00:52في الواقع، عادةً ما أتخطى مرحلة الإعداد بأكملها، ولكن بالنسبة للاستضافة الذاتية مع Multicore، هناك
00:00:58بضعة أشياء كان عليّ اكتشافها لم تكن موجودة في الوثائق.
00:01:01لذا سنستعرض ذلك أولاً قبل المرور ببعض الأمثلة حول كيفية استخدامه.
00:01:05لقد قمت بالفعل بإعداد Multicore على خادم Hetzner VPS جديد عن طريق تشغيل هذا الأمر، وسيؤدي ذلك
00:01:10إلى استخدام Docker لتثبيت Multicore.
00:01:12لذا تأكد من تثبيت Docker على خادمك الافتراضي.
00:01:15وعند تشغيل كل شيء، سيكون لديك ثلاث حاويات تشغل واجهة Multicore الخلفية،
00:01:19والتي أعتقد أنها مكتوبة بلغة Go، وواجهة Multicore الأمامية، وهي TypeScript وNext.js،
00:01:24وقاعدة بيانات Postgres المستخدمة لتخزين معلومات الجلسة.
00:01:27بعد ذلك، ستحتاج إلى تشغيل أمر إعداد الاستضافة الذاتية لـ Multicore.
00:01:30لكن واجهتني بعض المشاكل في ذلك.
00:01:31لذا إذا قمنا بتشغيل أمر الاستضافة الذاتية، وإذا قمت بإعادة تعيين إعداداتي الحالية
00:01:35ومساحة عملي، سترى أنه يطلب مني المصادقة عبر هذا الرابط، الذي سينقلك
00:01:39إلى هذه الشاشة.
00:01:40وإذا أضفت عنوان بريدك الإلكتروني وضغطت على متابعة، فسيتعين عليك إدخال رمز إعادة الإرسال.
00:01:45لقد واجهت الكثير من المتاعب مع هذا القسم.
00:01:48لذا أوصيك بتجنب عملية إعادة الإرسال هذه تماماً من خلال الدخول إلى
00:01:53دليل خادم multicore.، وفتح ملف env، وتأكد من ضبط بيئة التطبيق على
00:01:58التطوير (development)، وتأكد أيضاً من أن قيمة مفتاح Resend API فارغة.
00:02:02سيجعل هذا الرمز بهذه القيمة.
00:02:04بمجرد القيام بذلك، ابق داخل هذا الدليل وقم بتشغيل هذا الأمر لإعادة تشغيل الحاويات
00:02:09باستخدام ملف متغيرات البيئة المحدث.
00:02:11وبعد القيام بذلك، يجب أن تكون قادراً على تسجيل الدخول باستخدام ستة أرقام ثمانية.
00:02:15الآن لم ننتهِ تماماً بعد.
00:02:17من هنا، اذهب إلى بيئات التشغيل (runtimes)، ويمكنك أن ترى أن لدي بيئتي تشغيل مختلفتين مثبتتين،
00:02:21لكن يجب ألا يكون لديك أي شيء لأنه لم يتم إعداده بعد.
00:02:24إذا قمت بتشغيل حالة برنامج Multicore Daemon، يمكنك أن ترى الآن أن حالتي قيد التشغيل وتستخدم هذه
00:02:28العملاء مع مساحة عمل واحدة، لكن يجب أن يظهر لديك خطأ.
00:02:32وهذا لأنك تحتاج أولاً إلى تثبيت أداة برمجة عبر الطرفية على خادمك الافتراضي.
00:02:36لذا فقد قمت بتثبيت Claude Code وOpen Code.
00:02:39ومن أجل توصيل بيئة التشغيل تلك بمثبت Multicore الخاص بك، سيتعين عليك الانتقال إلى الإعدادات،
00:02:44ورموز API، ثم إنشاء رمز API جديد، ثم تشغيل أمر تسجيل الدخول لـ Multicore مع علم الرمز
00:02:50ولصق رمزك هنا.
00:02:52بعد ذلك، إذا كان لديك برنامج Multicore Daemon يعمل، فأوقفه قبل البدء به مرة أخرى.
00:02:56يتحقق برنامج Daemon في Multicore من ملفات تنفيذ الـ harness المثبتة، ويستعلم عن المهام من Multicore
00:03:01لتقديمها للعملاء ويقوم بإنشاء عملاء متعددين باستخدام أشجار العمل (work trees) من أجل إنجاز هذه المهام.
00:03:07تم.
00:03:08لذا بمجرد القيام بذلك، يجب أن يظهر برنامج Daemon الآن بيئات التشغيل المتاحة لديك.
00:03:11وجمال توصيله بهذه الطريقة هو أنه يمكنك إضافة أجهزة متعددة إلى
00:03:15مثبت Multicore الخاص بك.
00:03:16لذا إذا كان لديك خوادم افتراضية متعددة، يمكنك تثبيت Multicore على جميعها وتوصيلها
00:03:20بواجهة مستخدم واحدة باستخدام رموز API المختلفة الخاصة بك.
00:03:23حسناً، بعد الانتهاء من الإعداد، دعنا نستعرض بعض المهام البسيطة مع Multicore.
00:03:28ولن أستعرض الإمكانات الكاملة.
00:03:30لذا فإن وجود عملاء متعددين مع مشاريع متعددة وإضافة مهام متعددة، أريد فقط أن أوضح
00:03:35لك ميزات فردية حتى تتمكن من تخيل مدى قوة Multicore، إذا كانت هذه هي الطريقة
00:03:39التي تود العمل بها.
00:03:40قبل أن تتمكن من القيام بأي شيء باستخدام Multicore، سيتعين عليك إنشاء عميل.
00:03:43وقد قمت بالفعل بإنشاء واحد هنا يسمى Medibot، ولكن يمكنك إنشاء واحد بالنقر فوق زر الجمع هذا
00:03:48واتباع التعليمات.
00:03:50إذن هذا الروبوت الطبي مشابه أو لديه مطالبة نظام مشابهة لتلك التي قمت بإنشائها في فيديو
00:03:56العملاء المدارين من Claude الذي يحصل ببساطة على معلوماتي الطبية من مستودع GitHub خاص، و
00:04:02يمكنني التحدث معه عبر Slack.
00:04:04الآن لأن لدي المزيد من الحرية مع Multicore بمعنى أن لدي خادمي الافتراضي الخاص
00:04:08ويمكنني إدارة ذلك مباشرة، بدلاً من جعل هذا العميل يستنسخ ذلك المستودع من
00:04:12GitHub، فقد قمت بالمضي قدماً واستنسخته بنفسي في هذا الدليل.
00:04:16الآن بالإضافة إلى مطالبات النظام، يمكنك إعطاء عميلك مهارات مخصصة.
00:04:19لاحظ أن العميل سيتمكن من الوصول إلى المهارات التي قمت بتثبيتها على واجهة سطر الأوامر (CLI) الخاصة بك، ولكن يمكنك
00:04:24إضافة مهارات مباشرة في واجهة المستخدم إذا كنت تريد ذلك هنا، وهو ما قمت به كمهارة اختبار، ولكن
00:04:29لن أقوم بإضافتها إلى العميل.
00:04:30هناك أيضاً بيئات وكذلك وسائط مخصصة.
00:04:33نظراً لأن العملاء يستخدمون أداة CLI، في هذه الحالة، سيستخدم open code run، يمكنني
00:04:37إضافة أعلام مخصصة إذا كنت أريد أن يستخدم هذا العميل نموذجاً معيناً فقط وهكذا.
00:04:42ولكن افتراضياً، سيستخدم العميل النموذج الموجود لديك في CLI.
00:04:46لذا إذا قمت بتشغيل open code الآن، يمكنك أن ترى أنه يستخدم نموذج big pickle من OpenCodeZen.
00:04:50الآن يمكنني إنشاء مهمة أو قضية بالنقر هنا، وسأطلق على هذه القضية اسم سؤال طبي
00:04:54مع مطالبة "هل يمكنك التحقق من معلوماتي الطبية وإخباري إذا كان بإمكاني
00:04:59تناول الكالاماري".
00:05:00الآن إذا كنت قد استخدمت أي أداة لتتبع القضايا من قبل، فسيظهر هذا مألوفاً جداً.
00:05:04يمكنك تحديد الأولويات، وتعيين الأشخاص، وإضافة تواريخ الاستحقاق، وما إلى ذلك.
00:05:08ولكنني أوصيك بشدة بإنشاء القضية دائماً قبل تعيين شخص ما لأن
00:05:13بمجرد تعيين روبوت لهذه القضية، يبدأ العمل عليها على الفور.
00:05:17للتأكد من أنك مرتاح لكل ما كتبته، تحقق جيداً.
00:05:21وبمجرد الانتهاء، قم بتعيينها لروبوت.
00:05:23لذا سأقوم بتعيينها لـ Medibot وإنشاء القضية.
00:05:26ومن هناك، سيبدأ الروبوت العمل عليها.
00:05:28يمكنني تتبع الأمر داخل القضايا هنا.
00:05:30وإذا نقرنا على القضية، يمكننا أن نرى أن Medibot يعمل على الفور.
00:05:34الآن بينما يتم ذلك، سأنقر على الطيار الآلي (autopilot).
00:05:36وهذه هي النسخة مفتوحة المصدر من إجراءات Claude.
00:05:39يمكننا النقر على البدء من الصفر ويمكننا تحديد عميل ويمكننا ضبط عدد المرات التي
00:05:44نريد فيها تشغيل هذه المهمة.
00:05:45الآن على عكس إجراءات Claude، لا يوجد خيار لمشغلات API أو مشغلات أحداث GitHub.
00:05:51ربما سيأتي ذلك في المستقبل.
00:05:53ولكني سأعطي هذا مطالبة مشابهة لفيديو إجراءات Claude لجلب أحدث
00:05:57قضايا هذه النشرات الإخبارية الثلاث عبر RSS.
00:06:00وبمجرد الحصول على هذه القضايا، اعثر على أفضل 10 مقالات يمكن استخدامها في فيديو YouTube.
00:06:05سيحدث هذا يومياً في الساعة 9 صباحاً بتوقيت لندن.
00:06:08ومن الناحية المثالية، ستحتاج إلى عميل متخصص في البحث يجيد اختيار مواضيع لـ YouTube.
00:06:14ولكن في الوقت الحالي سنلتزم بـ Medibot وسنضغط على إنشاء.
00:06:17ثم يمكننا النقر على هذا الطيار الآلي والنقر على تشغيل الآن فقط لرؤيته أثناء العمل.
00:06:21سيؤدي ذلك إلى إنشاء قضية جديدة في قائمة المهام (todo).
00:06:23وسنتركه يعمل لبضع دقائق ونعود للتحقق من قضيتنا الأخرى، التي
00:06:28تم نقلها الآن إلى "قيد المراجعة" (in review) بواسطة العميل.
00:06:30لذا هنا، يقول إنه بناءً على سجلاتي الطبية، لدي حساسية من المحار، وهو أمر صحيح و
00:06:35يجب ألا أتناول الكالاماري، ثم يقدم المزيد من المعلومات هنا حول حساسيتي.
00:06:40ويمكننا أيضاً النقر هنا لرؤية ما فعله العميل بالضبط.
00:06:43لذا يمكننا توسيع سجل التنفيذ ورؤية أنه قام ببعض استدعاءات أدوات Bash.
00:06:48في الواقع، الكثير من استدعاءات أدوات Bash للبحث عن دليل المعلومات الطبية وتركه يبحث في
00:06:53كامل دليل المنزل قبل العثور عليه والتحقق من معلوماتي الطبية لإعطاء العميل
00:06:59المعلومات الصحيحة.
00:07:00رائع.
00:07:01ومن هنا، يمكنني حتى الرد، شكراً على المعلومات.
00:07:04لماذا وضعت هذا في "قيد المراجعة" بدلاً من نقله إلى "تم"؟
00:07:07لذا سنترك ذلك للعميل.
00:07:09وإذا كنت لا تريد تتبع ما يقوله العميل يدوياً، يمكنك أيضاً الحصول على
00:07:12إشعارات من العميل.
00:07:14لذا هنا هو الرد من العميل الطبي.
00:07:16وقد حصلت أيضاً على تحديث من الطيار الآلي الخاص بنا.
00:07:19إليك واحد تم تشغيله تلقائياً منذ ساعة، ولكن هذا هو الذي قمنا بتشغيله للتو وقد
00:07:22انتهى للتو.
00:07:23لذا يمكننا أن نرى هنا أن هذه هي المطالبة التي أعطيتها له، وقد قام بتنفيذ المطالبة و
00:07:27يعطيني رداً.
00:07:28لذا إليك أفضل 10 اختيارات مع barn، وtemporal API، وهكذا.
00:07:33الآن المثير للاهتمام هنا هو أن العميل لن ينقل قضية بمجرد أن تصبح في "قيد المراجعة" مرة أخرى
00:07:37إلى "قيد التقدم" (in progress) و"قائمة المهام" (to do)، يمكنك أنت كإنسان القيام بذلك تلقائياً بالطبع.
00:07:41لذا يمكنني نقل هذا إلى "قيد التقدم" أو نقله إلى "محظور" إذا أردت ذلك.
00:07:45ولكن على الرغم من أنني سألت العميل الطبي سؤالاً، إلا أنه لم يعد إلى "قيد التقدم"
00:07:49أثناء إجابته على السؤال.
00:07:51إنه يبقى فقط في "قيد المراجعة" لذا أحتاج للنقر عليه لمعرفة متى ينتهي ويمكننا أن نرى
00:07:55لماذا نقله إلى "قيد المراجعة" منذ أن أصبحت خطوة سير العمل القياسية بدلاً من نقله
00:08:00إلى "تم".
00:08:01لذا فهو ينتظر مني، الإنسان، نقله إلى "تم"، وهو أمر منطقي نوعاً ما.
00:08:05من هنا يمكنني الاستمرار في التحدث إلى العميل، وترك رد، وترك تعليقات، وإرفاق
00:08:09ملفات ورموز تعبيرية، أو إذا كنت أريد فقط طرح سؤال عابر دون المرور بـ
00:08:14عملية تتبع القضايا بأكملها، يمكنني النقر هنا والتحدث إلى عميلي مباشرة.
00:08:18الآن لأكون صادقاً، لست من أكبر المعجبين بالتواصل مع العملاء عن طريق تعيين
00:08:22مهام ومشاهدتها تتقدم عبر لوحة Kanban.
00:08:25لهذا السبب لم أجرب مشاريع مثل Paperclip أو Vibe Kanban.
00:08:29أنا لا أهتم حقاً بالأولويات أو تواريخ الاستحقاق، أميل للعمل على مشروع واحد أو ربما مشروعين
00:08:34في كل مرة مع العملاء وأحب أن يكون لدي المزيد من الحوار مع عملائي، وأرى بالفعل
00:08:39ما يفعلونه، والأدوات التي يستخدمونها والمشكلات التي يواجهونها حتى أتمكن من المساعدة في تصحيح الأخطاء معهم.
00:08:45ولكن هذا لا يعني أنني لا أحب فكرة Malteka، في الواقع أحب ميزة المهام المجدولة
00:08:50وأحب حقيقة أنه يمكنك استضافتها ذاتياً بالكامل وأعتقد أيضاً أنها أداة صلبة جداً
00:08:55تعد أرخص بكثير إذا كنت تستخدم نموذجاً مختلفاً بدلاً من استخدام بعض العملاء المدارين
00:08:59من Claude أو إجراءات Claude.
00:09:02ولكني سأقول إنها تقنية إلى حد ما في عملية إعدادها، يجب أن تعرف نوعاً ما
00:09:06ما تفعله، خاصة إذا كنت تريد الحفاظ على الأشياء آمنة وهذه هي ميزة
00:09:11العملاء المدارين أو الإجراءات التي تهتم بكل هذه الأشياء من أجلك من خلال استضافة الأشياء
00:09:16على البنية التحتية لـ Topics وحقيقة أنه يمكنك استخدام الموصلات للتواصل مع
00:09:20عميلك تجعل الأمور أسهل قليلاً لأنه إذا كنت تريد القيام بنفس الشيء في Malteka،
00:09:24حسناً يمكنك استخدام الموقع المستجيب على هاتفك ولكن سيتعين عليك وضع الأشياء يدوياً
00:09:29معاً إذا كنت تريد استخدام Slack أو Telegram أو Discord.
00:09:33وهذا هو السبب في أنني اخترت مسار الاستضافة الذاتية فقط بسبب الأمان، إذا كان هناك شيء
00:09:37متصل بالإنترنت فمن المؤكد أنه قابل للاختراق، أعني أنه يمكنك استخدام Malteka بالكامل
00:09:41محلياً، لذا قم بتثبيتها على جهازك المحلي وقم بتشغيل واجهة المستخدم محلياً بحيث لا تكون متصلة
00:09:46بالإنترنت، ولكن إذا كنت تريد توصيلها بالإنترنت فأنا أوصي باتباع
00:09:50مسار الاستضافة الذاتية باستخدام Tailscale بحيث لا يكون خادمك مكشوفاً تماماً والتأكد من أنك
00:09:55محدث دائماً بأحدث الإصدارات.

Key Takeaway

يوفر Multicore بديلاً مفتوح المصدر للاستضافة الذاتية يتيح تحويل أدوات البرمجة عبر الطرفية مثل Claude Code إلى وكلاء أتمتة قابلين للجدولة مع تحكم كامل في البيانات والبنية التحتية.

Highlights

يُشغل Multicore ثلاث حاويات Docker منفصلة تشمل الواجهة الخلفية بلغة Go، والواجهة الأمامية بـ Next.js، وقاعدة بيانات Postgres.

يتجاوز تعطيل خدمة Resend API في ملف env الحاجة إلى رمز التحقق أثناء إعداد الاستضافة الذاتية.

يسمح نظام Multicore Daemon بربط أجهزة وخوادم افتراضية متعددة بواجهة مستخدم واحدة باستخدام رموز API منفصلة.

يوفر Multicore ميزات أتمتة المهام المتكررة والجدولة، مما يغني عن بعض الإجراءات المدارة الأكثر تكلفة.

يمكن استضافة Multicore محلياً بالكامل أو عبر خادم افتراضي خاص لتجنب كشف البنية التحتية للإنترنت المباشر.

Timeline

إعداد الاستضافة الذاتية

  • يستخدم النظام Docker لتشغيل المكونات الأساسية الثلاثة: الواجهة الخلفية، الأمامية، وقاعدة بيانات Postgres.
  • تتطلب عملية الربط تثبيت أداة CLI للبرمجة وتكوين رموز API لربط بيئات التشغيل بـ Daemon.
  • يؤدي تعطيل Resend API في ملف الإعدادات إلى تبسيط عملية الدخول وتجاوز عقبات التحقق بالبريد الإلكتروني.

يركز الإعداد على تثبيت Multicore على خادم افتراضي خاص (VPS) باستخدام Docker. يواجه المستخدمون عقبة تقنية في نظام المصادقة، لذا يتم تعديل ملف .env لضبط بيئة التطوير وتفريغ مفتاح Resend API. يتصل النظام بأدوات مثل Claude Code عبر تسجيل الدخول باستخدام رموز API، مما يسمح بإدارة مهام برمجية متعددة عبر لوحة تحكم واحدة.

تنفيذ المهام والأتمتة

  • يتم إنشاء العملاء (مثل Medibot) وتخصيص مهامهم بناءً على ملفات محلية بدلاً من الاستنساخ المباشر من GitHub.
  • يعمل الطيار الآلي (Autopilot) كبديل مفتوح المصدر لإجراءات Claude، مع إمكانية جدولة مهام مثل جلب بيانات RSS يومياً.
  • تنتقل القضايا تلقائياً إلى حالة 'قيد المراجعة' بعد تنفيذ العمل، مما يتطلب تدخلاً بشرياً للنقل إلى حالة 'تم'.

يوضح هذا الجزء كيفية إدارة المهام البرمجية والبحثية. يتم تعيين مهام محددة للوكلاء الذين يستخدمون استدعاءات أدوات Bash للوصول إلى الملفات المحلية وتحليلها. يتيح نظام الطيار الآلي أتمتة المهام الروتينية، مثل تصفية المقالات البرمجية، وتوفير سجل تنفيذي مفصل لكل خطوة اتخذها الوكيل.

التقييم الفني والأمني

  • يفضل العمل المباشر والحواري مع الوكلاء على نمط إدارة المهام عبر لوحات Kanban.
  • توفر الاستضافة الذاتية مزايا أمنية وتكلفة أقل مقارنة بالخدمات المدارة، لكنها تتطلب خبرة تقنية أكبر في الإعداد.
  • يُنصح باستخدام Tailscale للاتصال الآمن عند ربط الخوادم المستضافة ذاتياً بالإنترنت.

يناقش هذا الجزء المقايضات بين سهولة الخدمات المدارة والتحكم في الاستضافة الذاتية. بينما تفتقر الاستضافة الذاتية للموصلات الجاهزة لـ Slack أو Telegram، فإنها تمنح المستخدم سيطرة كاملة على الأمان. يوصى باتباع ممارسات تقنية مثل استخدام Tailscale لضمان عدم كشف الخوادم للإنترنت العام.

Community Posts

View all posts