AgentNotification 类
来自 Microsoft 365 应用程序的代理通知的处理程序。
此类为注册处理程序提供修饰器,这些处理程序响应来自各种Microsoft 365 通道和子通道的通知。 它支持基于通道 ID、子通道和生命周期事件的路由。
构造函数
AgentNotification()
参数
| 名称 | 说明 |
|---|---|
|
app
必需
|
将处理路由通知的应用程序实例。 |
|
known_subchannels
|
可选可迭代已识别的子通道。 如果为 None,则默认为 AgentSubChannel 枚举中的所有值。 默认值: None
|
|
known_lifecycle_events
|
可选的可识别生命周期事件迭代。 如果为 None,则默认为 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)
参数
| 名称 | 说明 |
|---|---|
|
app
必需
|
|
|
known_subchannels
|
默认值: None
|
|
known_lifecycle_events
|
默认值: None
|
__new__
__new__(**kwargs)
on_agent_lifecycle_notification
注册代理生命周期事件通知的处理程序。
此修饰器注册在发生生命周期事件时要调用的处理程序函数,例如用户创建、删除或工作负载载入更新。
on_agent_lifecycle_notification(lifecycle_event: str, **kwargs: Any)
参数
| 名称 | 说明 |
|---|---|
|
lifecycle_event
必需
|
要侦听的生命周期事件。 使用“*”匹配所有生命周期事件,或指定 AgentLifecycleEvent 中的特定事件。 |
|
**kwargs
必需
|
传递给应用的add_route方法的其他关键字参数。 |
返回
| 类型 | 说明 |
|---|---|
|
向应用程序注册处理程序的修饰器函数。 |
示例
@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)
参数
| 名称 | 说明 |
|---|---|
|
channel_id
必需
|
指定要侦听的通道和可选子通道的通道 ID。 使用“*”作为子通道以匹配所有子通道。 |
|
**kwargs
必需
|
传递给应用的add_route方法的其他关键字参数。 |
返回
| 类型 | 说明 |
|---|---|
|
向应用程序注册处理程序的修饰器函数。 |
示例
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]]]
参数
| 名称 | 说明 |
|---|---|
|
**kwargs
必需
|
传递给应用的add_route方法的其他关键字参数。 |
返回
| 类型 | 说明 |
|---|---|
|
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]]]
参数
| 名称 | 说明 |
|---|---|
|
**kwargs
必需
|
传递给应用的add_route方法的其他关键字参数。 |
返回
| 类型 | 说明 |
|---|---|
|
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]]]
参数
| 名称 | 说明 |
|---|---|
|
**kwargs
必需
|
传递给应用的add_route方法的其他关键字参数。 |
返回
| 类型 | 说明 |
|---|---|
|
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]]]
参数
| 名称 | 说明 |
|---|---|
|
**kwargs
必需
|
传递给应用的add_route方法的其他关键字参数。 |
返回
| 类型 | 说明 |
|---|---|
|
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]]]
参数
| 名称 | 说明 |
|---|---|
|
**kwargs
必需
|
传递给应用的add_route方法的其他关键字参数。 |
返回
| 类型 | 说明 |
|---|---|
|
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]]]
参数
| 名称 | 说明 |
|---|---|
|
**kwargs
必需
|
传递给应用的add_route方法的其他关键字参数。 |
返回
| 类型 | 说明 |
|---|---|
|
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]]]
参数
| 名称 | 说明 |
|---|---|
|
**kwargs
必需
|
传递给应用的add_route方法的其他关键字参数。 |
返回
| 类型 | 说明 |
|---|---|
|
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]]]
参数
| 名称 | 说明 |
|---|---|
|
**kwargs
必需
|
传递给应用的add_route方法的其他关键字参数。 |
返回
| 类型 | 说明 |
|---|---|
|
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}")