Prva iteracija Agent 365 API-ja je sada dostupna na Graph-u

08/04/2026

Microsoft ima dugu istoriju objavljivanja proizvoda i funkcija bez pružanja adekvatnih (ili ikakvih) kontrola upravljanja, i ako ste mislili da će stvari biti drugačije u “agentskoj” eri… blago vama. Kao i obično, bombardirani smo tonom marketinških i prodajnih prijedloga, u kombinaciji s nekim FOMO porukama, dok smo odbacili sve legitimne brige kupaca. Stvari se konačno popravljaju s izdavanjem Agenta 365, koji obećava da će “rasporediti, upravljati i upravljati svim vašim agentima u obimu“, između ostalog.

Očigledno, marketinški ljudi u Microsoftu imaju drugačije razumijevanje o tome šta znači “u skali”, s obzirom da je proizvod lansiran samo sa korisničkim interfejsom i bez podržane metode za iskorištavanje osnovnih API-ja. API za upravljanje paketima agenta i aplikacija je naveden kao dostupan od posljednjeg Ignite-a, ali svaki pokušaj njihovog korištenja rezultira greškom. Radni set API krajnjih tačaka je sada konačno objavljen /beta kanala, omogućavajući nabrajanje i upravljanje agentima unutar vašeg zakupca. Hajde da pogledamo.

Prvo, dozvole. Uprkos tome što trenutna dokumentacija kaže, i dozvole za delegate i aplikacije su podržane za API. Ovo drugo je, naravno, mnogo poželjnije kada ste zainteresovani za potpuno automatizovana rešenja i upravljanje na nivou agenta, tako da suup. Da biste koristili bilo koju od metoda „čitanja“, trebat će vam CopilotPackages.Read.All opseg, dok svaka od operacija “pisanja” treba CopilotPackages.ReadWrite.All jedan.

Nažalost, dobre vijesti se ovdje završavaju. Čini se da dozvole aplikacije trenutno rade samo za metodu LIST, a čak i metoda GET također daje grešku (424 Zavisnost nije uspjela) kada se pokuša u kontekstu aplikacije. I dok je zvanična dokumentacija ažurirana da navede metode kao npr blok, deblokirati ili ponovo dodijelitiNIJEDAN od njih trenutno nije funkcionalan. Dakle, zaista, sve što moramo raditi su neke osnovne metode samo za čitanje.

Zatim, morate shvatiti da API pokriva više od agenata, kao što mu ime govori. U stvari, podrška agentima je vjerovatno bila naknadna misao, jer oni nisu bili vraćeni po defaultu. Umjesto toga, morate posebno zahtijevati da se oni vrate dodavanjem filtera vašem upitu. Voleo bih da je dokumentacija jasnija. U svakom slučaju, za popis svih agenata koristite sljedeće:

GET https://graph.microsoft.com/beta/copilot/admin/catalog/packages?$filter=supportedHosts/any(x:x eq 'Copilot')

Ako uporedite rezultate gornjeg upita sa onim što prikazuje korisničko sučelje, možda ćete primijetiti neznatno odstupanje. U mom slučaju, ukupno 165 agenata je vraćeno putem API poziva, dok korisničko sučelje agenta 365 navodi njihov broj kao 163, plus jedan blokiran, 164. Ako izvezete UI listu u CSV datoteku, ili se potrudite da prebrojite stvarne vraćene unose, vidjet ćete da se broj podudara. Tužno je što inženjeri odgovorni za proizvod koji bi trebao pokretati vašu AI implementaciju ne razumiju razliku između prvog i nultog elementa niza 🙂

AgentApis1Šalu na stranu, ako uporedimo obe liste, takođe ćemo primetiti da se nivo izloženosti detalja razlikuje između njih. na primjer, Osjetljivost svojstvo nije izloženo kroz API. Što je još važnije, korisnički interfejs vam omogućava da dobijete detalje o tome koje dozvole agent traži (ili daje), neke informacije o korišćenju i naplati, itd. Za agente koji imaju odgovarajući Entra ID principal usluge obezbeđen u vašem zakupcu, možete izvršiti dodatne upite da biste dobili detalje o dozvoli. Međutim, to ne možete učiniti ni za jednog nasumičnog agenta, tako da bi bilo lijepo imati svojstvo s odgovarajućim skupovima dozvola. Nadamo se da će buduće iteracije API-ja riješiti ove nedostatke.

Da biste dobili detalje o određenom agentu, koristite GET zahtjev za njegov ID:

GET https://graph.microsoft.com/beta/copilot/admin/catalog/packages/P_13001d9b-2af4-bd2f-5458-ffa544bc62b7

Odgovor će se u potpunosti podudarati s odgovorom metode LIST (prikazan gore), s jednim dodatnim izloženim svojstvom, naime elementDetails jedan. Ovo vam obično daje skup upita koje podržava agent, kao što je “Pokaži mi sve snimke od danas” za trenutno odabrani.

Od ostalih nekretnina koje vrijedi spomenuti, najviše nas zanimaju ove nekretnine je blokiran (prekidač za uključivanje/isključivanje), ko je izdavač je, i što je najvažnije, skup korisnika i grupa kojima je dozvoljen pristup ovom agentu ili su ga već dodali. Oni su pod kontrolom availableTo i dozvoljenim korisnicima Grupe svojstva za prve, tj distributedTo i nabavite UsersIGroup za potonje scenarije, shodno tome. Oba availableTo i distributedTo su enumovi, sa sljedećim prihvaćenim vrijednostima:

  • dozvoljeno ili nabavljenoForNobody – nijedan korisnik ne može pristupiti ili implementirati agenta.
  • dozvoljeno za sve ili nabavljenoForAll – svi korisnici mogu pristupiti agentu ili ga implementirati.
  • dozvoljeno za neke ili stečeno ZaNeke – određeni skup korisnika i grupa može pristupiti agentu ili ga implementirati.

U potonjem slučaju, skup principala koji dozvoljavaju ili postavljaju agenta je konfiguriran kao dio dozvoljenim korisnicima Grupe i nabavite UsersIGroup liste, obje tipa packageAccessEntry. Možda zvuči malo komplicirano, pa evo primjera:

#Get package details via Graph API
GET https://graph.microsoft.com/beta/copilot/admin/catalog/packages/P_e3d64609-7a28-6de6-3093-402c20bb96ce?$select=id,allowedUsersAndGroups,availableTo

#Get package details via Graph PowerShell
$res = Invoke-MgGraphRequest -Method Get -Uri "https://graph.microsoft.com/beta/copilot/admin/catalog/packages/P_e3d64609-7a28-6de6-3093-402c20bb96ce?`$select=id,allowedUsersAndGroups,availableTo"

$res | select id,displayName,allowedUsersAndGroups,availableTo

id                                     displayName   allowedUsersAndGroups                                                        availableTo
--                                     -----------   ---------------------                                                        -----------
P_e3d64609-7a28-6de6-3093-402c20bb96ce Writing Coach e0d7442c-8cd8-4e65-8ede-ec9887816677, ecdbc965-b30b-47d7-8dbe-904fd286aa46 allowedForSome

AgentApis2Imajte na umu da metode GET/LIST trenutno nisu podržane $odaberi operatera, tako da se gornji izlaz ručno podešava. Dodatno, metoda LIST neće popuniti vrijednosti za dozvoljenim korisnicima Grupe ili nabavite UsersIGroup svojstva, umjesto toga morate koristiti pojedinačne GET zahtjeve. Konačno, izgleda da pokušaj GET metode preko konteksta aplikacije daje a (424) Neuspješna ovisnost trenutno greška.

I nažalost, ovo je trenutno tu kao pokriće za API. Kao što je već spomenuto, dok trenutna dokumentacija sa zadovoljstvom navodi dodatne metode i operacije, nijedna od njih ne radi. Umjesto toga, dobićete generičku grešku i moraćete da sačekate dok Microsoft u potpunosti ne objavi gore navedene metode. Nadam se da neće potrajati još šest mjeseci.

Kada se to dogodi, moći ćemo istražiti neke osnovne scenarije, kao što je upravljanje zadacima za agente ili blokiranje onih za koje smatramo da su neprikladni za korištenje u organizaciji. Dok će dostupnost metoda po agentu sigurno poboljšati ukupnu sliku upravljivosti, trenutno nema riječi o podršci za desetine konfiguracijskih postavki izloženih unutar korisničkog interfejsa. Pa dobro, valjda ću imati izgovor da napišem još jedan članak na tu temu.

Ukratko, prva iteracija krajnjih tačaka i metoda za upravljanje agentima je dostupna na Graph API-ju. Upravljanje je, nažalost, previše, s obzirom na trenutno stanje API-ja, ali bez obzira na to, barem imamo uvid u agente. Iako je prijavljivanje dostupnih agenata, njihove alokacije i upotrebe još uvijek važan zadatak, API nam još uvijek ne dozvoljava da preduzmemo bilo kakvu radnju u vezi s upravljanjem agentima, što je šteta.

www.oblakznanja.com