⚙️كيف يعمل سير العمل
⚙️ عند تشغيل سير العمل، يحدّد وكيل ترتيب التنفيذ من الاتصالات: تعمل كل كتلة فور انتهاء الكتل التي تعتمد عليها.
الكتل تعمل بمجرد أن تستطيع
يمكن لعدة كتل أن تعمل في الوقت نفسه. تبدأ الكتلة لحظة انتهاء اعتمادياتها، ولا تنتظر أي شيء آخر. مثال: لو اعتمد وكيل «خدمة العملاء» ووكيل «الباحث المعمّق» كلاهما على كتلة البداية فقط، فلن ينتظر أحدهما الآخر — يعملان بالتوازي.
الكتلة تنتظر كل مدخلاتها
حين تغذّي عدة كتل كتلةً واحدة، تنتظر تلك الكتلة كل مغذٍّ سيعمل فعلاً، ثم تعمل مرة واحدة وكل مخرجاتها متاحة للقراءة. المغذّي الواقع على مسار لم يُسلَك لا يعطّلها، ولا تحتاج أنت لدمج المخرجات يدوياً. مثال: كتلة الدالة تعمل بعد اكتمال الوكيلين، ومخرجاهما جاهزان.
الفروع تسلك مساراً واحداً
يمكن أن ينقسم سير العمل. كتلة الشرط (Condition) تتفرّع بقاعدة صريحة، وكتلة المُوجّه (Router) تدع النموذج يختار المسار. يعمل المسار المسلوك فقط. الكتلة على فرع لم يعمل لا تنتج مخرجاً، ولهذا يعود وسم الاتصال المشير إليها فارغاً. لتكرار العمل: الحلقة (Loop) تشغّل كتلها الداخلية على قائمة أو عدد أو طالما تحقّق شرط، والتوازي (Parallel) يشغّلها لعدة عناصر دفعة واحدة. يمكن لسير عمل أن يستدعي سير عمل آخر (عبر كتلة سير عمل، أو أداة MCP، أو كتلة API). يتتبّع وكيل سلسلة الاستدعاءات ويوقف أي تشغيلة تتجاوز حدّ القفزات، فلا تدور سير الأعمال المتبادلة إلى ما لا نهاية.
عند فشل كتلة
الكتلة التي تُخطئ تُفشل التشغيلة: تكمل الكتل العاملة حالياً، ولا يبدأ شيء جديد. لمعالجة الفشل بدل ذلك، وصّل منفذ الخطأ (error port) للكتلة — فتتبع التشغيلة مسار الخطأ وتستمر.
كم تستغرق التشغيلة
التشغيلة المتزامنة (synchronous) محدودة بسقف زمني، والتشغيلة غير المتزامنة (async) تحصل على مهلة أطول. قسّم العمل أو شغّله بشكل غير متزامن لتجنّب بلوغ السقف.
متابعة التشغيلة
أثناء التشغيل، يعرض المحرّر حالة كل كتلة مباشرة: في الانتظار، قيد التشغيل، تمّت، أو أخطأت. وتُسجّل كل تشغيلة، فتفتح السجلات لترى ما استقبلته كل كتلة وما أرجعته.
💡 للتصحيح: اقرأ الاتصالات لتعرف ترتيب التنفيذ، وتذكّر أن الوسم المشير إلى فرع لم يُسلَك يعود فارغاً.

