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
必要
|
|
|
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
必要
|
值得留意的生命週期事件。 使用「*」來匹配所有生命週期事件,或指定 AgentLifecycleEvent 中的特定事件。 |
|
**kwargs
必要
|
額外關鍵字參數傳遞給應用程式的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
必要
|
額外關鍵字參數傳遞給應用程式的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
必要
|
額外關鍵字參數傳遞給應用程式的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
必要
|
額外關鍵字參數傳遞給應用程式的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
必要
|
額外關鍵字參數傳遞給應用程式的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
必要
|
額外關鍵字參數傳遞給應用程式的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
必要
|
額外關鍵字參數傳遞給應用程式的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
必要
|
額外關鍵字參數傳遞給應用程式的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
必要
|
額外關鍵字參數傳遞給應用程式的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
必要
|
額外關鍵字參數傳遞給應用程式的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}")