czyli jak nauczyć AI ogarniać Outlooka, Teamsy i pliki z OneDrive
Zarządzanie spotkaniami, przeglądanie plików, wysyłanie maili…
Czy nie brzmi to jak coś, co powinno robić AI za nas?
Dzięki Semantic Kernel i gotowym pluginom Microsoft 365 – może właśnie tak być.
W dzisiejszym wpisie pokażę Ci, jak szybko połączyć się z Outlookiem, Teamsami i OneDrive – i zbudować agenta, który naprawdę odciąży Twój dzień.
W ramach Semantic Kernel dostajesz gotowe pluginy integrujące się z usługami Microsoft 365.
Dzięki temu możesz używać AI do:
| 🔧 Plugin | 📋 Funkcjonalność |
|---|---|
| OutlookPlugin | odczyt, tworzenie i wysyłka maili, zarządzanie kalendarzem |
| OneDrivePlugin | przeglądanie i pobieranie plików z chmury |
| TeamsPlugin | wysyłka wiadomości do kanałów, pobieranie historii konwersacji |
Zanim agent zacznie działać, musisz skonfigurować uwierzytelnianie użytkownika.
W typowym scenariuszu:
🔸 aplikacja rejestruje się w Azure AD
🔸 użytkownik loguje się przez przeglądarkę (OAuth2)
🔸 uzyskujemy token dostępu, którym posługuje się plugin
👉 Użyj helpera Microsoft365Connector:
var connector = new Microsoft365Connector( clientId: "...", tenantId: "...", clientSecret: "..." );
Następnie wywołujesz AuthenticateAsync() i przekazujesz token do pluginu.
Po dodaniu pluginu:
var outlookPlugin = new OutlookPlugin(connector.GraphServiceClient); kernel.ImportPlugin(outlookPlugin, "Outlook");
Możesz użyć prompta, np.:
var result = await kernel.InvokePromptAsync("Outlook.SendEmail", new()
{
["subject"] = "Raport tygodniowy",
["body"] = "Hej, przesyłam podsumowanie działań z zeszłego tygodnia.",
["to"] = "szef@firma.com"
}
);
I gotowe - mail wychodzi automatycznie.
Podgląd plików w chmurze? Żaden problem:
var oneDrivePlugin = new OneDrivePlugin(connector.GraphServiceClient);
kernel.ImportPlugin(oneDrivePlugin, "OneDrive");
var files = await kernel.InvokePromptAsync("OneDrive.ListFiles", new() { ["folderPath"] = "/Projekty/AI" });
Masz też funkcje do:
pobierania zawartości pliku,
szukania po nazwie,
pobierania metadanych.
Chcesz, żeby Twój agent zostawił wiadomość w kanale Teamsów?
var teamsPlugin = new TeamsPlugin(connector.GraphServiceClient);
kernel.ImportPlugin(teamsPlugin, "Teams");
await kernel.InvokePromptAsync("Teams.SendMessageToChannel",
new() {
["teamName"] = "Zespół AI",
["channelName"] = "dziennik",
["message"] = "Agent zakończył przetwarzanie danych. Logi gotowe."
}
);
Możesz też pobierać ostatnie wiadomości, tworzyć nowe kanały, itd.
Największą siłą integracji z M365 jest połączenie z innymi elementami Semantic Kernel.
Możesz:
zapisywać kalendarz jako pamięć agenta
planować wysyłkę maili w zależności od kontekstu
odczytywać dane z plików OneDrive i analizować je promptami
Przykład?
Agent, który:
przeszukuje pliki w folderze "Raporty",
generuje z nich streszczenie,
wysyła je w mailu z podsumowaniem.
Brzmi jak przyszłość? To tylko kilka linijek kodu.
| Uwaga | Opis |
|---|---|
| 🔐 Azure AD | musisz zarejestrować aplikację, uzyskać client ID i dodać uprawnienia Graph API |
| 👤 Kontekst użytkownika | agent działa w imieniu zalogowanego usera – jego kalendarz, pliki, kanały |
| 🧭 Uprawnienia | niektóre akcje wymagają dodatkowego consentu lub admin approval |
| 📅 Szybkość działania | Graph API ma limity – warto dodać cache lub retry |
Integracja z Microsoft 365 to idealny przykład tego, jak Semantic Kernel może wyjść poza czysty prompt engineering i wejść w świat prawdziwych narzędzi pracy.
Dzięki gotowym pluginom:
Twój agent może pisać maile i przeglądać kalendarz 📨
analizować pliki z OneDrive 📂
i komunikować się przez Teams 🗨️
A to dopiero początek.
W kolejnym wpisie przyjrzymy się temu jak Semantic Kernel wygląda w porównaniu do LangChain - to drobny ukłon w stronę osób programujących w Pythonie.