Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Anda harus menjadi bagian dari program pratinjau Frontier untuk mendapatkan akses awal ke Microsoft Agent 365. Frontier menghubungkan Anda langsung dengan inovasi AI terbaru Microsoft. Pratinjau frontier tunduk pada ketentuan pratinjau yang ada dari perjanjian pelanggan Anda. Karena fitur-fitur ini masih dalam pengembangan, ketersediaan dan kemampuannya dapat berubah dari waktu ke waktu.
Modul Pemberitahuan memungkinkan pengembang untuk membangun agen yang dapat menanggapi peristiwa dan pemberitahuan dari aplikasi Microsoft 365. Dengan dukungan pemberitahuan, agen dapat menerima dan memproses pemberitahuan saat pengguna berinteraksi dengan mereka melalui email, komentar dokumen, atau skenario kolaboratif lainnya.
Alur kerja pemberitahuan
Ikuti alur kerja ini untuk mengaktifkan pemberitahuan untuk aplikasi agen AI Anda:
Instal paket pemberitahuan.
Mengimpor komponen pemberitahuan
- Mengimpor kelas pemberitahuan dan handler
- Mengimpor jenis aktivitas dan pengidentifikasi saluran
Mendaftarkan penangan pemberitahuan
- Menggunakan metode handler pemberitahuan untuk mendaftarkan rute
- Mengonfigurasi handler untuk jenis pemberitahuan tertentu (Misalnya: email, Word, Excel, PowerPoint)
Memproses pemberitahuan dalam kode agen
- Agen menerima pemberitahuan dari aplikasi Microsoft 365
- Menangani pemberitahuan masuk dan merespons dengan tepat
Jenis Pemberitahuan
Agen 365 SDK mendukung jenis pemberitahuan berikut:
| Jenis pemberitahuan | KETERANGAN | ID Sub-Saluran |
|---|---|---|
| Agen menerima email tempat mereka disebutkan atau ditangani | email |
|
| Kata | Agen disebutkan dalam komentar dalam dokumen Word | word |
| Melampaui | Agen disebutkan dalam komentar dalam dokumen Excel | excel |
| PowerPoint 2021 | Agen disebutkan dalam komentar dalam dokumen PowerPoint | powerpoint |
| Peristiwa Siklus Hidup | Pemberitahuan siklus hidup agen (identitas pengguna dibuat, onboarding beban kerja, pengguna dihapus) | Tidak Tersedia |
Peristiwa siklus hidup agen
Peristiwa siklus hidup agen memungkinkan agen Anda merespons peristiwa sistem tertentu yang terkait dengan manajemen identitas pengguna agenik. SDK saat ini mendukung tiga peristiwa siklus hidup:
| Jenis Acara | ID Peristiwa | KETERANGAN |
|---|---|---|
| Identitas Pengguna Dibuat | agenticUserIdentityCreated |
Dipicu saat identitas pengguna agenik dibuat |
| Onboarding Beban Kerja Diperbarui | agenticUserWorkloadOnboardingUpdated |
Dipicu saat status onboarding beban kerja pengguna agenik diperbarui |
| Pengguna Dihapus | agenticUserDeleted |
Dipicu saat identitas pengguna agenik dihapus |
Peristiwa ini memungkinkan agen untuk melakukan tugas inisialisasi, operasi pembersihan, atau manajemen status sebagai respons terhadap perubahan siklus hidup pengguna.
Tambahkan Pemberitahuan ke Agen Anda
Ikuti langkah-langkah ini untuk mengaktifkan penanganan pemberitahuan di agen Anda yang sudah ada:
Mengimpor komponen pemberitahuan
Tambahkan impor ini ke file agen Anda:
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: Kelas dasar untuk membangun aplikasi Agent365; menyediakan fungsionalitas inti untuk aktivitas perutean, mengelola status, dan memproses permintaan
-
AgentNotification: Kelas untuk mendaftarkan penangan pemberitahuan dengan metode dekorator. Menyediakan
on_agent_notification(),on_email(),on_word(), dan dekorator kenyamanan lainnya -
AgentNotificationActivity: Pembungkus yang berisi data pemberitahuan yang diurai dengan properti yang ditik seperti
email_notificationdanwpx_comment_notificationyang berisi metadata khusus pemberitahuan (ID, detail percakapan, referensi dokumen) -
NotificationTypes: Enum jenis pemberitahuan yang didukung (
EMAIL_NOTIFICATION,WPX_COMMENT,AGENT_LIFECYCLE) -
ChannelId: Digunakan untuk menentukan saluran pemberitahuan (misalnya,
ChannelId(channel="agents", sub_channel="*")) - Otorisasi: Konteks otorisasi untuk memproses pemberitahuan
- TurnContext: Konteks giliran percakapan saat ini dari Agen SDK
Mendaftarkan penangan pemberitahuan di agen Anda
Tambahkan penangan pemberitahuan ke inisialisasi agen Anda:
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.')
Menerapkan handler pemberitahuan tertentu
Tambahkan metode handler untuk setiap jenis pemberitahuan:
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
Penangan Pemberitahuan Khusus
Setelah menyiapkan perutean pemberitahuan dasar, gunakan metode handler khusus untuk kontrol yang lebih terperinci. Metode ini memungkinkan Anda untuk:
- Mendaftarkan beberapa handler untuk jenis pemberitahuan yang sama
- Mengatur prioritas handler dengan peringkat
- Mengonfigurasi autentikasi otomatis per handler
Catatan
Untuk sebagian besar kasus penggunaan, pola handler generik sudah cukup. Gunakan handler khusus ini saat Anda memerlukan perutean tingkat lanjut atau beberapa handler untuk jenis pemberitahuan yang sama.
Handler khusus untuk semua pemberitahuan
Daftarkan lebih banyak penangan yang memproses semua jenis pemberitahuan:
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}")
Handler khusus untuk pemberitahuan email
Daftarkan lebih banyak handler khusus untuk pemberitahuan 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!')
Handler khusus untuk komentar dokumen
Daftarkan lebih banyak handler untuk pemberitahuan komentar Word, Excel, dan 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')
Handler khusus untuk peristiwa siklus hidup
Daftarkan lebih banyak handler untuk peristiwa siklus hidup agen seperti pembuatan identitas pengguna, onboarding beban kerja, dan penghapusan pengguna:
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')
Konfigurasi tingkat lanjut
Bagian ini mencakup opsi konfigurasi tingkat lanjut untuk menyempurnakan penangan pemberitahuan Anda. Konfigurasi ini memungkinkan Anda mengontrol urutan eksekusi handler, mengelola persyaratan autentikasi, dan mengoptimalkan pemrosesan pemberitahuan untuk skenario yang kompleks.
Prioritas dan peringkat handler
Saat menggunakan beberapa handler khusus, Anda dapat menentukan urutan prioritas menggunakan nilai peringkat. Nilai yang lebih rendah menunjukkan prioritas yang lebih tinggi.
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
Handler autentikasi
Konfigurasikan handler masuk otomatis untuk pemberitahuan yang memerlukan autentikasi:
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
Uji dan Pantau:
Menguji agen Anda dengan pemberitahuan
Setelah menerapkan penangan pemberitahuan, uji agen Anda untuk memastikannya menerima dan memproses jenis pemberitahuan yang berbeda dengan benar. Ikuti panduan pengujian untuk menyiapkan lingkungan Anda, lalu fokus terutama pada bagian Uji dengan aktivitas pemberitahuan untuk memvalidasi pemberitahuan Anda menggunakan autentikasi agenik.
Memantau penanganan pemberitahuan
Pantau penanganan pemberitahuan agen Anda dengan menambahkan kemampuan pengamatan. Lacak pemrosesan pemberitahuan, waktu respons, dan tingkat kesalahan untuk memahami performa agen. Pelajari selengkapnya tentang menerapkan pelacakan dan pemantauan