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

الإعدادات
عيّن من خلال متغير البيئة بدلاً من ذلك:
يتم وضع الأحداث في قائمة الانتظار في الذاكرة والكتابة في الخلفية كل
flush_interval ثانية، مع كتابة نهائية عند خروج المفسّر. تخسر العملية المقتولة بشكل مباشر كل ما لم يتم كتابته بعد.
الهوية
ينتمي كل حدث إلى جلسة ووكيل. النطاقات تملأ كليهما، لذا نادراً ما تمررهما:session_id أو agent_id بشكل صريح يعمل ويفوز. بدون ربط أو تمرير، تطرح المكالمة TypeError بدلاً من إصدار حدث سيتجاهله Cloud بصمت.
الهوية تركب على متغيرات السياق. تتبع مهام
asyncio تلقائياً، لكن ليس الـ threads الجديدة — لف عامل في 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اختياري ولكن موصى به. بدونه، تقترن أحداث النموذج بترتيب وصولها، لذا يمكن لمكالمتي متزامنة في نفس الوكيل أن تخطئا في الاقتران.- زوج مقسوم عبر العمليات لا يزال يطابق في Cloud، لكن الـ SDK لا يمكنه توقيته — لم تر أي عملية كلا النصفين.
- على الأكثر 10,000 فاتح ينتظر إغلاقاً في نفس الوقت. بعد ذلك الأقدم يتم حذفه، لذا التسريب لا يمكن أن ينمو بدون حد.
حقولك الخاصة
أي كلمة مفتاحية إضافية تمررها يتم تخزينها مع الحدث:Decimal أو مجموعة أو bytes أو كائن نموذج — يتم تخزينه كسلسلة.
هذه خمسة أسماء محجوزة ومرفوضة بشكل مباشر: 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؛ تشير مخزونة متنامية إلى إعدادات المُراقب أو التسليم، بينما تشير مخزونة فارغة إلى التجهيز أو عمر العملية.
افحص المخزن فقط عند توقف المُراقب. بينما يعمل، يجمع ويحذف كل دفعة خلال ملي ثانية، لذا قائمة الدليل تتنافس مع المجمّع وتظهر أحداثاً أقل بكثير مما تم إصدارها.

