Megosztás:


Ügynökök értesítése

Fontos

A Microsoft Agent 365-höz való korai hozzáféréshez a Frontier előzetes verziójának részeként kell lennie. A Frontier közvetlenül összekapcsolja Önt a Microsoft legújabb AI-innovációival. Gyakorlati ismereteket szerezhet az úttörő funkciókról, megoszthatja észrevételeit a termékcsapatokkal, és segíthet a mesterséges intelligencia jövőjének alakításában. A Frontier előzetesekre az ügyfélszerződések meglévő előzetes feltételei vonatkoznak. Mivel ezek a funkciók még fejlesztés alatt állnak, rendelkezésre állásuk és képességeik idővel változhatnak."

Az Értesítések modul lehetővé teszi a fejlesztők számára, hogy olyan ügynököket építsenek ki, amelyek képesek reagálni a Microsoft 365-alkalmazások eseményeire és értesítéseire. Az értesítések támogatásával az ügynökök riasztásokat kaphatnak és dolgozhatnak fel, amikor a felhasználók e-mailben, dokumentum-megjegyzésekben vagy más együttműködési forgatókönyvekben kommunikálnak velük.

Értesítések munkafolyamata

Kövesse ezt a munkafolyamatot az AI-ügynökalkalmazás értesítéseinek engedélyezéséhez:

  1. Telepítse az értesítési csomagokat.

  2. Értesítési összetevők importálása

    • Értesítési osztályok és kezelők importálása
    • Tevékenységtípusok és csatornaazonosítók importálása
  3. Értesítéskezelők regisztrálása

    • Útvonalak regisztrálása értesítéskezelő metódusokkal
    • Kezelők konfigurálása adott értesítéstípusokhoz (például e-mail, Word, Excel, PowerPoint)
  4. Értesítések feldolgozása ügynökkódban

    • Az ügynök értesítéseket kap a Microsoft 365-alkalmazásoktól
    • Bejövő értesítések kezelése és megfelelő válaszadás

Értesítéstípusok

Az Agents 365 SDK a következő értesítési típusokat támogatja:

Értesítés típusa Description Sub-Channel azonosító
E-mail Az ügynök kap egy e-mailt, amelyben megemlítik vagy címezve vannak email
Szó Az ügynök egy Word-dokumentumban lévő megjegyzésben szerepel word
Excel Az ügynök szerepel egy Megjegyzésben egy Excel-dokumentumban excel
PowerPoint Az ügynök szerepel egy Megjegyzésben egy PowerPoint-dokumentumban powerpoint
Életciklus-események Ügynökéletciklus-értesítések (felhasználói identitás létrehozása, számítási feladatok előkészítése, felhasználó által törölt) N/A

Ügynök életciklus-eseményei

Az ügynök életciklus-eseményei lehetővé teszik, hogy az ügynök reagáljon a felhasználói identitás kezeléshez kapcsolódó konkrét rendszereseményekre. Az SDK jelenleg három életciklus eseményt támogat:

Esemény típusa Eseményazonosító Description
Létrehozott felhasználói identitás agenticUserIdentityCreated Ügynöki felhasználói identitás létrehozásakor aktiválódik
A számítási feladatok előkészítése frissítve agenticUserWorkloadOnboardingUpdated Az ügynöki felhasználó számítási feladatainak előkészítési állapotának frissítésekor aktiválódik
Felhasználó törölve agenticUserDeleted Ügynöki felhasználói identitás törlésekor aktiválódik

Ezek az események lehetővé teszik az ügynökök számára, hogy inicializálási feladatokat, törlési műveleteket vagy állapotkezelést hajtsanak végre a felhasználói életciklus változásaira válaszul.

Értesítések hozzáadása az ügynökhöz

A meglévő ügynök értesítéskezelésének engedélyezéséhez kövesse az alábbi lépéseket:

Értesítési összetevők importálása

Adja hozzá ezeket az importálásokat az ügynökfájlhoz:

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: Alaposztály Ügynök365-alkalmazások létrehozásához; alapvető funkciókat biztosít az útválasztási tevékenységekhez, az állapotkezeléshez és a kérelmek feldolgozásához
  • AgentNotification: Az értesítéskezelők dekorálási metódusokkal történő regisztrálásának osztálya. Biztosít on_agent_notification(), on_email(), on_word() és egyéb kényelmi dekorátorok
  • AgentNotificationActivity: A beírt tulajdonságokkal email_notificationwpx_comment_notification rendelkező és értesítésspecifikus metaadatokat (azonosítókat, beszélgetés részleteit, dokumentumhivatkozásokat) tartalmazó, elemzéssel ellátott értesítési adatokat tartalmazó burkoló
  • NotificationTypes: Támogatott értesítéstípusok száma (EMAIL_NOTIFICATION, WPX_COMMENT, AGENT_LIFECYCLE)
  • ChannelId: Értesítési csatornák megadására szolgál (pl. ChannelId(channel="agents", sub_channel="*"))
  • Engedélyezés: Engedélyezési környezet az értesítések feldolgozásához
  • TurnContext: Az aktuális beszélgetés kontextusa az Ügynökök SDK-ból

Értesítéskezelők regisztrálása az ügynöködben

Értesítéskezelők hozzáadása az ügynök inicializálásához:

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

Konkrét értesítéskezelők implementálása

Adjon hozzá kezelő metódusokat az egyes értesítési típusokhoz.

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

Speciális értesítéskezelők

Az alapvető értesítési útválasztás beállítása után speciális kezelőmetszeteket használjon a részletesebb vezérléshez. Ezek a módszerek lehetővé teszik a következők használatát:

  • Több kezelő regisztrálása ugyanahhoz az értesítéstípushoz
  • Kezelő prioritásának beállítása rangsorolással
  • Automatikus hitelesítés konfigurálása kezelőnként

Megjegyzés:

A legtöbb használati esetben elegendő az általános kezelőminta. Ezeket a speciális kezelőket akkor használja, ha speciális útválasztásra vagy ugyanazon értesítéstípushoz több kezelőre van szüksége.

Speciális kezelő az összes értesítéshez

Regisztráljon további kezelőket, amelyek az összes értesítéstípust feldolgozzák:

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

Speciális kezelő e-mail-értesítésekhez

További kezelők regisztrálása kifejezetten az e-mail-értesítésekhez:

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

Speciális kezelők a dokumentum megjegyzéseihez

További kezelők regisztrálása Word-, Excel- és PowerPoint-megjegyzésértesítésekhez:

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

Speciális kezelők életciklus-eseményekhez

Regisztráljon további kezelőket az ügynök életciklus-eseményeihez, például a felhasználói identitás létrehozásához, a számítási feladatok előkészítéséhez és a felhasználók törléséhez:

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

Speciális konfiguráció

Ez a szakasz az értesítéskezelők finomhangolásának speciális konfigurációs lehetőségeit ismerteti. Ezek a konfigurációk lehetővé teszik a kezelő végrehajtási sorrendjének szabályozását, a hitelesítési követelmények kezelését és az értesítések feldolgozásának optimalizálását összetett forgatókönyvekhez.

Kezelő prioritása és rangsorolás

Több specializált kezelő használata esetén rangsorértékekkel adhatja meg a prioritási sorrendet. Az alacsonyabb rangértékek magasabb prioritást jeleznek:

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

Hitelesítési kezelők

Automatikus bejelentkezési kezelők konfigurálása hitelesítést igénylő értesítésekhez:

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

Tesztelés és monitorozás

Az ügynök tesztelése értesítések használatával

Az értesítéskezelők implementálása után tesztelje az ügynököt, hogy megfelelően fogadja és feldolgozza a különböző értesítési típusokat. Kövesse a tesztelési útmutatót a környezet beállításához, majd elsősorban a Tesztelés értesítési tevékenységekkel szakaszra összpontosítva ellenőrizze az értesítéseket ügynöki hitelesítéssel.

Értesítéskezelés figyelése

Megfigyelheti az ügynök értesítési kezelését a megfigyelhetőségi képességek hozzáadásával. Nyomon követheti az értesítések feldolgozását, a válaszidőt és a hibaarányokat az ügynök teljesítményének megértéséhez. További információ a nyomkövetés és a monitorozás implementálásáról