باختصار
تساوي القوى (Idempotency) خاصّية في بعض العمليات إنها لو اتنفّذت أكتر من مرّة، النتيجة بتفضل زي ما هي بعد أوّل مرّة. في البرمجة: استدعاء عملية مرّة واحدة أو كذا مرّة ليه نفس الأثر على حالة النظام.
بالتفصيل
ويكيبيديا بتدّي أمثلة واضحة:
- البحث عن اسم عميل وعنوانه في قاعدة بيانات: متساوي القوى، لأنه ما بيغيّرش حاجة.
- طلب تغيير عنوان العميل إلى «س»: متساوي القوى، لأن العنوان النهائي هو «س» مهما اتكرّر الطلب.
- طلب شراء منتج: غالبًا مش متساوي القوى، لأن كل طلب هيعمل أوردر جديد.
- إلغاء أوردر معيّن: متساوي القوى، لأنه هيفضل ملغي مهما اتكرّر الطلب.
الميزة إن العملية المتساوية القوى ممكن تتعاد أو تتكرّر زي ما إنت عايز من غير آثار غير مقصودة. أما العمليات التانية فمحتاجة تتابع هي اتنفّذت قبل كده ولا لأ.
ومع الوكلاء الموضوع بقى عملي جدًا. في المواصفة الجديدة لبروتوكول MCP، اتشالت إمكانية استئناف الاتّصال المقطوع، فالعميل ممكن يحتاج يعيد المحاولة. وبتقول InfoQ إن ده بيزوّد أهمية تساوي القوى في استدعاءات الأدوات اللي ليها أثر. يعني لو أداة بتبعت إيميل أو بتدفع فلوس، لازم تتعامل بأمان مع وصول نفس الطلب مرّتين.
مثال عملي
وكيل بيحجز تذكرة طيران، والاتّصال اتقطع قبل ما يوصله الردّ، فبيعيد الطلب. لو أداة الحجز بسيطة، هيتحجز لك تذكرتين. الحلّ الشائع: الوكيل يبعت مع الطلب «مفتاح» فريد، زي رقم للعملية، والخادم لو شاف نفس المفتاح تاني يرجّع نفس الحجز الأوّل بدل ما يعمل حجز جديد.
مصطلحات مرتبطة
- MCP — بروتوكول سياق النموذج.
- Function Calling — استدعاء الدوال.
- Agent Harness — هارنس الوكيل.
المصادر: Wikipedia — Idempotence، InfoQ — Stateless MCP — 2026-09-25


