Freigeben über


Agents benachrichtigen

Wichtig

Sie müssen Teil des Frontier-Vorschauversionsprogramms sein, um Vorabzugriff auf Microsoft Agent 365 zu erhalten. Frontier verbindet Sie direkt mit den neuesten KI-Innovationen von Microsoft. Frontier-Vorschauversionen unterliegen den bestehenden Vorschauversionsbedingungen Ihrer Kundenvereinbarungen. Da sich diese Funktionen noch in der Entwicklung befinden, können sich ihre Verfügbarkeit und Merkmale im Laufe der Zeit ändern.

Mit dem Benachrichtigungsmodul können Entwickler Agents erstellen, die auf Ereignisse und Benachrichtigungen von Microsoft 365-Anwendungen reagieren können. Mit Unterstützung von Benachrichtigungen können Agents Warnungen empfangen und verarbeiten, wenn Benutzer über E-Mails, Dokumentkommentare oder andere Szenarien für die Zusammenarbeit mit ihnen interagieren.

Benachrichtigungs-Workflow

Folgen Sie diesem Workflow, um Benachrichtigungen für Ihre KI-Agent-Anwendung zu aktivieren:

  1. Benachrichtigungspakete installieren.

  2. Importieren von Benachrichtigungskomponenten

    • Importieren von Benachrichtigungsklassen und -handlern
    • Importieren von Aktivitätstypen und Kanalbezeichnern
  3. Registrieren von Benachrichtigungshandlern

    • Verwenden von Benachrichtigungshandlermethoden zum Registrieren von Routen
    • Konfigurieren von Handlern für bestimmte Benachrichtigungstypen (z. B. E-Mail, Word, Excel, PowerPoint)
  4. Verarbeiten von Benachrichtigungen im Agentcode

    • Agent empfängt Benachrichtigungen von Microsoft 365-Anwendungen
    • Behandeln eingehender Benachrichtigungen und geeignetes Antworten

Benachrichtigungstypen

Das Agents 365 SDK unterstützt die folgenden Benachrichtigungstypen:

Benachrichtigungstyp Beschreibung des Dataflows Unterkanal-ID
E-Mail Agent empfängt eine E-Mail, in der sie erwähnt oder adressiert werden email
Word Agent wird in einem Kommentar in einem Word-Dokument erwähnt word
Excel Agent wird in einem Kommentar in einem Excel-Dokument erwähnt excel
PowerPoint Agent wird in einem Kommentar in einem PowerPoint-Dokument erwähnt powerpoint
Lebenszyklusereignisse Agent-Lebenszyklusbenachrichtigungen (Benutzeridentität erstellt, Workload-Onboarding, Benutzer gelöscht) NICHT ZUTREFFEND

Agent-Lebenszyklusereignisse

Agent-Lebenszyklusereignisse ermöglichen es Ihrem Agent, auf bestimmte Systemereignisse im Zusammenhang mit der agentischen Benutzeridentitätsverwaltung zu reagieren. Das SDK unterstützt derzeit drei Lebenszyklusereignisse:

Veranstaltungstyp Ereignis-ID Beschreibung des Dataflows
Benutzeridentität erstellt agenticUserIdentityCreated Wird ausgelöst, wenn eine Agent-Benutzeridentität erstellt wird
Workload-Onboarding aktualisiert agenticUserWorkloadOnboardingUpdated Wird ausgelöst, wenn der Onboarding-Status eines Agent-Benutzers aktualisiert wird
Benutzer gelöscht agenticUserDeleted Wird ausgelöst, wenn eine Agent-Benutzeridentität gelöscht wird

Diese Ereignisse ermöglichen es Agents, Initialisierungsaufgaben, Bereinigungsvorgänge oder Zustandsverwaltung als Reaktion auf Änderungen des Benutzerlebenszyklus auszuführen.

Hinzufügen von Benachrichtigungen zu Ihrem Agent

Führen Sie die folgenden Schritte aus, um die Benachrichtigungsverarbeitung in Ihrem vorhandenen Agent zu aktivieren:

Importieren von Benachrichtigungskomponenten

Fügen Sie diese Importe zu Ihrer Agentdatei hinzu:

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: Basisklasse zum Erstellen von Agent365-Anwendungen; bietet Kernfunktionen für Routingaktivitäten, verwalten des Zustands und Verarbeiten von Anforderungen
  • AgentNotification: Klasse zum Registrieren von Benachrichtigungshandlern mit Dekoriermethoden. Bietet on_agent_notification(), on_email(), on_word() und andere Komfortdekorierungen
  • AgentNotificationActivity: Wrapper mit analysierten Benachrichtigungsdaten mit typisierten Eigenschaften wie email_notification und wpx_comment_notification, die benachrichtigungsspezifische Metadaten enthalten (IDs, Details zur Unterhaltung, Dokumente)
  • NotificationTypes: Enumeration der unterstützten Benachrichtigungstypen (EMAIL_NOTIFICATION, WPX_COMMENT, AGENT_LIFECYCLE)
  • ChannelId: Wird verwendet, um Benachrichtigungskanäle anzugeben (z. B. ChannelId(channel="agents", sub_channel="*"))
  • Autorisierung: Autorisierungskontext für die Verarbeitung von Benachrichtigungen
  • TurnContext: Aktueller Unterhaltungskontext aus dem Agents SDK

Registrieren von Benachrichtigungshandlern in Ihrem Agent

Hinzufügen von Benachrichtigungshandlern zur Initialisierung des Agents:

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

Implementieren bestimmter Benachrichtigungshandler

Fügen Sie Handlermethoden für jeden Benachrichtigungstyp hinzu:

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

Spezielle Benachrichtigungshandler

Verwenden Sie nach dem Einrichten des grundlegenden Benachrichtigungsroutings spezielle Handlermethoden für eine genauere Steuerung. Diese Methoden bieten Ihnen die folgenden Möglichkeiten:

  • Registrieren mehrerer Handler für denselben Benachrichtigungstyp
  • Festlegen der Handlerpriorität mit Rangfolge
  • Konfigurieren der automatischen Authentifizierung pro Handler

Anmerkung

Für die meisten Anwendungsfälle reicht das generische Handlermuster aus. Verwenden Sie diese speziellen Handler, wenn Sie erweitertes Routing oder mehrere Handler für denselben Benachrichtigungstyp benötigen.

Spezieller Handler für alle Benachrichtigungen

Registrieren Sie weitere Handler, die alle Benachrichtigungstypen verarbeiten:

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

Spezieller Handler für E-Mail-Benachrichtigungen

Registrieren Sie weitere Handler speziell für E-Mail-Benachrichtigungen:

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

Spezielle Handler für Dokumentkommentare

Registrieren sie weitere Handler für Word-, Excel- und PowerPoint-Kommentarbenachrichtigungen:

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

Spezielle Handler für Lebenszyklusereignisse

Registrieren Sie weitere Handler für Agent-Lebenszyklusereignisse wie die Erstellung von Benutzeridentitäten, das Workload-Onboarding und das Löschen von Benutzern:

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

Erweiterte Konfiguration

In diesem Abschnitt werden die erweiterten Konfigurationsoptionen für die Feinabstimmung der Benachrichtigungshandler behandelt. Mit diesen Konfigurationen können Sie die Ausführungsreihenfolge des Handlers steuern, Authentifizierungsanforderungen verwalten und die Benachrichtigungsverarbeitung für komplexe Szenarien optimieren.

Priorität und Rangfolge des Handlers

Wenn Sie mehrere spezialisierte Handler verwenden, können Sie die Prioritätsreihenfolge mithilfe von Rangwerten angeben. Niedrigere Rangwerte weisen auf eine höhere Priorität hin:

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

Authentifizierungshandler

Konfigurieren Sie automatische Anmeldehandler für Benachrichtigungen, für die eine Authentifizierung erforderlich ist:

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

Testen und überwachen

Testen Ihres Agents mit Benachrichtigungen

Testen Sie den Agent nach der Implementierung von Benachrichtigungshandlern, um sicherzustellen, dass er ordnungsgemäß empfängt und verschiedene Benachrichtigungstypen verarbeitet. Folgen Sie der Anleitung zum Testen, um Ihre Umgebung einzurichten. Konzentrieren Sie sich dann vor allem auf den Abschnitt Test mit Benachrichtigungsaktivitäten, um Ihre Benachrichtigungen mithilfe der agentischen Authentifizierung zu validieren.

Überwachen der Benachrichtigungsverarbeitung

Überwachen Sie die Benachrichtigungsbehandlung Ihres Agents, indem Sie Einblick-Funktionen hinzufügen. Verfolgen Sie die Benachrichtigungsverarbeitung, Antwortzeiten und Fehlerraten, um die Leistung des Agents zu verstehen. Weitere Informationen zur Implementierung von Ablaufverfolgung und Überwachung