مرحباً بك في مجتمع n8n،
أستخدم Agent Builder (وليس عقدة سير عمل AI Agent) وأمتلك أدوات متصلة بوكيلي تتطلب موافقة قبل التنفيذ.
عندما يطلب الوكيل موافقة، تُظهر الرسالة فقط أي أداة سيقوم بتنفيذها، لكنها لا تُظهر ما الذي سيتغير بالفعل (مثل المعاملات أو القيم المحددة التي ستستخدمها الأداة).
ما أريده: طريقة لتخصيص رسالة الموافقة في Agent Builder بحيث تُظهر المزيد من السياق — خاصة المعاملات/القيم التي ستستخدمها الأداة — حتى أتمكن من اتخاذ قرار مستنير قبل الموافقة أو الرفض.
الأسئلة:
- هل توجد حالياً طريقة لتخصيص محتوى رسالة الموافقة في Agent Builder؟
- إذا لم تكن موجودة، هل يمكن إضافة هذه الميزة؟
شكراً لك!
مرحباً @Wildflower_Studio أهلاً وسهلاً في مجتمع N8n،
ليس نص الرسالة نفسه. تم إصلاحه (“يريد الوكيل تشغيل أداة X.”)، وإعداد الموافقة لكل أداة هو مجرد مفتاح تشغيل/إيقاف. ما يمكن للبطاقة أن تظهره هو حجج المكالمة، وهذا الجزء تغيّر للتو.
على الإصدار المستقر الحالي 2.42، صندوق التفاصيل على بطاقة الموافقة في دردشة Agent Builder يحتفظ فقط بما مرره النموذج إلى الأداة، لذا فإن الأداة التي تم تعيين حقولها في إعدادها تظهر أكثر قليلاً من اسمها. في الإصدار 2.43، الذي يتوفر حالياً على مسار بيتا، تظهر البطاقة الخاصة بأداة قائمة على العقد معاملات العقدة المكونة مع القيم المملوءة من النموذج، بالإضافة إلى الإدخال الخام، حتى تتمكن من رؤية ما تزمع تغييره قبل الموافقة. يضيف هذا الإصدار أيضاً خيار “السماح بهذه الجلسة”.
الموافقات التي تصدر عبر Slack أو Telegram أو Linear تظهر اسم الأداة فقط، حتى في الإصدار 2.43، لذا سيتطلب هذا الجزء طلب ميزة.
إذن أعتقد أنني سأضطر إلى تقديم طلب ميزة إذن؟
كما ترى، الحجج لا تُعرض بشكل جيد في دردشة بوت تيليجرام نفسه.
نص بطاقة الموافقة ثابت، لذا فإن طلب الميزة هو المسار الصحيح، لكن لا تحتاج إلى الانتظار: اجعل الموافقة نفسها أداة يستدعيها الوكيل. يتم تعريض سير عمل فرعي كأداة استدعاء سير عمل n8n ويأخذ المعاملات المقترحة كمعاملات خاصة به، ويرسلها إليك مع عملية الإرسال والانتظار للردّ (الموافقة) من عقدة Telegram في قالب رسالة تتحكم فيه، ويعيد الموافقة/الرفض للوكيل. نظراً لأن الرسالة هي عقدتك، تحصل على القيم الدقيقة في النص، ويمكنك تقديمها كصفوف مفتاح/قيمة قابلة للقراءة باستخدام عقدة Code بدلاً من JSON الخام. المقابل هو أنه يعتمد على استدعاء النموذج للأداة في الوقت المناسب، لذا احتفظ بالموافقة المدمجة لكل أداة كنسخة احتياطية وذكّر في موجه النظام الخاص بالوكيل أنه يجب عليه استدعاء أداة الموافقة قبل أي أداة كتابة.
@Wildflower_Studio لقطة الشاشة الخاصة بك تعرض Airtable_WRITE_revert_action، لكنها لا توضح أي سجل أو قيم ستتغير. إذا حاولت حل سير العمل البديل، فسأبقي على الموافقة والكتابة الفعلية داخل نفس الأداة. أداة موافقة منفصلة تعيد approved: true للوكيل لا تؤسس أن استدعاء الأداة التالي سيستخدم القيم التي وافقت عليها.
بالنسبة إلى Agent Builder، هذا يعني عرض سير عمل كأداة إجراء. سيكون بمثابة تدفق موافقة مخصص، وليس طريقة لتغيير بطاقة Telegram الموجودة.
داخل سير العمل هذا، سأستخدم هذا التسلسل:
- تحقق من الإجراء المقترح واحفظ نسخة ثابتة برقم معرّف الطلب.
- بناء رسالة Telegram من تلك النسخة: الإجراء وعرّف السجل المستهدف وقيم الحقول التي ستتغير. احتفظ بوجهة الموافقة المكونة بواسطة سير العمل، بدلاً من توفيرها بواسطة النموذج.
- استخدم الإرسال والانتظار للحصول على استجابة مع نوع استجابة الموافقة. عيّن حد الانتظار والمتابعة إلى الكتابة فقط على موافقة صريحة؛ يجب أن يؤدي الرفض أو انتهاء الصلاحية إلى إنهاء هذا المسار.
- طبّق القيم المحفوظة وأعد النتيجة للوكيل. لا تترك نسخة منفصلة وغير محمية من نفس أداة الكتابة متاحة له.
إذا قام شخص ما بتغيير القيم المقترحة، فاطلب موافقة جديدة.
اختبر على إصدار n8n الخاص بك ببيانات وهمية أولاً: وافق على تحديث A، وتأكد من أن التغييرات المعروضة فقط تصل إلى A، وتحقق من أن الوكيل يتلقى النتيجة بعد الانتظار. ثم حاول استخدام تلك الموافقة لـ B: يجب أن يبقى B دون تغيير. يجب أن يؤدي الرفض أو السماح بانتهاء الطلب إلى عدم إجراء أي كتابة.
ما هي المدخلات التي تقبلها أداة Airtable هذه؟ تلك هي القيم التي سأخريطها في رسالة الموافقة.