Delen via


Agenten op de hoogte stellen

Belangrijk

U moet deelnemen aan het preview-programma Frontier om vroegtijdige toegang te krijgen tot Microsoft Agent 365. Frontier verbindt u rechtstreeks met de nieuwste AI-innovaties van Microsoft. Op Frontier-previews zijn de bestaande preview-voorwaarden van uw klantovereenkomsten van toepassing. Omdat deze functies nog in ontwikkeling zijn, kunnen de beschikbaarheid en mogelijkheden hiervan na verloop van tijd veranderen.

Met de module Meldingen kunnen ontwikkelaars agenten bouwen die kunnen reageren op gebeurtenissen en meldingen van Microsoft 365-toepassingen. Met ondersteuning voor meldingen kunnen agenten waarschuwingen ontvangen en verwerken wanneer gebruikers via e-mail, documentopmerkingen of andere samenwerkingsscenario's met hen communiceren.

Werkstroom Meldingen

Volg deze werkstroom om meldingen in te schakelen voor uw AI-agenttoepassing:

  1. Installeer meldingspakketten.

  2. Importeer meldingsonderdelen

    • Meldingsklassen en -handlers importeren
    • Activiteitstypen en kanaal-id's importeren
  3. Registreer meldingshandlers

    • Methoden voor meldingshandlers gebruiken om routes te registreren
    • Handlers configureren voor specifieke meldingstypen (bijvoorbeeld e-mail, Word, Excel, PowerPoint)
  4. Verwerk meldingen in agentcode

    • Agent ontvangt meldingen van Microsoft 365-toepassingen
    • Binnenkomende meldingen verwerken en op de juiste wijze reageren

Meldingstypen

De SDK voor Agent 365 ondersteunt de volgende typen meldingen:

Berichttype Omschrijving Subkanaal-id
E-mail Agent ontvangt een e-mailbericht waarin deze wordt vermeld of aangesproken email
Word Agent wordt vermeld in een opmerking in een Word-document word
Excel Agent wordt vermeld in een opmerking in een Excel-document excel
PowerPoint Agent wordt vermeld in een opmerking in een PowerPoint-document powerpoint
Levenscyclusgebeurtenissen Meldingen over de levenscyclus van agenten (gebruikersidentiteit gemaakt, onboarding van workload, gebruiker verwijderd) N.v.t.

Levenscyclusgebeurtenissen van agenten

Gebeurtenissen in de levenscyclus van agenten stellen uw agent in staat om te reageren op specifieke systeemgebeurtenissen met betrekking tot identiteitsbeheer van agentische gebruikers. De SDK ondersteunt momenteel drie levenscyclusgebeurtenissen:

Soort evenement Gebeurtenis-id Omschrijving
Gebruikersidentiteit gemaakt agenticUserIdentityCreated Wordt geactiveerd wanneer een agentische gebruikersidentiteit wordt gemaakt
Onboarding van workload bijgewerkt agenticUserWorkloadOnboardingUpdated Wordt geactiveerd wanneer de onboardingstatus van de workload van een agentische gebruiker wordt bijgewerkt
Gebruiker verwijderd agenticUserDeleted Wordt geactiveerd wanneer een agentische gebruikersidentiteit wordt verwijderd

Met deze gebeurtenissen kunnen agenten initialisatietaken, opschoningsbewerkingen of statusbeheer uitvoeren als reactie op wijzigingen in de levenscyclus van gebruikers.

Meldingen toevoegen aan uw agent

Volg deze stappen om de verwerking van meldingen in te schakelen in uw bestaande agent:

Importeer meldingsonderdelen

Voeg deze importbewerkingen toe aan uw agentbestand:

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 voor het bouwen van Agent 365-toepassingen; biedt kernfunctionaliteit voor routeringsactiviteiten, het beheren van de status en de verwerking van aanvragen
  • AgentNotification: klasse voor het registreren van meldingshandlers met decorator-methoden. Biedt on_agent_notification(), on_email(), on_word()en andere decorators voor het gemak
  • AgentNotificationActivity: wrapper met geparseerde meldingsgegevens met getypte eigenschappen, zoals email_notification en wpx_comment_notification die meldingsspecifieke metagegevens (id's, gespreksgegevens, documentverwijzingen) bevatten
  • NotificationTypes: opsomming van ondersteunde meldingstypen (EMAIL_NOTIFICATION, WPX_COMMENT, AGENT_LIFECYCLE)
  • ChannelId: wordt gebruikt om meldingskanalen op te geven (bijvoorbeeld ChannelId(channel="agents", sub_channel="*"))
  • Authorization: autorisatiecontext voor het verwerken van meldingen
  • TurnContext: de context van de huidige gesprekswisseling uit de SDK voor agenten

Meldingshandlers registreren in uw agent

Voeg meldingshandlers toe aan de initialisatie van uw agent:

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

Specifieke meldingshandlers implementeren

Voeg handlermethoden toe voor elk meldingstype:

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

Gespecialiseerde meldingshandlers

Nadat u de basisroutering voor meldingen hebt ingesteld, gebruikt u gespecialiseerde handlermethoden voor meer gedetailleerde controle. Deze methoden bieden u onder meer de volgende mogelijkheden:

  • Meerdere handlers registreren voor hetzelfde meldingstype
  • Handlerprioriteit instellen met rangschikking
  • Automatische verificatie per handler configureren

Notitie

In de meeste gevallen volstaat het algemene handlerpatroon. Gebruik deze gespecialiseerde handlers wanneer u geavanceerde routering of meerdere handlers nodig hebt voor hetzelfde meldingstype.

Gespecialiseerde handler voor alle meldingen

Registreer meer handlers die alle meldingstypen verwerken:

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

Gespecialiseerde handler voor e-mailmeldingen

Registreer meer handlers specifiek voor e-mailmeldingen:

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

Gespecialiseerde handlers voor documentopmerkingen

Registreer meer handlers voor meldingen voor opmerkingen in Word, Excel en 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')

Gespecialiseerde handlers voor levenscyclusgebeurtenissen

Registreer meer handlers voor levenscyclusgebeurtenissen van agenten, zoals het maken van gebruikersidentiteiten, het onboarden van workloads en het verwijderen van gebruikers:

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

Geavanceerde configuratie

In deze sectie worden geavanceerde configuratieopties beschreven voor het afstemmen van uw meldingshandlers. Met deze configuraties kunt u de uitvoeringsvolgorde van handlers bepalen, verificatievereisten beheren en de verwerking van meldingen optimaliseren voor complexe scenario's.

Prioriteit en rangschikking van handler

Wanneer u meerdere gespecialiseerde handlers gebruikt, kunt u de prioriteitsvolgorde opgeven met behulp van rangschikkingswaarden. Een lagere rangschikkingswaarde duidt op een hogere prioriteit:

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

Verificatiehandlers

Configureer handlers voor automatische aanmelding voor meldingen waarvoor verificatie vereist is:

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 en monitoren

Uw agent testen met meldingen

Nadat u meldingshandlers hebt geïmplementeerd, test u uw agent om ervoor te zorgen dat deze op de juiste manier verschillende meldingstypen ontvangt en verwerkt. Volg de testhandleiding om uw omgeving in te stellen en richt u vervolgens voornamelijk op de sectie Testen met meldingsactiviteiten om uw meldingen te valideren met behulp van agentische verificatie.

Verwerking van meldingen bewaken

Bewaak de verwerking van meldingen door uw agent door mogelijkheden voor waarneembaarheid toe te voegen. Houd de verwerking van meldingen, reactietijden en foutpercentages bij om inzicht te krijgen in de prestaties van agenten. Meer informatie over het implementeren van tracering en bewaking