Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Чтобы получить ранний доступ к Microsoft Agent 365, необходимо быть частью программы предварительного просмотра Фронтир. Frontier напрямую подключает вас к последним инновациям ИИ от Microsoft. Получите практический опыт с прорывными функциями, делитесь своими впечатлениями с продуктовыми командами и помогите сформировать будущее Искусственного интеллекта. Предпросмотры Frontier подчиняются существующим условиям предварительного просмотра в рамках ваших клиентских соглашений. Так как эти функции по-прежнему находятся в разработке, их доступность и возможности могут меняться со временем.
Модуль уведомлений позволяет разработчикам создавать агенты, которые могут реагировать на события и уведомления из приложений Microsoft 365. С поддержкой уведомлений агенты могут получать и обрабатывать оповещения, когда пользователи взаимодействуют с ними с помощью электронной почты, комментариев документов или других сценариев совместной работы.
Рабочий процесс уведомлений
Выполните этот рабочий процесс, чтобы включить уведомления для приложения агента ИИ:
Импорт компонентов уведомлений
- Импорт классов уведомлений и обработчиков
- Импорт типов действий и идентификаторов каналов
Регистрация обработчиков уведомлений
- Использование методов обработчика уведомлений для регистрации маршрутов
- Настройка обработчиков для определенных типов уведомлений (например, электронная почта, Word, Excel, PowerPoint)
Обработка уведомлений в коде агента
- Агент получает уведомления от приложений Microsoft 365
- Обработка входящих уведомлений и реагирование соответствующим образом
Типы уведомлений
Пакет SDK для агентов 365 поддерживает следующие типы уведомлений:
| Тип уведомления | Description | Идентификатор Sub-Channel |
|---|---|---|
| Эл. почта | Агент получает сообщение электронной почты, в котором они упоминаются или рассматриваются | email |
| Слово | Агент упоминается в комментарии в документе Word | word |
| Excel | Агент упоминается в комментарии в документе Excel | excel |
| PowerPoint | Агент упоминается в комментарии в документе PowerPoint | powerpoint |
| События жизненного цикла | Уведомления жизненного цикла агента (создание идентификации пользователя, подключение рабочей нагрузки, удаление пользователя) | N/A |
События жизненного цикла агента
События жизненного цикла агента позволяют агенту реагировать на определенные системные события, связанные с управлением удостоверениями агента. В настоящее время пакет SDK поддерживает три события жизненного цикла:
| Тип события | Идентификатор события | Description |
|---|---|---|
| Создано удостоверение пользователя | agenticUserIdentityCreated |
Активируется при создании идентичности агентного пользователя |
| Обновление процесса интеграции нагрузки | agenticUserWorkloadOnboardingUpdated |
Активируется при обновлении статуса процесса интеграции рабочей нагрузки автономного пользователя. |
| Удалено пользователем | agenticUserDeleted |
Активируется при удалении агентской идентичности пользователя |
Эти события позволяют агентам выполнять задачи инициализации, операции очистки или управление состоянием в ответ на изменения жизненного цикла пользователя.
Добавьте уведомления в ваш агент
Выполните следующие действия, чтобы включить обработку уведомлений в существующем агенте:
Импорт компонентов уведомлений
Добавьте эти импорты в файл агента:
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; предоставляет основные функциональные возможности для действий маршрутизации, управления состоянием и обработки запросов
-
AgentNotification: класс для регистрации обработчиков уведомлений с использованием методов-декораторов. Предоставляет
on_agent_notification(),on_email(),on_word(), и другие удобные декораторы -
AgentNotificationActivity: оболочка, содержащая проанализированные данные уведомлений с типизированными свойствами, такими как
email_notificationиwpx_comment_notificationсодержащие метаданные, относящиеся к уведомлениям (идентификаторы, сведения о беседе, ссылки на документы) -
NotificationTypes: перечисление поддерживаемых типов уведомлений (
EMAIL_NOTIFICATION,WPX_COMMENT,AGENT_LIFECYCLE) -
ChannelId: используется для указания каналов уведомлений (например,
ChannelId(channel="agents", sub_channel="*")) - Авторизация: контекст авторизации для обработки уведомлений
- TurnContext: текущий контекст беседы из пакета SDK для агентов
Зарегистрируйте обработчики уведомлений в агенте
Добавьте обработчики уведомлений в инициализацию агента:
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.')
Реализация конкретных обработчиков уведомлений
Добавьте методы обработчика для каждого типа уведомления:
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
Специализированные обработчики уведомлений
После настройки базовой маршрутизации уведомлений используйте специализированные методы обработчика для более детального управления. Эти методы позволяют:
- Регистрация нескольких обработчиков для одного типа уведомлений
- Установка приоритета обработчика с ранжированием
- Настройка автоматической проверки подлинности для каждого обработчика
Замечание
Для большинства вариантов использования универсальный шаблон обработчика является достаточным. Используйте эти специализированные обработчики, если требуется расширенная маршрутизация или несколько обработчиков для одного типа уведомлений.
Специализированный обработчик для всех уведомлений
Зарегистрируйте дополнительные обработчики, обрабатывающие все типы уведомлений:
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}")
Специализированный обработчик уведомлений по электронной почте
Зарегистрируйте дополнительные обработчики, специально предназначенные для уведомлений по электронной почте:
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!')
Специализированные обработчики для комментариев к документу
Зарегистрируйте дополнительные обработчики для уведомлений о комментариях Word, Excel и 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')
Специализированные обработчики для событий жизненного цикла
Зарегистрируйте дополнительные обработчики для событий жизненного цикла агента, таких как создание удостоверения пользователя, подключение рабочей нагрузки и удаление пользователей:
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')
Расширенная конфигурация
В этом разделе рассматриваются дополнительные параметры конфигурации для точной настройки обработчиков уведомлений. Эти конфигурации позволяют управлять порядком выполнения обработчика, управлять требованиями к проверке подлинности и оптимизировать обработку уведомлений для сложных сценариев.
Приоритет обработчика и ранжирование
При использовании нескольких специализированных обработчиков можно указать порядок приоритета с помощью значений ранжирования. Ниже значения ранга указывают на более высокий приоритет:
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
Обработчики проверки подлинности
Настройте обработчики автоматического входа для уведомлений, требующих проверки подлинности:
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
Тестирование и мониторинг
Проверьте возможности вашего агента с помощью уведомлений
После реализации обработчиков уведомлений проверьте агент, чтобы убедиться, что он правильно получает и обрабатывает различные типы уведомлений. Следуйте инструкциям по тестированию , чтобы настроить среду, а затем сосредоточьтесь в основном на разделе "Тест" с действиями уведомлений , чтобы проверить уведомления с помощью проверки подлинности агента.
Мониторинг обработки уведомлений
Отслеживайте обработку уведомлений агента, добавляя возможности наблюдения. Отслеживайте обработку уведомлений, время отклика и частоту ошибок, чтобы понять производительность агента. Дополнительные сведения о реализации трассировки и мониторинга