Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
É necessário fazer parte do programa de pré-visualização Frontier para obter acesso antecipado ao Microsoft Agent 365. A Frontier liga-o diretamente às mais recentes inovações de IA da Microsoft. As pré-visualizações da Frontier estão sujeitas aos termos de pré-visualização existentes dos seus contratos com clientes. Como estas funcionalidades ainda estão em desenvolvimento, a sua disponibilidade e capacidades podem mudar ao longo do tempo.
O módulo de Notificações permite aos programadores criar agentes capazes de responder a eventos e notificações das aplicações Microsoft 365. Com o suporte de notificações, os agentes podem receber e processar alertas quando os utilizadores interagem com eles através de email, comentários em documentos ou outros cenários colaborativos.
Fluxo de trabalho de notificações
Siga este fluxo de trabalho para ativar notificações para a sua aplicação de agente de IA:
Instalar pacotes de notificações.
Componentes de notificação de importação
- Classes e manipuladores de notificação de importação
- Tipos de atividade de importação e identificadores de canal
Manipuladores de notificações de registos
- Utilizar métodos de notificação para registar rotas
- Configure os handlers para tipos específicos de notificações (por exemplo: email, Word, Excel, PowerPoint)
Notificações de processo no código do agente
- O agente recebe notificações das aplicações Microsoft 365
- Trate das notificações recebidas e responda adequadamente
Tipos de notificação
O suporta os seguintes tipos de notificação.
| Tipo de Notificação | Descrição | ID de Subcanal |
|---|---|---|
| O agente recebe um email onde é mencionado ou endereçado | email |
|
| Palavra | O agente é mencionado num comentário num documento Word | word |
| Excel | O agente é mencionado num comentário num documento Excel | excel |
| PowerPoint 2021 | O agente é mencionado num comentário num documento PowerPoint | powerpoint |
| Eventos do Ciclo de Vida | Notificações do ciclo de vida do agente (identidade do utilizador criada, carga de trabalho a integrar, utilizador eliminado) | N/A |
Eventos do ciclo de vida do agente
Os eventos do ciclo de vida do agente permitem que o seu agente responda a eventos específicos do sistema relacionados com a gestão da identidade do utilizador agente. Atualmente, o SDK suporta três eventos do ciclo de vida:
| Tipo de Evento | ID do Evento | Descrição |
|---|---|---|
| Identidade do Utilizador Criada | agenticUserIdentityCreated |
Desencadeado quando é criada uma identidade de utilizador agente |
| Integração da Carga de Trabalho Atualizada | agenticUserWorkloadOnboardingUpdated |
Desencadeado quando o estado de integração da carga de trabalho de um utilizador agente é atualizado |
| Utilizador Eliminado | agenticUserDeleted |
Desencadeado quando a identidade de um utilizador agente é eliminada |
Estes eventos permitem que os agentes realizem tarefas de inicialização, operações de limpeza ou gestão de estados em resposta a alterações no ciclo de vida do utilizador.
Adicione Notificações ao Seu Agente
Siga estes passos para ativar o tratamento de notificações no seu agente atual:
Componentes de notificação de importação
Adicione estas importações ao seu ficheiro de agente:
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: Classe base para construir aplicações Agent365; fornece funcionalidade central para atividades de encaminhamento, gestão de estado e processamento de pedidos
-
AgentNotification: Classe para registar manipuladores de notificações com métodos de decoração. Fornece
on_agent_notification(),on_email(),on_word(), e outros decoradores de conveniência -
AgentNotificationActivity: Wrapper contendo dados de notificações analisadas com propriedades digitadas como
email_notificationewpx_comment_notificationque contêm metadados específicos da notificação (IDs, detalhes de conversa, referências de documentos) -
NotificationTypes: Enum dos tipos de notificação suportados (
EMAIL_NOTIFICATION,WPX_COMMENT,AGENT_LIFECYCLE) -
ChannelId: Usado para especificar canais de notificação (por exemplo,
ChannelId(channel="agents", sub_channel="*")) - Autorização: Contexto de autorização para processar notificações
- TurnContext: Contexto atual da conversa do turno do SDK Agents
Registe os responsáveis pelas notificações no seu agente
Adicione manipuladores de notificações à inicialização do seu agente:
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.')
Implementar manipuladores de notificações específicos
Adicionar métodos handler para cada tipo de notificação:
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
Manipuladores Especializados de Notificações
Depois de configurar o encaminhamento básico das notificações, utilize métodos especializados de manipuladores para um controlo mais granular. Estes métodos permitem-lhe:
- Registar múltiplos manipuladores para o mesmo tipo de notificação
- Definir prioridade do handler com classificação
- Configurar a autoautenticação por handler
Nota
Para a maioria dos casos de uso, o padrão genérico do handler é suficiente. Use estes manipuladores especializados quando precisar de routing avançado ou múltiplos handlers para o mesmo tipo de notificação.
Handler especializado para todas as notificações
Registe mais manipuladores que processem todos os tipos de notificações:
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}")
Gestor especializado para notificações por email
Registe mais handlers especificamente para notificações por email:
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!')
Manipuladores especializados para comentários de documentos
Registe mais responsáveis para notificações de comentários em Word, Excel e 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')
Manipuladores especializados para eventos do ciclo de vida
Registe mais handlers para eventos do ciclo de vida do agente, como criação de identidade de utilizador, integração de cargas de trabalho e eliminação de utilizadores:
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')
Configuração avançada
Esta secção aborda opções avançadas de configuração para afinar os seus manipuladores de notificações. Estas configurações permitem-lhe controlar a ordem de execução do handler, gerir os requisitos de autenticação e otimizar o processamento de notificações para cenários complexos.
Prioridade e classificação do manipulador
Ao usar múltiplos manipuladores especializados, pode especificar a ordem de prioridade usando valores de rank. Valores mais baixos indicam maior prioridade.
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
Manipuladores de autenticação
Configure handlers de login automático para notificações que requerem autenticação:
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
Testar e monitorizar
Teste o seu agente com notificações
Depois de implementar os manipuladores de notificações, teste o seu agente para garantir que recebe e processa corretamente diferentes tipos de notificações. Siga o guia de testes para configurar o seu ambiente e depois concentre-se principalmente na secção de atividades de Teste com notificações para validar as notificações usando autenticação agente.
Monitorizar o tratamento de notificações
Monitorize o tratamento das notificações pelo seu agente adicionando capacidades de observabilidade. Acompanhe o processamento das notificações, os tempos de resposta e as taxas de erro para compreender o desempenho do agente. Saiba mais sobre a implementação do rastreio e monitorização