Magisterium AI

مرجع API

يتم استدعاء جميع الطرق عبر POST إلى https://www.magisterium.com/api/v1/a2a باستخدام JSON-RPC 2.0. يجب أن يتضمن كل طلب Authorization: Bearer $MAGISTERIUM_TOKEN (رمز مستخدم صادر عن OAuth — راجع المصادقة) وContent-Type: application/json.

الطرق

message/send

أرسل رسالة إلى مهارة واستقبل مهمة مكتملة. جميع مهارات الماجستير متزامنة — تحتوي الاستجابة على حالة المهمة النهائية (completed أو failed)، وليس حالة working وسيطة أبداً.

المعلمات:

الحقلالنوعمطلوبالوصف
messageMessageنعمرسالة المستخدم مع الأجزاء والبيانات الوصفية الاختيارية.
message.rolestringنعميجب أن يكون "user".
message.messageIdstringنعممعرف فريد لهذه الرسالة.
message.kindstringنعميجب أن يكون "message".
message.partsPart[]نعمجزء واحد على الأقل (نص أو بيانات).
message.metadata.skillIdstringلاالمهارة المراد استدعاؤها. الافتراضي هو catholic_qa.
message.contextIdstringلامعرف سياق اختياري لتجميع المهام ذات الصلة. إذا تم حذفه، يقوم الخادم بإنشاء واحد.
configurationobjectلامحجوز للاستخدام المستقبلي.

يُرجع: كائن Task مع kind: "task".

tasks/get

استرداد مهمة تم إنشاؤها مسبقاً بواسطة معرفها.

المعلمات:

الحقلالنوعمطلوبالوصف
idstringنعممعرف المهمة الذي تم إرجاعه من message/send.

يُرجع: كائن Task، أو خطأ TASK_NOT_FOUND إذا انتهت صلاحيته أو كان مفقوداً. يتم تخزين المهام لمدة 24 ساعة.

tasks/cancel

إلغاء مهمة إذا كانت في حالة قابلة للإلغاء. لأن جميع المهارات تُحل بشكل متزامن، فإن معظم المهام تكون بالفعل في حالة نهائية (completed / failed) بحلول وقت إرجاع الاستجابة — محاولة إلغاء مهمة نهائية تُرجع INVALID_PARAMS برسالة Invalid state transition.

المعلمات:

الحقلالنوعمطلوبالوصف
idstringنعممعرف المهمة المراد إلغاؤها.

يُرجع: كائن Task المحدّث مع status.state: "canceled".

دورة حياة المهمة

تعمل مهارات Magisterium بشكل متزامن، لذلك لا يتم حفظ المهمة في التخزين إلا بعد انتهاء المهارة — دائماً في حالة نهائية. حالتا submitted و working جزء من مواصفات A2A الأوسع، لكن تطبيق Magisterium لا يُنتجهما أبداً؛ لن تلاحظ سوى إحدى الحالات النهائية الثلاث أدناه.

الحالةالمعنى
completedنهائي — النتائج في artifacts. يُرجعها message/send عند انتهاء المهارة بنجاح.
failedنهائي — يحتوي status.message على سبب الفشل. يُرجعها message/send عندما تطرح المهارة استثناءً.
canceledنهائي — لا يمكن الوصول إليها إلا عبر استدعاء tasks/cancel على مهمة غير نهائية. لأن المهام تكون بالفعل في حالة نهائية بحلول وقت إرجاع message/send، فإن الإلغاء عملياً يُرفض بـ INVALID_PARAMS لأي مهمة لديك مقبض عليها.

كل مهمة تحمل أيضاً:

  • contextId — معرف تجميع يمكنك إعادة استخدامه عبر رسائل المتابعة لربط المهام ذات الصلة.
  • history — قائمة مرتبة برسائل المستخدم والوكيل التي أنتجت عناصر المهمة.

رموز الأخطاء

الرمزالاسمالوصف
-32700Parse errorنص JSON غير صالح.
-32600Invalid requestحقول jsonrpc أو method أو id مفقودة.
-32601Method not foundطريقة JSON-RPC غير معروفة.
-32602Invalid paramsمعلمات مفقودة أو غير صالحة (تُرجع أيضاً لانتقالات الحالة غير الصالحة في tasks/cancel).
-32603Internal errorفشل غير متوقع من جانب الخادم.
-32001Task not foundمعرف المهمة غير موجود أو انتهت صلاحيته.
-32002Skill not foundskillId غير معروف في بيانات تعريف الرسالة.
-32003Rate limit exceededطلبات كثيرة جداً. تحقق من retryAfter (بالثواني) في data الخطأ.
-32004Unauthorizedرمز Bearer مفقود أو غير صالح.
-32005Paid plan requiredيتطلب A2A خطة Pro أو Organization أو Enterprise.

تعكس حالة HTTP فئة الخطأ: 401 لـ UNAUTHORIZED، و403 لـ PLAN_REQUIRED، و429 لـ RATE_LIMITED، و200 لجميع أخطاء JSON-RPC الأخرى (وفقاً لاتفاقية JSON-RPC بإرجاع 200 مع متن error).

حدود المعدل

يشترك A2A في نفس مجموعة حدود المعدل مع MCP — راجع تسعير MCP للاطلاع على حدود الطلبات لكل خطة.

يتم فرض متغيرين:

  • افتراضي — يطبق على document_search و document_fetch و liturgical_readings و saints_of_the_day.
  • مكلف — يطبق فقط على catholic_qa، لأنه يشغل خط أنابيب إجابات مدعوماً بنموذج LLM. يستخدم هذا المتغير حداً أكثر صرامة وأقل.

عندما تصل إلى حد، يحتوي كائن data الخطأ على retryAfter بالثواني. يجب على المستدعين التراجع لهذه الفترة قبل إعادة المحاولة.

CORS

تستجيب نقطة النهاية لطلبات OPTIONS السابقة وتُرجع رؤوس CORS متساهلة (Access-Control-Allow-Origin: *, Allow-Methods: POST, OPTIONS, Allow-Headers: Content-Type, Authorization)، لذا يمكن استدعاء A2A من المنسقات المستندة إلى المتصفح دون وكيل.