عملاء Anthropic المدارون مختلفون (إليك السبب)

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

Transcript

00:00:00لقد أصدر فريق Claude ميزة "العملاء المدارين" (managed agents)، وهو ما يطلقون عليه التطور التالي
00:00:09بعد حزمة تطوير البرمجيات الخاصة بالعملاء (agent SDK).
00:00:11هذا شيء يتيح لك إنشاء عملاء مخصصين دون كتابة سطر برمجيات واحد.
00:00:16ويعمل هؤلاء العملاء على بنية Anthropic التحتية المدارة، والتي تتمتع بهيكلية رائعة جدًا
00:00:22مثالية لتقديم عملاء آمنين وقابلين للتوسع وجاهزين للإنتاج يمكنهم فعل أي
00:00:27شيء تريده تقريبًا.
00:00:28يمكنهم أيضًا الرد على استفسارات العملاء بناءً على قاعدة معرفتك، أو حتى إجراء أبحاث منتظمة
00:00:32لك وإرسالها إليك في وقت محدد باستخدام Slack.
00:00:36ولكن لماذا قد يستخدم أي شخص هذا بدلاً من تثبيت كود Claude على خادمه الخاص (VPS)؟
00:00:40اضغط على زر الاشتراك ولندخل في التفاصيل.
00:00:46ولكن قبل أن نبدأ، دعونا نتحدث قليلاً عن Anthropic لأنهم كانوا مشغولين للغاية
00:00:49في الأسابيع القليلة الماضية.
00:00:50أعني أنهم منعوا مؤخرًا الأشخاص من استخدام اشتراك Claude على أدوات
00:00:55طرف ثالث مثل OpenClaw، وهو ما يعتقد الناس أنه بسبب العملاء المدارين، لكنهما
00:01:00ليسا نفس الشيء تمامًا.
00:01:01أعني، أود أن أقول إن OpenClaw يشبه إلى حد ما نظام Linux.
00:01:04إنه عميل للمبتكرين والهواة.
00:01:06تختار أجهزتك الخاصة، وتختار النموذج الخاص بك، وتتعامل مع الأمان وكل شيء
00:01:11بينهما.
00:01:12بينما تشبه ميزة Claude المدارة شركة Apple، إذا جاز لي القول، لأنك لست بحاجة إلى
00:01:17القيام بأي من تلك الأشياء.
00:01:19تتولى Claude مسؤولية البنية التحتية والأمان، أنت فقط تخبرها بما تريده
00:01:24بلغة إنجليزية بسيطة، وسوف تمضي قدمًا وتبني لك عميلك المثالي.
00:01:28في الواقع، دعني أريك مدى سهولة ذلك من خلال استعراض مثال بسيط وشخصي للغاية.
00:01:34لدي مستودع GitHub خاص يحتوي على جميع معلوماتي الطبية المستخرجة من
00:01:39تطبيق NHS.
00:01:40وأريد التواصل مع تلك البيانات أو الحصول على معلومات منها باستخدام Slack.
00:01:45حتى أتمكن من استخدامها من حاسوبي المكتبي، أو هاتفي المحمول، في أي مكان أتواجد فيه.
00:01:49بين هذين الشيئين، أود أن يقوم عميل Claude المدار بمهام استخراج
00:01:54البيانات، أي استخدام الأدوات للحصول على المعلومات الصحيحة وترجمتها بطريقة يمكنني فهمها.
00:02:01هكذا.
00:02:02للبدء، يمكنني الذهاب إلى واجهة تحكم Claude، والانتقال إلى خيار العملاء المدارين الجديد
00:02:07والكتابة هنا باللغة الطبيعية لإنشاء العميل الخاص بي من الصفر.
00:02:11الآن سيتواصل هذا مع واجهة برمجة تطبيقات Claude باستخدام أوامر curl وسيستضيف أي
00:02:16كود ضروري على بنية Anthropic التحتية.
00:02:19لكن يمكنني أيضًا استخدام مهارة العميل المدار بأي لغة أفضلها.
00:02:23في هذه الحالة، سأختار TypeScript وستستخدم هذه المهارة حزمة تطوير Claude لـ TypeScript
00:02:29لإنشاء عميل لي.
00:02:31للقيام بذلك، ستحتاج إلى هذا الإصدار من كود Claude أو إصدار أعلى، والذي يحتوي على
00:02:36مهارة العميل المدار المدمجة.
00:02:38في حالتي، لدي إصدار أعلى من ذلك ويمكنني تفعيل المهارة باستخدام أمر
00:02:42واجهة برمجة تطبيقات Claude المتبوع بـ managed agents onboarding.
00:02:46بعد أن أضغط على إدخال، يسألني عما إذا كنت أعرف نوع العميل الذي أريد بناءه، وهو ما
00:02:50لا أعرفه، لكننا سنرى ما سيفعله.
00:02:52ويخبرني أنه سيمر بي عبر هذه الخطوات الثلاث.
00:02:55الأدوات، والمهارات، والملفات، والمستودعات، ثم البيئة والهوية.
00:02:59من المدهش أنه يستخدم الكثير من السياق، لذلك قد يكون هناك بعض الضغط، لكننا
00:03:04سنرى ما سيحدث.
00:03:05على أي حال، سأعطيه أمرًا لإنشاء عميل طبي يقرأ ملفات markdown من
00:03:10مستودع GitHub خاص، ويفهم المعلومات كطبيب ويسمح لي بالتواصل
00:03:15معه باستخدام Slack.
00:03:17ثم يوصيني باستخدام مجموعة الأدوات المعدة مسبقًا، مثل read و glob و grep وألا
00:03:22أستخدم write أو edit أو bash، حيث لا يوجد سبب للطبيب لتعديل المستودع، وهذا منطقي.
00:03:27كما يسأل عن رابط المستودع، لذا سأخبره بالمضي قدمًا في الأدوات الموصى بها
00:03:31والأذونات، وسأعطيه رابط المستودع.
00:03:35بعد ذلك، يقترح ما يجب أن تكون عليه الجولة ب والجولة ج، وبما أن هذا
00:03:39عميل أساسي للغاية، فهي واضحة تمامًا.
00:03:41ثم ينشئ موجه نظام (system prompt) لعميلي، ويقترح النموذج الذي يجب
00:03:45استخدامه.
00:03:46سأخبره باستخدام Sonnet لأنني لا أريد إنفاق الكثير من المال على Opus.
00:03:49سأشرح السبب لاحقًا، ولكن بخلاف ذلك، يبدو هذا جيدًا وسأزوده بهذه
00:03:53الاعتمادات بالإضافة إلى اللغة التي أريدها.
00:03:56والآن أنشأ لي ملفين بلغة TypeScript.
00:03:59الأول هو الإعداد، والذي سيقوم بإعداد أشياء مثل البيئة، والعميل،
00:04:04وأي مهارات ضرورية داخل بنية Anthropic التحتية.
00:04:07والثاني هو وقت التشغيل (runtime)، وهو الشيء الذي سيتواصل بالفعل مع
00:04:12خوادم Anthropic ويرسل تلك المعلومات إلى Slack.
00:04:15لذا سأقوم بإعداد كل هذا وسأريكم كيف يبدو الأمر عندما ينتهي.
00:04:19بعد تشغيل ملف الإعداد هذا، يعطيني معرف البيئة، الموجود هنا.
00:04:24ويعطيني أيضًا معرف العميل، الموجود أيضًا هنا.
00:04:27وكما ذكرت سابقًا، يتم إنشاء هذه الأشياء على بنية Anthropic التحتية.
00:04:32لذا داخل واجهة تحكم Claude، يمكنني رؤية عميلي هنا، بالإضافة إلى البيئة التي
00:04:36أنشأتها للتو.
00:04:37لقد أنشأت أيضًا تطبيق Slack الخاص بي ووضعت جميع المعلومات داخل ملف .env الخاص بي لكي
00:04:42يستخدمها ملف apps.ts، مما يعني أنه إذا قمت بتشغيل هذا الملف، فسيقوم بتشغيل بوت Slack الخاص بي.
00:04:48لذا يمكنني سؤاله، ما هو النموذج الذي تستخدمه؟
00:04:50وبعد فترة يستجيب قائلاً: أنا Claude من صنع Anthropic.
00:04:54هل هناك شيء طبي يمكنني مساعدتك به؟
00:04:56هذا رائع جدًا.
00:04:57لكن الأروع هو أنه يمكنني رؤية الجلسة هنا في واجهة تحكم Claude.
00:05:01نعم، لقد كنت أختبر هذا عدة مرات وهنا نحصل على مزيد من التفاصيل عما حدث.
00:05:04إذا قمت بإغلاق هذا لتكبيره، يمكنك رؤية السؤال الذي طرحه المستخدم.
00:05:09ثم استخدم أداة رسائل Slack ثم استجاب العميل.
00:05:12لقد نسيت أن أذكر سابقًا كيف يعمل التسعير لهذا.
00:05:15إذا ذهبنا إلى الوثائق، يمكننا أن نرى أن جميع الرموز (tokens) المستخدمة من قبل العملاء المدارين
00:05:20يتم تسعيرها وفقًا لنموذج التسعير الذي تستخدمه واجهة برمجة تطبيقات Claude، الموجود هنا.
00:05:25للأسف، اشتراكك pro max أو team ليس مفيدًا للعملاء المدارين، ولكن بالإضافة إلى
00:05:30الدفع مقابل الرموز، سيتعين عليك أيضًا الدفع مقابل الجلسات، وهي 8 سنتات لكل ساعة
00:05:35جلسة.
00:05:36وهذا فقط عندما تكون الجلسة قيد التشغيل.
00:05:38لذا إذا عدت إلى واجهة تحكم Claude ونقرت على الجلسات لجميع هذه الجلسات الخاملة،
00:05:42فلن يتم تحصيلي.
00:05:43حسنًا، لنفعل شيئًا أكثر إثارة مع هذا البوت.
00:05:46سأسأله: بناءً على ما تعرفه عني طبيًا، هل من المقبول بالنسبة لي تناول
00:05:50الكالاماري؟
00:05:51لقد ذهب هنا واستخدم أداة bash للحصول على معلومات من المستودع.
00:05:56لقد قام بقراءتين للملفات، وبعد بضع ثوانٍ، أرسل لي رسالة Slack تخبرني
00:06:01أنه يجب علي توخي الحذر مع الكالاماري لأنني أعاني من حساسية تجاه الروبيان، وهذا صحيح.
00:06:06أود أن أقول إنه قدم الكثير من المعلومات متحدثًا عن حكة لساني وتورم الحلق
00:06:11وما إلى ذلك.
00:06:12لكن للأمانة، إنه يعمل بشكل جيد حقًا.
00:06:13في الواقع، لقد قمت بتعديل العميل قليلاً.
00:06:15إذا نقرنا هنا في واجهة تحكم Claude، يمكننا أن نرى أن هناك ثلاثة إصدارات تشير
00:06:19إلى أن هذا العميل قد تم تغييره ثلاث مرات.
00:06:21لقد غيرت موجه النظام لجعله يبدو بشريًا أكثر قليلاً وغيرت النموذج
00:06:26من Opus إلى Sonnet.
00:06:27هنا في واجهة المستخدم، يمكنني تغيير موجه نظام العميل، ويمكنني تغيير النموذج
00:06:32والأدوات التي يمكنه الوصول إليها، وهو أمر مفيد للاختبار.
00:06:35هذا كل شيء تقريبًا.
00:06:36باستثناء بعض التعديلات البرمجية الصغيرة التي اكتشفتها من خلال المراجعة المستمرة مع Claude، هكذا
00:06:41يكون بناء عميل بهذه السهولة.
00:06:44لا داعي لتعلم كيفية عمل حزمة تطوير عملاء Claude.
00:06:47يمكنك فقط التواصل مع Claude باستخدام مهارة وإنشاء عميلك الخاص.
00:06:51ولكن كيف يعمل كل هذا في الكواليس؟
00:06:54كتبت Anthropic مقالاً مفصلاً للغاية حول كيفية عمل كل شيء، وسأترك
00:06:58رابطًا له في الوصف.
00:07:00لكنني سأقول إن الهيكل بالكامل يتكون من ثلاثة مكونات رئيسية.
00:07:05الجلسة (session) والعدة (harness) والتنسيق (orchestration)، وهذا لا يعني أن البيئة المعزولة (sandbox) والأدوات أقل
00:07:09أهمية، لكنني سأقول إن هذه الثلاثة فريدة جدًا.
00:07:12العدة، المعروفة أيضًا باسم أيدي النظام، هي المكان الذي يتم فيه استخدام نموذج Claude.
00:07:17وتعرف أيضًا باسم الموجه عديم الحالة (stateless router) لأنها توجه استدعاءات الأدوات والموارد وبروتوكولات MCP إلى
00:07:23مكانها المناسب أو تشغل الكود وتعدل الملفات في بيئة معزولة.
00:07:28سأتحدث عن فوائد فصل استدعاءات الأدوات عن العدة
00:07:32نفسها.
00:07:33لكن الجلسة هنا تشبه ذاكرة النظام وتحتوي على سجلات للعدة لا يمكن إلا الإضافة إليها (append only).
00:07:37إليها.
00:07:38قد تعتقد أن العدة هي كود Claude، لكنها في الواقع عدة مخصصة
00:07:43للعملاء المدارين.
00:07:44سأشرح السبب أيضًا بعد قليل.
00:07:47وأخيرًا، المنسق (orchestrator) هو الذي يقرر الأوضاع التي يجب أن تكون عليها العدة.
00:07:51مثل وضع البناء والخطة وما إلى ذلك.
00:07:54والأهم من ذلك، أنه ينشئ عدة جديدة إذا فشلت هذه العدة.
00:07:58تخيل أن لديك عدة هنا تفشل أو تتوقف.
00:08:02يمكن للمنسق إنشاء عدة جديدة.
00:08:04وبما أن سجلات الجلسة منفصلة عن العدة نفسها، يمكن للعدة الجديدة قراءة
00:08:09السجلات لمعرفة ما كان يحدث ومن أين تبدأ بالضبط.
00:08:13في الواقع، النظام بأكمله مصمم للتوسع.
00:08:15لذا يمكنك الحصول على عدد غير محدود من النماذج والبيئات، وستتمكن الهيكلية
00:08:20من التعامل مع ذلك.
00:08:21فائدة أخرى لهذه الهيكلية هي جانب الأمان.
00:08:25إذا عدت إلى واجهة تحكم Claude ونقرت على خزنة الاعتمادات، يمكنك أن ترى أن
00:08:30الاعتمادات مخزنة في مكان آمن.
00:08:32الآن، إذا كان لدي عميل يعمل محليًا، فقد يكون ذلك ملف .env أو شيئًا مخصصًا
00:08:36وضعته.
00:08:37لكن إذا كنت أستخدم واجهة تحكم Claude أو واجهة المستخدم، فسيتم تخزين جميع الاعتمادات
00:08:41هنا.
00:08:42والجميل في ذلك هو أنه يتم استدعاء هذه الاعتمادات في وقت التشغيل.
00:08:45لذا إذا كان لديك مفتاح واجهة برمجة تطبيقات خاص بـ MCP أو مفتاح خاص بأداة ما، فإن العدة أو النموذج
00:08:50لا يعرف أي شيء عنه ولا يمكنه الوصول إليه.
00:08:54فمثلاً، إذا كنت بحاجة لاستدعاء أداة الطقس MCP وكان لدي مفتاحها، فإن العدة
00:09:00ستستدعي الأداة وسيكون المفتاح موجودًا ضمن استدعاء الأداة نفسها أو بروتوكول MCP.
00:09:05وسيتم استخدامه في وقت التشغيل.
00:09:07بالمثل، إذا احتاجت البيئة المعزولة لاستخدام مفتاح، فسيتم تخزينه في الخزنة.
00:09:12وسيتم استخدامه أيضًا في وقت التشغيل ولن يعرف النموذج عنه شيئًا.
00:09:15في الواقع، إنه لا يعرف حتى عن مفتاح واجهة برمجة تطبيقات Anthropic الخاص به، بما أنه يُستخدم أيضًا
00:09:20في وقت التشغيل.
00:09:21أوصي بشدة بقراءة بقية هذا المقال للحصول على نظرة عامة مفصلة حول كيفية
00:09:25بناء النظام بأكمله، فهو فريد جدًا.
00:09:28بصراحة، أنا أستمتع حقًا بإنشاء عملاء Claude المدارين.
00:09:31أعني، هناك أشخاص يعتقدون أن هذا سيموت، تمامًا مثل عملاء OpenAI.
00:09:36المخصصة.
00:09:37إذا لم يمت عملاء OpenAI بعد، فيرجى إخباري في التعليقات لأنني لا أسمع
00:09:39الكثير عنهم.
00:09:40لكنني أعتقد أن هذا سيستمر لفترة طويلة لمجرد أنه من السهل جدًا
00:09:45إنشاء عميل.
00:09:46ليس عليك أن تتعلم عن حزم تطوير البرمجيات، وليس عليك استخدام الجهاز الطرفي (terminal) لإنشاء واحد إذا
00:09:51لم تكن ترغب في ذلك، ويمكنك تقريبًا القيام بكل عمليات الربط بخوادم وأدوات MCP كلها
00:09:56داخل واجهة المستخدم، وهو أمر رائع للأشخاص الذين لا يريدون كتابة أي كود.
00:10:01لكن يجب أن أقول شيئًا مخيبًا للآمال بعض الشيء وهو حقيقة أنه يجب عليك الدفع باستخدام
00:10:06رموز واجهة برمجة التطبيقات أو الدفع باستخدام فواتير واجهة برمجة التطبيقات، لأنني كمشترك في Claude Pro،
00:10:12كنت أود استخدام حدودي، أي الحدود التي تقع ضمن نطاق Pro على العملاء المدارين،
00:10:17حتى لا أضطر للدفع مقابل شيئين مختلفين.
00:10:20لكن بكل صراحة، ليس الأمر باهظ الثمن بجنون إذا استخدمت نموذجًا أرخص مثل Sonnet أو Haiku.
00:10:26وعلى الرغم من أنه منسق نوعًا ما، فكما ترون، يمنحك الوصول إلى Notion،
00:10:31وخوادم Slack MCP وما إلى ذلك، ولكن إذا كنت تريد إنشاء شيء لا يوجد ضمن
00:10:36تلك الحدود، فسيتعين عليك المضي قدمًا وكتابة الكود الخاص بك، وهو ما يتميز به
00:10:40OpenClaw حقًا.
00:10:41أعني، OpenClaw مفتوح للغاية، وهذا واضح من اسمه ولديه العديد من القنوات من Telegram إلى
00:10:46Discord إلى WhatsApp، بينما إذا كنت تريد فعل الشيء نفسه مع العملاء المدارين، فقد
00:10:51تضطر لبرمجة حلك الخاص أو جعل Claude يبرمج واحدًا لك.

Key Takeaway

تُقدم Anthropic بيئة مدارة بالكامل لإنشاء عملاء ذكاء اصطناعي آمنة وقابلة للتوسع بتكلفة 8 سنتات للساعة، حيث يتم فصل الذاكرة عن المعالجة لضمان استمرارية العمل وحماية بيانات الاعتماد في خزنة مشفرة.

Highlights

تسمح ميزة العملاء المدارين (Managed Agents) بإنشاء عملاء ذكاء اصطناعي مخصصين دون كتابة كود برمجى واحد عبر واجهة Anthropic.

تعتمد البنية التحتية لهذا النظام على فصل سجلات الجلسة عن محرك التشغيل، مما يتيح استئناف المهام فوراً عند حدوث فشل فني.

تبلغ تكلفة تشغيل الجلسة النشطة 8 سنتات لكل ساعة، بالإضافة إلى رسوم استهلاك الرموز (tokens) المعتادة في واجهة برمجة تطبيقات Claude.

تُخزن اعتمادات الوصول ومفاتيح API في خزنة آمنة (Credentials Vault) وتُستدعى فقط في وقت التشغيل دون كشفها للنموذج نفسه.

يوفر النظام أدوات مدمجة للقراءة والبحث مثل glob و grep و read، مع إمكانية ربطها بمنصات خارجية مثل Slack و GitHub و Notion.

يدعم الإصدار الأحدث من حزمة تطوير TypeScript تفعيل مهارة العميل المدار عبر أمر managed agents onboarding لبرمجة البيئة آلياً.

Timeline

مفهوم العملاء المدارين والفرق عن الحلول الذاتية

  • تمثل ميزة العملاء المدارين التطور التالي لحزمة تطوير البرمجيات (SDK) التقليدية.
  • يعمل هؤلاء العملاء على بنية Anthropic التحتية لضمان الأمان وقابلية التوسع للإنتاج.
  • يختلف النظام المدار عن الأدوات المفتوحة مثل OpenClaw في كونه يتولى مسؤولية البنية التحتية بالكامل.

تتم عملية البناء من خلال لغة إنجليزية بسيطة دون الحاجة لإدارة الخوادم أو الأجهزة. يتولى Claude إدارة الأمان والاتصال، بينما تتطلب الحلول المفتوحة من المستخدم اختيار الأجهزة والنموذج والتعامل مع ثغرات الأمان يدوياً. يوفر هذا النموذج سرعة في النشر للمؤسسات التي تسعى لحلول جاهزة.

خطوات بناء عميل طبي مخصص وربطه بـ Slack

  • يتطلب البدء بالبناء عبر الكود استخدام نسخة حديثة تدعم مهارة العميل المدار في TypeScript.
  • تتم عملية الإعداد عبر ثلاث مراحل تشمل الأدوات والمستودعات والبيئة والهوية.
  • ينتج عن عملية الإعداد ملفان أساسيان هما ملف الإعداد (Setup) وملف وقت التشغيل (Runtime).

يتصل العميل بمستودع GitHub خاص يحتوي على سجلات طبية بتنسيق markdown لقراءتها وتحليلها. يتم تحديد أذونات القراءة فقط للأدوات لضمان عدم قيام العميل بتعديل الملفات الحساسة. يقوم ملف الإعداد بتهيئة البيئة داخل بنية Anthropic، بينما يتولى ملف وقت التشغيل التواصل بين خوادم الشركة ومنصة Slack.

آلية التشغيل والمراقبة ونموذج التسعير

  • تظهر الجلسات النشطة والتفاصيل الدقيقة لاستخدام الأدوات داخل واجهة تحكم Claude.
  • تعتمد التكلفة على الدفع مقابل الرموز المستخدمة مضافاً إليها رسوم الجلسات الخاملة المجانية.
  • تسمح واجهة المستخدم بتعديل موجه النظام (System Prompt) وتغيير النموذج المستخدم بين Sonnet و Opus لحظياً.

يوفر النظام شفافية كاملة من خلال عرض سجلات استدعاء الأدوات، مثل استخدام أداة bash للبحث في المستودع الطبي. تبلغ تكلفة الساعة للجلسة النشطة 8 سنتات، ولا يتم احتساب رسوم على الجلسات الخاملة. يمكن للمطورين تجربة نماذج أرخص مثل Sonnet لتقليل التكاليف دون الحاجة لإعادة برمجة العميل.

الهيكلية التقنية ومعايير الأمان المتقدمة

  • تتكون الهيكلية من ثلاثة مكونات رئيسية هي الجلسة (Session) والعدة (Harness) والمنسق (Orchestrator).
  • تعمل الجلسة كسجل دائم ومنفصل لا يمكن حذفه، مما يحفظ ذاكرة النظام.
  • يقوم المنسق بإنشاء عدة جديدة تلقائياً في حال فشل العدة الحالية لضمان استمرارية العمل.

تعمل العدة كـ "موجه عديم الحالة" يقوم بتنفيذ الكود وإدارة بروتوكولات MCP في بيئة معزولة. يسمح فصل سجلات الجلسة عن محرك التشغيل للعدة الجديدة بقراءة السجلات ومعرفة نقطة التوقف بدقة. يضمن هذا التصميم قدرة النظام على التوسع والتعامل مع عدد غير محدود من النماذج والبيئات.

حماية الاعتمادات والمقارنة النهائية

  • تُعزل مفاتيح API الخاصة ببروتوكولات MCP تماماً عن وصول النموذج المباشر.
  • يتم استدعاء مفاتيح الأمان في وقت التشغيل فقط ضمن استدعاء الأداة نفسها.
  • يتفوق OpenClaw في المرونة وتعدد القنوات مثل Telegram و WhatsApp مقارنة بالقيود الحالية للعملاء المدارين.

تخزن خزنة الاعتمادات (Credentials Vault) جميع المفاتيح الحساسة، ولا يعرف النموذج حتى مفتاح API الخاص بـ Anthropic. يتميز النظام المدار بسهولة الربط مع Notion و Slack عبر واجهة المستخدم، لكنه يتطلب دفع فواتير API مستقلة عن اشتراكات Claude Pro أو Team. يظل الخيار المفتوح هو الأفضل لمن يرغب في تخصيص كامل للقنوات البرمجية.

Community Posts

View all posts