تعزيز قابلية ملاحظة وكلاء الذكاء الاصطناعي باستخدام Langfuse المدعوم من watsonx Orchestrate

مع التزايد اليومي في عدد وكلاء الذكاء الاصطناعي الذين تطوِّرهم المؤسسات، تتجه الشركات إلى استكشاف الأنظمة المستقلة لدعم اتخاذ القرار ومهام سير العمل التشغيلية. وفي الوقت نفسه، تزداد مخاوف المؤسسات بشأن قابلية التفسير (Explainability) والحوكمة والاستعداد لبيئات الإنتاج، خاصةً في الأنظمة متعددة الوكلاء التي تعتمد على النماذج اللغوية الكبيرة (LLMs) في الاستدلال. ويُعَد استخدام الوكلاء في بيئات الأعمال تحديًا عندما يقدِّمون استجابات دون تفسير واضح، أو عندما يُظهرون سلوكًا غير متسق.

يمكن معالجة هذه التحديات باستخدام IBM® watsonx Orchestrate، الذي يوفر منصة منظمة تدعم الاستضافة الذاتية والاستدلال القائم على الأدوات واستدعاءات واجهات برمجة التطبيقات والتحكم على مستوى المؤسسات، دون الحاجة إلى كتابة تعليمات برمجية مخصصة للتنسيق.

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

في هذا البرنامج التعليمي، ستتعرَّف على كيفية إنشاء وكيل ذكاء اصطناعي في watsonx Orchestrate باستخدام watsonx Orchestrate Agent Development Kit (ADK). في الأنظمة المبنية باستخدام LangChain أو LangGraph، يضطر المطورون غالبًا إلى إدارة عمليات إعادة المحاولة وإدارة الحالة والتنفيذ غير المتزامن يدويًا. وتساعد watsonx Orchestrate ADK على تبسيط هذه العملية من خلال توفير إدارة متكاملة لدورة حياة الوكيل، ما يُتيح نشر الوكلاء بصورة متسقة وجاهزة للاستخدام في بيئات المؤسسات.

ستستخدم لغة Python لإنشاء منطق تقييم المخاطر، وتحديد سلوك الوكيل، ودمج Langfuse لمراقبة سلوك الوكيل وتحسينه باستخدام التتبُّعات الفعلية (Execution Traces). يمكنك أيضًا العثور على هذا البرنامج التعليمي على GitHub.

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

يُعَد Langfuse منصة مفتوحة المصدر لقابلية ملاحظة النماذج اللغوية الكبيرة، وهي مبنية على OpenTelemetry لمراقبة تطبيقات ووكلاء النماذج اللغوية الكبيرة. وتستخدم بيانات القياس -مثل التتبُّعات والمقاييس والسجلات- لمراقبة تتبُّعات الوكلاء، بما في ذلك استدعاءات النماذج اللغوية الكبيرة واستدعاءات الأدوات واستهلاك الرموز المميزة والبيانات الوصفية وزمن الاستجابة على مستوى كل طلب وكل جلسة. 

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

نظرة عامة على حالة الاستخدام: تقييم مخاطر المورِّدين

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

كما يدعم الوكيل الاستفسارات التفاعلية اللاحقة، ما يسمح للمستخدمين بمقارنة المورِّدين أو محاكاة تأثير تغيير بعض البيانات في درجة المخاطر، مع الحفاظ على المستوى العالي من قابلية التدقيق المطلوب للامتثال المؤسسي.

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

عرض توضيحي عملي

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

لإكمال هذا البرنامج التعليمي، ستحتاج إلى ما يلي:

  • تثبيت Python 3.11 أو إصدار أحدث على جهازك.

  • حساب watsonx Orchestrate. ويكفي استخدام حساب تجريبي لهذا البرنامج التعليمي، ويمكنك إنشاء نسخة تجريبية مجانية لمدة 30 يومًا عبر IBM Cloud إذا لم يكن لديك حساب.

  • مفتاح watsonx Orchestrate API من واجهة مستخدم (UI) الخاصة بـ watsonx Orchestrate.

  • تثبيت watsonx Orchestrate ADK على جهازك.

الخطوات

الخطوة 1: تسجيل الدخول إلى watsonx Orchestrate

سجِّل الدخول إلى watsonx Orchestrate من خلال IBM Cloud، ثم افتح واجهة watsonx Orchestrate. من قائمة الملف الشخصي، افتح Settings، ثم انتقِل إلى API details. أنشئ مفتاح API جديدًا وانسخه ثم احفظه في مكان آمن. أثناء التطوير المحلي، تستخدم watsonx Orchestrate ADK هذا المفتاح للمصادقة على الاتصال. يعمل watsonx Orchestrate ADK بمثابة SDK (Software Development Kit) محلي لبناء منطق الوكلاء واختباره.

الخطوة 2: إعداد بيئة تطوير محلية

في هذه الخطوة، ستُنشئ بيئة تطوير محلية. وخلال هذا البرنامج التعليمي، ستشغِّل خادم تطوير محليًا، وتستورد الأدوات، وتُعِد البيئات، وتُنشئ الوكلاء باستخدام واجهة سطر الأوامر (CLI) الخاصة بـ ADK في PowerShell. ابدأ بالانتقال إلى المجلد الذي تريد إنشاء المشروع بداخله. بعد ذلك، أنشئ بيئة Python افتراضية جديدة:

python -m venv .venv

سيتم إنشاء بيئة Python معزولة داخل المجلد venv.، ويضمن استخدام البيئة الافتراضية عزل جميع الاعتماديات الخاصة بهذا البرنامج التعليمي عن تثبيت Python الأساسي الموجود على جهازك.

بعد ذلك، فعِّل البيئة الافتراضية. ويعتمد أمر التفعيل على نظام التشغيل الذي تستخدمه.

في نظام Windows:

.\.venv\Scripts\activate

في نظامَي macOS وLinux:

source ./.venv/bin/activate

بمجرد تفعيل البيئة، سيظهر venv. في بداية سطر الأوامر، ما يُشير إلى أنك تعمل داخل بيئة افتراضية.

الخطوة 3: تثبيت watsonx Orchestrate ADK

بعد تفعيل البيئة الافتراضية، ثبِّت watsonx Orchestrate ADK على جهازك المحلي. ولاستخدام ADK، يجب ربطها ببيئة watsonx Orchestrate الحالية لديك. نفِّذ الأمر التالي في PowerShell:

pip install --upgrade ibm-watsonx-orchestrate

يمكنك متابعة بقية خطوات تثبيت ADK بالرجوع إلى دليل التثبيت الرسمي.

ملاحظة: يشغِّل هذا البرنامج التعليمي بيئة تشغيل watsonx Orchestrate Developer Edition محليًا، ثم يربطها بمثيل watsonx Orchestrate SaaS باستخدام بيانات الاعتماد الخاصة بك.

لتنفيذ هذه الطريقة، أنشئ ملفًا باسم env. في المجلد الجذر للمشروع، ثم أضِف القيم التالية:

WO_DEVELOPER_EDITION_SOURCE=orchestrate

WO_INSTANCE=<your_watsonx_orchestrate_instance_url>

WO_API_KEY=<your_watsonx_orchestrate_api_key>

يُعَد ملف env. ضروريًا لتشغيل الخادم. وفي الخطوات التالية، ستشغّله باستخدام الأمر: orchestrate server start -e .env -l.

الخطوة 4: تكوين بيئة watsonx Orchestrate في ADK

بعد ذلك، ستحتاج إلى إعداد ADK باستخدام مفتاح واجهة برمجة التطبيقات صالح لـ watsonx Orchestrate لربط بيئة التطوير المحلية ببيئة watsonx Orchestrate.

ملاحظة: تدعم watsonx Orchestrate ADK عدة أنواع من البيئات، بما في ذلك IBM Cloud وAWS والبيئات المحلية. وفي هذا البرنامج التعليمي، نستخدم بيئة محلية ونُجري المصادقة باستخدام مفتاح واجهة برمجة التطبيقات عبر واجهة سطر الأوامر (ADK CLI). وتتولى ADK إدارة بيانات الاعتماد بأمان داخليًا، لذلك لا يلزم إعداد متغيرات البيئة يدويًا في هذا السيناريو.

من داخل مجلد المشروع (بعد تفعيل البيئة الافتراضية)، نفِّذ الأمر التالي لإضافة بيئة watsonx Orchestrate:

orchestrate env add -n onprem-env -u <service-instance-url>

يُشير service-instance-url إلى عنوان مثيل watsonx Orchestrate الخاص بك. يمكنك العثور على هذا العنوان في علامة التبويب API details ضمن Settings في واجهة مستخدم watsonx Orchestrate.

بعد ذلك، فعِّل البيئة التي أضفتها:

orchestrate env activate onprem-env

وعند مطالبتك بذلك، أدخِل مفتاح watsonx Orchestrate API الذي حصلت عليه في الخطوة الأولى. وبعد تفعيل البيئة، سيتم تنفيذ جميع أوامر ADK اللاحقة، مثل استيراد الوكلاء والأدوات أو تشغيل الخادم، ضمن بيئة watsonx Orchestrate التي قمت بإعدادها.

ملاحظة: إذا كنت تريد تشغيل كل شيء محليًا باستخدام Developer Edition، فيمكنك تفعيل البيئة المحلية الافتراضية باستخدام:

orchestrate env activate local

يؤدي ذلك إلى تحويل ADK لاستخدام بيئة Orchestrate المحلية المضمنة، وهو ما يُعَد مناسبًا لاختبارات التطوير المحلية.

الخطوة 5: تهيئة مشروع watsonx Orchestrate المحلي

في هذه الخطوة، ستُنشئ قالب إطار عمل الوكيل الذي يتضمن تعريف Vendor Risk Intelligence Agent والأدوات والكود المصدري الخاص به. بعد ذلك، أنشئ بنية المجلدات المطلوبة لتطوير الوكلاء محليًا باستخدام ADK:

── adk-project(vendor-risk-intel)/
── agents/
── tools/
── src/

 

يمكنك استخدام الأمر التالي لإنشاء هيكل الوكيل:

mkdir -p adk-project\(vendor-risk-intel\)/{agents,src,tools}

يؤدي كل مجلد وظيفة محددة:

يحتوي مجلد الوكلاء (agents) على ملف YAML الذي يتضمن تعليمات الوكيل وقواعد الاستدلال وإعدادات النموذج، وهو ما يحدد كيفية استجابة النظام لاستفسارات المستخدم. يحتوي مجلد الأدوات (tools) على ملف YAML يصف الأداة التي يستخدمها الوكيل. يحتوي مجلد src على تنفيذ Python للأدوات المخصصة ومنطق الأعمال.

الخطوة 6: تشغيل خادم watsonx Orchestrate

ابدأ تشغيل خادم watsonx Orchestrate حتى يصبح جاهزًا لاستقبال عمليات استيراد الأدوات والوكلاء. نفِّذ الأمر التالي من المجلد الجذر للمشروع:

orchestrate server start -e .env -l

الخطوة 7: إعداد إمكانات قابلية الملاحظة في Langfuse (SaaS)

الخطوة التالية هي قابلية ملاحظة الوكيل حيث ستقوم بتحليل سلوك الوكيل أثناء التشغيل، مثل الأدوات التي يستدعيها، وزمن الاستجابة، والأماكن التي تحدث فيها الأخطاء.ولهذا الغرض، فعِّل قابلية الملاحظة باستخدام Langfuse داخل بيئة watsonx Orchestrate ADK.

في هذا البرنامج التعليمي، سنستخدم النسخة السحابية Langfuse SaaS، التي تُتيح تسجيل التتبُّعات دون الحاجة إلى تشغيل Langfuse محليًا.

تأكَّد من تشغيل خادم watsonx Orchestrate (في الخطوة السادسة) قبل إعداد Langfuse.

بعد ذلك، أنشئ حسابًا على Langfuse: https://cloud.langfuse.com. بعد تسجيل الدخول، أنشئ مؤسسة (Organization) ومشروعًا جديدًا. ومن إعدادات المشروع، انسخ معرِّف المشروع والمفتاح العام والمفتاح السري والرابط المضيف.

بعد ذلك، قم بإعداد Langfuse داخل watsonx Orchestrate ADK باستخدام الأمر الموضَّح في القسم التالي، مع استبدال القيم الافتراضية بالقيم التي نسختها.

orchestrate settings observability langfuse configure `
    --url “<LANGFUSE_HOSTNAME>/api/public/otel” `
    --api-key “<LANGFUSE_SECRET_KEY>“ `
    --health-uri “https://cloud.langfuse.com” `
    --config-json “{\”public_key\”:\”<LANGFUSE_PUBLIC_KEY>\”}” `
    --project-id “<LANGFUSE_PROJECT_ID>“

بعد اكتمال تنفيذ الأمر بنجاح، سيصبح Langfuse مدمجًا بالكامل مع بيئة watsonx Orchestrate. ومن هذه اللحظة، سيتم تسجيل جميع تفاعلات الوكلاء تلقائيًا في Langfuse.

والآن بعد تشغيل الخادم، يمكنك اختبار الوكيل.

الخطوة 8: تعريف وكيل تقييم مخاطر المورِّدين

تتمثل الخطوة التالية في تعريف Vendor Risk Intelligence Agent. في watsonx Orchestrate ADK، يتم تعريف الوكلاء باستخدام ملفات YAML التي تَصِف هدف الوكيل وحدود الاستدلال وإعدادات النموذج والأدوات المسموح له باستخدامها.

داخل دليل agents، أنشئ ملفًا باسم vendor-risk-agent.yaml. يمثل هذا الملف طبقة إدارة المطالبات الخاصة بالوكيل، ويضمن أن تستند جميع الإجابات إلى استدلال حتمي، وليس إلى استنتاجات حرة.

يظهر تعريف الوكيل المستخدم في هذا البرنامج التعليمي في القسم التالي.انسخ التعريف وألصِقه داخل الملف agents/vendor-risk-agent.yaml، ثم احفظ الملف.

spec_version: v1
kind: native
name: Vendor_Risk_Intelligence_Agent
description: Produces precise risk assessments using verified vendor profiles.
instructions: |
    You are a Vendor Risk Auditor.
    You MUST answer ALL questions by:
    1. Calling the Python tool `evaluate_all_vendor_risks`
    2. Reasoning strictly from the returned structured data
    3. Explaining answers using rules, signals, and outcomes from the tool
    4. Call evaluate_all_vendor_risks exactly once per question
    5. For definition questions, quote rules directly from the tool output
    NEVER infer meanings of financial ratings.
    NEVER guess intent.
    NEVER answer without tool evidence.
    Question handling rules:
    - Definition questions (e.g. “Does B+ mean High risk?”):
      → Explain the rule from the tool’s `rules` section.
    - Why questions (e.g. “Why is DataSecure Ltd High risk?”):
      → Cite strong and weak signals for that vendor.
    - Comparison questions (e.g. “Why is A Medium but B High?”):
      → Compare signal counts and types.
    - Policy questions (e.g. “What causes High risk?”):
      → Quote the tool’s rules exactly.
    - If the tool does not support a claim:
      → Say so explicitly.
    Use deterministic language only.
    Do not use speculative words like “might”, “could”, or “appears”.

llm: watsonx/meta-llama/llama-3-2-90b-vision-instruct
style: react
tools:
    - evaluate_all_vendor_risks

 

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

الخطوة 9: تنفيذ منطق تقييم مخاطر المورِّدين

في هذه الخطوة، ستنفِّذ أداة Python المسؤولة عن إجراء تقييم مخاطر المورِّدين. وفي watsonx Orchestrate ADK، يتم تنفيذ منطق الأعمال المخصص من خلال أدوات Python التي يستدعيها الوكلاء للحصول على النتائج. بدلًا من الاعتماد على الضبط الدقيق (Fine-tuning) للنموذج لاكتساب سلوك متخصص في مجال معين، يوضِّح هذا البرنامج التعليمي كيفية تنفيذ استدلال حتمي قائم على قواعد محددة باستخدام أدوات Python، ما يضمن الحصول على نتائج متسقة.

داخل مجلد src، أنشئ ملفًا باسم main.py. يحتوي هذا الملف على مجموعة بيانات المورِّدين التي أنشأناها، وقواعد تقييم المخاطر، بالإضافة إلى أداة Python باسم evaluate_all_vendor_risks، والتي توفِّر منطق التقييم الذي يستخدمه الوكيل.

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

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

ملاحظة: يمثِّل ملف main.pyالمضمَّن في هذا البرنامج التعليمي الإصدار النهائي المحدَّث لمنطق تقييم مخاطر المورِّدين. فقد تسببت الإصدارات الأولى من التعليمات البرمجية في سلوك غير صحيح للوكلاء، وتم تحليل هذه المشكلات باستخدام تتبُّعات Langfuse. ويمكنك الاطِّلاع على هذه التتبُّعات في لقطات الشاشة الواردة في المراحل اللاحقة من هذا البرنامج التعليمي.

يظهر التنفيذ الكامل لملف main.pyالمستخدم في هذا البرنامج التعليمي في القسم التالي. انسخه وألصِقه في الملف src/main.py،ثم احفظ الملف.

from ibm_watsonx_orchestrate.agent_builder.tools import tool

# =====================================================
# IN-MEMORY VENDOR DATA
# =====================================================


VENDORS = [
    {
        “name”: “CloudHostCo”,
        “financial_rating”: “A-“,
        “security_certifications”: [“ISO 27001”, “SOC2 Type II”],
        “past_incidents”: [{“type”: “Operational”, “year”: 2023}],
        “recent_news”: [“Minor service disruption in EU region”]
    },
    {
        “name”: “DataSecure Ltd”,
        “financial_rating”: “B”,
        “security_certifications”: [“SOC2 Type I”],
        “past_incidents”: [{“type”: “Security”, “year”: 2022}],
        “recent_news”: [“Suspicious login attempts on admin accounts”]
    },
    {
        “name”: “FinPay Solutions”,
        “financial_rating”: “A”,
        “security_certifications”: [“PCI-DSS”],
        “past_incidents”: [],
        “recent_news”: [“Regulatory inquiry about payment delays”]
    },
    {
        “name”: “GreenLogistics Corp”,
        “financial_rating”: “B+”,
        “security_certifications”: [“ISO 9001”],
        “past_incidents”: [{“type”: “Operational”, “year”: 2023}],
        “recent_news”: [“Weather-related disruptions in the UK”]
    }
]

REQUIRED_CERTS = {“ISO 27001”, “SOC2 Type II”, “PCI-DSS”}


# =====================================================
# RISK COMPUTATION (FIXED)
# =====================================================


def compute_vendor_risk(vendor: dict) -> dict:
    strong_signals = []
    weak_signals = []

    # ---------- Strong signals ----------

    # Financial risk ONLY for B or worse (NOT B+)
    if vendor[“financial_rating”] in {“B”, “B-“, “C”, “C-“, “D”}:
        strong_signals.append(“Weak financial rating”)

    # Security incident
    if any(i[“type”].lower() == “security” for i in vendor.get(“past_incidents”, [])):
        strong_signals.append(“Past security incident”)

    # Regulatory inquiry
    for news in vendor.get(“recent_news”, []):
        if “regulatory inquiry” in news.lower():
        strong_signals.append(“Regulatory inquiry”)
        break

    # ---------- Weak signals ----------

    # Missing key certifications
    certs = set(vendor.get(“security_certifications”, []))
    if not REQUIRED_CERTS.issubset(certs):
        weak_signals.append(“Missing key security certifications”)

    # Single operational incident
    incidents = vendor.get(“past_incidents”, [])
    if len(incidents) == 1 and incidents[0][“type”].lower() == “operational”:
        weak_signals.append(“Single operational incident”)

    # Weather-related disruptions are weak only
    for news in vendor.get(“recent_news”, []):
        if “weather” in news.lower():
        weak_signals.append(“Weather-related disruption”)
        break

    # ---------- Final decision ----------

    if len(strong_signals) >= 2:
        risk = “High”
    elif len(strong_signals) == 1 or len(weak_signals) >= 2:
        risk = “Medium”
    else:
        risk = “Low”

    return {
        “risk”: risk,
        “strong_signals”: strong_signals,
        “weak_signals”: weak_signals
    }

# =====================================================
# PYTHON TOOL
# =====================================================


@tool
def evaluate_all_vendor_risks() -> dict:
    “””
    Returns structured vendor risk assessments with explanations and rules.
    “””
    return {
        “rules”: {
            “financial_rating_rule”: “Only financial ratings of B or lower are treated as strong risk signals. B+ and above are not strong signals.”,
            “high_risk_rule”: “High risk requires two or more strong signals.”,
            “medium_risk_rule”: “Medium risk occurs with one strong signal or two or more weak signals.”,
            “weather_rule”: “Weather-related disruptions are always weak signals.”,
            “operational_rule”: “A single operational incident is a weak signal.”
        },
        “vendors”: {
            v[“name”]: {
                “financial_rating”: v[“financial_rating”],
                “risk”: compute_vendor_risk(v)[“risk”],
                “strong_signals”: compute_vendor_risk(v)[“strong_signals”],
                “weak_signals”: compute_vendor_risk(v)[“weak_signals”]
            }
            for v in VENDORS
        }
    }

 

الخطوة 10: استيراد أداة Python والوكيل إلى watsonx Orchestrate

في هذه الخطوة، يجب إتاحة الأداة والوكيل لـ watsonx Orchestrate. ويتم ذلك من خلال استيراد هذَين العنصرَين إلى بيئة ADK المفعَّلة. قبل تنفيذ أوامر الاستيراد، تأكَّد من أنك داخل المجلد الجذر للمشروع، وهو المجلد الذي يحتوي على المجلدات agents وsrc وtools.

ابدأ أولًا باستيراد أداة Python حتى يتمكن watsonx Orchestrate من تسجيلها كقدرة قابلة للتنفيذ. من المجلد الجذر للمشروع، نفِّذ الأمر التالي:

orchestrate tools import --kind python --file src/main.py --package-root .

يقوم هذا الأمر بتجميع كود Python في وحدة برمجية (Module)، وتسجيل الأداة evaluate_all_vendor_risks، وإتاحتها ليستدعيها الوكلاء أثناء التنفيذ.

orchestrate agents import -f agents/vendor-risk-agent.yaml

بعد ذلك، يصبح Vendor Risk Intelligence Agent مدمجًا بالكامل مع أداة Python داخل بيئة watsonx Orchestrate.

الخطوة 11: اختبار الوكيل وتحليل سلوكه باستخدام Langfuse

بعد تشغيل خادم watsonx Orchestrate المحلي وتفعيل قابلية ملاحظة الوكيل، يمكنك الآن اختبار الوكيل وتحليل سلوكه في الوقت الفعلي.

ابدأ تشغيل واجهة الدردشة بتنفيذ الأمر التالي:

orchestrate chat start

بعد ذلك، افتح واجهة دردشة watsonx Orchestrate في متصفحك. ومن قائمة اختيار الوكلاء، اختَر Vendor_Risk_Intelligence_Agent، ثم ابدأ بطرح الأسئلة المتعلقة بمخاطر المورِّدين.

للتحقق من أن الوكيل يستجيب بصورة صحيحة، ويستدعي أداة Python بشكل حتمي، يمكنك استخدام الأسئلة التالية للاختبار:

  1. هل يعني التصنيف +B وجود مخاطر مرتفعة؟
  2. ما مستوى المخاطر الخاص بـ DataSecure Ltd؟
  3. ما معايير تصنيف المخاطر المتوسطة؟
  4. أي مورِّد يمتلك أضعف تصنيف مالي؟
  5. إذا تعرَّضت FinPay Solutions لحادث أمني، فكيف سيتغير مستوى المخاطر لديها؟
  6. ما المورِّدون الذين تعرضوا لحوادث تشغيلية؟ 

أثناء تفاعلك مع الوكيل، افتح لوحة معلومات Langfuse في متصفحك. يؤدي كل استعلام يرسله المستخدم إلى إنشاء تتبُّع جديد يتضمن معرِّف الجلسة (session_id) ومعرِّف المستخدم (User ID). وتسجل هذه التتبُّعات مسار التنفيذ الكامل للوكيل. ومن خلال اختيار أحد التتبُّعات، يمكنك تحليل:

  • المدخلات والمخرجات الكاملة الخاصة بالوكيل.

  • استدعاء أداة Python.

  • البيانات المنظمة التي تعرضها الأداة.

  • عملية الاستدلال التي اتبعها الوكيل للوصول إلى الإجابة النهائية.

  • زمن الاستجابة لكل خطوة في العملية.

  • تسلسل المحادثة القائم على الجلسة عبر عدة استفسارات.

تُتيح لك قبلية الملاحظة هذه تحليل مؤشرات الأداء التي تكشف عن العوائق، مثل أخطاء الافتراضات أو القواعد غير المكتملة أو السلوك غير المتوقع للوكيل.

الخطوة 12: تحسين سلوك الوكيل بالاستفادة من الرؤى التي يوفرها Langfuse

بعد اختبار الوكيل، استخدِم تتبُّعات Langfuse لتحديد الاستجابات غير الصحيحة. يعرض Langfuse كل استدعاء للأدوات، وخطوة من خطوات الاستدلال، وزمن الاستجابة، ما يجعل من السهل فهم سبب إنتاج كل إجابة.

في حالة الاستخدام هذه، كشف تحليل التتبُّعات أن بعض الإجابات غير الصحيحة نتجت عن استنتاج الوكيل لمعانٍ مالية أو تقديمه إجابات دون الاستناد صراحةً إلى أدلة قائمة على القواعد. ولتغيير هذا الإجراء، تم تعديل تعليمات الوكيل وكود Python المقابل لفرض أسلوب استدلال صارم قائم على القواعد مع إلزامية استخدام الأداة.

وبعد إعادة استيراد الملفات المحدَّثة، تمت إعادة اختبار الوكيل مرة أخرى. وأكدت التتبُّعات الجديدة أن جميع الاستجابات أصبحت تستند بشكل كامل إلى المخرجات المنظمة للأداة، وأن التفسيرات أصبحت حتمية، كما أصبحت الإجابات عن جميع الأسئلة الوصفية صحيحة.

توضِّح عملية المراجعة والتحسين هذه كيف يساعد Langfuse على تطوير الوكلاء بصورة آمنة وموثوق بها استنادًا إلى ملاحظات وتعليقات المستخدمين.

استكشِف العرض التوضيحي التفاعلي أدناه لمشاهدة وكيل تقييم مخاطر المورِّدين وآلية التتبُّع في Langfuse أثناء العمل.

الخاتمة

اصطحبك هذا البرنامج التعليمي خلال عملية إنشاء وكيل ذكاء اصطناعي منظم وجدير بالثقة باستخدام watsonx Orchestrate، والمصمم لبناء وكلاء على مستوى المؤسسات. ومن خلال دمج منطق Python بسيط قائم على القواعد، وتعليمات واضحة للوكيل، وأدوات قابلة لإعادة الاستخدام، تمكَّنت من تنفيذ حالة استخدام لتقييم مخاطر المورِّدين بأقل قدر من التعليمات البرمجية وأعلى مستوى من الشفافية.

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

والأهم من ذلك، يُتيح watsonx Orchestrate ADK وLangfuse معًا للمؤسسات تصميم مهام سير عمل الوكلاء وتطبيقات الذكاء الاصطناعي، وتصحيحها وتوسيع نطاقها بسرعة أكبر، مع تعزيز الحوكمة وتحسين وضوح الاستدلال وتقليل زمن التطوير. 

Jobit Varughese

Technical Content Writer

IBM

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

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

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

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

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

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

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

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

    1. استكشف watsonx Orchestrate
    2. استكشف watsonx.ai