Aracılığıyla paylaş


Aracılara bildirme

Önemli

Microsoft Agent 365'e erken erişim elde etmek için Frontier önizleme programının bir parçası olmanız gerekir. Frontier sizi Doğrudan Microsoft'un en son yapay zeka yenilikleri ile bağlar. Sınır önizlemeleri, müşteri sözleşmelerinizin mevcut önizleme koşullarına tabidir. Bu özellikler hala geliştirme aşamasında olduğundan, bunların kullanılabilirliği ve özellikleri zaman içinde değişebilir.

Bildirimler modülü, geliştiricilerin Microsoft 365 uygulamalarından gelen olaylara ve bildirimlere yanıt verebilen aracılar oluşturmasına olanak tanır. Bildirimler desteğiyle, kullanıcılar e-posta, belge açıklamaları veya diğer işbirliğine dayalı senaryolar aracılığıyla onlarla etkileşime geçtiğinde aracılar uyarı alabilir ve bunları işleyebilir.

Bildirimler iş akışı

Yapay zeka aracısı uygulamanız için bildirimleri etkinleştirmek için bu iş akışını izleyin:

  1. Bildirim paketlerini yükleyin.

  2. Bildirim bileşenlerini içeri aktarma

    • Bildirim sınıflarını ve işleyicilerini içeri aktarma
    • Etkinlik türlerini ve kanal tanımlayıcılarını içeri aktarma
  3. Bildirim işleyicilerini kaydetme

    • Yolları kaydetmek için bildirim işleyicisi yöntemlerini kullanma
    • Belirli bildirim türleri için işleyicileri yapılandırma (Örneğin: e-posta, Word, Excel, PowerPoint)
  4. Aracı kodunda bildirimleri işleme

    • Aracı, Microsoft 365 uygulamalarından bildirim alır
    • Gelen bildirimleri işleme ve uygun şekilde yanıtlama

Bildirim türleri

, aşağıdaki bildirim türlerini destekler.

Bildirim Türü Description Alt Kanal Kimliği
E-posta Aracı, bahsedildiği veya adreslendiği bir e-posta alır email
Kelime Aracı, Word belgesindeki bir yorumda belirtilir word
Excel Aracı, Excel belgesindeki bir açıklamada belirtilir excel
PowerPoint 2021 Aracı, PowerPoint belgesindeki bir açıklamada belirtilir powerpoint
Yaşam Döngüsü Olayları Aracı yaşam döngüsü bildirimleri (kullanıcı kimliği oluşturuldu, iş yükü ekleme, kullanıcı silindi) Geçersiz

Aracı yaşam döngüsü olayları

Aracı yaşam döngüsü olayları, aracınızın aracılı kullanıcı kimliği yönetimiyle ilgili belirli sistem olaylarına yanıt vermesini sağlar. SDK şu anda üç yaşam döngüsü olayını destekler:

Etkinlik Türü Olay Kimliği Description
Kullanıcı Kimliği Oluşturuldu agenticUserIdentityCreated Aracı kullanıcı kimliği oluşturulduğunda tetikleniyor
İş Yükü Ekleme Güncelleştirildi agenticUserWorkloadOnboardingUpdated Aracı kullanıcının iş yükü ekleme durumu güncelleştirildiğinde tetiklendi
Kullanıcı Silindi agenticUserDeleted Aracı kullanıcı kimliği silindiğinde tetikleniyor

Bu olaylar, aracıların kullanıcı yaşam döngüsü değişikliklerine yanıt olarak başlatma görevleri, temizleme işlemleri veya durum yönetimi gerçekleştirmesine olanak tanır.

Temsilcinize Bildirim Ekleme

Mevcut aracınızda bildirim işlemeyi etkinleştirmek için şu adımları izleyin:

Bildirim bileşenlerini içeri aktarma

Aracı dosyanıza şu içeri aktarmaları ekleyin:

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 uygulamaları oluşturmaya yönelik temel sınıf; yönlendirme etkinlikleri, yönetim durumu ve istekleri işleme için temel işlevsellik sağlar
  • AgentNotification: Bildirim işleyicilerini dekoratör yöntemleriyle kaydetme sınıfı. on_agent_notification(), on_email(), on_word()ve diğer kolaylık dekoratörleri sağlar
  • AgentNotificationActivity: Bildirime özgü meta verileri (kimlikler, konuşma ayrıntıları, belge başvuruları) içeren ve wpx_comment_notification gibi email_notification yazılan özelliklere sahip ayrıştırılmış bildirim verilerini içeren sarmalayıcı
  • NotificationTypes: Desteklenen bildirim türlerinin sabit listesi (EMAIL_NOTIFICATION, WPX_COMMENT, AGENT_LIFECYCLE)
  • ChannelId: Bildirim kanallarını belirtmek için kullanılır (ör. ChannelId(channel="agents", sub_channel="*"))
  • Yetkilendirme: Bildirimleri işlemek için yetkilendirme bağlamı
  • TurnContext: Geçerli konuşma Aracılar SDK'sından bağlamı döndür

Aracınıza bildirim işleyicilerini kaydetme

Aracınızın başlatılmasına bildirim işleyicileri ekleyin:

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.')

Belirli bildirim işleyicilerini uygulama

Her bildirim türü için işleyici yöntemleri ekleyin:

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

Özel Bildirim İşleyicileri

Temel bildirim yönlendirmesini ayarladıktan sonra daha ayrıntılı denetim için özel işleyici yöntemlerini kullanın. Bu yöntemler şunları yapmanızı sağlar:

  • Aynı bildirim türü için birden çok işleyici kaydetme
  • İşleyici önceliğini derecelendirme ile ayarlama
  • İşleyici başına otomatik kimlik doğrulamayı yapılandırma

Not

Çoğu kullanım örneği için genel işleyici deseni yeterlidir. Aynı bildirim türü için gelişmiş yönlendirmeye veya birden çok işleyiciye ihtiyacınız olduğunda bu özel işleyicileri kullanın.

Tüm bildirimler için özel işleyici

Tüm bildirim türlerini işleyen daha fazla işleyici kaydedin:

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}")

E-posta bildirimleri için özel işleyici

Özellikle e-posta bildirimleri için daha fazla işleyici kaydedin:

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!')

Belge açıklamaları için özel işleyiciler

Word, Excel ve PowerPoint açıklama bildirimleri için daha fazla işleyici kaydedin:

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')

Yaşam döngüsü olayları için özel işleyiciler

Kullanıcı kimliği oluşturma, iş yükü ekleme ve kullanıcı silme gibi aracı yaşam döngüsü olayları için daha fazla işleyici kaydedin:

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')

Gelişmiş yapılandırma

Bu bölüm, bildirim işleyicilerinizde ince ayarlamalar yapmak için gelişmiş yapılandırma seçeneklerini kapsar. Bu yapılandırmalar, işleyici yürütme sırasını denetlemenize, kimlik doğrulama gereksinimlerini yönetmenize ve karmaşık senaryolar için bildirim işlemeyi iyileştirmenize olanak tanır.

İşleyici önceliği ve derecelendirmesi

Birden çok özel işleyici kullanırken, sıralama değerlerini kullanarak öncelik sırasını belirtebilirsiniz. Düşük değerler daha yüksek önceliğe işaret eder.

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

Kimlik doğrulama işleyicileri

Kimlik doğrulaması gerektiren bildirimler için otomatik oturum açma işleyicilerini yapılandırın:

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

Test etme ve izleme

Aracınızı bildirimlerle test edin

Bildirim işleyicilerini uyguladıktan sonra aracınızı test ederek farklı bildirim türlerini doğru şekilde aldığından ve işlediğine emin olun. Ortamınızı ayarlamak için test kılavuzunu izleyin, ardından aracı kimlik doğrulamasını kullanarak bildirimlerinizi doğrulamak için öncelikle Bildirim etkinlikleriyle test etme bölümüne odaklanın.

Bildirim işlemeyi izleme

Gözlemlenebilirlik özellikleri ekleyerek aracınızın bildirim işlemesini izleyin. Aracı performansını anlamak için bildirim işlemeyi, yanıt sürelerini ve hata oranlarını izleyin. İzleme ve izleme uygulama hakkında daha fazla bilgi edinin