AgentNotification 類別

用於 Microsoft 365 應用程式代理通知的處理器。

此類別提供裝飾器,用於註冊處理程序,回應來自各種 Microsoft 365 通道及子通道的通知。 它支援根據通道識別碼、子通道及生命週期事件進行路由。

建構函式

AgentNotification()

參數

名稱 Description
app
必要

會處理路由通知的應用程式實例。

known_subchannels

可選的已識別子頻道的迭代功能。 若為 None,則預設為 AgentSubChannel 枚舉中的所有值。

預設值: None
known_lifecycle_events

可選迭代的已確認生命週期事件。 若無,則預設為 AgentLifecycleEvent 枚舉中的所有值。

預設值: None

範例


   from microsoft_agents.hosting import Application
   from microsoft_agents_a365.notifications import AgentNotification

   app = Application()
   notifications = AgentNotification(app)

   @notifications.on_email()
   async def handle_email(context, state, notification):
       email = notification.email
       if email:
           await context.send_activity(f"Received email: {email.id}")

方法

__init__
__new__
on_agent_lifecycle_notification

註冊一個處理器以接收代理生命週期事件通知。

此裝飾器會註冊一個處理程式函式,當生命週期事件發生時(如使用者建立、刪除或工作負載啟動更新)時被呼叫。

on_agent_notification

註冊一個處理器以接收特定通道及子通道的通知。

此裝飾器會註冊一個處理函式,當收到指定通道及可選子通道的通知時,會被呼叫。 處理器會收到一個已輸入的 AgentNotificationActivity 封裝器。

on_email

註冊一個 Outlook 電子郵件通知的處理器。

這是一個便利裝飾器,會註冊一個處理者以接收來自電子郵件子頻道的通知。

on_excel

註冊一個處理程序以接收 Microsoft Excel 評論通知。

這是一個方便裝飾器,會註冊一個處理程式,接收來自 Excel 子通道的通知。

on_lifecycle

註冊一個處理程序來接收所有代理生命週期事件通知。

這是一個便利裝飾器,會利用萬用字元「*」匹配器註冊所有生命週期事件的處理程序。

on_powerpoint

註冊一個處理程式以接收 Microsoft PowerPoint 留言通知。

這是一個便利裝飾器,會註冊一個處理者來接收來自 PowerPoint 子頻道的通知。

on_user_created

註冊一個處理程式以記錄使用者建立生命週期事件。

這是一個便利裝飾器,專門註冊一個處理程序來處理代理使用者身份的建立事件。

on_user_deleted

註冊一個處理程式以執行使用者刪除生命週期事件。

這是一個便利裝飾器,專門註冊一個處理程序,用於代理使用者身份刪除事件。

on_user_workload_onboarding

註冊一個處理器以管理使用者工作負載的啟動更新事件。

這是一個便利裝飾器,會在使用者工作負載啟動狀態更新時,註冊一個處理程序。

on_word

註冊一個處理程式以接收 Microsoft Word 留言通知。

這是一個便利裝飾器,會註冊一個處理器以接收來自 Word 子頻道的通知。

__init__

__init__(app: Any, known_subchannels: Iterable[str | AgentSubChannel] | None = None, known_lifecycle_events: Iterable[str | AgentLifecycleEvent] | None = None)

參數

名稱 Description
app
必要
Any
known_subchannels
預設值: None
known_lifecycle_events
預設值: None

__new__

__new__(**kwargs)

on_agent_lifecycle_notification

註冊一個處理器以接收代理生命週期事件通知。

此裝飾器會註冊一個處理程式函式,當生命週期事件發生時(如使用者建立、刪除或工作負載啟動更新)時被呼叫。

on_agent_lifecycle_notification(lifecycle_event: str, **kwargs: Any)

參數

名稱 Description
lifecycle_event
必要
str

值得留意的生命週期事件。 使用「*」來匹配所有生命週期事件,或指定 AgentLifecycleEvent 中的特定事件。

**kwargs
必要
Any

額外關鍵字參數傳遞給應用程式的add_route方法。

傳回

類型 Description

裝飾函式,將處理器註冊給應用程式。

範例


   @notifications.on_agent_lifecycle_notification("agenticuseridentitycreated")
   async def handle_user_created(context, state, notification):
       print("New user created")

on_agent_notification

註冊一個處理器以接收特定通道及子通道的通知。

此裝飾器會註冊一個處理函式,當收到指定通道及可選子通道的通知時,會被呼叫。 處理器會收到一個已輸入的 AgentNotificationActivity 封裝器。

on_agent_notification(channel_id: ChannelId, **kwargs: Any)

參數

名稱 Description
channel_id
必要

頻道 ID 指定頻道及可選的子頻道。 用「*」作為子頻道來匹配所有子頻道。

**kwargs
必要
Any

額外關鍵字參數傳遞給應用程式的add_route方法。

傳回

類型 Description

裝飾函式,將處理器註冊給應用程式。

範例


   from microsoft_agents.activity import ChannelId

   @notifications.on_agent_notification(
       ChannelId(channel="agents", sub_channel="email")
   )
   async def handle_custom_channel(context, state, notification):
       print(f"Received notification on {notification.channel}/{notification.sub_channel}")

on_email

註冊一個 Outlook 電子郵件通知的處理器。

這是一個便利裝飾器,會註冊一個處理者以接收來自電子郵件子頻道的通知。

on_email(**kwargs: Any) -> Callable[[Callable[[TContext, TState, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

參數

名稱 Description
**kwargs
必要
Any

額外關鍵字參數傳遞給應用程式的add_route方法。

傳回

類型 Description
Callable[[Callable[[<xref:microsoft_agents_a365.notifications.agent_notification.TContext>, <xref:microsoft_agents_a365.notifications.agent_notification.TState>, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

裝飾函式,將處理器註冊給應用程式。

範例


   @notifications.on_email()
   async def handle_email(context, state, notification):
       email = notification.email
       if email:
           print(f"Received email: {email.id}")
           response = EmailResponse.create_email_response_activity(
               "<p>Thank you for your email.</p>"
           )
           await context.send_activity(response)

on_excel

註冊一個處理程序以接收 Microsoft Excel 評論通知。

這是一個方便裝飾器,會註冊一個處理程式,接收來自 Excel 子通道的通知。

on_excel(**kwargs: Any) -> Callable[[Callable[[TContext, TState, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

參數

名稱 Description
**kwargs
必要
Any

額外關鍵字參數傳遞給應用程式的add_route方法。

傳回

類型 Description
Callable[[Callable[[<xref:microsoft_agents_a365.notifications.agent_notification.TContext>, <xref:microsoft_agents_a365.notifications.agent_notification.TState>, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

裝飾函式,將處理器註冊給應用程式。

範例


   @notifications.on_excel()
   async def handle_excel_comment(context, state, notification):
       comment = notification.wpx_comment
       if comment:
           print(f"Received Excel comment: {comment.comment_id}")

on_lifecycle

註冊一個處理程序來接收所有代理生命週期事件通知。

這是一個便利裝飾器,會利用萬用字元「*」匹配器註冊所有生命週期事件的處理程序。

on_lifecycle(**kwargs: Any) -> Callable[[Callable[[TContext, TState, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

參數

名稱 Description
**kwargs
必要
Any

額外關鍵字參數傳遞給應用程式的add_route方法。

傳回

類型 Description
Callable[[Callable[[<xref:microsoft_agents_a365.notifications.agent_notification.TContext>, <xref:microsoft_agents_a365.notifications.agent_notification.TState>, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

裝飾函式,將處理器註冊給應用程式。

範例


   @notifications.on_lifecycle()
   async def handle_any_lifecycle_event(context, state, notification):
       print(f"Lifecycle event type: {notification.notification_type}")

on_powerpoint

註冊一個處理程式以接收 Microsoft PowerPoint 留言通知。

這是一個便利裝飾器,會註冊一個處理者來接收來自 PowerPoint 子頻道的通知。

on_powerpoint(**kwargs: Any) -> Callable[[Callable[[TContext, TState, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

參數

名稱 Description
**kwargs
必要
Any

額外關鍵字參數傳遞給應用程式的add_route方法。

傳回

類型 Description
Callable[[Callable[[<xref:microsoft_agents_a365.notifications.agent_notification.TContext>, <xref:microsoft_agents_a365.notifications.agent_notification.TState>, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

裝飾函式,將處理器註冊給應用程式。

範例


   @notifications.on_powerpoint()
   async def handle_powerpoint_comment(context, state, notification):
       comment = notification.wpx_comment
       if comment:
           print(f"Received PowerPoint comment: {comment.comment_id}")

on_user_created

註冊一個處理程式以記錄使用者建立生命週期事件。

這是一個便利裝飾器,專門註冊一個處理程序來處理代理使用者身份的建立事件。

on_user_created(**kwargs: Any) -> Callable[[Callable[[TContext, TState, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

參數

名稱 Description
**kwargs
必要
Any

額外關鍵字參數傳遞給應用程式的add_route方法。

傳回

類型 Description
Callable[[Callable[[<xref:microsoft_agents_a365.notifications.agent_notification.TContext>, <xref:microsoft_agents_a365.notifications.agent_notification.TState>, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

裝飾函式,將處理器註冊給應用程式。

範例


   @notifications.on_user_created()
   async def handle_user_created(context, state, notification):
       print("New agentic user identity created")

on_user_deleted

註冊一個處理程式以執行使用者刪除生命週期事件。

這是一個便利裝飾器,專門註冊一個處理程序,用於代理使用者身份刪除事件。

on_user_deleted(**kwargs: Any) -> Callable[[Callable[[TContext, TState, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

參數

名稱 Description
**kwargs
必要
Any

額外關鍵字參數傳遞給應用程式的add_route方法。

傳回

類型 Description
Callable[[Callable[[<xref:microsoft_agents_a365.notifications.agent_notification.TContext>, <xref:microsoft_agents_a365.notifications.agent_notification.TState>, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

裝飾函式,將處理器註冊給應用程式。

範例


   @notifications.on_user_deleted()
   async def handle_user_deleted(context, state, notification):
       print("Agentic user identity deleted")

on_user_workload_onboarding

註冊一個處理器以管理使用者工作負載的啟動更新事件。

這是一個便利裝飾器,會在使用者工作負載啟動狀態更新時,註冊一個處理程序。

on_user_workload_onboarding(**kwargs: Any) -> Callable[[Callable[[TContext, TState, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

參數

名稱 Description
**kwargs
必要
Any

額外關鍵字參數傳遞給應用程式的add_route方法。

傳回

類型 Description
Callable[[Callable[[<xref:microsoft_agents_a365.notifications.agent_notification.TContext>, <xref:microsoft_agents_a365.notifications.agent_notification.TState>, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

裝飾函式,將處理器註冊給應用程式。

範例


   @notifications.on_user_workload_onboarding()
   async def handle_onboarding_update(context, state, notification):
       print("User workload onboarding status updated")

on_word

註冊一個處理程式以接收 Microsoft Word 留言通知。

這是一個便利裝飾器,會註冊一個處理器以接收來自 Word 子頻道的通知。

on_word(**kwargs: Any) -> Callable[[Callable[[TContext, TState, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

參數

名稱 Description
**kwargs
必要
Any

額外關鍵字參數傳遞給應用程式的add_route方法。

傳回

類型 Description
Callable[[Callable[[<xref:microsoft_agents_a365.notifications.agent_notification.TContext>, <xref:microsoft_agents_a365.notifications.agent_notification.TState>, AgentNotificationActivity], Awaitable[None]]], Callable[[TurnContext, TurnState], Awaitable[None]]]

裝飾函式,將處理器註冊給應用程式。

範例


   @notifications.on_word()
   async def handle_word_comment(context, state, notification):
       comment = notification.wpx_comment
       if comment:
           print(f"Received Word comment: {comment.comment_id}")