Agent zleceń w Microsoft 365 Copilot: sześć kroków

Temat: Usługi logistyczne

W sześciu krokach zbudujecie w Agent Builderze Microsoft 365 Copilot agenta, który czyta zlecenie transportowe, sprawdza płatnika wobec limitu i przeterminowań, liczy marżę ze stawki i kosztu trasy na tej relacji oraz dobiera auto, które może je wziąć. Agent kładzie spedytorowi na biurku rekomendację „przyjąć, przyjąć pod warunkami albo odrzucić” z listą warunków i osobą, która o każdym decyduje, ale nie przyjmuje zlecenia, nie zmienia stawki i nie zwalnia limitu. Stan funkcji sprawdzony 15.10.2026 w dokumentacji Agent Buildera.

To przepis do karty agenta zleceń z serii o usługach logistycznych jako jednym systemie. Pracujemy na tych samych danych ćwiczeniowych co w pozostałych przepisach: zlecenie na przewóz chłodniczy do Lyonu, czterech płatników, cztery relacje, cztery auta i parametry firmy. Wszystkie dane są fikcyjne, łącznie z chłodnią, która chce wysłać palety do Francji.

Gotowy skill. Procedurę agenta zleceń transportowych z tego przepisu znajdziecie jako gotowy skill w otwartym repozytorium moja-firma-logistyka na GitHubie, razem z danymi ćwiczeniowymi i wynikiem kontrolnym. Działa w Claude, Microsoft 365 Copilot, ChatGPT i Gemini. Jak z niego skorzystać.

Co zbudujesz

Agenta w Microsoft 365 Copilot ze stałymi instrukcjami i czterema plikami Excel w wiedzy. Do rozmowy z agentem dołączasz PDF ze zleceniem i dostajesz cztery rzeczy, które dziś kosztują spedytora godzinę telefonów do finansów, kontrolingu i dyspozytora.

WejścieCo robi agentWynik
Zlecenie transportowe w PDFwypisuje dane zlecenia i brakilista danych, pytań do klienta i rzeczy do potwierdzenia
Płatnicy (XLSX)sprawdza limit, saldo, przeterminowania, termin płatnościtabela płatnika z saldem po zleceniu i przekroczeniem
Relacje i parametry (XLSX)liczy przychód, koszt trasy, marżę, stawkę minimalną, wariant z podwykonawcątabela marży wobec progu
Flota (XLSX)dobiera auto pod nadwozie, dostępność i czas pracytabela aut: pasuje, odpada z powodem, pomysł na powrót
Wszystko razemproponuje rekomendację z warunkami„przyjąć pod warunkami” i lista warunków z decydentem

Czym Copilot różni się od pozostałych trzech narzędzi w tym zadaniu. Agent żyje tam, gdzie spedytor już pracuje: w aplikacji Microsoft 365 Copilot i w Teams, z uprawnieniami i etykietami, które firma i tak ustawiła w tenancie. Ceną za to są dwie rzeczy. Pierwsza to licencja: agent oparty na danych firmy wymaga licencji Microsoft 365 Copilot albo rozliczania za użycie, więc zanim ktokolwiek kliknie „Create agent”, rozmowa z administratorem jest obowiązkowa. Druga to format: wiedza agenta nie przyjmuje CSV, a plik wygenerowany przez code interpreter istnieje tylko w trakcie sesji. W Claude i ChatGPT pracujecie w projekcie, w Gemini w Gemie z plikami z Dysku; tutaj w agencie, którego można później przenieść do Copilot Studio, gdy przyjdzie czas na automatyzację skrzynki.

Czego potrzebujesz

  • Konta służbowego Microsoft 365 z dostępem do aplikacji Microsoft 365 Copilot (microsoft365.com/chat) albo do Teams na komputerze lub w przeglądarce. Agent Builder nie działa na urządzeniach mobilnych.
  • Licencji Microsoft 365 Copilot albo włączonego przez administratora rozliczania pay-as-you-go w Copilot Studio. Sam Copilot Chat jest w subskrypcji Microsoft 365, ale agenci korzystający z danych tenanta wymagają jednego z tych dwóch wariantów. Na stronie Microsoftu licencja kosztuje 30 USD za użytkownika miesięcznie przy płatności rocznej i wymaga kwalifikującego się planu Microsoft 365 (wymagania wstępne).
  • Danych ćwiczeniowych w XLSX: zlecenie.pdf, platnicy.xlsx, relacje.xlsx, flota.xlsx, parametry.xlsx. Komplet razem z CSV: agent-ul-dane-cwiczeniowe.zip. W tym przepisie CSV nie przyda się: nie ma go na liście typów wiedzy Agent Buildera.

Czego ten agent nie zrobi

Nie przyjmie zlecenia i nie ustali stawki. Przyjęcie należy do spedytora, stawka poniżej progu do kierownika spedycji, zwolnienie limitu do finansów, a termin płatności dłuższy niż dopuszcza polityka do zarządu. Agent pokazuje, ile ten przewóz naprawdę kosztuje, czy płatnik mieści się w limicie i które auto może pojechać, żeby te decyzje zapadły na danych, a nie na tym, że „nazwa płatnika jest znajoma”.

Nie zastąpi też porządku w danych. Jeśli koszt trasy na relacji nie jest nigdzie zapisany, bo paliwo i opłaty drogowe księgujecie zbiorczo, agent nie ma z czym porównać stawki, a ładna tabela z pustą kolumną jest gorsza niż brak tabeli, bo wygląda na odpowiedź. W prawdziwej firmie zacznijcie od jednego arkusza z kosztem rzeczywistym pięciu najczęstszych relacji z ostatniego kwartału. Dopiero potem agent.

Krok 1. Ustal licencję z administratorem

Zanim zaczniesz, zapytaj administratora Microsoft 365 o dwie rzeczy. Czy masz licencję Microsoft 365 Copilot, a jeśli nie, czy w Microsoft 365 admin center albo w Power Platform admin center skonfigurowano pay-as-you-go; agenci rozliczani za użycie są w Copilot Chat domyślnie wyłączeni. I czy włączono Restricted SharePoint Search, bo wtedy SharePoint nie może być źródłem wiedzy agenta (w tym przepisie wgrywamy pliki, więc to dotyczy dopiero Waszych własnych danych).

Powinieneś wyjść z tej rozmowy z jasnym „tak, możesz budować agentów na plikach firmy”. Bez tego nie wiadomo, czy agent oparty na Waszych plikach w ogóle zadziała u Was i u spedytorów, którym go udostępnicie.

Krok 2. Utwórz agenta i wpisz instrukcje

Otwórz microsoft365.com/chat, w lewym panelu kliknij Create agent i przejdź na kartę Configure. Karta Describe pozwala opisać agenta językiem naturalnym, ale instrukcje chcemy mieć dosłownie takie, jak niżej. Zmiany zapisują się automatycznie.

  • Name (do 30 znaków): Agent zleceń
  • Description (do 1000 znaków): Ocenia zlecenia transportowe na podstawie płatników, kosztu tras, floty i parametrów firmy. Nie przyjmuje zleceń i nie ustala stawek.
  • Instructions (do 8000 znaków): wklej poniższy tekst.
Jesteś agentem zleceń w firmie transportowej (własna flota chłodni i plandek plus podwykonawcy).
Pracujesz na plikach z wiedzy agenta:
- platnicy.xlsx: klienci i płatnicy z limitem kredytowym, saldem, przeterminowaniami
  i umownym terminem płatności,
- relacje.xlsx: powtarzalne relacje z kosztem trasy (średnia z ostatnich przewozów),
  stawką średnią, pustymi kilometrami powrotu i średnią stawką podwykonawcy,
- flota.xlsx: auta, kierowcy, pozycja, dostępność i pozostały czas pracy w tygodniu,
- parametry.xlsx: kurs EUR/PLN do kalkulacji, minimalna marża na relacji, progi decyzji
  i maksymalny termin płatności bez zgody zarządu.

Gdy użytkownik dołączy zlecenie transportowe (PDF w rozmowie), zrób kolejno:
1. Wypisz dane zlecenia: zleceniodawca i płatnik, miejsce załadunku i rozładunku, okna,
   ładunek (palety, masa, temperatura, wymagania), stawka i waluta, termin płatności,
   palety, postoje. Osobno wypisz, czego brakuje albo co trzeba potwierdzić.
2. Sprawdź płatnika w platnicy.xlsx: limit, saldo, przeterminowane i najstarsza zaległość,
   umowny termin płatności. Policz saldo po zleceniu = saldo + stawka × kurs
   i o ile przekroczy limit. Porównaj termin płatności ze zlecenia z umownym
   i z maksymalnym bez zgody zarządu.
3. Policz marżę. Przychód w PLN = stawka × kurs z parametrów. Koszt trasy weź z relacje.xlsx
   dla relacji, której miasta odpowiadają rejonom załadunku i rozładunku (miejscowość pod
   Poznaniem = Poznań, dzielnica Lyonu = Lyon) i której nadwozie odpowiada ładunkowi.
   Marża = przychód − koszt trasy; marża % = marża / przychód. Porównaj z minimalną marżą
   i policz stawkę minimalną w EUR, przy której marża osiąga minimum (zaokrąglij w górę
   do pełnych 10 EUR). Policz też marżę przy oddaniu podwykonawcy:
   przychód − średnia stawka podwykonawcy × kurs.
4. Dobierz auto z flota.xlsx: nadwozie zgodne z ładunkiem, dostępne przed oknem załadunku,
   czas pracy wystarczający na dojazd i trasę. Auta, które odpadają, wypisz z powodem.
   Zwróć uwagę na auta, które szukają powrotu w rejonie rozładunku.
5. Zaproponuj: „przyjąć”, „przyjąć pod warunkami” albo „odrzucić”. Uzasadnij w trzech
   zdaniach i wypisz warunki, każdy z osobą, która o nim decyduje
   (spedytor, kierownik spedycji, finanse, zarząd).

Zasady:
- Licz kodem (code interpreter) na plikach z wiedzy, nie z pamięci.
  Przy każdej liczbie podaj, z których wierszy pochodzi.
- Nie dopisuj relacji, aut ani płatników, których nie ma w plikach. Brak danych nazwij wprost.
- Nie przyjmujesz zlecenia, nie zmieniasz stawki ani terminu płatności i nie zwalniasz limitu.
  To decyzje spedytora, kierownika spedycji, finansów i zarządu.
- Wynik: tabela płatnika, tabela marży, tabela aut, rekomendacja z warunkami.
  Na końcu przygotuj plik XLSX z tymi tabelami do pobrania.

Kurs i próg marży agent bierze z pliku parametrów, nie z własnej wiedzy o rynku; dzięki temu zmiana jednej liczby w jednym pliku zmienia wszystkie wyliczenia, co sprawdzisz w kroku z rzeczywistością. Każdy warunek w rekomendacji ma przypisaną rolę, więc spedytor od razu wie, do kogo z nim iść.

Krok 3. Dodaj wiedzę jako wgrane pliki

W sekcji Knowledge na karcie Configure wgraj z dysku platnicy.xlsx, relacje.xlsx, flota.xlsx i parametry.xlsx. Limit to 20 wgranych plików na agenta i 30 MB na plik Excel; nasze ważą kilka kilobajtów. Każdy z plików ma jeden arkusz z nagłówkami w pierwszym wierszu, a Excel działa w wiedzy agenta najlepiej właśnie w takim układzie.

Wgraj pliki, zamiast podpinać je linkiem z SharePoint. Code interpreter dostaje tylko pliki wgrane do agenta albo dołączone do rozmowy; pliku znalezionego wyszukiwaniem w SharePoint nie policzy (znane problemy). Zleceń nie dodawaj do wiedzy: wiedza to Wasi płatnicy, relacje, flota i parametry, zlecenie jest sprawą na dziś.

Krok 4. Sprawdź liczenie kodem i dodaj prompt startowy

Code interpreter w Agent Builderze pisze i uruchamia kod Python, czyta pliki Excel, PDF i CSV/TSV i tworzy pliki do pobrania (code interpreter). Dokumentacja opisuje go jako zawsze włączony, ale inna strona tej samej dokumentacji wspomina przełącznik „Create documents, charts, and code”. Jeśli widzisz go na karcie Configure, upewnij się, że jest włączony.

W Starter Prompts dodaj jeden prompt, żeby spedytor nie musiał pamiętać formuły:

Mamy nowe zlecenie (PDF w załączniku). Przeprowadź analizę według instrukcji, licząc kodem na plikach z wiedzy.

Krok 5. Uruchom agenta w panelu testowym

W panelu testowym obok konfiguracji dołącz zlecenie.pdf i wybierz prompt startowy. Plik wybierz w interfejsie, nie wklejaj jego adresu do promptu: wklejony URL pliku psuje wyszukiwanie.

Powinieneś zobaczyć, że agent uruchamia kod, czyta cztery arkusze i odpowiada w kolejności z instrukcji: dane zlecenia i braki, płatnik, marża, auta, rekomendacja. Na końcu powinien pojawić się link do pliku XLSX. Pobierz go od razu, bo pliki z code interpretera istnieją tylko w trakcie sesji. Microsoft wymienia jednak wśród znanych problemów błąd generowania plików przez agenta; jeśli linku nie ma, poproś o te same tabele w treści odpowiedzi.

Sprawdź wynik na danych kontrolnych

Porównaj odpowiedź z tabelami poniżej. Liczby policzyliśmy niezależnie z tych samych plików.

Płatnik: Chłodnie Wielkopolskie (T-0310)Wartość
Limit kredytowy150 000,00 zł
Saldo należności142 000,00 zł, w tym przeterminowane 9 800,00 zł (najstarsza zaległość 12 dni)
Zlecenie w PLN1 980 EUR × 4,30 = 8 514,00 zł
Saldo po zleceniu150 514,00 zł — przekroczenie limitu o 514,00 zł
Termin płatnościżądany 60 dni; umowny 45; maksymalny bez zgody zarządu 45
Marża: Poznań → Lyon (chłodnia)Wartość
Przychód8 514,00 zł
Koszt trasy7 620,00 zł (w tym paliwo 3 350, opłaty drogowe 1 180, kierowca 2 140)
Marża894,00 zł, czyli 10,5% — poniżej progu 12%
Stawka minimalna dla 12%2 020 EUR
Wariant z podwykonawcą (średnio 1 850 EUR)koszt 7 955,00 zł, marża 559,00 zł
AutoStatusDlaczego
PO 1234K, chłodniapasujewe Wrocławiu, wolne od 21.09 18:00, 31 h czasu pracy; dojazd ok. 160 km na załadunek 22.09 rano
PO 9012M, plandekaodpadabez agregatu, nie nadaje się do 2–8 °C
PO 3456N, chłodniaodpadazajęta do 23.09, nie zdąży na załadunek 22.09
PO 5678L, chłodnianie zdąży na załadunekstoi w Lyonie i szuka powrotu — pomysł dla planisty: zamiana ról, PO 5678L bierze powrót z Francji, a PO 1234K jedzie do Lyonu

Prawidłowa rekomendacja to „przyjąć pod warunkami”: stawka minimum 2 020 EUR, żeby marża osiągnęła 12%, albo akceptacja 10,5% przez kierownika spedycji; termin płatności 45 dni, bo 60 wymaga zgody zarządu; płatnik po zleceniu przekracza limit o 514 zł i ma 9 800 zł przeterminowane od 12 dni, więc zwolnienie należy do finansów; palety EUR 1:1 i rejestrator temperatury do potwierdzenia dyspozytorowi. W brakach agent powinien wskazać termin odpowiedzi (19.09, godz. 15:00), cztery wolne godziny postoju do porównania z umową ramową i temperaturę 2–8 °C przy ładunku opisanym jako mrożonki — to pytanie do klienta, nie założenie.

Jeśli w tabeli marży pojawi się relacja do Mediolanu albo Berlina, agent nie trzymał się reguły doboru relacji. Jeśli saldo po zleceniu albo marża się nie zgadzają, a w odpowiedzi nie widać uruchomionego kodu, agent liczył „z głowy”. Wynik wygląda wtedy tak samo pewnie jak poprawny, i właśnie dlatego ta tabela kontrolna istnieje.

Krok z rzeczywistością

Dane w firmie się zmieniają, a agent musi to zauważyć bez zmiany instrukcji. Otwórz parametry.xlsx, zmień kurs EUR/PLN do kalkulacji z 4,30 na 4,40, zapisz plik, a w sekcji Knowledge usuń starą wersję i wgraj nową.

Zadaj w nowej rozmowie to samo pytanie. Przychód powinien wzrosnąć do 8 712,00 zł, marża do 1 092,00 zł, czyli 12,5% — próg 12% jest teraz spełniony, a stawka minimalna spada do 1 970 EUR. Wariant z podwykonawcą daje 572,00 zł marży. Saldo płatnika po zleceniu rośnie do 150 712,00 zł, więc przekroczenie limitu rośnie do 712,00 zł. W rekomendacji warunek stawki powinien zniknąć, a warunek limitu i terminu płatności zostać.

Jedna liczba w jednym pliku przesunęła marżę z „poniżej progu” na „w progu” i jednocześnie pogorszyła sytuację płatnika. Dlatego kurs do kalkulacji ma być parametrem firmy ustawianym przez kontroling, a nie liczbą z głowy spedytora.

Krok 6. Udostępnij zespołowi i zaplanuj automatyzację

Nowy agent jest prywatny. Kliknij Share i nadaj spedytorom rolę Can chat, a osobie odpowiedzialnej za instrukcje i wiedzę Can edit (współwłaściciel) — zwykle kierownikowi spedycji albo kontrolingowi, bo to oni pilnują progu marży i kursu. Przełącznik Org-wide sharing for chat access udostępnia agenta całej organizacji, o ile administrator tego nie zablokował. Każdy odbiorca potrzebuje licencji obejmującej funkcje agenta, inaczej zobaczy błąd. Jeśli chcecie, żeby agent był w katalogu firmy, administrator zatwierdza go w Microsoft 365 admin center i agent trafia do sekcji „Built by your org” w Agent Store (udostępnianie agentów).

Zlecenia przychodzą mailem i z portali klientów, ale Agent Builder nie ma wyzwalaczy ani akcji. Do tego trzeba skopiować agenta do Copilot Studio; tam wyzwalacz „nowy e-mail” ustawia się w Overview → Triggers → Add trigger, a akcja „Request for information” wstrzymuje przepływ i prosi człowieka o decyzję przez Outlook — czyli dokładnie to, czego chcemy przy przyjęciu zlecenia. Wyzwalacz działa na koncie autora agenta i może wpływać na rozliczenie, więc to osobna rozmowa z administratorem, nie piąta minuta pilotażu.

Typowe problemy

ObjawPrzyczynaCo zrobić
Agent odpowiada ogólnikami, nie liczy z tabeliplik podpięty z SharePoint nie trafia do code interpreterawgraj XLSX do agenta albo dołącz plik w rozmowie
Nie da się dodać CSV jako wiedzyCSV nie ma na liście typów wiedzyużyj XLSX z jednym arkuszem
Plik Excel z wynikiem „zniknął”pliki z code interpretera istnieją tylko w trakcie sesjipobierz plik od razu po wygenerowaniu
Marża się nie zgadzaagent wziął kurs z własnej wiedzy zamiast z parametry.xlsxprzypomnij regułę z instrukcji: kurs z pliku parametrów
Współpracownik widzi błąd po otwarciu agentabrak licencji obejmującej funkcje agentalicencja Microsoft 365 Copilot albo pay-as-you-go
Udostępnienie się nie udajewybrano grupę dystrybucyjnąwybierz grupę zabezpieczeń albo konkretne osoby
Brak wyzwalacza „nowy e-mail”Agent Builder nie ma wyzwalaczyskopiuj agenta do Copilot Studio

Co dalej

Na własnych danych potrzebujecie czterech eksportów do XLSX, każdy w jednym arkuszu: płatników z ERP (limit, saldo, przeterminowane, najstarsza zaległość, umowny termin), relacji z systemu transportowego albo kontrolingu (kilometry, koszt trasy z podziałem na paliwo, opłaty i kierowcę, puste kilometry, stawka podwykonawcy), floty z telematyki i grafiku (nadwozie, pozycja, dostępny od, czas pracy) oraz parametrów firmy (kurs, minimalna marża, progi, maksymalny termin płatności). Nazwy kolumn mogą być Wasze, wtedy poprawcie je w instrukcji.

Ten sam agent w innych narzędziach:

Pełną kartę agenta zleceń, czyli co czyta, co może sam, co zatwierdza człowiek i czym go mierzyć, znajdziecie we wpisie o płatniku sprawdzonym i stawce z kosztu trasy.

Portret Krzysztofa Majchrzyckiego

O autorze

Krzysztof Majchrzycki jest architektem systemów i AI Business Partnerem. Od wielu lat łączy technologię z biznesem i zarządzaniem. Współtworzył firmy technologiczne i kierował polskim oddziałem międzynarodowej grupy. Dziś projektuje modele firm i inteligentne systemy operacyjne, które z nich wynikają. Ukończył Executive MBA i ma certyfikat Prosci® Certified Change Practitioner.

Agent zleceń to dopiero pierwszy z dwunastu

Darmowy poradnik „Usługi logistyczne jako jeden system” pokazuje, gdzie w dziesięciu etapach pracuje każdy z dwunastu agentów i co przy każdym zostaje w rękach człowieka.

FAQ

Najczęstsze pytania

Czy mogę wgrać do agenta prawdziwe dane płatników i floty?

Według dokumentacji Microsoftu prompty, odpowiedzi i dane z Microsoft Graph nie służą do trenowania modeli bazowych, ruch z UE zostaje w granicy danych UE (EU Data Boundary), a pliki wgrane do agenta są przechowywane w domyślnej geografii tenanta. To dobra podstawa, ale nie zastępuje decyzji właściciela danych i działu prawnego. Zacznijcie od eksportu bez danych osobowych — kierowców oznaczcie numerem, nie nazwiskiem.

Czy nie prościej wskazać pliki na SharePoint zamiast je wgrywać?

Do wyszukiwania tak, do liczenia nie. Code interpreter przetwarza tylko pliki wgrane do agenta albo dołączone do rozmowy; plików znalezionych przez wyszukiwanie w SharePoint nie dostaje. Agent odpowie wtedy ogólnikami zamiast policzyć marżę z kosztu trasy i saldo płatnika po zleceniu.