وكيل ذكاء اصطناعي يتوقف عند فشل الأداة

مرحباً، أستخدم عقدة AI Agent وواجهت مشكلة. عندما لا تُرجع إحدى الأدوات أي نتيجة، يتوقف العامل بأكمله عن العمل. هل هناك طريقة لجعله يستمر أو يتخطى تلك الأداة بدلاً من إيقاف سير العمل بالكامل؟

@Asha_Naon افتح عقدة الأداة التي تفشل → تبويب الإعدادات (أعلى يمين لوحة تكوين الأداة) → اضبط On Error على “Continue (Using Error Output)”. الآن عندما تطرح تلك الأداة خطأ، يحصل الوكيل على الخطأ كاستجابة للأداة بدلاً من فشل سير العمل بالكامل.

في JSON العقدة يبدو الأمر كالتالي:

{
  "parameters": { },
  "type": "n8n-nodes-base.yourToolNode",
  "typeVersion": 1,
  "position": [600, 300],
  "onError": "continueErrorOutput",
  "name": "Your Tool"
}

بعد ذلك يرى الوكيل شيئاً مثل “tool returned error: …” ويمكنه توجيه سير العمل بشكل مختلف (الاعتذار للمستخدم، محاولة أداة مختلفة، إلخ). أي أداة هي التي تسبب المشكلة؟ قد يكون من المفيد ضبط مدخلاتها أيضاً حتى لا تفشل في المقام الأول

مرحباً @Asha_Naon

المشكلة هي أن وكيل n8n AI يتعامل حالياً مع أي فشل في الأداة أو نتيجة فارغة كـ “انهيار حرج.” بدلاً من أن يقول الذكاء الاصطناعي “لم أتمكن من العثور على أي شيء,” فإن سير العمل بالكامل يتوقف عن العمل ببساطة. للأسف، الإعداد القياسي “المتابعة عند حدوث خطأ” لا يعمل هنا لأن الانهيار يحدث داخل الأداة نفسها وليس الوكيل.

الحل الأكثر موثوقية هو التوقف عن استخدام عقد الأدوات المباشرة واستخدام أداة “استدعاء سير عمل n8n” بدلاً من ذلك. بوضع منطق أداتك في سير عمل فرعي منفصل، يمكنك تفعيل “المتابعة عند الفشل” للعقد المحددة التي بها مشاكل. هذا يضمن أن سير العمل الفرعي ينتهي دائماً ويرسل نوعاً من الرد إلى الوكيل، مما يمنع موت سير العمل الرئيسي.

حيلة رئيسية أخرى هي التوقف عن السماح لأدواتك بـ “الفشل” بالمعنى التقني. بدلاً من السماح لعقدة بأن تصبح حمراء وتطرح خطأ، قم بتكوينها لإرجاع رسالة ناجحة تحتوي على “خطأ ناعم,” مثل كائن JSON يقول {"success": false, "error": "No data found"}. هذا يخدع n8n بالاعتقاد بأن الأداة عملت بشكل مثالي، مع إعطاء الذكاء الاصطناعي المعلومات الفعلية التي يحتاج إلى معرفتها بأن البحث فشل.

أخيراً، تحتاج إلى إخبار الذكاء الاصطناعي بكيفية التعامل مع هذه “الأخطاء الناعمة” في موجه النظام. أخبر الوكيل بوضوح أنه إذا رأى رسالة “success: false” أو نتيجة فارغة، فلا يجب أن يستسلم. أخبره بمحاولة مصطلح بحث مختلف، أو محاولة إصلاح الإدخال، أو ببساطة شرح الحالة للمستخدم باللغة الإنجليزية العادية.

يمكنك استخدام موجه النظام أدناه كمثال وتعديله حسب حالتك الاستخدام

"You are a helpful assistant. IMPORTANT: When calling tools, if a tool returns a response where 'success' is false, do NOT stop the workflow. Instead, read the 'error' and 'suggestion' fields. Use that information to either: 1) Attempt the call again with corrected parameters, or 2) Explain the specific issue to the user in a friendly way."

شكراً @kjooleng @achamm، حاولت لكن يبدو أنها لم تعمل

ما نموذج الذكاء الاصطناعي الذي تستخدمه؟ في بعض الأحيان، قد يلعب نموذج الذكاء الاصطناعي دورًا مهمًا أيضًا

مرحباً @Asha_Naon ، أهلاً وسهلاً بك في مجتمعنا! أنا Jay وأنا منشئ n8n موثق من فيتنام.

واجهت مشكلة مشابهة جداً من قبل، وتبين أنها كانت خللاً في عقدة AI Agent الإصدار 3.1. عندما كانت إحدى الأدوات تفشل أو لا ترجع أي شيء، كان الوكيل بأكمله يتوقف بدلاً من المتابعة.

تمكنت من حل المشكلة بخفض إصدار عقدة AI Agent إلى الإصدار 2.2. مع الإصدار 2.2، ظل الوكيل يعمل حتى لو فشلت بعض استدعاءات الأدوات أو لم تنتج أي مخرجات.

إليك كيفية خفض إصدار العقدة:

  1. افتح سير العمل الخاص بك ونسخ عقدة AI Agent.

  2. الصقها في محرر نصوص (VS Code أو Notepad أو غيره) حتى تتمكن من رؤية JSON.

  3. ابحث عن حقل "typeVersion" لتلك العقدة وغيّره من 3.1 إلى 2.2.

  4. انسخ JSON المعدل والصقه مرة أخرى في n8n لاستبدال العقدة القديمة.

بعد ذلك، سيستخدم سير العمل AI Agent الإصدار 2.2 مرة أخرى، وعطل الأدوات لن يوقف الوكيل تماماً.

إذا أردت، يمكنني أيضاً أن أشارك معك مثال سير عمل بسيط يعيد إنتاج السلوك على 3.1 ويظهر أنه يعمل مرة أخرى على 2.2.

أو يمكنك النسخ هنا.

شكراً جزيلاً، لقد نجح أخيراً

ضبط عقدة الأداة On Error على Continue (باستخدام Error Output) هو الحل الصحيح لمنع توقف الوكيل بالكامل. لكن هناك شيء واحد يجب إضافته، لأنه يخلق فخاً جديداً.

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

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