Verbinden von Agents mit Microsoft 365 mit Work IQ (Vorschau)

Important

Elemente, die in diesem Artikel als Vorschau gekennzeichnet sind, befinden sich derzeit in der Vorschau. Diese Vorschau wird ohne Service Level Agreement (SLA) bereitgestellt, und Microsoft empfiehlt sie nicht für Produktionsworkloads. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Supplementale Nutzungsbedingungen für Microsoft Azure Previews.

Work IQ ist die Intelligenzebene, die Microsoft Copilot und Ihre Agents mit gemeinsam genutztem Kontext in Echtzeit in Ihrer gesamten Organisation versorgt. Es erfasst Signale aus E-Mails, Besprechungen, Dateien, Chats und Geschäftssystemen und wendet semantisches Verständnis an, sodass Agenten über Arbeitsdaten grundieren und Maßnahmen ergreifen können. Alle Anforderungen werden im Kontext des angemeldeten Benutzers ausgeführt und berücksichtigen Microsoft 365 Berechtigungen.

Sie verbinden Ihren Foundry-Agent über das A2A-Protokoll (Agent-to-Agent) mit Work IQ. Ihr Agent delegiert Aufgaben in natürlicher Sprache an Work IQ als Peer-Agent – z. B. "Meine letzten E-Mails über Project Contoso zusammenfassen" – und Work IQ behandelt Abruf-, Begründungs- und Antwortsynthese für die Microsoft 365 Daten des Benutzers.

Informationen zur Optimierung der Toolverwendung finden Sie unter bewährten Methoden.

Warning

Wenn Sie sich mit Work IQ verbinden, können dabei Kosten anfallen, und Daten können außerhalb der Azure-Compliancegrenze gesendet und gemäß den geltenden Dienstbedingungen und Richtlinien zur Datenverarbeitung verarbeitet werden. Es liegt in Ihrer Verantwortung, zu verwalten, ob Ihre Daten außerhalb der Compliance- und geografischen Grenzen Ihrer Organisation und alle damit verbundenen Auswirkungen fließen und dass entsprechende Berechtigungen, Grenzen und Genehmigungen bereitgestellt werden.

Sie sind dafür verantwortlich, Anwendungen, die Sie im Kontext Ihrer spezifischen Anwendungsfälle erstellen, sorgfältig zu überprüfen und zu testen und alle geeigneten Entscheidungen und Anpassungen zu treffen. Diese Verantwortung umfasst die Implementierung Ihrer eigenen verantwortungsvollen KI-Gegenmaßnahmen, wie Metaprompts, Inhaltsfilter oder andere Sicherheitssysteme, und sicherzustellen, dass Ihre Anwendungen angemessene Qualität, Zuverlässigkeit, Sicherheit und Vertrauenswürdigkeitsstandards erfüllen. Siehe den Transparenzhinweis des Foundry Agent Service.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Die kommerzielle Anforderung für die Verbindung, die Sie verwenden:

    Verbindungspfad Anforderungstyp Anforderung
    Work IQ API über A2A, REST oder MCP Nutzungsbasierte Abrechnung Aktivieren Sie die Abrechnung mit Copilot Gutschriften. Dieser Pfad verwendet keine Connectorlizenzierung.
    Connectorbasierte Microsoft 365-Tools Connectorlizenzierung Bestätigen Sie die Voraussetzungen des ausgewählten Connectors. Für jeden anrufden Benutzer kann ein Connector eine Microsoft 365 Copilot-Lizenz erfordern.
  • Ein aktives Microsoft Foundry-Projekt mit einem bereitgestellten Modell.

  • Azure RBAC-Rollen:

    • Rolle "Foundry User " im Foundry-Projekt für die Entwickleridentität, die Laufzeitidentität des Agents und alle Benutzeridentitäten, die an OAuth-Flüssen beteiligt sind.
    • Foundry Project Manager-Rolle im Foundry-Projekt zum Erstellen einer Foundry-Verbindung zum Work IQ-Endpunkt.
  • Ein Microsoft Entra Globaler Administrator, der die einmalige Mandanteneinrichtung durch die Bereitstellung des Work IQ-Dienstprinzipals und die Erteilung der Administratorgenehmigung für WorkIQAgent.Askabschließen kann. Aktivieren Sie diese Rolle bei Bedarf über Microsoft Entra Privileged Identity Management (PIM) und deaktivieren Sie sie nach der Einrichtung. Day-to-day Work IQ-Benutzer benötigen diese Rolle nicht.

  • Foundry Toolkit: Installieren Sie Visual Studio Code und Foundry Toolkit für Visual Studio Code.

  • JavaScript-Entwicklung: Verwenden Sie Node.js 22 oder höher, und installieren Sie @azure/ai-projects 2.4.0 oder höher mit @azure/identity.

Für direkte A2A-Aufrufe unterstützt Work IQ die Protokollversionen 1.0 und 0.3. Sende A2A-Version: 1.0, um die Methodennamen von v1 zu verwenden. Das Weglassen der Kopfzeile ist standardmäßig auf v0.3 festgelegt. Fügen Sie Standortmetadaten für zeitabhängige Anforderungen hinzu, und verwenden Sie die delegierte Benutzerauthentifizierung.

Befolgen Sie das Abhängigkeitsdiagramm für die Einrichtung

Verwenden Sie diese Zuordnung, um den Agent-Verwendungsablauf von Abhängigkeiten zu trennen, die ein Administrator einmal für die Organisation abgeschlossen hat.

Zielsetzung Hängt Weiter unter
Work IQ zu einem Agenten hinzufügen und eine Anfrage senden Eine vorhandene Work IQ-Verbindung, die Microsoft 365-Berechtigungen des angemeldeten Benutzers sowie die in den Voraussetzungen aufgeführte Abrechnung oder Lizenzierung für den Connector. Hinzufügen des Work IQ-Tools zu Ihrem Agenten
Erstellen der ersten Work IQ-Verbindung für die Organisation Der Work IQ-Dienstprinzipal, eine Entra-App für einen einzelnen Mandanten, delegierte WorkIQAgent.Ask-Berechtigung und mandantenweite Administratoreinwilligung. Einrichten Ihrer Entra-App
Verwenden Sie ein mit Connector unterstütztes Microsoft-365-Tool Eine Verbindung für diesen Connector und alle connectorspezifischen Lizenzen, die für den angemeldeten Benutzer erforderlich sind. Hinzufügen des Work IQ-Tools zu Ihrem Agenten

Führen Sie zuerst den Ablauf zur Agentennutzung aus, wenn Ihre Organisation bereits eine Verbindung hat. Verwenden Sie das einmalige Mandantensetup nur, wenn ein Administrator die erste Verbindung erstellen muss.

Tip

Erwägen Sie das Hinzufügen dieses Tools mithilfe einer Toolbox. Mithilfe einer Toolbox können Sie das Tool über Agents und Laufzeiten hinweg wiederverwenden sowie die Verwaltung von Anmeldeinformationen, versionsverwaltung und Richtlinienerzwingung über einen verwalteten MCP-Endpunkt zentralisieren. Sehen Sie sich die Schnellstartanleitung der Toolbox an.

Nutzungssupport

Microsoft Foundry-Unterstützung Python SDK C# SDK JavaScript SDK Java SDK REST API Grundlegendes Agent-Setup Standard-Agent-Setup
Arbeit IQ ✔️ ✔️ ✔️ — ✔️ ✔️ ✔️

So funktioniert es

  1. Ihr Agent gibt einen Toolaufruf aus — Wenn das Agentenmodell eine Aufgabe identifiziert, die Microsoft 365-Daten erfordert, gibt es einen Toolaufruf an das work_iq_preview-Tool aus.
  2. Foundry leitet die Anforderung an Work IQ via A2A weiter – Foundry verwendet das Agent-to-Agent (A2A)-Protokoll, um die Natural-Language-Abfrage an Work IQ als Peer-Agent weiterzuleiten. Die Authentifizierung verwendet On-Behalf-Of (OBO), sodass die Anforderung im Kontext des angemeldeten Benutzers ausgeführt wird.
  3. Work IQ ruft M365-Daten ab und analysiert sie — Work IQ greift auf die E-Mails, Besprechungen, Dateien, Chats und andere Signale aus Microsoft 365 des Benutzers zu. Es nutzt semantisches Verständnis, um eine Antwort zu formulieren, die auf dem tatsächlichen Arbeitskontext des Benutzers basiert, unter durchgehender Einhaltung der Microsoft 365-Berechtigungen und Vertraulichkeitsbezeichnungen.
  4. Das Ergebnis wird an Ihren Agenten zurückgegeben – Work IQ gibt die synthetisierte Antwort auf Foundry über A2A zurück. Ihr Agent integriert sie in seine Antwort auf den Benutzer.

Verbindung mit Work IQ herstellen

Fügen Sie das Tool Work IQ Ihrem Agenten hinzu.

Verwenden Sie das Foundry Toolkit für Visual Studio Code, um Work IQ als integriertes Tool hinzuzufügen, wenn Sie eine Toolbox erstellen, und verbinden Sie ihren Agent dann mit dem veröffentlichten Toolboxendpunkt. Die Toolbox macht die ausgewählten Work IQ-Optionen über den MCP-Endpunkt verfügbar.

  1. Wählen Sie das Foundry Toolkit in der Aktivitätsleiste aus.
  2. Erweitern Sie unter "Meine Ressourcen"Ihren Projektnamen>Tools.
  3. Wählen Sie das Symbol "+Toolbox hinzufügen " aus.
  4. Geben Sie auf der Registerkarte " Benutzerdefinierte Toolbox erstellen" den Namen und die Beschreibung der Toolbox ein.
  5. Wählen Sie "Tools hinzufügen" und dann " Work IQ" aus.
  6. Wählen Sie im Add the Work IQ Tool die Microsoft Copilot Daten aus, die Sie verwenden möchten. Work IQ Chat verbindet sich über einen A2A-Endpunkt. Andere Optionen verbinden sich über MCP-Endpunkte, einschließlich Copilot Chat, Teams, Word, Outlook Kalender, Outlook Mail, Microsoft 365 Benutzerprofil, SharePoint und OneDrive.
  7. Wählen Sie für jede ausgewählte Option eine vorhandene Verbindung aus, oder wählen Sie " Neue Verbindung erstellen" aus.
  8. Wählen Sie Hinzufügen aus.
  9. Wählen Sie "Veröffentlichen" aus.

Den vollständigen Workflow zur Erstellung der Toolbox finden Sie unter Curate intent-based toolbox in Foundry.

Wenn Sie das Work IQ-Tool über eine Toolbox mithilfe von Code oder der REST-API hinzufügen möchten, wählen Sie in diesem Abschnitt die Registerkarte Python, .NET, JavaScript oder REST-API aus.

Installiere das Paket:

pip install "azure-ai-projects>=2.3.0"

Legen Sie die folgenden Umgebungsvariablen fest:

  • FOUNDRY_PROJECT_ENDPOINT – Ihr Projektendpunkt, der sich auf der Seite "Übersicht" des Foundry-Projekts befindet.
  • WORK_IQ_PROJECT_CONNECTION_ID – die vollqualifizierte Ressourcen-ID der Work IQ-Projektverbindung.

Wählen Sie Eingabeaufforderungs-Agents aus, um den Azure AI Projects SDK zum Erstellen eines serverseitigen Eingabeaufforderungs-Agents zu verwenden, oder gehostete Agents, um das Microsoft Agent Framework zu verwenden, um einen ephemeren, in-Process-Agent zu erstellen, der über eine Toolbox eine Verbindung mit dem Tool herstellt.

Prompt-Agenten

import os
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import PromptAgentDefinition, WorkIQPreviewTool

endpoint = os.environ["FOUNDRY_PROJECT_ENDPOINT"]
AGENT_NAME = "MyAgent"

with (
    DefaultAzureCredential() as credential,
    AIProjectClient(endpoint=endpoint, credential=credential) as project,
):
    tool_payload = WorkIQPreviewTool(
        project_connection_id=os.environ["WORK_IQ_PROJECT_CONNECTION_ID"],
    )

    agent = project.agents.create_version(
        agent_name=AGENT_NAME,
        definition=PromptAgentDefinition(
            model="gpt-5-mini",
            instructions="Use the available WorkIQ tools to answer questions and perform tasks.",
            tools=[tool_payload],
        ),
    )
    print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")

    with project.get_openai_client(agent_name=agent.name) as openai:
        user_input = "Summarize my recent emails about Project Contoso."
        response = openai.responses.create(
            input=user_input,
        )

        print(f"Agent response: {response.output_text}")

    # Clean up the agent version so unused versions don't accumulate in the project.
    project.agents.delete_version(agent_name=agent.name, agent_version=agent.version)
    print("Agent deleted")

Erwartete Ausgabe: Der Agent ruft Work IQ mit der Abfrage des Benutzers auf. Work IQ ruft die relevanten Microsoft-365-Inhalte des Benutzers basierend auf dessen Berechtigungen ab, fasst sie zusammen und gibt die Antwort zurück.

Gehostete Agents

Erstellen Sie eine Toolboxversion mit WorkIQPreviewToolboxTool. Der toolboxspezifische Typ unterscheidet sich von WorkIQPreviewTool, das Work IQ direkt zu einem Prompt-Agent hinzufügt.

import os

from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import WorkIQPreviewToolboxTool
from azure.identity import DefaultAzureCredential

project_endpoint = os.environ["FOUNDRY_PROJECT_ENDPOINT"]
work_iq_connection_id = os.environ["WORK_IQ_PROJECT_CONNECTION_ID"]

with (
    DefaultAzureCredential() as credential,
    AIProjectClient(
        endpoint=project_endpoint,
        credential=credential,
    ) as project,
):
    toolbox = project.toolboxes.create_version(
        name="work-iq-toolbox",
        description="Toolbox with the Work IQ tool",
        tools=[
            WorkIQPreviewToolboxTool(
                project_connection_id=work_iq_connection_id,
            )
        ],
    )
    print(f"Created toolbox: {toolbox.name}, version: {toolbox.version}")

Das Beispiel gibt die neue Toolboxversion zurück:

Created toolbox: work-iq-toolbox, version: <version>

Verbinden Sie als Nächstes die Toolbox mit einem gehosteten Agent. Dieser Workflow verwendet die gehostete Laufzeitintegration, um den Anforderungskontext beizubehalten, der für benutzerdelegierte Work IQ-Aufrufe erforderlich ist. Eine vollständige Python Implementierung finden Sie im Agent Framework Teams-Aktivitätsbeispiel.


Die empfohlene Methode zum Hinzufügen von Work IQ besteht aus einer Toolbox, und fügen Sie die Toolbox dann als MCP-Tool an Ihren Agent an. Sehen Sie sich an, was eine Toolbox ist?

Schritt 1: Erstellen Sie eine Toolbox, die das Tool "Work IQ" enthält:

curl --request POST \
  --url "{project_endpoint}/toolboxes/work-iq-toolbox/versions?api-version=v1" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  --data '{
    "description": "Toolbox with the Work IQ tool",
    "tools": [
      {
        "type": "work_iq_preview",
        "project_connection_id": "/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.CognitiveServices/accounts/{account}/projects/{project}/connections/{connection-name}"
      }
    ]
  }'

Die Toolbox stellt unter {project_endpoint}/toolboxes/work-iq-toolbox/versions/<version>/mcp?api-version=v1 einen MCP-kompatiblen Endpunkt bereit, wobei <version> die vom vorherigen Aufruf zurückgegebene Version ist.

Schritt 2: Erstellen Sie eine Projektverbindung für das Remote-Tool, die auf den Toolbox-Endpunkt verweist, und verwenden Sie dabei ein Entra-Benutzertoken, damit die Identität des Aufrufers durchgereicht wird (Zielgruppe https://ai.azure.com):

azd ai connection create work-iq-toolbox-conn \
  --kind remote-tool \
  --target "{project_endpoint}/toolboxes/work-iq-toolbox/versions/<version>/mcp?api-version=v1" \
  --auth-type user-entra-token \
  --audience https://ai.azure.com

Schritt 3: Erstellen Sie den Agent mit der Toolbox, die als MCP-Tool angefügt ist:

POST {project_endpoint}/agents/{agent_name}/versions?api-version=v1
Authorization: Bearer {token}
Content-Type: application/json

{
  "model": "gpt-4o-mini",
  "instructions": "You are a helpful assistant with access to the user's Microsoft 365 work context through Work IQ.",
  "tools": [
    {
      "type": "mcp",
      "server_label": "toolbox",
      "server_url": "{project_endpoint}/toolboxes/work-iq-toolbox/versions/<version>/mcp?api-version=v1",
      "require_approval": "never",
      "project_connection_id": "work-iq-toolbox-conn"
    }
  ]
}

Schritt 4: Erstellen einer Unterhaltungssitzung:

POST {project_endpoint}/openai/v1/conversations
Authorization: Bearer {token}
Content-Type: application/json

{}

Die Antwort enthält ein id Feld. Verwenden Sie sie im nächsten Schritt.

Schritt 5: Senden Sie eine Anforderung an den Agent:

POST {project_endpoint}/openai/v1/responses
Authorization: Bearer {token}
Content-Type: application/json

{
  "conversation": "{conversation_id}",
  "input": "Summarize my recent emails about Project Contoso.",
  "agent_reference": {
    "type": "agent_reference",
    "name": "{agent_name}"
  }
}

Die Antwort enthält Metadaten über die Ausführung des Agenten sowie ein text-Feld in content, das die synthetisierte Antwort enthält.

Note

Verwenden Sie den Tokenbereich https://ai.azure.com/.default beim Abrufen des Bearertokens.

Wählen Sie Eingabeaufforderungs-Agents aus, um den Azure AI Projects SDK zum Erstellen eines serverseitigen Eingabeaufforderungs-Agents zu verwenden, oder gehostete Agents, um das Microsoft Agent Framework zu verwenden, um einen ephemeren, in-Process-Agent zu erstellen, der über eine Toolbox eine Verbindung mit dem Tool herstellt.

Prompt-Agenten

using Azure.AI.Projects;
using Azure.Identity;

var projectEndpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT");
var workIQConnectionName = Environment.GetEnvironmentVariable("WORKIQ_CONNECTION_NAME");

AIProjectClient projectClient = new(endpoint: new Uri(projectEndpoint), tokenProvider: new DefaultAzureCredential());

AIProjectConnection workIQConnection = projectClient.Connections.GetConnection(workIQConnectionName);
DeclarativeAgentDefinition agentDefinition = new(model: "gpt-5-mini")
{
    Instructions = "You are a helpful assistant that can access Microsoft 365 data through Work IQ. "
                 + "Use the Work IQ tool to search and retrieve information from emails, calendar events, "
                 + "Teams messages, and other Microsoft 365 content.",
    Tools = { new WorkIQPreviewTool(workIQConnection.Id) }
};

ProjectsAgentVersion agentVersion = projectClient.AgentAdministrationClient.CreateAgentVersion(
    agentName: "myWorkIQAgent",
    options: new(agentDefinition));
Console.WriteLine($"Agent created (name: {agentVersion.Name}, version: {agentVersion.Version})");

ProjectResponsesClient responseClient =
    projectClient.ProjectOpenAIClient.GetProjectResponsesClientForAgent(agentVersion.Name);
CreateResponseOptions responseOptions = new()
{
    ToolChoice = ResponseToolChoice.CreateRequiredChoice(),
    InputItems = { ResponseItem.CreateUserMessageItem("What meetings do I have scheduled today?") },
};
ResponseResult response = responseClient.CreateResponse(responseOptions);
Console.WriteLine(response.GetOutputText());

// Clean up
projectClient.AgentAdministrationClient.DeleteAgentVersion(
    agentName: agentVersion.Name, agentVersion: agentVersion.Version);

Gehostete Agents

Erstellen Sie eine Toolboxversion mit WorkIQPreviewToolboxTool. Der toolboxspezifische Typ unterscheidet sich von WorkIQPreviewTool, das Work IQ direkt zu einem Prompt-Agent hinzufügt.

using Azure.AI.Projects;
using Azure.AI.Projects.Agents;
using Azure.Identity;

string projectEndpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT")
    ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
string workIQConnectionName = Environment.GetEnvironmentVariable("WORKIQ_CONNECTION_NAME")
    ?? throw new InvalidOperationException("WORKIQ_CONNECTION_NAME is not set.");

DefaultAzureCredential credential = new();
AIProjectClient projectClient = new(endpoint: new Uri(projectEndpoint), tokenProvider: credential);
AIProjectConnection workIQConnection = projectClient.Connections.GetConnection(workIQConnectionName);
ToolboxVersion toolboxVersion = projectClient.AgentAdministrationClient
    .GetAgentToolboxes().CreateVersion(
        name: "work-iq-toolbox",
        tools: [new WorkIQPreviewToolboxTool(workIQConnection.Id)],
        description: "Toolbox with the Work IQ tool");

Console.WriteLine(
    $"Created toolbox: {toolboxVersion.Name}, version: {toolboxVersion.Version}");

Das Beispiel gibt die neue Toolboxversion zurück:

Created toolbox: work-iq-toolbox, version: <version>

Verbinden Sie als Nächstes die Toolbox mit einem gehosteten Agent. Eine vollständige C#-Implementierung, die Work IQ Toolbox Tools mit Agent Framework registriert, finden Sie im Teams-Aktivitätsbeispiel.


const { DefaultAzureCredential } = require("@azure/identity");
const { AIProjectClient } = require("@azure/ai-projects");

const projectEndpoint = process.env["FOUNDRY_PROJECT_ENDPOINT"];
const workIqProjectConnectionId = process.env["WORKIQ_CONNECTION_ID"];

async function main() {
  const project = new AIProjectClient(projectEndpoint, new DefaultAzureCredential());
  const openai = project.getOpenAIClient();

  console.log("Creating a toolbox with the Work IQ tool...");

  // 1. Add the Work IQ tool to a toolbox. Using a toolbox is the recommended
  //    way to give agents tools. See /azure/foundry/agents/concepts/toolbox-overview
  const toolbox = await project.toolboxes.createVersion(
    "work-iq-toolbox",
    [
      {
        type: "work_iq_preview",
        project_connection_id: workIqProjectConnectionId,
      },
    ],
    { description: "Toolbox with the Work IQ tool" },
  );

  // 2. The toolbox exposes an MCP-compatible endpoint.
  const toolboxMcpUrl =
    `${projectEndpoint}/toolboxes/${toolbox.name}` +
    `/versions/${toolbox.version}/mcp?api-version=v1`;

  // 3. Create a remote-tool project connection that points at the toolbox endpoint.
  //    Use a user Entra token so the caller's identity is passed through
  //    (audience https://ai.azure.com). Create the connection once, for example
  //    with the Azure Developer CLI:
  //
  //    azd ai connection create work-iq-toolbox-conn \
  //      --kind remote-tool \
  //      --target "<toolboxMcpUrl>" \
  //      --auth-type user-entra-token \
  //      --audience https://ai.azure.com
  const toolboxConnectionName = "work-iq-toolbox-conn";

  // 4. Attach the toolbox to a prompt agent as an MCP tool.
  const agent = await project.agents.createVersion("MyWorkIQAgent", {
    kind: "prompt",
    model: "gpt-5-mini",
    instructions: "Use the available Work IQ tools to answer questions and perform tasks.",
    tools: [
      {
        type: "mcp",
        server_label: "toolbox",
        server_url: toolboxMcpUrl,
        require_approval: "never",
        project_connection_id: toolboxConnectionName,
      },
    ],
  });
  console.log(`Agent created (id: ${agent.id}, name: ${agent.name}, version: ${agent.version})`);

  const userInput = "What meetings do I have scheduled today?";
  const response = await openai.responses.create(
    { input: userInput },
    { body: { agent_reference: { name: agent.name, version: agent.version, type: "agent_reference" } } },
  );
  console.log(`Agent response: ${response.output_text}`);

  // Clean up the agent version so unused versions don't accumulate in the project.
  await project.agents.deleteVersion(agent.name, agent.version);
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

Hinzufügen von Work IQ zu einer Toolbox mit der Azure Developer CLI

Verwenden Sie die Azure Developer CLI, um eine Work IQ MCP-Projektverbindung mit benutzerdefinierten OAuth2zu erstellen und dann aus einer minimalen Toolbox YAML darauf zu verweisen. Work IQ MCP unterstützt AgentOnBehalfOfUserauch , aber dieses Verfahren konfiguriert nur den benutzerdefinierten OAuth2 Pfad.

# Step 1. Create the Work IQ connection
azd ai connection create my-workiq-conn \
  --kind remote-a2a \
  --target https://workiq.svc.cloud.microsoft/a2a/ \
  --auth-type oauth2 \
  --authorization-url https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize \
  --token-url https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token \
  --client-id <oauth-client-id> \
  --client-secret <oauth-client-secret> \
  --scopes "api://workiq.svc.cloud.microsoft/WorkIQAgent.Ask offline_access"

Note

In diesem Artikel wird der Work IQ A2A-Endpunkt https://workiq.svc.cloud.microsoft/a2a/verwendet. Der vorherige Toolboxkatalog verwendete https://agent365.svc.cloud.microsoft/agents/agents/workiq für seinen azd-Workflow. Überprüfen Sie den Endpunkt, wenn Ihre Work IQ-Verbindung ein anderes A2A- oder MCP-Ziel verwendet.

# Step 2. Define the toolbox (my-toolbox.yaml)
description: Work IQ toolbox
tools:
  - type: work_iq_preview
    project_connection_id: my-workiq-conn
# Step 3. Create the toolbox
azd ai toolbox create my-toolbox --from-file my-toolbox.yaml

Verwenden von Work IQ mit einem gehosteten Agent

Nachdem Sie work-iq-toolbox erstellt haben, folgen Sie den Anweisungen unter Verwenden einer Toolbox mit einem gehosteten Agenten, um es mit Agent Framework zu verbinden, lokal auszuführen und im Foundry Agent Service bereitzustellen. Die gehostete Integration bewahrt den anfragebezogenen Kontext, den Work IQ benötigt, um im Namen jedes angemeldeten Benutzers zu handeln.

Verwenden Sie für End-to-End-Implementierungen das verwaltete Python Teams-Aktivitätsbeispiel oder .NET Teams-Aktivitätsbeispiel.

Authentifizierung und Sicherheit

Work IQ verwendet Microsoft Entra ID delegierte Authentifizierung. Alle Anforderungen werden im Kontext des angemeldeten Benutzers ausgeführt. Die Nur-App-Authentifizierung (nur App) wird nicht unterstützt. Microsoft 365-Berechtigungen werden automatisch durchgesetzt — Work IQ-Agenten können niemals auf Daten zugreifen, die der angemeldete Benutzer nicht bereits sehen darf.

Work IQ MCP unterstützt zwei Möglichkeiten zum Beibehalten des Benutzerkontexts: Der Agent kann im Namen des angemeldeten Benutzers handeln, oder der Benutzer kann sich über eine benutzerdefinierte OAuth-App anmelden. Das Handeln im Namen des angemeldeten Benutzers erfordert, dass der Agent den AgentOnBehalfOfUser Authentifizierungstyp verwendet; UserEntraToken wird nicht unterstützt. Weitere Informationen finden Sie unter Konfigurieren der Microsoft Entra-Benutzerdelegierung.

Das folgende Verfahren gilt nur, wenn Sie Work IQ MCP mit einer benutzerdefinierten Entra-App-Registrierung (mit dem OAuth2 Verbindungsauthentifizierungstyp) konfigurieren. Diese Authentifizierungsmethode gibt Ihrem Entra-Administrator explizite Kontrolle darüber, welche Anwendungen Microsoft 365 Daten über Work IQ abrufen können. Der Administrator überprüft und erteilt die WorkIQAgent.Ask Berechtigung speziell für Ihre registrierte App.

Einrichten Ihrer Microsoft Entra-App (einmal pro Organisation)

Ein Microsoft Entra-Administrator muss den folgenden einmaligen Mandantenvorgang ausführen, bevor Sie eine Work IQ-Verbindung in Foundry erstellen können. Verwenden Sie für Schritte, die die Rolle "Globaler Administrator" erfordern, Microsoft Entra PIM, um die Rolle rechtzeitig zu aktivieren und nach Abschluss des Setups zu deaktivieren. Day-to-day Work IQ-Benutzer benötigen diese Rolle nicht.

Bereitstellen des Work IQ-Dienstprinzipals (einmalig)

Bevor Sie die App-Registrierung erstellen, muss ein Globaler Administrator den Work IQ-Dienstprinzipal im Rahmen dieses einmaligen Mandantenvorgangs bereitstellen. Wenn Sie diesen Schritt überspringen, wird die Option "Work IQ " nicht angezeigt, wenn Sie API-Berechtigungen durchsuchen.

Folgen Sie Schritt 1: Erstellen des Work IQ-Dienstprinzipals im Schnellstart der Work IQ-API. Eine Antwort mit dem Statuscode 201 (Created) aus Graph Explorer bestätigt den Erfolg. Ein Konfliktfehler bedeutet, dass der Prinzipal bereits vorhanden ist – fahren Sie mit dem nächsten Schritt fort.

Erstellen der App-Registrierung

  1. Navigieren Sie zum Microsoft Entra Admin Center. Wählen Sie im linken Navigationsbereich Entra ID>App-Registrierungen aus.

  2. Wählen Sie Neue Registrierung aus. Weisen Sie der App einen aussagekräftigen Namen zu, und legen Sie Unterstützte Kontotypen auf Konten nur in diesem Organisationsverzeichnis fest. Wählen Sie Registrieren aus.

  3. Kopieren Sie die Anwendungs- (Client-)ID. Sie benötigen diesen Wert beim Erstellen der Foundry-Verbindung.

  4. Wählen Sie API-Berechtigungen>Berechtigung hinzufügen>Von meiner Organisation verwendete APIs aus. Suchen Sie nach Work IQ (Anwendungs-ID fdcc1f02-fc51-4226-8753-f668596af7f7), wählen Sie delegierte Berechtigungen aus, wählen Sie WorkIQAgent.Ask und dann "Berechtigungen hinzufügen" aus.

  5. Wählen Sie Administratoreinwilligung für [Ihren Mandanten] aus. Überprüfen Sie das Bestätigungsdialogfeld, und wählen Sie Ja aus.

    Important

    Das Erteilen der mandantenweiten Administratorzustimmung ist ein einmaliger Mandantenvorgang, der die Rolle "Globaler Administrator" in Microsoft Entra ID erfordert. Aktivieren Sie die Rolle nur rechtzeitig durch Microsoft Entra PIM, und deaktivieren Sie sie nach der Erteilung der Zustimmung. Day-to-day Work IQ-Benutzer benötigen diese Rolle nicht. Wenn Sie diese Rolle nicht haben, bitten Sie den globalen Administrator Ihrer Organisation, diesen Schritt abzuschließen.

  6. Wählen Sie Zertifikate und Geheimnisse>Neuer geheimer Clientschlüssel aus. Fügen Sie eine Beschreibung und eine Ablauffrist hinzu. Wählen Sie "Hinzufügen" aus, und kopieren Sie dann sofort den geheimen Wert – es wird nur einmal angezeigt. Speichern Sie den geheimen Schlüssel in Azure Key Vault oder einem anderen genehmigten geheimen Speicher. Sie sollten niemals das Geheimnis an die Quellcodeverwaltung committen, drucken oder protokollieren. Rotieren Sie das Geheimnis, bevor es abläuft.

  7. Kopieren Sie Ihre Verzeichnis-ID (Mandanten-ID) von der Übersichtsseite Microsoft Entra ID.

Füllen Sie die Werte für die Foundry-Verbindung aus.

In Microsoft Foundry öffnen Sie Ihr Projekt, und wechseln Sie zu Settings>Connections>Neue Verbindung>Work IQ. Füllen Sie die folgenden Felder aus:

Feld Wert
Client-ID Anwendungs-ID (Client) aus Schritt 3
Geheimer Clientschlüssel Wert des Clientgeheimnisses aus Schritt 6
Autorisierungs-URL https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/authorize
Token-URL https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token
URL aktualisieren https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token
Scopes api://workiq.svc.cloud.microsoft/WorkIQAgent.Ask,offline_access

Ersetzen Sie {tenant-id} durch Ihre Verzeichnis-ID (Mandant) aus Schritt 7. Wählen Sie "Speichern" aus, um die Verbindung zu erstellen.

Screenshot des Foundry-Portals mit Authentifizierungseinstellungen für eine Work IQ-Verbindung.

Important

Verbindungsfelder können nach der Erstellung nicht bearbeitet werden. Wenn Sie falsche Werte eingeben, löschen Sie die Verbindung, und erstellen Sie eine neue.

Erstellen der Verbindung mit der Azure Developer CLI

Legen Sie den Endpunkt des Foundry-Projekts und die App-Registrierungswerte fest. Bewahren Sie den geheimen Clientschlüssel in Ihrer Shell oder im geheimen Speicher auf, und legen Sie ihn nicht in die Quellcodeverwaltung ein.

PROJECT_ENDPOINT="https://<account>.services.ai.azure.com/api/projects/<project>"
TENANT_ID="<tenant-id>"
CLIENT_ID="<client-id>"
CLIENT_SECRET="<client-secret>"

azd ai connection create workiq-conn \
  --project-endpoint "$PROJECT_ENDPOINT" \
  --kind remote-a2a \
  --target https://workiq.svc.cloud.microsoft/a2a/ \
  --auth-type oauth2 \
  --authorization-url "https://login.microsoftonline.com/$TENANT_ID/oauth2/v2.0/authorize" \
  --token-url "https://login.microsoftonline.com/$TENANT_ID/oauth2/v2.0/token" \
  --refresh-url "https://login.microsoftonline.com/$TENANT_ID/oauth2/v2.0/token" \
  --client-id "$CLIENT_ID" \
  --client-secret "$CLIENT_SECRET" \
  --scopes "api://workiq.svc.cloud.microsoft/WorkIQAgent.Ask,offline_access"

Nachdem die Verbindung erstellt wurde, fügen Sie der App-Registrierung die OAuth-Umleitungs-URL hinzu.

Fügen Sie die Umleitungs-URI Ihrer App-Registrierung hinzu.

Nachdem Foundry die Verbindung erstellt hat, wird eine OAuth-Umleitungs-URL angezeigt. Fügen Sie diese URL zur App-Registrierung hinzu:

  1. Wechseln Sie im Microsoft Entra Admin Center zu Entra ID>App-Registrierungen und wählen Sie Ihre App aus.
  2. Wählen Sie Authentifizierung>Plattform hinzufügen>Web aus.
  3. Fügen Sie unter Umleitungs-URIs die OAuth-Umleitungs-URL aus Foundry ein.
  4. Wählen Sie "Konfigurieren" aus.

Erstellen der Verbindung mit der REST-API

Verwenden Sie als Alternative zum Foundry-Portal die Azure Resource Manager-API, um die Work IQ-Verbindung programmgesteuert zu erstellen.

Schritt 1: Abrufen eines Tokens

ARM_TOKEN=$(az account get-access-token \
  --resource https://management.azure.com \
  --query accessToken -o tsv)

Schritt 2: Erstellen der Verbindung

SUBSCRIPTION_ID=<your-subscription-id>
RESOURCE_GROUP=<your-resource-group>
ACCOUNT_NAME=<your-foundry-account-name>
PROJECT_NAME=<your-project-name>
CONNECTION_NAME=<name-for-this-connection>
TENANT_ID=<your-tenant-id>
CLIENT_ID=<your-client-id>
CLIENT_SECRET=<your-client-secret>

curl --request PUT \
  --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.CognitiveServices/accounts/$ACCOUNT_NAME/projects/$PROJECT_NAME/connections/$CONNECTION_NAME?api-version=2025-04-01-preview" \
  --header "Authorization: Bearer $ARM_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "tags": null,
    "location": null,
    "name": "'"$CONNECTION_NAME"'",
    "type": "Microsoft.MachineLearningServices/workspaces/connections",
    "properties": {
      "authType": "OAuth2",
      "group": "ServicesAndApps",
      "category": "RemoteA2A",
      "expiryTime": null,
      "target": "https://workiq.svc.cloud.microsoft/a2a/",
      "isSharedToAll": true,
      "sharedUserList": [],
      "TokenUrl": "https://login.microsoftonline.com/'"$TENANT_ID"'/oauth2/v2.0/token",
      "AuthorizationUrl": "https://login.microsoftonline.com/'"$TENANT_ID"'/oauth2/v2.0/authorize",
      "RefreshUrl": "https://login.microsoftonline.com/'"$TENANT_ID"'/oauth2/v2.0/token",
      "Scopes": [
        "api://workiq.svc.cloud.microsoft/WorkIQAgent.Ask",
        "offline_access"
      ],
      "Credentials": {
        "ClientId": "'"$CLIENT_ID"'",
        "ClientSecret": "'"$CLIENT_SECRET"'"
      },
      "metadata": {
        "ApiType": "Azure"
      }
    }
  }'

Eine erfolgreiche Antwort gibt HTTP 200 oder 201 zurück. Der Antworttext enthält ein properties.oauthRedirectUrl Feld – verwenden Sie diesen Wert als Umleitungs-URI in Ihrer Entra-App-Registrierung (siehe Hinzufügen des Umleitungs-URI zur App-Registrierung).

Datenverwaltung und Compliance

Work IQ und Foundry sind Microsoft-Dienste mit klaren Abgrenzungen bei Dienst und Datenverarbeitung. Wenn ein Foundry-Agent Work IQ aufruft, gehen Anforderungsdaten über die Grenze des Foundry-Diensts hinaus und können außerhalb der Azure Compliancegrenze verarbeitet werden. Work IQ authentifiziert Anforderungen im Namen des angemeldeten Benutzers und erzwingt die vorhandenen Microsoft 365 Berechtigungen und anwendbaren Richtlinien dieses Benutzers. Der Microsoft Entra Mandant stellt den Autorisierungskontext her. Er garantiert nicht allein, wo Daten verarbeitet oder gespeichert werden.

Bei dieser A2A-Integration (Agent-to-Agent) gibt Work IQ eine synthetisierte Antwort zurück, die Informationen enthalten kann, die im Microsoft 365 Inhalt des Benutzers enthalten sind. Die Gießerei kann diese Antwort entsprechend der Agent- und Projektkonfiguration weiter verarbeiten oder speichern. Der gesamte Workflow kann work IQ, Copilot und Foundry Processing umfassen. Überprüfen Sie die geltenden Dienstbedingungen, Datenverarbeitungsrichtlinien, regionale Konfiguration und Zertifizierungsabdeckung für jeden Dienst im Anforderungspfad. Die End-to-End-Verarbeitung hängt auch von der Copilot-Abrechnungskonfiguration und der Foundry-Projektregion ab. Schließen Sie keine End-to-End-Residency- oder Compliance-Abdeckung ausschließlich vom Mandanten des Benutzers oder dem Speicherort des ursprünglichen Microsoft 365 Inhalts ab.

Es wird erwartet, dass der direkte Datenverkehr zwischen Azure und Microsoft-Diensten das globale Microsoft-Netzwerk verwendet, wie in Globales Routing und Zusammenschaltung beschrieben. Work IQ verwendet den öffentlichen HTTPS-Endpunkt https://workiq.svc.cloud.microsoft. Authentifizierung und unterstützte Dateivorgänge können auch ausgehenden HTTPS-Zugriff auf zusätzliche Endpunkte erfordern. Ein öffentlicher Endpunkt kann weiterhin über das globale Microsoft-Netzwerk erreicht werden und bedeutet nicht unbedingt, dass der Datenverkehr das öffentliche Internet durchläuft. Überprüfen und genehmigen Sie die Ziele, die für Ihr Work IQ-Szenario erforderlich sind.

Wenn das Foundry-Projekt für die ausgehende Integration eines eigenen virtuellen Netzwerks (BYO VNet) konfiguriert ist, werden Work IQ-Toolaufrufe über den Single-Tenant-Datenproxy des Projekts weitergeleitet. Diese plattformverwaltete Netzwerkkomponente ist dem Projekt gewidmet und behandelt ausgehende Toolkonnektivität, sodass kundendefinierte Netzwerksteuerelemente diesen Datenverkehr steuern können. Weitere Informationen zum Datenproxy und Anfragepfad finden Sie unter Tiefer Einblick in das Netzwerk des Foundry Agent Service. Informationen zu den verfügbaren eingehenden und ausgehenden Konfigurationen finden Sie unter Netzwerkoptionen für den Foundry Agent Service.

Ein privater Endpunkt für Foundry bietet privaten eingehenden Zugriff auf Foundry. Es konfiguriert keine ausgehende VNet-Integration oder macht die ausgehende Verbindung mit Work IQ privat. Work IQ bleibt in dieser Konfiguration ein öffentliches HTTPS-Ziel. Durch das Weiterleiten über den Datenproxy wird weder ein privater eingehender Zugriff auf Work IQ hergestellt, noch werden die für die Work IQ-Verarbeitung geltenden Nutzungsbedingungen oder Anforderungen an die Datenverarbeitung geändert.

Datenresidenz

Der Microsoft 365-Abruf folgt den Berechtigungen und der Konfiguration der Datenresidenz Ihres Mandanten. Die End-to-End-Verarbeitung hängt auch von Ihrer Copilot-Abrechnungskonfiguration und der Foundry-Projektregion ab. Ausführliche Informationen finden Sie unter Microsoft Copilot Datenschutz- und Datenverarbeitungsrichtlinien.

Datenschutz und Datenverarbeitung

Überprüfen Sie die Microsoft Copilot Datenschutz- und Datenverarbeitungsrichtlinien sowie die Anforderungen für die Verarbeitung von Foundry-Daten, die für Ihre Bereitstellung gelten. Bestätigen Sie den vollständigen Anforderungspfad mit Ihren Datenschutz- und Complianceteams.

Zugriffssteuerung und -berechtigungen

Entwerfen Sie die Verbindung so, dass der Abruf die Microsoft 365 Berechtigungen des angemeldeten Benutzers verwendet. Testen Sie die Berechtigungskürzung mit repräsentativen Benutzern und eingeschränkten Inhalten vor der Bereitstellung:

  • Rollenbasierte Zugriffssteuerung, Vertraulichkeitsbezeichnungen und Informationsbarrieren, die in Microsoft 365 definiert sind, werden beachtet.

Compliance-Prüfung

Verwenden Sie die Microsoft Complianceressourcen Ihrer Organisation, um zu bestätigen, welche Zertifizierungen und Kontrollen für die vollständige Work IQ- und Foundry-Bereitstellung gelten.

Administrationsverwaltung

Als Entra-Administrator steuern Sie, welche Anwendungen in Ihrem Mandanten im Auftrag von Benutzern auf Work IQ-Daten zugreifen können. In den folgenden Abschnitten werden die für Sie verfügbaren Tastensteuerelemente beschrieben.

Die Administratorgenehmigung für WorkIQAgent.Ask ist erforderlich, bevor sich ein Benutzer in Ihrer Organisation über die App authentifizieren kann. Sie können die Zustimmung jederzeit verwalten:

  • Zustimmung erteilen: Wechseln Sie im Microsoft Entra Admin Center zu Entra ID>App-Registrierungen> und wählen Sie die App >API-Berechtigungen aus. Wählen Sie Administratoreinwilligung für [Ihren Mandanten] aus.
  • Widerrufen der Zustimmung: Wählen Sie auf derselben SEITE mit DEN API-Berechtigungen die WorkIQAgent.Ask Berechtigung aus, und wählen Sie " Administratorzustimmung widerrufen" aus. Vorhandene Token bleiben gültig, bis sie ablaufen; Nach dem Widerruf können keine neuen Token ausgegeben werden.

Troubleshooting

Symptom Wahrscheinliche Ursache Resolution
403 Forbidden Die Abrechnung ist für die Work IQ-API nicht aktiviert, oder eine connectorspezifische Lizenz fehlt. Aktivieren Sie die Abrechnung über Copilot-Guthaben für Work IQ-API-Aufrufe. Vergewissern Sie sich bei Tools, die auf einem Connector basieren, dass der aufrufende Benutzer die Lizenzanforderungen dieses Connectors erfüllt.
401 Unauthorized Abweichende Token-Zielgruppe Stellen Sie sicher, dass das Token für api://workiq.svc.cloud.microsoft ausgestellt wird und nicht für eine andere Ressource.
403 Forbidden mit Required scopes = [...] Administratorzustimmung für WorkIQAgent.Ask nicht erteilt Ein Administrator muss die Zustimmung für die App-Registrierung erteilen.
Agent erhält keine Antwort oder leeres Ergebnis Microsoft-365-Inhalte sind für den angemeldeten Benutzer nicht verfügbar oder wurden nicht indiziert. Bestätigen Sie die Quellberechtigungen des Benutzers, und versuchen Sie es dann erneut, nachdem die Indizierung abgeschlossen ist.
Principal does not have access to API/Operation Der Agentidentität fehlt auf Projektebene die Rolle „Foundry-Benutzer“ Weisen Sie den Foundry User sowohl auf Konto- als auch auf Projektebene zu.