مشاركة عبر


إعلام العاملين

مهم

يجب أن تكون جزءًا من برنامج الإصدار الأولي Frontier للحصول على وصول مبكر إلى Microsoft Agent 365. يربطك Frontier مباشرةً بأحدث ابتكارات الذكاء الاصطناعي في Microsoft. تخضع الإصدارات الأولية في Frontier لشروط الإصدار الأولي الحالية لاتفاقيات العملاء. نظرًا لأن هذه الميزات لا تزال قيد التطوير، فقد يتغير توفرها وقدراتها بمرور الوقت.

تمكن وحدة الإعلامات المطورين من إنشاء عوامل يمكنهم الاستجابة للأحداث والإعلامات من تطبيقات Microsoft 365. من خلال دعم الإعلامات، يمكن للوكلاء تلقي التنبيهات ومعالجتها عندما يتفاعل المستخدمون معها من خلال البريد الإلكتروني أو تعليقات المستند أو سيناريوهات تعاونية أخرى.

سير عمل الإعلامات

اتبع سير العمل هذا لتمكين الإعلامات لتطبيق عامل الذكاء الاصطناعي:

  1. تثبيت حزم الإعلام.

  2. استيراد مكونات الإعلام

    • استيراد فئات الإعلامات والمعالجات
    • استيراد أنواع الأنشطة ومعرفات القنوات
  3. تسجيل معالجات الإعلامات

    • استخدام أساليب معالج الإعلامات لتسجيل المسارات
    • تكوين معالجات أنواع إعلامات معينة (على سبيل المثال: البريد الإلكتروني وWord وExcel وPowerPoint)
  4. معالجة الإعلامات في التعليمات البرمجية للعامل

    • يتلقى العامل إعلامات من تطبيقات Microsoft 365
    • التعامل مع الإعلامات الواردة والاستجابة بشكل مناسب

أنواع الإخطار

يدعم Agent 365 SDK أنواع الإشعارات التالية:

نوع الإعلام الوصف مُعرف قناة فرعية
رسالة إلكترونية يتلقى العامل رسالة بريد إلكتروني حيث يتم ذكرها أو معالجتها email
Word تم ذكر العامل في تعليق في مستند Word word
Excel تم ذكر العامل في تعليق في مستند Excel excel
PowerPoint تم ذكر العامل في تعليق في مستند PowerPoint powerpoint
أحداث دورة الحياة إعلامات دورة حياة العامل (تم إنشاء هوية المستخدم، إلحاق حمل العمل، حذف المستخدم) ‏‫غير متوفر‬

أحداث دورة حياة العامل

تمكن أحداث دورة حياة العامل عاملك من الاستجابة لأحداث نظام محددة تتعلق بإدارة هوية المستخدم الوكيل. يدعم SDK حاليًا ثلاثة أحداث دورة حياة:

نوع الحدث معرف الحدث الوصف
تم إنشاء هوية المستخدم agenticUserIdentityCreated يتم تشغيله عند إنشاء هوية مستخدم عامل
تم تحديث إلحاق حمل العمل agenticUserWorkloadOnboardingUpdated يتم تشغيله عند تحديث حالة إلحاق حمل عمل المستخدم العامل
تم حذف مستخدم agenticUserDeleted يتم تشغيله عند حذف هوية مستخدم عامل

تسمح هذه الأحداث للعوامل بتنفيذ مهام التهيئة أو عمليات التنظيف أو إدارة الحالة استجابة لتغييرات دورة حياة المستخدم.

إضافة إعلامات إلى عاملك

اتبع هذه الخطوات لتمكين معالجة الإعلامات في الوكيل الحالي:

استيراد مكونات الإعلام

أضف عمليات الاستيراد هذه إلى ملف العامل الخاص بك:

from microsoft_agents_a365 import AgentApplication
from microsoft_agents_a365.notifications import (
    AgentNotification,
    AgentNotificationActivity,
    NotificationTypes
)
from microsoft_agents.activity import ChannelId
from microsoft_agents.hosting.core import Authorization, TurnContext
  • AgentApplication: الفئة الأساسية لإنشاء تطبيقات Agent365؛ توفر وظائف أساسية لأنشطة التوجيه وإدارة الحالة ومعالجة الطلبات
  • AgentNotification: فئة لتسجيل معالجات الإعلامات باستخدام أساليب مصمم الديكور. يوفر on_agent_notification()، on_email()، on_word()، ومزخرفات أخرى ملائمة
  • AgentNotificationActivity: برنامج التضمين الذي يحتوي على بيانات إعلام موزعة مع خصائص مكتوبة مثل email_notification والتي wpx_comment_notification تحتوي على بيانات تعريف خاصة بالإعلام (مُعرفات وتفاصيل المحادثة ومراجع المستندات)
  • NotificationTypes: تعداد أنواع الإعلامات المدعومة (EMAIL_NOTIFICATION, WPX_COMMENT, AGENT_LIFECYCLE)
  • ChannelId: يستخدم لتحديد قنوات الإعلام (على سبيل المثال، ChannelId(channel="agents", sub_channel="*"))
  • التخويل: سياق التخويل لمعالجة الإعلامات
  • TurnContext: تحول المحادثة الحالية السياق من Agents SDK.

تسجيل معالجات الإعلامات في العامل الخاص بك

أضف معالجات الإعلامات إلى تهيئة العامل الخاص بك:

class YourAgent(AgentApplication):
    def __init__(self, app):
        # Create notification handler
        agent_notification = AgentNotification(app)
        
        # Register handler for all notifications
        @agent_notification.on_agent_notification(
            ChannelId(channel="agents", sub_channel="*")
        )
        async def handle_all_notifications(context, state, notification):
            # Route based on notification type
            if notification.notification_type == NotificationTypes.EMAIL_NOTIFICATION:
                await self.handle_email_notification(context, state, notification)
            elif notification.notification_type == NotificationTypes.WPX_COMMENT:
                await self.handle_comment_notification(context, state, notification)
            else:
                await context.send_activity('Notification type not yet implemented.')

تنفيذ معالجات إعلامات محددة

إضافة أساليب المعالج لكل نوع إعلام:

class YourAgent(AgentApplication):
    # ... __init__ from above ...
    
    async def handle_email_notification(self, context, state, notification):
        """Handle email notifications"""
        email = notification.email_notification
        
        if not email:
            await context.send_activity('No email data found')
            return
        
        # Process the email
        await context.send_activity(
            f'Received email notification. Email ID: {email.id}'
        )
        
        # Your email processing logic here
    
    async def handle_comment_notification(self, context, state, notification):
        """Handle document comment notifications"""
        comment = notification.wpx_comment_notification
        
        if not comment:
            await context.send_activity('No comment data found')
            return
        
        # Process the comment
        await context.send_activity(
            f'Received comment notification. Document ID: {comment.document_id}'
        )
        
        # Your comment processing logic here

معالجات الإعلامات المتخصصة

بعد إعداد توجيه الإعلام الأساسي، استخدم أساليب المعالج المتخصصة لمزيد من التحكم الدقيق. تسمح لك هذه الأساليب بما يلي:

  • تسجيل معالجات متعددة لنفس نوع الإعلام
  • تعيين أولوية المعالج مع الترتيب
  • تكوين المصادقة التلقائية لكل معالج

إشعار

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

معالج متخصص لجميع الإعلامات

تسجيل المزيد من المعالجات التي تعالج جميع أنواع الإعلامات:

from microsoft_agents_a365.notifications import (
    AgentNotification,
    NotificationTypes
)
from microsoft_agents.activity import ChannelId

# Create notification handler
agent_notification = AgentNotification(app)

# Register handler for all notifications
@agent_notification.on_agent_notification(
    ChannelId(channel="agents", sub_channel="*")
)
async def handle_all_notifications(context, state, notification):
    if notification.notification_type == NotificationTypes.EMAIL_NOTIFICATION:
        if notification.email_notification:
            await context.send_activity(f"Received email: {notification.email_notification.id}")
    elif notification.notification_type == NotificationTypes.WPX_COMMENT:
        if notification.wpx_comment_notification:
            await context.send_activity(f"Received comment: {notification.wpx_comment_notification.comment_id}")

معالج متخصص لإعلامات البريد الإلكتروني

تسجيل المزيد من المعالجات خصيصًا لإعلامات البريد الإلكتروني:

from microsoft_agents_a365.notifications import AgentNotification
from microsoft_agents.activity import ChannelId, AgentSubChannel

# Create notification handler
agent_notification = AgentNotification(app)

# Use the convenience method for email notifications
@agent_notification.on_email()
async def handle_email(context, state, notification):
    email = notification.email_notification
    
    if not email:
        await context.send_activity('No email found')
        return
    
    # Process the email
    email_id = email.id
    conversation_id = email.conversation_id
    
    # Send response
    await context.send_activity('Thank you for your email!')

معالجات متخصصة لتعليقات المستندات

تسجيل المزيد من المعالجات لإعلامات التعليقات في Word وExcel وPowerPoint:

from microsoft_agents_a365.notifications import AgentNotification

# Create notification handler
agent_notification = AgentNotification(app)

# Use convenience methods for document notifications
@agent_notification.on_word()
async def handle_word(context, state, notification):
    comment = notification.wpx_comment_notification
    
    if comment:
        document_id = comment.document_id
        comment_id = comment.comment_id
        await context.send_activity(f'Processing Word comment: {comment_id}')

@agent_notification.on_excel()
async def handle_excel(context, state, notification):
    comment = notification.wpx_comment_notification
    
    if comment:
        await context.send_activity('Processing Excel comment')

@agent_notification.on_powerpoint()
async def handle_powerpoint(context, state, notification):
    comment = notification.wpx_comment_notification
    
    if comment:
        await context.send_activity('Processing PowerPoint comment')

معالجات متخصصة لأحداث دورة الحياة

تسجيل المزيد من المعالجات لأحداث دورة حياة العامل مثل إنشاء هوية المستخدم وإلحاق حمل العمل وحذف المستخدم:

from microsoft_agents_a365.notifications import AgentNotification

# Create notification handler
agent_notification = AgentNotification(app)

# Handle all lifecycle events
@agent_notification.on_agent_lifecycle_notification("*")
async def handle_lifecycle(context, state, notification):
    lifecycle_notification = notification.agent_lifecycle_notification
    if lifecycle_notification:
        event_type = lifecycle_notification.lifecycle_event_type
        
        if event_type == "agenticUserIdentityCreated":
            await context.send_activity('User identity created')
        elif event_type == "agenticUserWorkloadOnboardingUpdated":
            await context.send_activity('Workload onboarding completed')
        elif event_type == "agenticUserDeleted":
            await context.send_activity('User identity deleted')

تكوين متقدم

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

أولوية المعالج وترتيبه

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

from microsoft_agents_a365.notifications import AgentNotification
from microsoft_agents.activity import ChannelId, AgentSubChannel

# Create notification handler
agent_notification = AgentNotification(app)

# Higher priority handler (processed first)
@agent_notification.on_email(rank=100)
async def high_priority_email(context, state, notification):
    # Handle with high priority
    pass

# Lower priority handler (processed after higher priority)
@agent_notification.on_email(rank=200)
async def low_priority_email(context, state, notification):
    # Handle with lower priority
    pass

معالجات المصادقة

تكوين معالجات تسجيل الدخول التلقائي للإعلامات التي تتطلب المصادقة:

from microsoft_agents_a365.notifications import AgentNotification
from microsoft_agents.activity import ChannelId, AgentSubChannel

# Create notification handler
agent_notification = AgentNotification(app)

# Handler with automatic authentication
@agent_notification.on_email(auto_sign_in_handlers=['agentic'])
async def authenticated_email(context, state, notification):
    # Authentication is handled automatically
    pass

الاختبار والمراقبة

اختبار عاملك مع الإعلامات

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

مراقبة معالجة الإعلامات

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