العودة إلى المدونة

بناء وكيل ذكاء اصطناعي باستخدام n8n: دليل عملي خطوة بخطوة

فريق تحرير IM Host14 أكتوبر 20268 دقائق قراءة
بناء وكيل ذكاء اصطناعي باستخدام n8n: دليل عملي خطوة بخطوة

لبناء وكيل ذكاء اصطناعي في n8n تربط محفّزًا (رسالة شات أو Webhook أو رسالة تيليجرام) بعقدة AI Agent، ثم تضيف إليها نموذج محادثة وذاكرة وأداة أو أكثر، ويقرر النموذج بنفسه أي أداة يستدعي في كل طلب. وإذا أردت أن تكون الإجابات مبنية على مستنداتك أنت، تضيف قاعدة متجهات مثل PGVector يبحث فيها الوكيل. بعد ذلك يبقى وضع الضوابط والاختبار وتشغيل الـ Workflow على سيرفر لا ينطفئ.

سنبني في هذا الدليل مثالًا واقعيًا: وكيل دعم لمتجر إلكتروني صغير يجيب عن الأسئلة من مستندات سياسات المتجر، ويستعلم عن حالة الطلب من قاعدة PostgreSQL، ويسجّل العملاء المحتملين في Google Sheets.

مكوّنات عقدة AI Agent

عقدة AI Agent عقدة رئيسية لها منافذ تركّب فيها عقدًا فرعية، فلا تحتاج إلى كتابة سلسلة أوامر يدويًا:

  • نموذج المحادثة (Chat Model) وهو إلزامي: النموذج اللغوي الذي يفكّر ويكتب الرد، مثل نماذج OpenAI أو Anthropic عبر مفتاح API، أو نموذج محلي عبر Ollama.

  • الذاكرة (Memory): تحفظ الرسائل السابقة حتى يتذكر الوكيل ما قاله العميل قبل ثلاث رسائل.

  • الأدوات (Tools): أفعال يختار النموذج تنفيذها، مثل طلب HTTP أو استعلام قاعدة بيانات أو إضافة صف في Google Sheets أو تشغيل Workflow آخر.

  • محلّل المخرجات (Output Parser) وهو اختياري: يُلزم الوكيل بإخراج منظّم، ويفيد عندما تذهب النتيجة إلى عقد أخرى لا إلى إنسان.

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

الخطوة 1: اختيار المحفّز

المحفّز يحدد طريقة وصول الرسائل، والأهم أنه يحدد ما ستستخدمه معرّفًا للجلسة (Session ID) في الذاكرة.

  • Chat Trigger (When chat message received): يوفر نافذة شات للاختبار داخل المحرر وشاتًا يمكن تضمينه في موقعك، ويولّد معرّف الجلسة تلقائيًا.

  • Webhook: تطبيقك أو واجهتك الأمامية ترسل طلب POST فيه نص الرسالة ومعرّف المستخدم أو المحادثة، فتستخدم هذا المعرّف مفتاحًا للذاكرة.

  • Telegram Trigger: كل رسالة تحمل chat ID يصلح مفتاحًا للجلسة.

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

الخطوة 2: ربط نموذج المحادثة

أضف عقدة نموذج المحادثة وأنشئ Credential بمفتاح API من مزوّد النموذج. يحفظ n8n بيانات الاعتماد مشفّرة بمفتاح التشفير الخاص بالنسخة، لذلك احتفظ بنسخة من هذا المفتاح مع نسخة قاعدة البيانات. وبعض الاختيارات العملية:

  • اختر نموذجًا يجيد استدعاء الأدوات (Tool Calling). النماذج الصغيرة الأرخص تكفي للتوجيه والاستعلامات البسيطة، أما التفكير الأصعب فقد يحتاج نموذجًا أقوى.

  • ضع سقفًا لعدد التوكنز في الرد، واجعل قيمة temperature منخفضة أو متوسطة في ردود الدعم.

الخطوة 3: ذاكرة لا تضيع مع إعادة التشغيل

أبسط خيارات الذاكرة يحفظ السجل داخل عملية n8n نفسها. هذا مقبول للتجربة، لكنه يُمسح مع أي إعادة تشغيل ولا يناسب تشغيل أكثر من نسخة. في بيئة الإنتاج استخدم Postgres Chat Memory، فهي تكتب كل محادثة في جدول مفتاحه معرّف الجلسة. اضبط Context Window Length (عدد الرسائل الأخيرة التي تُعاد إلى النموذج) على رقم معتدل، مثل آخر 10 إلى 20 رسالة، فكل رسالة إضافية تعني توكنز أكثر في كل طلب.

إذا كان n8n يعمل أصلًا على PostgreSQL يمكنك توجيه الذاكرة إلى نفس السيرفر، والأفضل في قاعدة بيانات أو Schema منفصلة حتى لا تختلط بيانات الوكيل بجداول n8n.

الخطوة 4: أدوات الوكيل

الأدوات هي ما يجعل الوكيل مفيدًا فعلًا. في مثال المتجر:

  1. الاستعلام عن الطلب: أداة Postgres تنفّذ استعلام قراءة فقط بمعاملات، يجلب الحالة وتاريخ الشحن برقم الطلب. اربطها بمستخدم قاعدة بيانات لا يملك إلا صلاحية SELECT على جدول الطلبات.

  2. تسجيل العملاء المحتملين: أداة Google Sheets تضيف الاسم والبريد والسؤال عندما يسأل الزائر عن أسعار الجملة.

  3. API خارجي: أداة HTTP Request تتحقق من رابط تتبّع الشحنة لدى شركة الشحن.

  4. Workflow فرعي: للمنطق متعدد الخطوات (التحقق من المدخلات، استدعاء خدمتين، تنسيق النتيجة) ابنِ Workflow منفصلًا واعرضه على الوكيل كأداة.

اكتب وصف كل أداة كأنك تشرح لزميل جديد: ماذا تفعل، ومتى تُستخدم، وما المدخل المطلوب. النموذج يختار الأداة بناءً على هذا الوصف في الغالب. وفي إصدارات n8n الحديثة يمكنك ترك النموذج يملأ معاملات معينة عبر التعبير $fromAI() بدل ربطها يدويًا.

الخطوة 5: إضافة RAG عبر PGVector

حتى يجيب الوكيل عن سياسة الاسترجاع أو مواصفات المنتجات دون أن يخترع معلومات، خزّن مستنداتك على شكل متجهات (Embeddings) ودعه يبحث فيها. هذا يحتاج إلى Workflow اثنين.

Workflow الإدخال (يعمل بجدول زمني أو عند تغيّر ملف): يحمّل المستندات، ويقسّمها إلى أجزاء عبر Text Splitter، وينشئ المتجهات بعقدة Embeddings، ثم يُدخلها في عقدة PGVector Vector Store. فعّل الإضافة مرة واحدة على قاعدة البيانات:

CREATE EXTENSION IF NOT EXISTS vector;

الاسترجاع: في Workflow الوكيل اربط PGVector Vector Store كأداة، مع نفس نموذج الـ Embeddings الذي استخدمته في الإدخال. خلط نماذج Embeddings مختلفة أو تغيير أبعاد المتجه يجعل نتائج البحث بلا معنى. واكتب للأداة وصفًا واضحًا مثل: «ابحث في سياسات المتجر ومستندات المنتجات، واستخدمها لأي سؤال عن الاسترجاع أو الشحن أو الضمان».

تفاصيل أحجام الأجزاء والفهارس والبحث بالتشابه تجدها في دليل RAG باستخدام pgvector وPostgreSQL.

الخطوة 6: الضوابط

الوكيل الذي يملك أدوات قد يدخل في حلقة مفرغة، أو يستهلك ميزانية كبيرة، أو ينفّذ ما لم تقصده. ضع الحدود من البداية:

  • رسالة النظام: حدّد دور الوكيل وما يُسمح له وما لا يُسمح، والأسلوب المطلوب، وماذا يقول إذا لم يعرف الإجابة. واطلب منه البحث في المستندات قبل الرد على أسئلة السياسات.

  • Max Iterations: للعقدة حد أقصى لعدد الدورات، اجعله منخفضًا بما يكفي ليتوقف النموذج المرتبك بدل استدعاء الأدوات مرة بعد مرة.

  • أقل صلاحية ممكنة: مستخدمو قاعدة بيانات للقراءة فقط، ومفاتيح API محصورة فيما تحتاجه كل أداة، ولا أداة تحذف بيانات أو تردّ أموالًا دون خطوة موافقة بشرية.

  • ضبط التكلفة: سقف لتوكنز الرد، ونافذة ذاكرة قصيرة، وحد إنفاق في حساب مزوّد النموذج، وتحديد عدد الطلبات لكل جلسة إذا كان الوكيل متاحًا للعامة.

  • معالجة الأخطاء: اربط Error Workflow ينبّهك عند فشل أي تنفيذ.

مثال لرسالة نظام بالعربية، مناسب إذا كان عملاؤك يكتبون بالعربية:

أنت مساعد الدعم لمتجر إلكتروني.
- أجب فقط عن الطلبات والشحن والاسترجاع والمنتجات.
- في أسئلة السياسات ابحث في أداة المستندات أولًا.
- لمعرفة حالة الطلب اطلب رقم الطلب ثم استخدم أداة الاستعلام.
- لا تخترع أسعارًا أو مواعيد أو سياسات. إذا لم تتأكد فقل ذلك
  واعرض تحويل السؤال إلى موظف.
- اجعل الرد أقل من 100 كلمة.

الخطوة 7: الاختبار قبل التفعيل

استخدم نافذة الشات داخل المحرر، وافتح كل تنفيذ لترى خطوات الوكيل والأدوات التي استدعاها. جهّز قائمة أسئلة اختبار: أسئلة عادية، وحالات حدّية (رقم طلب خاطئ، سؤال خارج النطاق)، ومحاولات لدفع الوكيل إلى تجاهل تعليماته. تأكد أنه يستدعي الأداة الصحيحة ويرفض ما يجب رفضه، وسجّل عدد التوكنز في المحادثة المعتادة.

الخطوة 8: النشر بالطريقة الصحيحة

الوكيل المربوط بموقع أو تطبيق مراسلة يجب أن يكون متاحًا طوال الوقت، فلا مكان له على اللابتوب. في بيئة الإنتاج:

  • شغّل n8n على PostgreSQL خلف HTTPS بدومين خاص، واستخدم رابط Webhook الإنتاجي (لا رابط الاختبار) بعد تفعيل الـ Workflow.

  • خذ نسخًا احتياطية من قاعدة البيانات ومن مفتاح التشفير، فبدون المفتاح لا يمكن فك بيانات الاعتماد المحفوظة.

  • اختر حجم السيرفر حسب الحمل. عقد الذكاء الاصطناعي تقضي معظم وقتها في انتظار رد الـ API، لكن المستندات الكبيرة وكثرة المحادثات المتزامنة ومهام الإدخال ترفع استهلاك RAM والمعالج. التفاصيل في متطلبات تشغيل n8n من RAM وCPU.

  • إذا كانت المحادثات تصل بكثافة في اللحظة نفسها، انتقل إلى وضع queue mode في n8n مع Redis والـ Workers لتوزيع التنفيذات.

متى تنقل الوكيل من n8n إلى كود؟

n8n ممتاز للنماذج الأولية، ولتشغيل وكلاء تكمن قيمتهم في ربط الأنظمة ببعضها. فكّر في إعادة كتابة الوكيل بلغة Python أو Node.js عندما:

  • تحتاج إلى تحكم دقيق في حلقة الوكيل، أو بث الرد أولًا بأول، أو منطق إعادة محاولة وتبديل بين النماذج.

  • يتبادل عدة وكلاء المهام بحالة مشتركة يصعب التعبير عنها في صورة Workflows.

  • تريد اختبارات وحدات ومراجعة كود وإصدارات منظمة لمنطق الوكيل نفسه.

الحل الوسط الشائع: يبقى n8n مسؤولًا عن المحفّزات والتكاملات، ويستدعي خدمة وكيل تعمل داخل Docker على سيرفر منفصل عبر عقدة HTTP Request. ولأفكار عما يمكن أتمتته حول الوكيل راجع أمثلة أتمتة n8n للشركات الصغيرة.

أسئلة شائعة

أي ذاكرة أستخدم للوكيل في بيئة الإنتاج؟

ذاكرة دائمة مثل Postgres Chat Memory بمفتاح ثابت لكل مستخدم أو محادثة. الذاكرة داخل العملية تضيع مع كل إعادة تشغيل لـ n8n.

هل يمكن تشغيل الوكيل بنموذج محلي بدل API؟

نعم عبر عقدة Ollama Chat Model. لكن النموذج المحلي يحتاج عتادًا كافيًا ليرد بسرعة مقبولة، والنماذج الصغيرة غالبًا أضعف في استدعاء الأدوات من النماذج الكبيرة المستضافة، لذلك يعتمد معظم وكلاء الإنتاج على API.

لماذا يتجاهل الوكيل الأدوات؟

غالبًا لأن وصف الأداة غامض، أو رسالة النظام لا توضح متى تُستخدم، أو النموذج ضعيف في استدعاء الأدوات. أعد كتابة الأوصاف أولًا، ثم جرّب نموذجًا أقوى.

تشغيل وكيل n8n على IM HOST

خدمة استضافة n8n من IM HOST تمنحك نسخة n8n خاصة بك على سيرفر KVM مخصص بأقراص NVMe، مثبتة مع PostgreSQL وHTTPS وشهادة SSL مجانية على دومينك، مع نسخ احتياطي يومي مجاني ودعم queue mode مع Redis في باقات Pro وما فوقها. وعندما يكبر الوكيل ويصبح مشروع كود مستقلًا، توفر استضافة وكلاء الذكاء الاصطناعي سيرفرات تعمل باستمرار وعليها Docker وNode.js وPython وPostgreSQL مع pgvector مثبتة مسبقًا.

المزيد من مدونتنا

اكتشف المزيد من الأدلة العملية ورؤى الخدمات من فريق IM Host.

عرض كل المقالات