انتقل بروتوكول سياق النموذج (Model Context Protocol) من كونه مثيرًا للاهتمام إلى كونه هيكليًا بسرعة تفوق معظم معايير التكامل. تقوم Shopify بتوفير خوادم MCP لكل متجر؛ ويمكن للمساعدين الرئيسيين استدعاء أدوات على أنظمة خارجية؛ ويأتي جزء كبير من حركة الويب الآن من شيء مؤتمت بدلاً من تصفح بشري.
بالنسبة لأي شخص يدير منصة تجارة أو منتج SaaS، يطرح هذا سؤالًا عمليًا لا تبدو إجابته بديهية: لديك بالفعل واجهة برمجة تطبيقات — فلماذا يحتاج الوكيل إلى شيء مختلف؟
لماذا REST API الخاص بكم غير كافٍ
تم تصميم واجهة REST API لمطور يقرأ الوثائق، ويفهم مجال عملك، ويكتب الكود الذي يستدعي نقاط النهاية الصحيحة بالترتيب الصحيح. الوكيل لا يمتلك أيًا من هذه المزايا. لديه قائمة أدوات، ووصف لكل أداة، ومحاولة واحدة للاختيار الصحيح.
الفروقات المهمة هي:
- الاكتشاف. يجب على الوكيل أن يتعلم ما يمكن لنظامك القيام به أثناء وقت التشغيل، من الواجهة نفسها. يصف مواصفات OpenAPI نقاط النهاية؛ لكنه لا يصف النية.
- الدقة. واجهات REST API مصممة على شكل موارد: استرجع الطلب، استرجع العميل، استرجع عناصر السطر، وادمجها بنفسك. الوكيل يريد استدعاء واحد يجيب على ما هو وضع أحدث طلب لهذا العميل — مصمم حسب المهمة، وليس حسب المورد.
- الغموض. يحل المطور الأزرق، الحجم متوسط بقراءة نموذج المتغيرات الخاص بك. يحتاج الوكيل إلى أداة تقبل هذا التعبير وتقوم بالحل.
- معالجة الأخطاء. رمز
422مع كائن التحقق يساعد المطور. يحتاج الوكيل إلى خطأ يوضح ماذا يفعل بشكل مختلف، بالكلمات. - نطاق التأثير. خطأ المطور يُكتشف في مجموعة اختباره. خطأ الوكيل يحدث في الإنتاج، نيابة عن عميل، وبسرعة.
خادم MCP ليس غلافًا لواجهة برمجة التطبيقات الخاصة بك. إنه واجهة مختلفة، مصممة لمستهلك مختلف، ولكنه يعتمد على نفس منطق المجال.
صمّم الأدوات حول المهام، لا حول الموارد
العامل الأهم في مدى استخدام الوكيل لمنتجك بشكل جيد هو كيفية تسمية الأدوات وتحديد نطاقها. يُفضل وجود عدد قليل من الأدوات الموصوفة جيدًا والمصممة حسب المهمة بدلاً من تمثيل دقيق لنموذج بياناتك.
عادةً ما تبدو مجموعة أدوات منتج التجارة الأساسية كما يلي:
- search_products — استعلام بلغة طبيعية، نتائج مرتبة مع السمات اللازمة للاختيار بينها. ليست مجرد تفريغ خام للكتالوج.
- get_product_details — كل ما يلزم لاتخاذ القرار: المتغيرات، التوفر، توقعات التسليم، شروط المرتجعات.
- check_availability — الكمية والموقع، يتم الرد مباشرة بدلاً من الاستنتاج من كائن الرصيد.
- get_order_status — السؤال الذي يطرحه العملاء فعليًا، يُجاب عليه باستدعاء واحد.
- start_return — كتابة محمية، تخضع لقواعد الأهلية الحقيقية الخاصة بك.
- get_policy — شروط المرتجعات، الشحن والضمان كنص، حتى يقتبس الوكيل سياسة خاصة بك بدلاً من انطباعه عنها.
اكتب وصف الأدوات كما لو كان لزميل جديد كفء في يومه الأول: ما تفعله، متى تستخدمها، متى لا تستخدمها، وما الذي سترفضه. هذه الأوصاف هي دليل المستخدم الكامل الذي سيقرأه الوكيل، وهي أكثر فاعلية في ضمان الصحة من أي جودة نموذج.
أعد رفضات تعلم. لم يتم العثور على منتج. جرب استعلامًا أوسع، أو استدعِ search_products مع عدد أقل من عوامل التصفية. هذا أفضل من 404، لأن الوكيل يمكنه التصرف بناءً عليه.
ما الذي يجب ألا يكون أبدًا أداة؟
الاستثناءات أهم من الشموليات، لأن الأداة التي تعرضها هي أداة ستُستدعى في نهاية المطاف بطريقة لم تتوقعها.
- أي شيء يتعلق بأدوات الدفع. قم بالتشفير، وفوض، واحتفظ ببيانات البطاقة خارج سطح الوكيل تمامًا.
- تصدير البيانات بالجملة. أداة يمكنها إرجاع كتالوجك الكامل أو قائمة العملاء هي نقطة استخراج بيانات بأسلوب أفضل.
- العمليات الإدارية. تغييرات الأسعار، تعديلات المخزون، إدارة المستخدمين. إذا كانت في الإدارة، فهي ليست في خادم MCP.
- أي شيء بدون تحقق صلاحيات لكل مستأجر، يتم فرضه على الخادم في كل استدعاء.
- استعلامات عبر العملاء. يجب أن يكون الوكيل الذي يعمل نيابة عن عميل واحد غير قادر هيكليًا على رؤية بيانات عميل آخر — وليس فقط من غير المحتمل أن يطلب ذلك.
عامل كل وسيطة يرسلها الوكيل كمدخلات مستخدم غير موثوقة، لأنها كذلك — مشتقة من شيء كتبه شخص. تصل إليك حقن الأوامر عبر وسيطات الأدوات. تحقق من صحتها على الخادم كما تفعل مع نموذج عام.
المصادقة، الأذونات والقيود
هنا تكمن أضعف نقاط معظم التطبيقات، لأن الجزء المثير للاهتمام هو تصميم الأداة، والجزء الممل هو كل شيء آخر.
- قم بمصادقة الوكيل، وحدد بشكل منفصل من يمثله. هذان أمران مختلفان، وخلطهما يؤدي إلى وصول عبر العملاء.
- حدد نطاق الصلاحيات بدقة. الوكيل الذي يقوم باكتشاف المنتجات لا يحتاج إلى الوصول إلى تاريخ الطلبات. أصدر صلاحيات لكل غرض وانتهِ صلاحيتها.
- حدد معدل الاستدعاء لكل مستأجر ولكل أداة. الوكلاء يعيدون المحاولة بحماس. حد مناسب للبشر يُتجاوز بسهولة بواسطة حلقة.
- سجل كل استدعاء مع وسائطه ونتيجته. عندما يحدث خطأ، ستحتاج إلى إعادة بناء ما طُلب وما تم إرجاعه بالضبط. هذا السجل هو أيضًا خط الدفاع الأول لاكتشاف سوء الاستخدام.
- قم بإصدار نسخ لأدواتك. تغيير سلوك الأداة بصمت يكسر الوكلاء الذين تعلموا الاعتماد عليها، وعلى عكس تكامل المطورين، لا أحد سيقرأ سجل التغييرات.
- امنح أدوات الكتابة مفاتيح عدم التكرار. يجب ألا ينشئ الوكيل الذي يتوقف ويعيد المحاولة مرتين للمرتجعات.
البيانات الأساسية هي التي تحدد كل شيء
يكشف خادم MCP عن بيانات منتجك. إذا كانت هذه البيانات ضعيفة أو غير متسقة أو خاطئة، سيعرضها الوكيل بأمانة — بثقة، وبسرعة، للعميل.
قبل بناء الواجهة، كن صريحًا بشأن ما إذا كان الكتالوج خلفها قادرًا على دعمها. اكتمال السمات، تصنيف متسق، بيانات دقيقة عن الرصيد والتسليم، وسياسة مرتجعات موجودة كنص منظم وليس كملف PDF، كلها شروط أساسية. كتبنا خط الأنابيب الذي نستخدمه لجعل الكتالوج في هذه الحالة؛ هو عمل غير جذاب ولكنه المشروع الفعلي.
هل يستحق هذا أن يُبنى الآن؟
تقييم صريح، لأن هذا مجال سريع الحركة وهناك تكلفة حقيقية للبدء المبكر.
ابنِ الآن إذا: كنت تستخدم منصة تعرض بالفعل MCP وتقوم بتوسيعها؛ أو كان منتجك موجهًا للمطورين حيث أصبح الاستخدام بمساعدة الوكيل أمرًا معتادًا؛ أو كنت تبيع شيئًا من المحتمل أن يُطلب من مساعد العثور عليه نيابة عن العميل.
انتظر إذا: لم تكن بيانات منتجك في حالة تسمح لك بأن يقتبسها الجهاز حرفيًا برضاك؛ أو لم تكن لديك القدرة على مراقبة وتطوير واجهة الوكيل الحي؛ أو إذا كان عملاؤك لا يتواصلون معك بهذه الطريقة وقد تحققت من ذلك بدلاً من الافتراض.
في كلتا الحالتين، قم بالعمل التحضيري الآن. بيانات المنتج النظيفة، السياسات المنظمة، وواجهة برمجة تطبيقات مهيكلة على شكل مهام هي ذات قيمة بغض النظر عن البروتوكول الذي سيفوز، وهي العنصر الأساسي. طبقة MCP أعلاه سريعة نسبيًا.
ممارستنا في Node.js تبني هذه الواجهات، والسؤال الأوسع حول مكان قنوات الوكيل ضمن استراتيجية التجارة هو ما يجيب عليه عملنا في دمج الذكاء الاصطناعي وفريق هندسة الذكاء الاصطناعي. إذا كانت أولويتك هي أن يتم العثور عليك من قبل المساعدين بدلاً من إجراء المعاملات معهم، فهذا مشروع مرتبط لكنه مختلف — راجع كيفية توصية منتجاتك عبر ChatGPT وPerplexity.
الأسئلة الشائعة
ما هو خادم MCP بعبارات بسيطة؟
واجهة قياسية تتيح لمساعد AI اكتشاف واستدعاء الأدوات في نظامكم أثناء وقت التشغيل. تختلف عن REST API بأنها مُصمّمة ليُفهمها نموذج يقرأ أوصاف الأدوات، بدلاً من أن يفهمها مطوّر يقرأ الوثائق.
هل يمكننا فقط توجيه وكيل نحو REST API الحالية لدينا؟
يمكنكم ذلك، لكنه سيعمل بشكل ضعيف. REST APIs مبنية حول الموارد وتفترض وجود مطوّر يفهم نطاقكم؛ الوكلاء بحاجة إلى أدوات مصمَّمة حول المهام، أوصاف توضح متى لا تُستخدم الأداة، وأخطاء مصوغة كتوجيهات بدلاً من رموز حالة.
ما هي مخاطر الأمان؟
في المقام الأول: الإفصاح المفرط وحقن الموجه (prompt injection). كل وسيط يُمرَّر كحجة لأداة ينشأ من نص كتبه شخص، لذا تحقّق منه خادمياً كمدخل غير موثوق، افرض أذونات لكل مستأجر على كل استدعاء بدلًا من عند بدء الجلسة، ولا تكشف أبدًا عن عمليات التصدير بالجملة أو العمليات الإدارية.
كيف نمنع الوكيل من ارتكاب أخطاء مكلفة؟
اجعل أدوات الكتابة قليلة ومحصورة بدقة، مع فرض الحدود بواسطة الأداة نفسها بدلًا من وصفها في الموجه. أضف مفاتيح عدم التكرار (idempotency keys) حتى لا تكرر إعادة المحاولة إجراءً، وسجّل كل استدعاء لتتمكن من إعادة بناء ما حدث.
هل ما زال مبكرًا للاستثمار في هذا؟
طبقة MCP هي الجزء السريع والمعايير لا تزال تتحرك، لذا فإن المبادرة المبكرة تحمل بعض مخاطر إعادة العمل. أما المتطلبات المسبقة — بيانات منتجات نظيفة، سياسات مُهيكلة، وواجهة API للنطاق مصمَّمة حول المهام — فلا تحمل مثل هذه المخاطر، وهي العنصر الأكثر استغراقًا للوقت. ابدأ من هناك بغض النظر.
ابدأ بقائمة الأدوات
قبل أي كود، دوّن ستة أشياء يجب أن يكون الوكيل قادرًا على القيام بها مع منتجك وستة أشياء يجب ألا يفعلها أبدًا. هذا المستند يشكل معظم التصميم. سنكتبه معك. تواصل مع فريقنا؛ نرد خلال يوم عمل.
