مشاكل سير العمل الفرعي N8N HITL (يتم استدعاؤها بواسطة وكيل الذكاء الاصطناعي)

صف المشكلة / الخطأ / السؤال

في الإصدار 2.23.4، كان لدي سير عمل رئيسي يستخدم وكيل ذكاء اصطناعي لاستدعاء سير عمل فرعي حيث كان سير العمل الفرعي يستدعي وكيل ذكاء اصطناعي متصل بخطوة مراجعة (Slack) والأدوات (Google Calendar). كان سير العمل الفرعي يستدعي أداة ويرسل رسالة تأكيد للمستخدم قبل تنفيذ إجراء. يؤكد المستخدم أو ينفي تفاصيل الإجراء وستكون هذه استجابة معطاة لسير العمل الفرعي وسير العمل الفرعي سيرسلها إلى سير العمل الرئيسي. ومع ذلك، في الإصدار 2.33.4 و 2.34.5، فشل سير العمل الرئيسي دائماً عندما يصل سير العمل الفرعي إلى خطوة المراجعة. يقول سير العمل الفرعي دائماً عدم وجود استجابة على الرغم من أنه يعمل بشكل صحيح بعد خطوة التأكيد.
أنا فضول لماذا كان من الممكن أن يعمل هذا في نسخة أقدم من N8N ولكن بمجرد تحديثه إلى النسخة الجديدة بدأ الفشل. آمل الحصول على بعض الرؤى حول ما إذا كان هذا قيد N8N أو مشكلة في الإعدادات من طرفي. أنا أيضاً مفتوح لاقتراحات حول كيفية تحسين بنية سير عملي. أي رؤية موضع تقدير.

ما رسالة الخطأ (إن وجدت)؟ مشكلة في العقدة [Sub Workflow]

حدث خطأ: “لم يعد سير العمل استجابة”

يرجى مشاركة سير عملك

Main Workflow: Slack Trigger -> AI Agent { Calls Sub workflow } -> Slack Response

Sub Workflow: Triggered by other workflow -> AI Agent {Calls Slack Review Step-> If confirmed continue to execute tools (google calendar) If declined output: Action was canceled.} -> Set Field (response: AI output)

مشاركة الإخراج الذي تم إرجاعه بواسطة العقدة الأخيرة

في سير العمل الرئيسي، لا يتم إعطاء أي مخرجات. يتوقف سير العمل الرئيسي ويعطي خطأ ويقول عدم إعطاء أي مخرجات. يتوقف مبكراً قبل انتهاء سير العمل الفرعي من التشغيل.

معلومات حول إعداد n8n الخاص بك

  • إصدار n8n: 2.33.4 و 2.34.5
  • قاعدة البيانات (الافتراضي: SQLite):
  • إعداد EXECUTIONS_PROCESS الخاص بـ n8n (الافتراضي: own, main): الافتراضي
  • تشغيل n8n عبر (Docker, npm, n8n cloud, desktop app): Docker
  • نظام التشغيل: Ubuntu 26.04 LTS

@Ethan0034

هذا يبدو وكأنه تراجع. ربما تقدم تقرير عطل؟

@kjooleng @Ethan0034 هذا خطأ على github وتم إصلاحه، لذا أعتقد أنها انتكاسة

و

مرحباً @Ethan0034 أهلاً وسهلاً!
تدخل عملية التنفيذ الفرعية إلى حالة الانتظار عند عقدة مراجعة Slack، وتتحلل استدعاء الأداة للعملية الأم في تلك النقطة بدلاً من نهاية سير العمل الفرعي، وهذا هو ما ينتج عنه الرد الفارغ. منذ الإصدار 2.6 يمكن للمراجعة أن تبقى على اتصال الأداة في سير العمل الرئيسي بدلاً من ذلك، لذلك لا تنتظر أي شيء داخل سير العمل الفرعي.
على الاتصال من وكيل الذكاء الاصطناعي إلى الأداة التي تريد تأكيدها، انقر على أيقونة + واختر “Add human review step” (إضافة خطوة مراجعة بشرية)، ثم اختر Slack وعيّن المُوافق والرسالة. ضع هذا في الرسالة حتى يرى المستخدم تفاصيل الإجراء قبل الموافقة:

The AI wants to use {{ $tool.name }} with:
{{ JSON.stringify($tool.parameters, null, 2) }}

ثم أزل عقدة sendAndWait من سير العمل الفرعي. يقوم الموافقة بتشغيل الأداة بمعاملات الذكاء الاصطناعي، والرفض يلغيها ويبلغ الوكيل عن الرفض. قم بإدراج الأدوات المحظورة وما يعنيه الرفض في نظامك في طلب النظام حتى يتعامل الوكيل مع الرفض بنظافة.

@Ethan0034
يُنصح باستخدام الإصدار المستقر 2.31.4

سأؤيد هذه الهندسة المعمارية.

الشيء الصغير الذي أود إضافته هو جعل الخطوة قبل المراجعة تعيد حمولة مراجعة عادية بدلاً من السماح للسير العملي الفرعي بأن يشعر وكأنه محادثة صغيرة بمفرده.

شيء من هذا القبيل:


status: needs_review

tool_name: create_calendar_event

summary: plain language summary for Slack

proposed_payload: the exact data that will be sent

on_approve: run calendar action

on_deny: stop and return a clean denial message

هذا يعطي المراجع البشري شيئاً ملموساً للموافقة عليه، كما يعطي سير العمل الأب كائناً نظيفاً للتسجيل والتصحيح. في تجربتي، تصبح سيول HITL هشة بسرعة عندما تكون خطوة الموافقة وتنفيذ الإجراء والاستجابة النهائية للوكيل مخفية جميعها داخل نفس استدعاء الأداة المتداخلة.

تم إصدار النسخة الجديدة n8n@2.39.0 والتي تتضمن طلب السحب على GitHub PR 37087.

تم إصدار النسخة n8n@2.39.8 الجديدة التي تتضمن طلب السحب على GitHub 38949.