Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig
Work IQ befindet sich in der öffentlichen Vorschau. Features und APIs können sich vor der allgemeinen Verfügbarkeit ändern und verfügen nicht über eine festgelegte SLA.
Work IQ ist die KI-native Schnittstelle von Microsoft zu Microsoft 365 Work Intelligence. Damit können Sie Anwendungen erstellen, die E-Mails, Besprechungen, Dateien und Organisationswissen in natürlicher Sprache abfragen können. Grund für Ihre Microsoft 365-Daten.
In dieser Schnellstartanleitung wird das A2A-Protokoll (Agent-to-Agent) behandelt. A2A ist ein offener Standard für die Agent-Kommunikation und unterstützt den synchronen Modus für das Work IQ Gateway. Unterstützung für den Streamingmodus (server-sent events (SSE)) ist in Kürze verfügbar.
Voraussetzungen
- Ein Benutzer mit einer Microsoft 365 Copilot-Lizenz
- .NET SDK Version 8 oder höher zum Ausführen des Beispielcodes
- Ein Benutzer mit organization Administratorzugriff für das einmalige Work IQ-Setup
Aktivieren der Work IQ-API in Ihrem organization
⏱️ ~5 Minuten, einmalig pro organization.
In diesem Abschnitt werden zwei Dinge in Ihrem organization erstellt:
- Der Work IQ-Dienstprinzipal (stellt die Arbeits-IQ-Ressource bereit, damit Ihre Benutzer Token dafür anfordern können)
- Eine App-Registrierung , die Ihr Clientcode für die Authentifizierung verwendet, mit der
WorkIQAgent.Askdelegierten Berechtigung
Sie (oder Ihr organization-Administrator) können den Microsoft Entra Admin Center oder die Azure CLI verwenden, um diesen Schritt auszuführen.
Schritt 1. Erstellen des Work IQ-Dienstprinzipals (Graph-Explorer)
Wechseln Sie zu Graph Explorer, und melden Sie sich mit einem Administratorkonto an.
Legen Sie die Methode auf POST und die URL auf fest
https://graph.microsoft.com/v1.0/servicePrincipals. Graph Explorer relevante Bereiche basierend auf der URL und Methode angezeigt, sodass die URL vor der Zustimmung im nächsten Schritt eingegeben werden muss.Wählen Sie Berechtigungen ändern aus, und stimmen Sie zu zu
Application.ReadWrite.All. Dieser Schritt ist eine einmalige Administratoraktion und gewährt den Bereich nur für Ihre eigene Graph-Explorer-Sitzung. Es werden keine organization Berechtigungen geändert.Geben Sie Folgendes in den Anforderungstext ein.
{ "appId": "fdcc1f02-fc51-4226-8753-f668596af7f7" }Wählen Sie Abfrage ausführen aus. Die Antwort "201 Erstellt" bestätigt den Erfolg. Ein Konfliktfehler bedeutet, dass der Dienstprinzipal bereits vorhanden ist. Es ist in Ordnung, mit dem nächsten Schritt fortzufahren.
Schritt 2. Erstellen der App-Registrierung
- Wechseln Sie zum Microsoft Entra Admin Center. Wählen Sie im linken Navigationsbereich Entra ID aus, und App-Registrierungen.
- Wählen Sie Neue Registrierung aus.
- Fügen Sie einen aussagekräftigen Namen hinzu, und legen Sie Unterstützte Kontotypen auf Nur Konten in diesem Organisationsverzeichnis fest. Wählen Sie Registrieren aus.
- Kopieren Sie die Anwendungs-ID (Client-ID). Dieser Wert ist Ihr
APP_ID. - Wählen Sie Authentifizierung aus. Wählen Sie Plattform hinzufügen (oder Umleitungs-URI hinzufügen) aus. Wählen Sie im Dialogfeld Mobile- und Desktopanwendungen aus.
- Wählen Sie den vorgeschlagenen URI aus:
https://login.microsoftonline.com/common/oauth2/nativeclient. - Fügen Sie unter Benutzerdefinierte Umleitungs-URIs die folgenden beiden URIs nacheinander hinzu (jeweils in einer eigenen Zeile):
http://localhost-
ms-appx-web://microsoft.aad.brokerplugin/<APP_ID>(dabei<APP_ID>ist IhrAPP_ID)
- Legen Sie unter Erweiterte Einstellungendie Option Öffentliche Clientflows zulassen auf Ja fest.
- Klicken Sie auf Speichern.
- Wählen Sie den vorgeschlagenen URI aus:
- Wählen Sie API-Berechtigungen, Berechtigung hinzufügen und dann APIs aus, die von meinem organization verwendet werden.
Work IQSuchen Sie nach , und wählen Sie dann Delegierte Berechtigungen aus. Wählen Sie WorkIQAgent.Ask und dann Berechtigungen hinzufügen aus. - Wählen Sie Administratoreinwilligung für [Ihren Mandanten] erteilen aus. Überprüfen Sie das Bestätigungsdialogfeld, und wählen Sie Ja aus.
- Kopieren Sie Ihre Verzeichnis-ID (Mandanten-ID) von der Übersichtsseite Microsoft Entra ID.
Mit der Berechtigung WorkIQAgent.Ask kann die App im Namen des angemeldeten Benutzers ihre Microsoft 365-Arbeitsintelligenz (E-Mail, Dateien, Besprechungen, Chats) über Work IQ abfragen.
Sie sollten nun über zwei Werte verfügen: APP_ID und TENANT_ID. Übergeben Sie diese Werte über --appid und --tenantan das Beispiel.
Tipp
Erstellen eines serverseitigen Agents (Web-App)? In dieser Schnellstartanleitung wird eine öffentliche Clientregistrierung (Mobil/Desktop) für den einfachsten Pfad zu einem funktionierenden Beispiel verwendet. Wenn Es sich bei Ihrer Anwendung um einen serverseitigen Dienst handelt, der Work IQ im Namen eines Endbenutzers aufruft (z. B. ein Web-Agent, der den Benutzer anmeldet und dann seine Identität an Work IQ weiterleitet), verwenden Sie eine Confidential-Client-Registrierung mit einem geheimen Clientschlüssel oder Zertifikat, und tauschen Sie das Token des Benutzers über den OBO-Fluss (On-Behalf-Of) aus. Die Arbeits-IQ-API-Oberfläche und die delegierte Berechtigung WorkIQAgent.Ask sind in beiden Flows identisch.
Schnellstart: A2A-Protokoll
Das A2A-Protokoll (Agent-to-Agent) ist ein offener Standard für die Agent-Kommunikation. Work IQ unterstützt sowohl A2A v1.0 (in dieser Schnellstartanleitung) als auch v0.3. Der Anforderungsheader A2A-Version steuert die Versionsverteilung.
-
A2A-Version: 1.0– v1.0-Drahtformat (diese Schnellstartanleitung) -
A2A-Version: 0.3(oder Header ausgelassen) – v0.3-Übertragungsformat (wird aus Gründen der Abwärtskompatibilität mit vorhandenen v0.3-Clients als Standardeinstellung ohne Header beibehalten)
Abrufen des Beispielcodes
Klonen Sie das Beispielrepository mit dem folgenden Befehl.
git clone https://github.com/microsoft/work-iq-samples.git
cd work-iq-samples
Ausführen des Beispiels (mit dem A2A SDK)
Im dotnet/a2a Beispiel wird das A2A .NET SDK verwendet.
cd dotnet/a2a
dotnet run -- --token WAM --appid <APP_ID> --tenant <TENANT_ID>
Ausführen des Beispiels (unformatiertes HTTP, kein SDK)
Das dotnet/a2a-raw Beispiel zeigt das Drahtprotokoll ohne SDK-Abstraktion. Die Verwendung dieses Beispiels ist für die Portierung in non-.NET Sprachen nützlich.
cd dotnet/a2a-raw
dotnet run -- --token WAM --appid <APP_ID> --tenant <TENANT_ID>
Folge
Wenn Sie das Beispiel ausführen, wird eine Anmeldeaufforderung angezeigt (WAM-Dialogfeld unter Windows, Systembrowser unter macOS/Linux). Geben Sie nach der Anmeldung an der Eingabeaufforderung eine Nachricht ein, und drücken Sie dieYou > EINGABETASTE. Die Antwort des Agents wird unten angezeigt. Geben Sie quit zum Beenden ein.
── READY — Work IQ Gateway — Sync — https://workiq.svc.cloud.microsoft/a2a/ ──
Type a message. 'quit' to exit.
You > Summarize my recent emails from Alice.
Agent > You've exchanged 8 emails with Alice this week. Key threads:
- ...
(2145 ms)
You > quit
So funktioniert es
Work IQ akzeptiert A2A v1.0 über JSON-RPC unter https://workiq.svc.cloud.microsoft/a2a/. (A2A v1.0 definiert auch eine REST-Bindung unter /v1/message:send; Work IQ macht diese REST-Bindung möglicherweise in einem zukünftigen Vorschauupdate verfügbar.)
Work IQ Gateway
- Endpunkt:
https://workiq.svc.cloud.microsoft/a2a/ - Tokenzielgruppe:
api://workiq.svc.cloud.microsoft - Bereich:
WorkIQAgent.Ask
Synchrone SendMessage
POST https://workiq.svc.cloud.microsoft/a2a/
Authorization: Bearer <token>
Content-Type: application/json
A2A-Version: 1.0
{
"jsonrpc": "2.0",
"id": "<request-guid>",
"method": "SendMessage",
"params": {
"message": {
"role": "ROLE_USER",
"messageId": "<message-guid>",
"parts": [
{
"text": "What meetings do I have today?"
}
],
"metadata": {
"Location": {
"timeZoneOffset": -480,
"timeZone": "America/Los_Angeles"
}
}
}
}
}
Der Anforderungsheader A2A-Version: 1.0 aktiviert v1.0-Methodennamen (SendMessage) auf dem Gateway. Andernfalls verwendet der Server standardmäßig v0.3 und gibt einen JSON-RPC -32601 "Method not found" für v1.0-Methodennamen zurück.
Die Antwort ist ein JSON-RPC-Umschlag mit result.task der Aufgabe des Agents und einem contextId für mehrere Durchläufe:
{
"jsonrpc": "2.0",
"id": "<request-guid>",
"result": {
"task": {
"id": "<task-id>",
"contextId": "ctx-1",
"status": {
"state": "TASK_STATE_COMPLETED"
},
"artifacts": [
{
"artifactId": "<artifact-id>",
"name": "Answer",
"parts": [
{
"text": "Today you have: 9 AM standup, 11 AM review with Dana, 2 PM customer call."
}
]
}
]
}
}
}
Work IQ erfordert, dass die Location Metadaten zeitkritische Abfragen ("heute" oder "diese Woche") zur Ortszeit des Benutzers erstellen.
Unterhaltungen mit mehreren Durchläufen
Um den Konversationszustand beizubehalten, übergeben Sie den contextId aus der vorherigen Antwort in der nächsten Nachricht.
{
"jsonrpc": "2.0",
"id": "<request-guid-2>",
"method": "SendMessage",
"params": {
"message": {
"role": "ROLE_USER",
"messageId": "<message-guid-2>",
"contextId": "ctx-1",
"parts": [
{
"text": "Tell me more about the 2 PM customer call."
}
]
}
}
}
Wichtige Protokolldetails (A2A v1.0)
-
JSON-RPC-Umschlag erforderlich: Jede Anforderung muss ,
id,method, enthaltenjsonrpcparams. -
POST an Basis-URL: Die Methode (
SendMessage) befindet sich im JSON-RPC-Text, nicht im URL-Pfad. -
Teile der Feldpräsenz: Teile sind flache Objekte mit einem von
text,url,rawoderdatafestgelegt, ohnekindUnterscheidungszeichen. -
SCREAMING_SNAKE_CASE Enumerationen: Rollen verwenden
ROLE_USER/ROLE_AGENT; Status verwenden /TASK_STATE_WORKING/TASK_STATE_COMPLETEDTASK_STATE_FAILED/ usw. -
Ergebniswrapper: Aufgabenantworten werden unter
result.taskangezeigt. -
Versionsverteilung:
A2A-Version: 1.0wählt v1.0 aus; Wenn Sie den Header weglassen (oder senden),A2A-Version: 0.3wird v0.3 ausgewählt, der Standardwert ohne Header.
Agent-Ermittlung
Um einen bestimmten Agent aufzurufen, übergeben Sie dessen Agent-ID über --agent-id. Es gibt zwei Möglichkeiten, die ID eines Agents zu finden.
Empfohlen: WorkIQ CLI list-agents (experimentell)
Die WorkIQ CLI liefert einen experimentellen list-agents Befehl, der die Agents ausgibt, die für Ihren angemeldeten Benutzer verfügbar sind.
workiq config set experimental=true
workiq list-agents
Jede Zeile zeigt den Anzeigenamen, den Anbieter und die Agent-ID des Agents an (die zweite Zeile jedes Eintrags). Verwenden Sie diese ID mit --agent-id , wenn Sie das Beispiel ausführen.
Alternative: Kopieren aus der Microsoft 365 Copilot-URL
- Wechseln Sie zur Microsoft 365 Copilot Chat Website: https://m365.cloud.microsoft/chat/.
- Wählen Sie im linken Navigationsbereich Ihren Agent aus.
- Die Agent-ID befindet sich in der Adressleiste des Browsers nach
/chat/agent/:
https://m365.cloud.microsoft/chat/agent/P_c0fd1ab0-cbf3-7eb9-1a7d-2d823549ef31.8ad61c39-5b6e-447c-b26a-a64eee436502
└──────────────────────────── agent ID ─────────────────────────────────────┘
Das Format ist <LETTER>_<opaqueValue1>.<opaqueValue2>.
Übergeben der Agent-ID an das Beispiel
Wichtig
Behandeln Sie die gesamte Agent-ID als nicht transparente Zeichenfolge. Dekonstruieren oder analysieren Sie die Komponenten nicht. Übergeben Sie es unverändert an die API.
Übergeben Sie die Agent-ID als Argument an das Beispiel.
dotnet run -- --token WAM --agent-id <AGENT_ID> --appid <APP_ID> --tenant <TENANT_ID>
Hinweis
Einige Microsoft 365-Agents (insbesondere Word-, Excel- und PowerPoint-Agents auf der benutzeroberfläche von Copilot Chat) sind so konzipiert, dass sie im Kontext dieser Office-Produkte ausgeführt werden und keine nützlichen Antworten erzeugen, wenn sie kopflos über A2A aufgerufen werden.
A2A-Funktionen
| Funktion | Status |
|---|---|
SendMessage (synchronisieren) |
✅ Verfügbar |
Mehrfachdrehen (contextId) |
✅ Verfügbar |
| Textteile | ✅ Verfügbar |
| Zitate | ✅ Verfügbar (Übermittlungsform wird modernisiert; siehe Versionshinweise) |
Authentifizierung
| Methode | Plattform | Verwendung |
|---|---|---|
| WAM (Windows-Konto-Manager) | Windows | --token WAM --appid <APP_ID> --tenant <TENANT_ID> |
| Interaktiver Browser | macOS, Linux | Derselbe Befehl – Microsoft Identity Client greift auf eine Systembrowseranmeldung zurück. |
| Vorab abgerufenes JWT | Any |
--token <JWT>(Das Token muss für Ihre registrierte App ausgestellt werden, nicht für einen beliebigen Client wie die Azure CLI) |
Problembehandlung
| Problembeschreibung | Behebung |
|---|---|
401 Unauthorized |
Das Token aud stimmt nicht überein api://workiq.svc.cloud.microsoft. Überprüfen Sie den Zielgruppenanspruch. |
403 Forbidden (kein Bereichsfehler) |
Dem Benutzer fehlt Microsoft 365 Copilot Lizenz. Weisen Sie zu, und warten Sie 15 bis 30 Minuten. |
403 Forbidden mit Required scopes = [...] |
Admin Zustimmung für WorkIQAgent.Ask wurde nicht erteilt. Erneutes Ausführen der Administratoreinwilligung (Administratoreinrichtung, Schritt 6 / Azure CLI Schritt 3). |
WAM IncorrectConfiguration (3399614466) |
Bei der App-Registrierung fehlt der Brokerumleitungs-URI. Wurde erneut gelesen ms-appx-web://microsoft.aad.brokerplugin/<APP_ID> , und versuchen Sie es erneut. |
| WAM schlägt weiterhin fehl, nachdem der Umleitungs-URI festgelegt wurde | App mit nur einem Mandanten und /common Autorität stimmen nicht überein. Übergeben, --tenant <TENANT_ID> damit Microsoft Identity Client die mandantenspezifische Autorität verwendet. |
AADSTS65001: consent required |
Admin Zustimmung wurde nicht erteilt. Ausführen az ad app permission admin-consent --id <APP_ID>. |
| Leerer Text 200 /kein Agent | Wenn die Copilot-Lizenz des Benutzers kürzlich zugewiesen wurde, kann die Erstellung des Indexes 15 bis 30 Minuten dauern. Wenn Sie einen Word/Excel/PowerPoint-Agent aufgerufen haben, werden diese Agents im Office-Produkt ausgeführt und erzeugen keine kopflosen A2A Antworten. |