إنشاء وكيل مخصص للأبحاث باستخدام Langflow وwatsonx Orchestrate ADK وIBM Cloud

مع تطور مشهد وكلاء الذكاء الاصطناعي، تُشير بعض المؤسسات إلى وجود تردد في اعتماد هؤلاء الوكلاء المستقلين على نطاق واسع.1 وتشمل أبرز التحديات الحوكمة والأخلاقيات والتعاون بين الإنسان والذكاء الاصطناعي والنشر وقابلية التوسع. ومع ذلك، فإن بناء وكلاء ذكاء اصطناعي جديرين بالثقة لا يجب أن يكون معقدًا. وباستخدام IBM watsonx Orchestrate، يمكن معالجة هذه التحديات جميعها من خلال منصة واحدة. في هذا البرنامج التعليمي، ستتعرَّف على كيفية استخدام Langflow وwatsonx Orchestrate لإنشاء وكلاء مؤسسيين موثوق بهم وقابلين للتوسع.

ما المقصود بـ Langflow؟

يُعَد Langflow إطار عمل مفتوح المصدر يعتمد على Python لبناء وكلاء الذكاء الاصطناعي وتطبيقات الذكاء الاصطناعي الأخرى. وقد تم بناء Langflow في الأصل اعتمادًا على LangChain، وهو إطار العمل الأساسي الذي يستند إليه.أما LangGraph، وهو منصة أخرى ضمن المنظومة نفسها، فيُستخدم أيضًا لبناء الأنظمة الوكيلة بالاعتماد على بنى قائمة على الرسوم البيانية. وما يميز Langflow هو واجهته سهلة الاستخدام التي تعتمد على السحب والإفلات، حيث يمكن للمستخدمين ربط عناصر الوكيل لتصميم مهام سير عمل مخصصة أو البدء باستخدام القوالب الجاهزة. وكبديل لهذا النهج منخفض التعليمات البرمجية أو دون تعليمات برمجية، يمكن للمطورين إنشاء عناصر مخصصة ودمج تدفقات الوكلاء خطوة بخطوة داخل التعليمات البرمجية للتطبيقات الحالية باستخدام Langflow API. في هذا البرنامج التعليمي الخاص بإطار العمل Langflow، سنتعرَّف على كيفية بناء الوكلاء ونشرهم من خلال:

  1. استيراد تدفقات LangFlow الوكيلة كخوادم MCP باستخدام IBM® watsonx Orchestrate بوصفه خدمة برمجية (Software as a Service (SaaS))، إلى جانب IBM Cloud.
  2. استيراد تدفقات LangFlow الأساسية باستخدام IBM watsonx Orchestrate Agent Development Kit (ADK) محليًا.

ويتوافق كلٌّ من هذين النهجين مع قسم مستقل ضمن هذا البرنامج التعليمي. ملاحظة، يمكنك أيضًا الوصول إلى هذا البرنامج التعليمي على GitHub.

لنبدأ!

المتطلبات الأساسية

يتطلب هذا البرنامج التعليمي ما يلي:

  • تثبيت أحدث إصدار من Python.
  • امتلاك حساب IBM® Cloud لإنشاء معرِّف المشروعومفتاح واجهة برمجة التطبيقات الخاصين بـ watsonx.ai. تتوفر خطط خدمة Lite وFree.
    • يمكنك الحصول على معرِّف المشروع من داخل مشروعك. انقر على علامة التبويب Manage، ثم انسخ معرِّف المشروع من قسم Details في صفحة General. وستحتاج إلى هذا المعرِّف عند تنفيذ جزء ADK من هذا البرنامج التعليمي.
  • امتلاك حساب watsonx Orchestrate (يمكن أن يكون حسابًا تجريبيًا). وإذا لم يكن لديك حساب بالفعل، فانقر هنا للتسجيل في النسخة التجريبية المجانية لمدة 30 يومًا. راجِع الوثائق للحصول على إرشادات تفصيلية حول كيفية الحصول على النسخة التجريبية عبر IBM Cloud.
  • تم تثبيت IBM watsonx Orchestrate ADK. اتَّبِع الوثائق الرسمية هنا لإعداد ADK وتثبيته.
    • ملاحظة: إذا كنت قد ثبَّت watsonx Orchestrate Developer Edition قبل إصدار ADK 2.0، فأزِل أولًا جميع الحاويات (Containers) بتشغيل الأمر orchestrate server reset قبل إجراء الترقية. لم يَعُد watsonx Orchestrate Developer Edition يعتمد على محرك حاويات خارجي. قد يؤدي عدم إجراء إعادة الضبط قبل الترقية إلى وجود عدة تثبيتات للتطبيق تستهلك موارد النظام دون داعٍ، كما قد يتسبب في حدوث تعارض بين المنافذ.
  • تم تثبيت IBM Cloud CLI. يمكنك العثور على أوامر التثبيت الخاصة بأنظمة macOS وLinux وWindows في دليل البدء.

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

الخطوات: نهج IBM Cloud

الخطوة 1: تكوين بيئة IBM Cloud.

في الوحدة الطرفية (Terminal)، شغِّل الأمر التالي. سيُطلب منك تسجيل الدخول إلى حسابك في IBM Cloud باستخدام IBMid. إذا كان لديك عدة حسابات، فستحتاج إلى اختيار أحدها.

ibmcloud login

ملاحظة: هل تم رفض بيانات الاعتماد؟ قد تكون مستخدِمًا يعتمد على الهوية الاتحادية (Federated User). سجِّل الدخول مرة أخرى باستخدام الخيار --sso لاستخدام معرِّف تسجيل الدخول الموحَّد الخاص بالمؤسسة أو الشركة. لمزيد من المعلومات حول تسجيل الدخول باستخدام المعرِّفات الاتحادية، راجِع الوثائق. باختصار، عندما يُطلب منك ذلك، اسمح بفتح عنوان URL في متصفحك الافتراضي، ثم انسخ رمز الاستخدام لمرة واحدة الذي يظهر وألصِقه في المحطة الطرفية (Terminal).

ستعرف أن عملية تسجيل الدخول تمت بنجاح عند ظهور مخرجات مشابهة لما يلي.

المخرجات:

API endpoint: https://cloud.ibm.com
Region: us-south
User: your.email@email.com
Account: itz-watsonx-event-001 (f1zzz9a2e11b432ea5316227cb901888) <-> 3021952
Resource group: No resource group targeted, use ‘ibmcloud target -g RESOURCE_GROUP’

ملاحظة: إذا لاحظت أن المنطقة غير صحيحة، فشغِّل الأمر ibmcloud target -r متبوعًا بالمنطقة الصحيحة. على سبيل المثال، إذا كانت نقطة نهاية الخدمة الإقليمية لديك هي us-east، فشغِّل الأمر ibmcloud target -r us-east.

لعرض الموارد السحابية الخاصة بك، شغِّل الأمر ibmcloud resource groups. سيؤدي هذا الأمر إلى استرجاع مجموعات الموارد (Resource Groups) الخاصة بك، وستظهر مخرجات مشابهة لهذا المثال (مع اختلاف أسماء الموارد ومعرِّفاتها).

المخرجات:

Retrieving all resource groups under account f1zzz9a2e11b432ea5316227cb901888 as your.email@email.com...
OK
Name ID Default Group State
watsonx 93018fa55c342de104afb8jje20c222c false ACTIVE
itz-wxo-69305f32086a49ee3736ff 48bbeb07ec5a4994b2fd39beb6027090 false ACTIVE

بعد ذلك، حدِّد المورد المطلوب بتشغيل الأمر ibmcloud target -g RESOURCE_GROUP. في هذا المثال، سيكون الأمر هو ibmcloud target -g itz-wxo-69305f32086a49ee3736ff.

يجب أن تكون المخرجات مشابهة لهذا المثال.

المخرجات:

Targeted resource group itz-wxo-69305f32086a49ee3736ff
API endpoint: https://cloud.ibm.com
Region: us-south
User: your.email@email.com
Account: itz-watsonx-event-001 (f1zzz9a2e11b432ea5316227cb901888) <-> 3021952
Resource group: itz-wxo-69305f32086a49ee3736ff

الخطوة 2: تثبيت واجهة سطر أوامر IBM Cloud Code Engine.

باستخدام IBM Cloud Code Engine، يمكنك تشغيل أي عبء عمل قائم على الحاويات تقريبًا دون الحاجة إلى إدارة الخوادم أو البنية التحتية. وتدعم المنصة كل شيء، بدءًا من الخدمات المصغرة وتطبيقات الويب، ووصولًا إلى المهام الدفعية والوظائف القائمة على الأحداث. كما تُتيح إنشاء صور الحاويات مباشرةً من التعليمات البرمجية المصدر. ولأن جميع أحمال العمل تشترك في بيئة Kubernetes نفسها، فإنها تتكامل معًا بصورة طبيعية. وقد تم تصميم Code Engine ليُعفيك من إدارة البنية التحتية، حتى تتمكن من التركيز على تطوير التطبيقات. والخطوة التالية هي تثبيت Code Engine CLI. شغِّل الأمر التالي في الوحدة الطرفية (Terminal).

ibmcloud plugin install code-engine -f

المخرجات:

Looking up ‘code-engine’ from repository ‘IBM Cloud’...
Plug-in ‘code-engine[ce] 1.57.0’ found in repository ‘IBM Cloud’
Attempting to download the binary file...
74.08 MiB / 74.08 MiB [============================================] 100.00% 1s
77680050 bytes downloaded
Installing binary...
OK
Plug-in ‘code-engine 1.57.0’ was successfully installed into /your/path/to/code-engine. Use ‘ibmcloud plugin show code-engine’ to show its details.

رائع! الآن، لنحدِّد مشروعًا داخل Code Engine. ابدأ بعرض قائمة المشروعات من خلال تشغيل الأمر ibmcloud ce project list.

المخرجات:

Getting projects...
OK

Name ID Status Enabled Selected Tags Region Resource Group Age
ce-itz-wxo-69305f32086a49ee3736ff 8991a30c-944f-422d-9e00-00789043e90e active true false us-south itz-wxo-69305f32086a49ee3736ff 7m32s

يجمع مشروع Code Engine عناصر مثل التطبيقات (Applications) والمهام (Jobs) وعمليات الإنشاء (Builds). ويُستخدم كوحدة لإدارة الموارد والتحكم في الوصول إلى هذه العناصر.إذا لم تكن لديك أي مشروعات نشطة في Code Engine، فشغِّل الأمر ibmcloud ce project create --name PROJECT_NAME واستبدِل CE_PROJECT_NAME بأي اسم مشروع من اختيارك (على سبيل المثال: "code-engine-project").

لتحديد المشروع المطلوب، شغِّل الأمر ibmcloud ce project select --name CE_PROJECT_NAME. في هذا المثال، سيكون الأمر هو ibmcloud ce project select --name ce-itz-wxo-69305f32086a49ee3736ff.

المخرجات:

Selecting project ‘ce-itz-wxo-69305f32086a49ee3736ff’...
OK

ملاحظة: إذا واجهت خطأً في هذه الخطوة، فتأكد من أنك حدَّدت البيئة الصحيحة باستخدام الأمر ibmcloud target -c ACCOUNT_ID -r REGION_NAME -g RESOURCE_GROUP_NAME.

الخطوة 3: إعداد Langflow باستخدام واجهة سطر أوامر Code Engine.

لاستخدام Langflow مع Code Engine CLI، شغِّل الأمر التالي.

ibmcloud ce app create \
--name langflow \
--image langflowai/langflow:latest \
--port 7860

قد يستغرق تنفيذ هذا الأمر عدة دقائق. لا تقاطع عملية التنفيذ، واترك الأمر حتى يكتمل.

المخرجات:

Creating application ‘langflow’...
Configuration ‘langflow’ is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready.
Run ‘ibmcloud ce application get -n langflow’ to check the application status.
OK

https://langflow.23h82g3y09cp.us-south.codeengine.appdomain.cloud

الخطوة 4: ربط wxO وتفعيل Langflow.

أثناء تنفيذ أمر إعداد Langflow، يمكننا إضافة بيئة للاتصال بكلٍ من جهازنا المحلي والحل المستضاف بصيغة SaaS.

في وحدة طرفية (Terminal) جديدة، فعِّل بيئة افتراضية داخل الدليل الذي اختَرته. يمكنك تغيير my-env إلى أي اسم بيئة تختاره.

python -m venv my-env

فعِّل البيئة الافتراضية باستخدام الأمر التالي، واستبدِل my-env باسم البيئة إذا كنت قد اختَرت اسمًا مختلفًا.

نظام التشغيل macOS/Linux:

source my-env/bin/activate

نظام التشغيل Windows:

my-env\Scripts\activate

الآن، من خلال المتصفح الذي تفضله، انتقِل إلى قائمة الموارد في IBM Cloud، ثم وسِّع القائمة المنسدلة AI/Machine Learning وحدِّد مورد wxO النشط. سيكون اسمه مشابهًا لـ "Watson Orchestrate-itz"، على سبيل المثال. بعد ذلك، انسخ عنوان URL الموجود في نافذة Credentials. اترك هذه الصفحة مفتوحة في المتصفح، لأنك ستحتاج إليها بعد قليل. في الأمر التالي، استبدل YOUR_WXO_RESOURCE_URL بعنوان URL الذي حصلت عليه، ثم شغِّل الأمر داخل البيئة الافتراضية المفعَّلة في الوحدة الطرفية (Terminal).

orchestrate env add \
-n langflow \
-u YOUR_WXO_RESOURCE_URL \
--type ibm_iam \
--activate

المخرجات:

[INFO] - Environment ‘langflow’ has been created
Please enter WXO API key:

عندما يُطلب منك إدخال مفتاح واجهة برمجة التطبيقات wxO، عُد إلى صفحة المورد المفتوحة في المتصفح.لا تُدخل مفتاح API الموجود أعلى عنوان URL الذي نسخته. بدلًا من ذلك، انقر على زر Launch watsonx Orchestrate. بعد ذلك، انقر على الأيقونة الدائرية التي تحمل الأحرف الأولى من اسمك في الزاوية العلوية اليمنى من الشاشة، ثم افتح Settings. انتقل إلى علامة التبويب API details، ثم انقر على زر Generate API key. بعد ذلك، أدخِل أي اسم ووصف لمفتاح API، ثم اختَر "Disable the leaked key" في قسم "Leaked action". والأهم من ذلك، اختَر "Yes" في قسم "Session management" لتمكين إدارة الجلسات (Session Management) لعمليات تسجيل الدخول عبر CLI، ثم انقر على "Create". سيظهر مفتاح API الخاص بك. انسخ المفتاح وألصِقه في الوحدة الطرفية (Terminal) التي كنت تستخدمها قبل قليل لتلبية طلب إدخال wxO API Key.

المخرجات:

[INFO] - Environment ‘langflow’ is now active

رائع! أصبح Langflow الآن نشطًا.

الخطوة 5: تكوين موارد Code Engine.

لإنشاء بيئة Code Engine مستقرة لا تحذف تطبيق Langflow بعد انتهاء مهلة زمنية محددة، افتح المتصفح مرة أخرى. انتقِل إلى صفحة نظرة عامة على الحاويات في IBM Cloud. ستجد مشروع Code Engine الذي أنشأته مؤخرًا ظاهرًا في القائمة. افتح المشروع. ثم افتح تطبيق Langflow. من علامة التبويب Configuration، افتح قسم Resources and scaling. التغيير الوحيد المطلوب هنا هو زيادة الحد الأدنى لعدد المثيلات من 0 إلى 1. وأخيرًا، انقر على زر Deploy لتطبيق هذا التعديل على الإعدادات.

بعد إكمال هذه الخطوة، انقر على زر Test application، ثم انقر على رابط Application URL. سيؤدي ذلك إلى فتح نسخة Langflow المستضافة على IBM Cloud.

تخصيص إعدادات Code Engine

الخطوة 6: إنشاء التدفق.

هناك العديد من الطرق لإنشاء Langflow Flow. يمكنك استخدام القوالب الجاهزة أو إنشاء تدفق خاص بك من البداية. وفي هذا البرنامج التعليمي، سنستخدم الخيار الثاني. للبدء، انقر على Blank Flow +. يوضح هذا المثال أحد التدفقات التي يمكنك إنشاؤها، ولكن لا تتردد في استكشاف المجموعة الكبيرة من العناصر وعمليات التكامل المدمجة في Langflow.

  1. أضِف عُقد العناصر المضمَّنة التالية من القائمة:
  • Chat Input – يستقبل مدخلات المستخدم من واجهة الدردشة.

  • Chat Output – يعرض ناتج التدفق للمستخدم في واجهة الدردشة.

  • Agent – يستخدم تكاملًا مع نموذج لغوي كبير (LLM) للرد على مدخلات المستخدم، ويمكن ربطه بعدة أدوات.2

  • MCP Tools – يتصل بخادم Model Context Protocol (MCP) ويُتيح وظائفه كأدوات يمكن للوكلاء استخدامها للاستجابة لمدخلات المستخدم.2

  • IBM watsonx.ai- يوفر إمكانية الوصول إلى نماذج IBM watsonx.ai لتوليد النصوص.3

  • News Search – يجلب محتوى Google News ويُنشئ DataFrame منظمًا يتضمن عنوان كل مقال ورابطه وتاريخ نشره وملخصه.4

  • arXiv - يبحث في arXiv.org عن الأوراق البحثية ذات الصلة ويعرض النتائج بتنسيق DataFrame.5

    وأخيرًا، اختَر New Custom Component + من أسفل القائمة.

    ولتسهيل عرض التدفق، رتِّب مكوناته كما يلي.

لقطة شاشة للتدفق النهائي في Langflow

2. صِل عنصر Chat Input بحقل "Input" في عنصر Agent.

3. صِل عنصر Chat Output بحقل "Response" في عنصر Agent.

4. في عنصر Agent، اضبط "Model Provider" على "Custom" من القائمة المنسدلة. قد يظهر لك الخيار "Connect other models" بدلًا من ذلك، وذلك حسب إصدار Langflow الذي تستخدمه. وكلا الخيارين صحيح.

5. في مكوِّن IBM watsonx.ai،حدِّد نقطة نهاية واجهة برمجة التطبيقات (API Endpoint) الخاصة بـ watsonx.ai والمناسبة لبيانات اعتماد API لديك. بعد ذلك، ألصِق معرِّف المشروع ومفتاح API Key الخاصين بـ watsonx.ai في الحقول المخصصة لهما. ثم اختَر اسم النموذج اللغوي الكبير (LLM) الذي تفضله. في هذا البرنامج التعليمي، يمكننا اختيار openai/gpt-oss-120b. تأكد من ضبط العنصر على "Language Model" وليس "Model Response". يُعَد هذا الإعداد مهمًا لأننا نريد استخدام هذا النموذج بوصفه النموذج اللغوي الخاص بالوكيل. وبذلك، يمكننا الآن توصيل مكوِّن IBM watsonx.aiبحقل "Language Model" الخاص بعنصر الوكيل .

  • ملاحظة: إذا كنت تفضل استخدام المتغيرات العامة بدلًا من لصق بيانات اعتماد واجهة برمجة التطبيقات مباشرةً، فانقر على أيقونة ملفك الشخصي في الزاوية العلوية اليمنى من الشاشة، ثم اختَر Settings. في قسم Global Variables، أضِف WATSONX_PROJECT_ID وWATSONX_APIKEY الخاصين باتصال watsonx.ai، اللذين أنشأتهما ضمن المتطلبات الأساسية لهذا البرنامج التعليمي. عند العودة إلى التدفق الخاص بك، ستلاحظ ظهور أيقونة على شكل كرة أرضية في حقلَي "watsonx.ai Project ID" و"API key". انقر على الأيقونة، ثم اختَر المفتاح المناسب من القائمة المنسدلة.

6. فعِّل Tools Mode باستخدام مفتاح التبديل في العناصر arXiv وNews Search وCustom Component. سيظهر مفتاح التبديل في القائمة العلوية للعنصر عند النقر في أي موضع داخله. بعد تفعيل هذا الوضع، يمكنك توصيل هذه العناصر بحقل "Tools" في عنصر Agent. أصبح العنصران arXiv وNews Search مُعدين وجاهزين للاستخدام. يمكننا الآن التركيز على إعداد بقية العناصر.

7. من القائمة العلوية في Custom Component، اختَر Code <>. هنا، يمكننا تخصيص سلوك العنصر من خلال تعديل كود Python الذي يعرِّفه.6كمثال بسيط، يمكننا إنشاء أداة تُظهر تاريخ اليوم، وهي معلومة لا يستطيع النموذج اللغوي الكبير (LLM) معرفتها بطبيعته. استبدل الكود الافتراضي بالكود التالي:

from langflow.custom.custom_component.component import Component
from langflow.io import MessageTextInput, Output
from langflow.schema.data import Data
from datetime import date

class CustomComponent(Component):
    display_name = “Date”
    description = “Returns today’s date.”
    documentation: str = “https://docs.langflow.org/components-custom-components”
    icon = “calendar-check”
    name = “CustomDateComponent”

    inputs = [] # No input needed

    outputs = [
        Output(display_name=”Today’s Date”, name=”output”, method=”build_output”),
    ]

def build_output(self) -> Data:
    today = date.today()
    data = Data(value=today)
    self.status = data
    return data

احفظ التغييرات. ستلاحظ الآن أن العنصر يعرض اسمه الجديد ووصفه وأيقونته الجديدة.

8. يعود إليك تحديد عدد الأدوات التي توفِّرها لوكيلك. ومع ذلك، احرص على عدم تزويد الوكيل بعدد كبير جدًا من الأدوات، لأن ذلك قد يؤثر في الأداء والدقة. آخر أداة سنقوم بتفعيلها هي خادم MCP. يمكنك الاتصال بأي خادم من اختيارك. في هذا البرنامج تعليمي، يمكننا الاتصال بخادم Alpha Vantage MCP.7 يسهِّل خادم Alpha Vantage MCP الرسمي على النماذج اللغوية الكبيرة (LLM) والوكلاء جلب بيانات الأسهم الحالية والتاريخية باستخدام Model Context Protocol (MCP). للاتصال بهذا الخادم، افتح القائمة المنسدلة "MCP Server" في عنصر MCP Tools، ثم انقر على + Add MCP Server. في علامة التبويب STDIO، أدخِل أي اسم للخادم، مثل "av_mcp"، ثم ألصِق الأمر التالي: uvx av-mcp YOUR_API_KEY. لإنشاء مفتاح Alpha Vantage API مجاني، انتقل إلى الموقع الرسمي لـ Alpha Vantage، ثم ألصِقه داخل الأمر مع استبدال العنصر النائب YOUR_API_KEY. بعد إضافة الخادم، فعِّل مفتاح Tools Mode من قائمة رأس عقدة (Node) العنصر. ستلاحظ ظهور قائمة كبيرة من الأدوات ضمن قسم "Actions". وهذا يعني أن الاتصال بخادم MCP قد تم بنجاح. يمكنك الآن توصيل هذا العنصر الأخير بحقل "Tools" في عنصر Agent.

إضافة خادم Alpha Vantage MCP

أحسنت! اكتمل الآن التدفق الخاص بك، ويُفترض أن يشبه لقطة الشاشة التالية.

لقطة شاشة للتدفق النهائي في Langflow

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

  • بسيطة:
    • "ما تاريخ اليوم؟".
    • "اعثر لي على 5 أوراق بحثية حول الحوسبة الكمِّية".
  • متوسطة:
    • "حلِّل سعر سهم IBM خلال آخر 30 يومًا".
  • معقدة:
    • "هل توجد أخبار حديثة تُشير إلى أن سهم IBM يتجه نحو الارتفاع أم الانخفاض؟".

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

الخطوة 7: استيراد التدفق إلى wxO كخادم MCP.

تتمثل إحدى طرق ربط هذا التدفق بـ watsonx Orchestrate في استخدامه كخادم MCP. انقر على القائمة المنسدلة Share في الزاوية العلوية اليمنى، ثم اختَر "MCP Server". بعد ذلك، افتح علامة التبويب "JSON". ستظهر لك تعليمات برمجية مشابهة للمثال التالي:

{
    “mcpServers”: {
    “lf-starter_project”: {
    “command”: “uvx”,
    “args”: [
        “mcp-proxy”,
        “https://langflow.23h82g3y09cp.us-south.codeengine.appdomain.cloud/api/v1/mcp/project/b797fbc9-cd21-46e9-bc23-8fa813f94810/sse”
            ]
        }    
    }    
}

انسخ عنوان URL الموجود في مقتطف JSON. لاحِظ أن هذا العنوان سيختلف عن المثال السابق. عُد إلى الوحدة الطرفية (Terminal) وألصِق عنوان URL الخاص بخادم MCP بدلًا من العنصر النائب MCP_SERVER_URL. يُتيح لنا تشغيل الأمر التالي في واجهة سطر الأوامر (CLI) الخاصة بـ watsonx Orchestrate استيراد خادم MCP هذا إلى المنصة باعتباره مجموعة أدوات.

orchestrate toolkits add \
--kind mcp \
--name langflow_mcp \
--description “LangFlow MCP Server” \
--command “uvx mcp-proxy MCP_SERVER_URL” \
--tools “*”

المخرجات:

[INFO] - Successfully imported tool kit langflow_mcp

الخطوة 8: إنشاء وكيل واختبار استدعاءات الأدوات

من خلال المتصفح، انتقِل إلى watsonx Orchestrate وأنشئ وكيلًا جديدًا من البداية. أدخِل أي اسم ووصف للوكيل. بعد إنشاء الوكيل، افتح علامة التبويب Toolset، ثم انقر على زر Add tool. بعد ذلك، اختَر استيراد الأدوات من خادم MCP. من القائمة المنسدلة Select MCP server، اختَر الخادم الذي قمنا باستيراده، ثم فعِّل الأدوات باستخدام مفتاح التفعيل، وأغلِق النافذة. بعد ذلك، انقر على Deploy. بعد اكتمال النشر، يمكنك الدردشة مع الوكيل من خلال نافذة Preview أو عبر واجهة الدردشة الموجودة في القائمة الجانبية المطوية للصفحة.

لنطرح سؤالًا على الوكيل! على سبيل المثال: "اعثر على 5 أوراق بحثية حول الحوسبة الكمِّية".

مخرجات استعلام أوراق البحث

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

الخطوات: نهج ADK (البيئة المحلية)

في هذا النهج، لا تحتاج إلى Code Engine. يعتمد هذا النهج على إعداد بيئة تطوير محلية باستخدام watsonx Orchestrate Developer Edition SDK، وهو إصدار خفيف من watsonx Orchestrate يعمل كخادم تطوير محلي.

المتطلبات الأساسية

  • مواصفات الجهاز:
    • ذاكرة 16 جيجابايت
    • 8 أنوية
    • 25 جيجابايت من مساحة القرص

الخطوة 1: تثبيت مجموعة تطوير البرامج (SDK) الخاصة بإصدار wxO Developer Edition.

قبل البدء في التطوير محليًا باستخدام Langflow، ثبِّت إصدار Developer Edition من wxO ADK. لاحِظ أن Developer Edition لم يكن مطلوبًا في النهج الأول من هذا البرنامج التعليمي.

  1. في بيئة التطوير المتكاملة (IDE) المفضلة لديك، قم بإعداد بيئة العمل الخاصة بك. أنشئ مجلدًا باسم wxo-langflow-agent لتخزين جميع الوكلاء والأدوات. يمكنك العثور على هذا المشروع على GitHub لاستخدامه كمرجع. يجب أن يكون هيكل المجلدات على النحو التالي:

    wxo-langflow-agent/
    ├── .env
    ├── tools/
    └── agents/
    

2. افتح الوحدة الطرفية (Terminal) وفعِّل بيئة افتراضية. يمكنك تغييرmy-env إلى أي اسم بيئة تختاره.

python -m venv my-env

فعِّل البيئة الافتراضية باستخدام الأمر التالي، واستبدِل my-env باسم البيئة إذا كنت قد اختَرت اسمًا مختلفًا.

نظام التشغيل macOS/Linux:

source my-env/bin/activate

نظام التشغيل Windows:

my-env\Scripts\activate

3. في ملف env.، اضبط متغيرات البيئة التالية. وللمزيد من المعلومات، راجِع دليل الإعداد.

WO_DEVELOPER_EDITION_SOURCE=orchestrate
WO_INSTANCE=<service_instance_url>
WO_API_KEY=<wxo_api_key>

4. شغِّل الأمر التالي لتثبيت خادم watsonx Orchestrate Developer Edition. لا تحتاج إلى تثبيت Langflow لأنه مضمَّن في ADK Developer Edition. يعمل خيار الأمر --with-langflow على تفعيل دعم Langflow من خلال تنزيل صور الحاويات (Container Images) اللازمة، وإجراء الإعداد الأوَّلي لإتاحة Langflow محليًا.

orchestrate server start -e <path-.env-file> --with-langflow

قد يستغرق تنفيذ هذا الأمر عدة دقائق إذا كانت هذه هي المرة الأولى التي تقوم فيها بتشغيل الخادم.

استكشاف الأخطاء وإصلاحها: إذا سبق لك تثبيت watsonx Orchestrate Developer Edition قبل الإصدار 2.0 من ADK وواجهت أخطاء عند تشغيل الحاويات، فنفِّذ الأمر التالي:

orchestrate server reset
orchestrate server purge
pip install --upgrade ibm-watsonx-orchestrate

يُفترض أن يكون الجزء الأخير من المخرجات مشابهًا للمثال التالي.

المخرجات:

[INFO] - Migration ran successfully.
[INFO] - Waiting for orchestrate server to be fully initialized and ready...
[INFO] - Orchestrate services initialized successfully
[INFO] - no local tenant found. A default tenant is created
[INFO] - You can run `orchestrate env activate local` to set your environment or `orchestrate chat start` to start the UI service and begin chatting.
[INFO] - Langflow has been enabled, the Langflow UI is available at http://localhost:7861

الخطوة 2: تفعيل واجهة دردشة wxO المحلية.

  1. يعرِّف watsonx Orchestrate ADK البيئات على أنها مثيلات watsonx Orchestrate التي يمكنك الاتصال بها. ستكون بيئتك عبارة عن مثيل من Developer Edition يعمل على جهاز الكمبيوتر المحمول الخاص بك. يمكنك استخدام الأمر orchestrate env list لعرض جميع البيئات المتاحة حاليًا لواجهة سطر الأوامر (CLI) لديك. وبشكل افتراضي، ستكون لديك بيئة محلية. يمكنك تشغيل الأمر التالي لتفعيل البيئة المحلية.

    orchestrate env activate local
    

    المخرجات:

    [INFO] - local tenant found
    [INFO] - Environment 'local' is now active
    
  2. بعد ذلك، شغِّل الأمر التالي لبدء تشغيل واجهة الدردشة في متصفحك الافتراضي.

    orchestrate chat start
    

    المخرجات:

    [INFO] - Chat UI Service started successfully.
    [INFO] - Waiting for UI component to be initialized...
    [INFO] - Opening chat interface at http://localhost:3000/chat-lite
    

الخطوة 3: إنشاء تدفق في Langflow.

يتوفر محرر Langflow من خلال watsonx Orchestrate Developer Edition على المنفذ 7861، كما هو موضح في المخرجات السابقة.

  1. في متصفح الويب، انتقِل إلى http://localhost:7861.
  2. أنشئ التدفق الخاص بك. يمكنك إعادة استخدام التدفق الذي أنشأته في الجزء الأول من هذا الدليل، أو إنشاء تدفق جديد خاص بك. قد يكون من المفيد لاحقًا في هذا البرنامج التعليمي منح التدفق اسمًا ووصفًا مخصصين بدلًا من القيم الافتراضية. يمكنك القيام بذلك بتمرير مؤشر الماوس فوق اسم التدفق أعلى الشاشة، ثم النقر على أيقونة القلم.
  • مثال على اسم التدفق: وكيل البحث
  • مثال لوصف التدفق: الوصول إلى News Search وarXiv وتاريخ اليوم وواجهة Alpha Vantage API.

الخطوة 4: استيراد التدفق إلى wxO.

يمكننا استعراض طريقتين لاستيراد تدفقات Langflow إلى خادم watsonx Orchestrate المحلي:

أ) استيراد التدفق كخادم MCP محلي.

ب) استيراد التدفق بصيغة JSON.

الخيار 1: الاستيراد كخادم MCP محلي

هذه الخطوة تشبه الخطوة السابعة في الجزء الأول من هذا البرنامج التعليمي، مع بعض التعديلات البسيطة. 

  1. انقر على القائمة المنسدلة Share في الزاوية العلوية اليمنى من Langflow، ثم اختَر "MCP Server". بعد ذلك، افتح علامة التبويب "JSON". ستظهر لك تعليمات برمجية مشابهة للمثال التالي:

    {
        "mcpServers": {
            "lf-starter_project": {
            "command": "uvx",
            "args": [
                "mcp-proxy",
                "http://localhost:7861/api/v1/mcp/project/41c9434f-67bf-439e-8dac-b7bb09b1d1ca/sse"
                ]
            }
        }
    }
    
  2. انسخ عنوان URL الموجود في مقتطف JSON. لاحِظ أن هذا العنوان سيختلف عن المثال السابق. عُد إلى المحطة الطرفية (Terminal) وألصِق الأمر التالي، مع استخدام عنوان URL الخاص بك بدلًا من العنوان الوارد في المثال التالي. على عكس الأمر الذي استخدمناه مع IBM Cloud، يجب هنا استبدال localhost بـ host.docker.internal. إليك مثالًا:

    orchestrate toolkits add \
        --kind mcp \
        --name langflow_research_mcp \
        --description "LangFlow MCP Server" \
        --command "uvx mcp-proxy http://host.docker.internal:7861/api/v1/mcp/project/41c9434f-67bf-439e-8dac-b7bb09b1d1ca/sse" \
        --tools "*"
    

    المخرجات:

    [INFO] - Successfully imported tool kit langflow_research_mcp
    
  3. في نسخة watsonx Orchestrate المحلية التي تعمل في المتصفح، انقر على "Create new agent"، ثم أدخِل اسمًا ووصفًا للوكيل الجديد، وبعد ذلك انقر على زر Create .

لقطة شاشة لـ watsonx Orchestrate أثناء تشغيل "إنشاء وكيل محلي"

4. في علامة التبويب Toolset، انقر على زر Add tool. اختَر "local instance" لإضافة خادم MCP الذي سبق استيراده، ثم حدِّد مربع الاختيار الخاص به، وانقر على Add to agent.

لقطة شاشة توضِّح كيفية إضافة خادم MCP كأداة.

5. ابدأ الدردشة!

محادثة الوكيل باستخدام خادم MCP كأداة.

الخيار 2: الاستيراد بصيغة JSON

كبديل لاستيراد التدفقات كخوادم MCP، يمكن استخدام ADK لاستيرادها كملفات JSON مُصدَّرة.

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

أداة arXiv في Langflow

قم بتصدير التدفق بصيغة JSON بالنقر على زر Share ثم اختيار Export. أدخِل أي اسم ووصف تريدهما للأداة أو التدفق. يجب أن يحتوي اسم الأداة على أحرف وأرقام وشرطة سفلية (_) فقط، وألا يبدأ برقم أو بشرطة سفلية.

2. أضِف ملف JSON الذي تم تصديره حديثًا إلى المجلد tools

3. نفِّذ الأمر التالي لاستيراد التدفق إلى watsonx Orchestrate.

orchestrate tools import -k langflow -f tools/arxiv.json

4. بعد استيراد تدفق Langflow كأداة، تتمثل الخطوة التالية في ربطه بنظام وكيل. يمكنك تنفيذ هذه الخطوة بإنشاء وكيل جديد من خلال واجهة watsonx Orchestrate، أو بنسخ تعريف الوكيل التالي إلى ملف arxiv_agent.yml جديد داخل المجلد agents.

kind: native
name: arxiv_agent
display_name: ArXiv Agent
description: Access to arXiv tool.
context_access_enabled: true
context_variables: []
llm: watsonx/ibm/granite-4-h-small
style: default
instructions: ‘’
guidelines: []
collaborators: []
tools:
- arxiv
knowledge_base: []
spec_version: v1

والآن، استورد الوكيل البسيط بتنفيذ الأمر التالي:

orchestrate agents import -f agents/arxiv_agent.yml

5. حدِّث صفحة المتصفح التي تعرض واجهة دردشة watsonx Orchestrate المحلية حتى تظهر التغييرات. من القائمة المنسدلة Agents، اختَر "ArXiv Agent"، ثم اطرح أسئلة تتطلب استخدام أداة arXiv.

مثال على المطالبة: "اعثر لي على 5 أوراق بحثية حول الحوسبة الكمِّية".

المخرجات:

محادثة مع وكيل arXiv المحلي

رائع! حدَّد الوكيل أن استدعاء الأداة arxiv كان ضروريًا لمعالجة استعلام هذا المستخدم. وتظهر مخرجات الأداة في تدفق الاستدلال المطوي، وكذلك في نافذة الدردشة كاستجابة.

الخاتمة

زوَّدك هذا البرنامج التعليمي بالمهارات الأساسية للاستفادة من Langflow وwatsonx Orchestrate في إنشاء وكلاء يتميزون بالمتانة وقابلية التوسع والجاهزية لبيئات المؤسسات. وتعرّفت على كيفية استيراد تدفقات LangFlow الوكيلة كخوادم MCP باستخدام watsonx Orchestrate كخدمة SaaS إلى جانب IBM Cloud. كما أصبحت على دراية بكيفية استيراد تدفقات LangFlow الأساسية عند استخدام IBM watsonx Orchestrate Agent Development Kit (ADK) محليًا. ومن خلال اتِّباع التعليمات خطوة بخطوة، تعرَّفت على كيفية تصميم الوكلاء وتطويرهم ونشرهم بحيث يمكنهم استدعاء الأدوات المخصصة والجاهزة مسبقًا للإجابة عن استفسارات المستخدمين. من خلال الواجهة المرئية البديهية في Langflow، أنشأت مهام سير عمل معقدة، بينما أتاح لك watsonx Orchestrate إدارة هؤلاء الوكلاء وتوسيع نطاقهم بكفاءة. وكخطوة تالية، طبِّق المعارف التي اكتسبتها من هذا البرنامج التعليمي من خلال العمل على حالة استخدام واقعية. اختَر مشكلة أو عملية محددة داخل مؤسستك يمكن أن تستفيد من الأتمتة، ثم صمِّم حلًا يعتمد على Langflow وwatsonx Orchestrate لمعالجتها. ستعزز هذه التجربة العملية فهمك، كما ستساعدك على تحديد الجوانب التي يمكن تحسينها أو استكشافها مستقبلًا.

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

مؤلف

Anna Gutowska

AI Engineer, Developer Advocate

IBM

حلول ذات صلة
وكلاء الذكاء الاصطناعي للأعمال

يمكنك إنشاء مساعدين ووكلاء ذكاء اصطناعي ووكلاء أقوياء يعملون على أتمتة مهام سير العمل والعمليات باستخدام الذكاء الاصطناعي التوليدي ونشرها وإدارتها.

    استكشف watsonx Orchestrate
    حلول وكلاء الذكاء الاصطناعي من IBM

    يمكنك بناء مستقبل عملك باستخدام حلول الذكاء الاصطناعي الجديرة بالثقة.

    استكشف حلول وكلاء الذكاء الاصطناعي
    خدمات الذكاء الاصطناعي لدى IBM Consulting

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

    استكشف خدمات الذكاء الاصطناعي
    اتخِذ الخطوة التالية

    سواء اخترت تخصيص التطبيقات والمهارات المُعدّة مسبقًا أو إنشاء خدمات مخصصة مستندة إلى وكلاء ونشرها باستخدام استوديو الذكاء الاصطناعي، فإن منصة IBM watsonx تُلبي احتياجاتك.

    1. استكشف watsonx Orchestrate
    2. استكشف watsonx.ai
    الحواشي

    1 Satyadhar Joshi، "مراجعة الأنظمة المستقلة وأطر عمل وكلاء الذكاء الاصطناعي التعاونية". International Journal of Science and Research Archive، المجلد 14، العدد 2، 28 فبراير 2025، الصفحات 961–972، https://ijsra.net/content/review-autonomous-systems-and-collaborative-ai-agent-frameworks.

    2 "الوكلاء | وثائق Langflow"، Langflow.org، 2025، docs.langflow.org/components-agents.

    3 "IBM | وثائق Langflow"، Langflow.org، 2025، docs.langflow.org/bundles-ibm.

    4 "البيانات | وثائق Langflow"، Langflow.org، 2025، docs.langflow.org/components-data.

    5 "ArXiv | وثائق Langflow"، Langflow.org، 2025، docs.langflow.org/bundles-arxiv.

    6 "نظرة عامة على العناصر | وثائق Langflow" Langflow.org، 2025، docs.langflow.org/concepts-components.

    7 "خادم Alpha Vantage MCP لبيانات سوق الأسهم"،Alphavantage.co، 2025، mcp.alphavantage.co/.