مشكلة في استدعاء أداة سير عمل n8n

أنا أنشئ سير عمل، الذي سيستدعي تدفقًا آخر كأداة داخل الوكيل:

Edit fields

سير العمل الفرعي لا يستدعيني ولا يعرض القيمة

مرحباً @testn8n_Santiago،

الإعداد يبدو صحيحاً بشكل عام. هناك بعض الأشياء التي يجب التحقق منها:

  1. في عقدة Sub-Workflow Tool (مولد الأرقام العشوائية كأداة في AI Agent): هل يوضح حقل “Tool Description” بشكل واضح الغرض الذي يجب أن يستخدم الوكيل هذه الأداة له؟ يقرر الوكيل بناءً على هذا الوصف ما إذا كان سيستدعي الأداة على الإطلاق. غالباً ما تؤدي الوصفات غير الواضحة إلى تجاهل الوكيل للأداة تماماً.
  2. في Sub-Workflow نفسه: هل يتوقع محفز “When Executed by Another Workflow” معاملات إدخال معينة؟ إذا كان الأمر كذلك، فيجب أن تتطابق تماماً مع ما يرسله الوكيل كإدخال للأداة.
  3. هل يمكنك اختبار Sub-Workflow بشكل معزول، أي استدعاؤه مباشرة باستخدام عقدة “Execute Workflow” ومدخلات اختبار، بدون وضع AI Agent في الوسط؟ هذا قد يوضح ما إذا كان Sub-Workflow نفسه يعمل، أم أن المشكلة تكمن في ربط الأداة بالوكيل.

إذا أردت، يمكنك أيضاً مشاركة محتوى System Prompt الخاص بـ AI Agent، وهذا يساعد غالباً على فهم السبب في عدم استدعاء الوكيل للأداة.

في عقدة Sub-Workflow Tool (أداة “Random Number Generator” في AI Agent) لدي هذا الوصف:

في Sub-Workflow نفسه: هل المشغّل “When Executed by Another Workflow” ينتظر معاملات إدخال محددة؟ إذا كان الأمر كذلك، يجب أن تتطابق تماماً مع ما توفره الوكيل كـ Tool-Input.

هذا هو نص النظام

  • استخدم الأداة دائماً
  • لا تنشئ الرقم يدوياً أبداً
  • مرر المعاملات التالية:
    • min: 1
    • max: {{ $json.max_random_number }}

أرجع النتيجة الرقمية فقط.

أشاركك أيضاً ملف JSON

WSANTIAG_Llamada de Agentes (1).json (5,9 KB)

مرحباً @testn8n_Santiago،

شكراً على ملف JSON، والآن الخطأ واضح تماماً. هناك مشكلتان:

  1. سير العمل الخاص بالأداة يستدعي نفسه. في عقدة أداة “Random Number Generator” تشير workflowId إلى سير العمل نفسه تماماً (x2ClIhsa1nxXALcp)، وليس إلى سير عمل فرعي منفصل. يجب أن تشير الأداة إلى سير عمل مستقل يبدأ حصرياً بـ “When Executed by Another Workflow” ويحتوي على عقدة الكود. بالطريقة الحالية، عند استدعاء الأداة، يبدأ سير العمل بأكمله مرة أخرى، بما في ذلك Manual Trigger وEdit Fields، وهذا ليس السلوك المطلوب.
  2. matchingColumns يحتوي على “hola”، وهي قيمة لا تتطابق مع المخطط (المخطط يعرّف فقط max_random_number). هذا على الأرجح بقايا اختبار ويجب إزالته أو تصحيحه إلى max_random_number.

الحل: افصل سير العمل الفرعي (“When Executed by Another Workflow” + عقدة الكود) في سير عمل منفصل جديد. احفظه، انسخ معرّف سير العمل الخاص به، وأشر إليه من عقدة الأداة في سير العمل الرئيسي بدلاً من الإشارة إلى نفسه.

مرحبا رينيه

لقد قمت بتوصية بإنشاء تدفقين:

وفي Output من Random Number Generator يتم إنشاء هذا الخطأ.
[

{

“response”: “There was an error: \“Workflow is not active and cannot be executed.\””

}

]

وأشاركك الآن التدفقين في صيغة JSON

SubFlujo.json (1,5 KB)

WSANTIAG_Llamada de Agentes.json (4,3 KB)

مرحبا سانتياغو،

الفصل إلى سير عملين منفصلين أمر صحيح. الخطأ حرفي وسهل الحل: SubFlujo مُحفوظ لكن غير مفعّل ("active": false في JSON).

لتصحيحه: افتح SubFlujo في n8n وفعّل مفتاح “Active” في أعلى يمين محرر الكود. يجب أن يكون Tool Workflow مفعّلاً حتى يتمكن سير عمل آخر من استدعاؤه، حتى لو قمت أنت بتنفيذه يدويًا للاختبار، هذا لا يُحتسب “مفعّل” للاستدعاءات الخارجية.

بعد تفعيله، قم بتنفيذ AI Agent مرة أخرى وسيعمل بشكل صحيح.

إعجاب واحد (1)