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.