title: “الوكلاء المخصصون” description: “التكوين وفهرس الأحداث وقواعد الارتباط والتسليم لـ failproofai-sdk.” icon: “python”
شرح لكل إعدادات وطرق وحقول. إذا كنت تقوم بالأداة لأول مرة، ابدأ بالدليل — هذه الصفحة مخصصة للبحث عن معلومات محددة.دليل الوكلاء المخصصين
التثبيت والأداة وطرق الأحداث ومثال عملي والمشاكل الشائعة.
هل تستخدم إطار عمل؟
LangChain و CrewAI و LlamaIndex و Pydantic AI توفر الأداة لنفسها بنداء واحد.
التثبيت
failproofai-sdk واستيرادها في Python باسم failproofai_sdk. ملحقات الأطر مثل failproofai-sdk[langgraph] تثبت الإطار نفسه؛ المحولات تأتي دائماً في عجلة القاعدة.
توصيل خادم Failproof
- لوحة المعلومات
- واجهة سطر الأوامر
-
انتقل إلى Admin → Keys وأنشئ مفتاحاً بصلاحية
events:add. - وصّل خادم Failproof إلى السحابة على جهاز الوكيل.
- قم بتشغيل جلسة واحدة موصولة بالأداة، ثم ابحث عن معرّفها الدقيق تحت Observe → Events.
-
انتقل إلى Observe → Sessions، اختر نفس البيئة، وافتح التتبع المعاد بناؤه.

التكوين
اضبط عن طريق متغير البيئة بدلاً من ذلك:
تُصف الأحداث في الذاكرة وتُكتب في الخلفية كل
flush_interval ثانية، مع كتابة نهائية عند خروج المفسّر. العملية المقتولة مباشرة تفقد أي شيء لم يُكتب بعد.
الهوية
ينتمي كل حدث إلى جلسة ووكيل. النطاقات تملأ كليهما، لذا نادراً ما تمرّرهما:session_id أو agent_id صراحةً يعمل أيضاً ويتفوق. بدون ربط أو تمرير، يرفع النداء TypeError بدلاً من إطلاق حدث قد تتجاهله السحابة.
الهوية تعمل على متغيرات السياق. تتبع مهام
asyncio تلقائياً، لكن ليس الخيوط الجديدة — غلّف عامل في failproofai_sdk.propagate() أو أحداثه ستنفصل.فهرس الأحداث
خمس عشرة طريقة. معظمها يأتي في أزواج — تستدعي المفتاح، ثم الإغلاق، و SDK يوقت الفجوة.
ثلاثة تقف بمفردها:
error و human_pause و human_interrupt.
كل حقل لكل طريقة
كل حقل لكل طريقة
كل طريقة تأخذ أيضاً
session_id و agent_id، والتي تملأ النطاقات لك. أي شيء متُرك كـ None يُحذف بدلاً من إرساله كـ JSON null، وكل طريقة تعيد None.الاقتران والمدة
قاعدة واحدة: أعطِ حدث الإغلاق نفس المعرّف الذي لفاتح. هذا هو ما يقترنها، وما يسمح لـ SDK بقياس الفجوة.
لا تمرّر
duration_ms بنفسك. يقيسها SDK، وتمريرها يرفع ValueError.
الاستثناء الوحيد هو model_response، حيث أنت وحدك تعرف زمن الكمون الفعلي للمزود. مرّر عدداً صحيحاً من الميلي ثانية — العدد العشري يرفع، لأن العمود عدد صحيح 32 بت وقد ينتهي به الحال فارغاً.
الحالات الحدّية
الحالات الحدّية
- المعرّفات تحتاج فقط إلى أن تكون فريدة لكل نوع، لكل جلسة. استدعاء أداة وخطاف قد يشاركان واحداً؛ جلستان تعملان في نفس الوقت قد تعيد استخدام نفس المعرّفات دون تصادم.
- لا يتم تحديد نطاقها لوكيل. زوج فُتح تحت وكيل واحد وأُغلق تحت آخر يطابق أيضاً — وهذه هي الحالة الطبيعية في كود متعدد الوكلاء.
request_idاختياري لكن موصى به. بدونه، تقترن أحداث النموذج بالترتيب الذي تصل، لذا نداءان متزامنان في نفس الوكيل قد يقترنان خطأً.- زوج مقسم عبر العمليات يطابق أيضاً في السحابة، لكن SDK لا يمكنه قياسه — لا شيء في أي عملية رأى كلا النصفين.
- على الأكثر 10000 فاتح ينتظر أقرب في نفس الوقت. بعد ذلك الأقدم يُحذف، لذا تسريب لا يمكنه النمو بدون حد.
حقولك الخاصة
أي كلمة مفتاح إضافية تمررها يتم تخزينها مع الحدث:Decimal أو set أو bytes أو كائن نموذج — يُخزّن كسلسلة نصية.
هذه الأسماء الخمسة مreserved وترفع مباشرة: timestamp و session_id و agent_id و type و environment.
التسليم والتحقق
- لوحة المعلومات
- واجهة سطر الأوامر
في Observe → Events، تحقق من أن
agent_start موجود أولاً و agent_end موجود أخيراً. ثم افتح Observe → Sessions وأكّد أن أحداث النموذج والأداة والإنسان والخطاف والخطأ تظهر بالترتيب المقصود. استخدم معرّف الجلسة كمفتاح استكشاف الأخطاء الأساسي.$FAILPROOFAI_HOME/custom-agents/events، وإلا ~/.failproofai/custom-agents/events. ملفات JSONL تثبت إطلاق SDK؛ spool متنامٍ يشير إلى تكوين الخادم أو التسليم، بينما spool فارغ يشير إلى الأداة أو عمر العملية.
افحص spool فقط عندما يكون الخادم متوقفاً. بينما يعمل، يجمع ويحذف كل دفعة في ميلي ثانية، لذا قائمة دليل تتسابق مع المجمّع وتظهر أحداثاً أقل بكثير مما تم إطلاقه.

