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.
Hinweis
Einige agentische Abruffeatures sind in der Regel in der REST-API 2026-04-01 verfügbar. Dieser Artikel verwendet jedoch die Version 2026-08-01-preview, um den vollständigen Funktionsumfang zu veranschaulichen, einschließlich Funktionen, die sich weiterhin in der Vorschau befinden. Vorschaufunktionen werden ohne Service-Level-Agreement bereitgestellt und sind für produktive Arbeitslasten nicht empfohlen. Weitere Informationen finden Sie unter Supplementale Nutzungsbedingungen für Microsoft Azure Previews.
Wichtig
Diese Features und Funktionen sind Teil der REST-API 2026-08-01-Preview. Die Vorschau 2026-08-01 wird Ihnen als Teil Ihres Azure-Abonnements lizenziert und unterliegt den Bedingungen für "Vorschauen" in den Microsoft Produktbedingungen, dem Microsoft Produkt- und Dienstdatenschutzzusatz ("DPA") und den ergänzenden Nutzungsbedingungen für Microsoft Azure Previews.
Die Version 2026-08-01-preview unterstützt Verbindungen zu anderen Microsoft-Diensten und Drittanbieterdiensten. Die Nutzung dieser Dienste unterliegt den jeweiligen Bedingungen und kann dazu führen, dass Daten außerhalb der Azure-Compliancegrenze verarbeitet oder gespeichert werden sowie dass Daten in die Azure-Compliancegrenze fließen.
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.
MCP-Implementierungen sind anfällig für Risiken, z. B. Angriffe, Kaskadierende Fehler und Verlust der menschlichen Aufsicht. Sie können diese Risiken mindern, indem Sie MCP-Server auf Sicherheit und Zuverlässigkeit überprüfen, indem Sie die empfohlenen Methoden Microsoft und industry best practices ausführen und Genehmigungsmechanismen implementieren und kaskadierende Verhaltensweisen überwachen.
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. Dazu gehört die Implementierung ihrer eigenen verantwortungsvollen KI-Entschärfungen, wie Metaprompts, Inhaltsfilter oder andere Sicherheitssysteme, und sicherzustellen, dass Ihre Anwendungen angemessene Qualität, Zuverlässigkeit, Sicherheit und Vertrauenswürdigkeitsstandards erfüllen. Weitere Informationen finden Sie im Azure KI-Suche Transparenzhinweis.
In diesem Artikel erfahren Sie, wie Sie eine Wissensbasis in Foundry IQ mit einem Agenten im Foundry Agent Service verbinden. Die Verbindung verwendet das Model Context Protocol (MCP), um Toolaufrufe zu erleichtern. Wenn der Agent aufgerufen wird, koordiniert die Knowledge Base die folgenden Vorgänge:
- Plant und zerlegt eine Benutzeranfrage in Unteranfragen.
- Verarbeitet die Unterabfragen gleichzeitig mithilfe von Schlüsselwort-, Vektor- oder Hybridtechniken.
- Wendet die semantische Umrankung an, um die relevantesten Ergebnisse zu identifizieren.
- Synthetisiert die Ergebnisse in eine einheitliche Antwort mit Quellverweise.
Der Agent verwendet die Antwort, um seine Antworten in Unternehmensdaten oder Webquellen zu finden, um durch die Quellenzuordnung faktenbezogene Genauigkeit und Transparenz sicherzustellen.
Ein End-to-End-Beispiel für die Integration von Azure KI-Suche und dem Foundry Agent Service zum Wissensabruf finden Sie im Python-Beispiel agentic-retrieval-pipeline-example auf GitHub.
Verwendungsunterstützung
| Microsoft Foundry-Unterstützung | Python SDK | C# SDK | JavaScript SDK | Java SDK | REST-API | Grundlegendes Agent-Setup | Standard-Setup für Agenten |
|---|---|---|---|---|---|---|---|
| ✔️ | ✔️ | - | - | - | ✔️ | ✔️ | ✔️ |
Voraussetzungen
Ein Azure KI-Suche-Dienst mit einer Wissensdatenbank, die mindestens eine Wissensquelle enthält.
Ein Microsoft Foundry-Projekt mit einer LLM-Bereitstellung, z. B.
gpt-4.1-mini. Hubbasierte Projekte werden nicht unterstützt.Authentifizierung und Berechtigungen für Ihren Suchdienst und Ihr Projekt.
Das neueste Python SDK in der Vorschau (Version 2.0.0 oder höher) oder die REST-API-Version 2026-08-01-preview.
pip install "azure-ai-projects>=2.0.0" requests
Authentifizierung und Berechtigungen
Wir empfehlen für Produktionsumgebungen die rollenbasierte Zugriffssteuerung. Um die Rollen in diesem Abschnitt zuzuweisen, benötigen Sie für beide Ressourcen die Rolle Besitzer oder Benutzerzugriffsadministrator oder eine andere Rolle, die Microsoft.Authorization/roleAssignments/write gewährt. Wenn Rollen nicht machbar sind, überspringen Sie diesen Abschnitt, und verwenden Sie stattdessen die schlüsselbasierte Authentifizierung.
In der übergeordneten Ressource Ihres Projekts benötigen Sie die Rolle " Foundry User ", um auf Modellbereitstellungen zuzugreifen und Agents zu erstellen. Besitzer erhalten diese Rolle automatisch, wenn sie die Ressource erstellen. Andere Benutzer benötigen eine bestimmte Rollenzuweisung. Weitere Informationen finden Sie unter Rollenbasierte Zugriffssteuerung im Foundry-Portal.
Wichtig
Die Foundry-RBAC-Rollen wurden kürzlich umbenannt. Foundry User, Foundry Owner, Foundry Account Owner und Foundry Project Manager wurden zuvor Azure KI-Benutzer, Azure KI-Besitzer, Azure KI-Kontobesitzer und Azure AI Project Manager benannt. Möglicherweise werden die vorherigen Namen an einigen Stellen weiterhin angezeigt, während der Umbenennungsrollout ausgeführt wird. Die Rollen-IDs und Kernberechtigungen bleiben durch die Umbenennung unverändert.
Für die übergeordnete Ressource Ihres Projekts benötigen Sie die Rolle Foundry Project Manager, um eine Projektverbindung für die MCP-Authentifizierung zu erstellen, und entweder Foundry User oder Foundry Project Manager, um das MCP-Tool in Agenten zu verwenden.
(Bedingt) Weisen Sie der übergeordneten Ressource Ihres Projekts die Rolle " Cognitive Services User " der vom System zugewiesenen verwalteten Identität Ihres Suchdiensts zu. Dieser Schritt ist nur erforderlich, wenn Ihre Wissensdatenbank eine LLM angibt. Je nach Konfiguration verwendet die Wissensbasis diese Identität, um die LLM für die Abfrageplanung, Antwortsynthese oder beides aufzurufen. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Azure KI-Suche mithilfe einer verwalteten Identität.
Erstellen Sie in Ihrem Projekt eine vom System zugewiesene verwaltete Identität für Interaktionen mit Azure KI-Suche.
Erforderliche Werte
Verwenden Sie die folgenden Werte in den Codebeispielen.
| Wert | Wo kann ich es bekommen? | Beispiel |
|---|---|---|
Projekt-Endpunkt (project_endpoint) |
Suchen Sie es in Ihren Projektdetails im Microsoft Foundry-Portal. | https://your-resource.services.ai.azure.com/api/projects/your-project |
Projektressourcen-ID (project_resource_id) |
Kopieren Sie die ARM-Ressourcen-ID des Projekts aus Azure Portal, oder verwenden Sie Azure CLI, um die Ressourcen-ID abzufragen. Ihr Microsoft Foundry-Projekt muss über den Microsoft.CognitiveServices/accounts Namespace verfügen. |
/subscriptions/.../resourceGroups/.../providers/Microsoft.CognitiveServices/accounts/.../projects/... |
Azure KI-Suche Endpunkt (search_service_endpoint) |
Suchen Sie ihn auf Ihrer Azure KI-Suche-Dienstseite Overview (die Dienst-URL) im Azure-Portal. | https://your-search-service.search.windows.net |
Name der Wissensdatenbank (knowledge_base_name) |
Verwenden Sie den Knowledge Base-Namen, den Sie in Azure KI-Suche erstellt haben. | hr-policy-kb |
Projektverbindungsname (project_connection_name) |
Wählen Sie einen Namen für die von Ihnen erstellte Projektverbindung aus. | my-kb-mcp-connection |
Agent-Name (agent_name) |
Wählen Sie einen Namen für die von Ihnen erstellte Agentversion aus. | hr-assistant |
Modellbereitstellungsname (deployed_LLM) |
Suchen Sie sie in Ihren Microsoft Foundry-Projektmodellbereitstellungen. | gpt-4.1-mini |
Tipp
Es wird empfohlen, den Projektendpunkt, den Suchendpunkt und den Knowledge Base-Namen in einer Datei für die .env lokale Entwicklung zu speichern.
Erstellen einer Projektverbindung
Erstellen Sie eine RemoteToolVerbindung für Ihr Microsoft Foundry-Projekt. Diese Verbindung verwendet die verwaltete Identität des Projekts, um den MCP-Endpunkt der Knowledge Base als Ziel zu verwenden, sodass der Agent sicher mit Azure KI-Suche für Abrufvorgänge kommunizieren kann.
Hinweis
Die Kategorie RemoteTool und ProjectManagedIdentity Authentifizierungstyp sind spezifisch für Microsoft Foundry-Projektverbindungen.
import requests
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
# Provide connection details
credential = DefaultAzureCredential()
project_resource_id = "{project_resource_id}" # e.g. /subscriptions/{subscription}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{account_name}/projects/{project_name}
project_connection_name = "{project_connection_name}"
mcp_endpoint = "{search_service_endpoint}/knowledgebases/{knowledge_base_name}/mcp?api-version=2026-08-01-preview" # This endpoint enables the MCP connection between the agent and knowledge base
# Get bearer token for authentication
bearer_token_provider = get_bearer_token_provider(credential, "https://management.azure.com/.default")
headers = {
"Authorization": f"Bearer {bearer_token_provider()}",
}
# Create project connection
response = requests.put(
f"https://management.azure.com{project_resource_id}/connections/{project_connection_name}?api-version=2025-10-01-preview",
headers = headers,
json = {
"name": project_connection_name,
"type": "Microsoft.MachineLearningServices/workspaces/connections",
"properties": {
"authType": "ProjectManagedIdentity",
"category": "RemoteTool",
"target": mcp_endpoint,
"isSharedToAll": True,
"audience": "https://search.azure.com/",
"metadata": { "ApiType": "Azure" }
}
}
)
response.raise_for_status()
print(f"Connection '{project_connection_name}' created or updated successfully.")
Optimieren von Agent-Anweisungen für den Wissensabruf
Um Aufrufe der Wissensbasis zu verbessern und zitatgestützte Antworten zu erstellen, beginnen Sie mit Anweisungen wie den folgenden:
You are a helpful assistant.
Use the knowledge base tool to answer user questions.
If the knowledge base doesn't contain the answer, respond with "I don't know".
When you use information from the knowledge base, include citations to the retrieved sources.
Diese Anweisungsvorlage optimiert für:
- Höhere MCP-Toolaufrufraten: Explizite Direktiven stellen sicher, dass der Agent das Knowledge Base-Tool konsistent aufruft, anstatt sich auf seine Schulungsdaten zu verlassen.
- Klare Quellzuordnung: Zitate vereinfachen die Überprüfung, woher Informationen stammen.
Tipp
Während diese Vorlage eine starke Grundlage bietet, bewerten und überarbeiten Sie die Instruktionen basierend auf Ihrem spezifischen Anwendungsfall und Ihren Zielen. Testen Sie verschiedene Variationen, um zu ermitteln, was für Ihr Szenario am besten geeignet ist.
Erstellen eines Agents mit dem MCP-Tool
Erstellen Sie einen Agent, der die Wissensbasis als MCP-Tool integriert. Der Agent verwendet eine Systemaufforderung, um anzugeben, wann und wie die Wissensbasis aufgerufen wird. Es folgt Anweisungen zum Beantworten von Fragen und verwaltet automatisch seine Toolkonfiguration und -einstellungen in Unterhaltungssitzungen.
Fügen Sie das Knowledge Base MCP-Tool mit der Projektverbindung hinzu, die Sie zuvor erstellt haben. Dieses Tool koordiniert die Abfrageplanung, -analyse und -abruf über konfigurierte Wissensquellen hinweg. Der Agent verwendet dieses Tool, um Abfragen zu beantworten.
Hinweis
Azure KI-Suche Wissensdatenbanken machen das knowledge_base_retrieve MCP-Tool für die Agentintegration verfügbar. Dies ist das einzige Tool, das derzeit für die Verwendung mit dem Foundry Agent Service unterstützt wird.
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import PromptAgentDefinition, MCPTool
from azure.identity import DefaultAzureCredential
# Provide agent configuration details
credential = DefaultAzureCredential()
mcp_endpoint = "{search_service_endpoint}/knowledgebases/{knowledge_base_name}/mcp?api-version=2026-08-01-preview"
project_endpoint = "{project_endpoint}" # e.g. https://your-foundry-resource.services.ai.azure.com/api/projects/your-foundry-project
project_connection_name = "{project_connection_name}"
agent_name = "{agent_name}"
agent_model = "{deployed_LLM}" # e.g. gpt-4.1-mini
# Create project client
project_client = AIProjectClient(endpoint = project_endpoint, credential = credential)
# Define agent instructions (see "Optimize agent instructions" section for guidance)
instructions = """
You are a helpful assistant that must use the knowledge base to answer all the questions from user. You must never answer from your own knowledge under any circumstances.
Every answer must always provide annotations for using the MCP knowledge base tool and render them as: `【message_idx:search_idx†source_name】`
If you cannot find the answer in the provided knowledge base you must respond with "I don't know".
"""
# Create MCP tool with knowledge base connection
mcp_kb_tool = MCPTool(
server_label = "knowledge-base",
server_url = mcp_endpoint,
require_approval = "never",
allowed_tools = ["knowledge_base_retrieve"],
project_connection_id = project_connection_name
)
# Create agent with MCP tool
agent = project_client.agents.create_version(
agent_name = agent_name,
definition = PromptAgentDefinition(
model = agent_model,
instructions = instructions,
tools = [mcp_kb_tool]
)
)
print(f"Agent '{agent_name}' created or updated successfully.")
(Optional) Berechtigungen mit anforderungsspezifischen Headern erzwingen
Wenn eine Ihrer Wissensquellen berechtigungsgeschützte Inhalte enthält, kann das Abrufmodul Ergebnisse filtern, sodass jeder Benutzer nur die Dokumente sieht, auf die er für den Zugriff autorisiert ist. Um diese Filterung zu aktivieren, leiten Sie das Identitätstoken des angemeldeten Benutzers im x-ms-query-source-authorization Header der MCP-Toolverbindung weiter. Ohne das Token geben berechtigungsfähige Quellen Ergebnisse ungefiltert zurück. Weitere Informationen finden Sie unter Erzwingen von Berechtigungen zur Abfragezeit (Vorschau).
Um MCP-Header pro Anforderung zu variieren, z. B. das Übergeben eines anderen Benutzertokens für jeden Aufruf, deklarieren Sie eine strukturierte Eingabe in der Agentdefinition, und verweisen Sie sie als ein {{placeholder}} Element im Tool headers. Der Aufrufer übergibt den Wert bei jedem Aufruf. Dieser Ansatz funktioniert für MCP-Tools, die an eine Projektverbindung gebunden sind.
Für die Benutzerautorisierung für einen MCP-Server können Sie auch OAuth Identity Passthrough verwenden.
Aktualisieren Sie den Agent aus dem vorherigen Schritt, damit das MCP-Tool seinen Autorisierungsheader aus einer strukturierten Eingabe liest:
from azure.ai.projects.models import StructuredInputDefinition
# Reference the token as a placeholder in the header
mcp_kb_tool = MCPTool(
server_label = "knowledge-base",
server_url = mcp_endpoint,
require_approval = "never",
allowed_tools = ["knowledge_base_retrieve"],
project_connection_id = project_connection_name,
headers = {
"x-ms-query-source-authorization": "{{search_auth_token}}"
}
)
# Declare the structured input so the caller can supply the token per request
agent = project_client.agents.create_version(
agent_name = agent_name,
definition = PromptAgentDefinition(
model = agent_model,
instructions = instructions,
tools = [mcp_kb_tool],
structured_inputs = {
"search_auth_token": StructuredInputDefinition(
description = "Per-user Azure AI Search bearer token",
required = True,
schema = {"type": "string"},
)
}
)
)
print(f"Agent '{agent_name}' created or updated successfully.")
Wenn Sie den Agent aufrufen, geben Sie ein Azure KI-Suche Token in structured_inputs. In diesem Beispiel wird ein Token aus dem aktuellen credential aufgelöst. Übergeben Sie für eine Mehrbenutzer-App stattdessen das Token jedes angemeldeten Benutzers. Verwenden Sie z. B. ein Token, das über einen On-Behalf-Of-Flow bezogen wurde, damit die Abruf-Engine die Ergebnisse für diesen Benutzer filtern kann.
# Resolve an Azure AI Search token from the current credential (use a per-user token in production)
from azure.identity import get_bearer_token_provider
search_token = get_bearer_token_provider(credential, "https://search.azure.com/.default")()
openai_client = project_client.get_openai_client()
conversation = openai_client.conversations.create()
response = openai_client.responses.create(
conversation = conversation.id,
input = "{user_query}",
extra_body = {
"agent_reference": {"name": agent.name, "type": "agent_reference"},
"structured_inputs": {"search_auth_token": search_token},
},
)
Aufrufen des Agents mit einer Abfrage
Erstellen Sie eine Unterhaltungssitzung, und senden Sie eine Benutzerabfrage an den Agent. Gegebenenfalls orchestriert der Agent das MCP-Tool, um relevante Inhalte aus der Knowledge Base abzurufen. Der Agent synthetisiert diesen Inhalt dann in einer natürlichen Sprachantwort, die die Quelldokumente angibt.
Zitat-URLs in Agentantworten variieren je nach Wissensquelle. Beispielsweise geben Blob-Wissensquellen die ursprüngliche Dokument-URL zurück, während Suchindex-Wissensquellen auf den MCP-Endpunkt Ihrer Knowledge Base zurückgreifen.
# Get the OpenAI client for responses and conversations
openai_client = project_client.get_openai_client()
# Create conversation
conversation = openai_client.conversations.create()
# Send request to trigger the MCP tool
response = openai_client.responses.create(
conversation = conversation.id,
input = """
Why do suburban belts display larger December brightening than urban cores even though absolute light levels are higher downtown?
Why is the Phoenix nighttime street grid is so sharply visible from space, whereas large stretches of the interstate between midwestern cities remain comparatively dim?
""",
extra_body = {"agent_reference": {"name": agent.name, "type": "agent_reference"}},
)
print(f"Response: {response.output_text}")
Die Ausgabe sollte der folgenden ähneln (aus Platzgründen abgeschnitten):
Response: Suburban belts display larger December brightening than urban cores, even
though absolute light levels are higher downtown, primarily because holiday lights
increase most dramatically in the suburbs and outskirts of major cities. This is due
to more yard space and a prevalence of single-family homes in suburban areas...
The Phoenix nighttime street grid is sharply visible from space due to the city's
layout along a regular grid of city blocks and streets with extensive street lighting...
References:
- earth_at_night_508_page_174, earth_at_night_508_page_176 (Holiday lighting)
- earth_at_night_508_page_104, earth_at_night_508_page_105 (Phoenix grid visibility)
Löschen des Agents und der Projektverbindung
# Delete the agent
project_client.agents.delete_version(agent_name=agent.name, agent_version=agent.version)
print(f"Agent '{agent.name}' version '{agent.version}' deleted successfully.")
# Delete the project connection (Azure Resource Manager)
import requests
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
credential = DefaultAzureCredential()
project_resource_id = "{project_resource_id}"
project_connection_name = "{project_connection_name}"
bearer_token_provider = get_bearer_token_provider(credential, "https://management.azure.com/.default")
headers = {"Authorization": f"Bearer {bearer_token_provider()}"}
response = requests.delete(
f"https://management.azure.com{project_resource_id}/connections/{project_connection_name}?api-version=2025-10-01-preview",
headers=headers,
)
response.raise_for_status()
print(f"Project connection '{project_connection_name}' deleted successfully.")
Hinweis
Wenn Sie Ihren Agent und Ihre Projektverbindung löschen, werden Ihre Wissensbasis oder ihre Wissensquellen nicht gelöscht. Sie müssen diese Objekte separat in Ihrem Azure KI-Suche-Dienst löschen. Weitere Informationen finden Sie unter "Löschen einer Wissensbasis " und "Löschen einer Wissensquelle".
Problembehandlung
Dieser Abschnitt unterstützt Sie bei der Problembehandlung für häufige Probleme beim Verbinden von Foundry Agent Service mit einer Foundry IQ-Wissensdatenbank.
Autorisierungsfehler (401/403)
- Wenn Sie eine 403-Meldung von Azure KI-Suche erhalten, überprüfen Sie, ob die verwaltete Identität des Projekts die Rolle Suchindexdatenleser im Suchdienst besitzt (und Mitwirkend an Suchindexdaten, wenn Sie zu Indizes schreiben).
- Wenn Sie beim Erstellen oder Löschen der Projektverbindung eine 403 von Azure Resource Manager erhalten, bestätigen Sie, dass Der Benutzer oder Dienstprinzipal über Berechtigungen für die Microsoft Foundry-Ressource und das Projekt verfügt.
- Wenn Sie die schlüssellose Authentifizierung verwenden, bestätigen Sie, dass Ihre Umgebung beim richtigen Mandanten und Abonnement angemeldet ist.
MCP-Endpunktfehler (400/404)
- Bestätigen Sie, dass
search_service_endpointdie Azure KI-Suche Dienst-URL ist, z. B.https://<name>.search.windows.net. - Bestätigen Sie, dass
knowledge_base_namemit der Wissensbasis übereinstimmt, die Sie in Azure KI-Suche erstellt haben. - Bestätigen Sie, dass Sie die
2026-08-01-previewAPI-Version für den Knowledge Base MCP-Endpunkt verwenden.
Der Agent begründet Antworten nicht.
- Vergewissern Sie sich, dass der Agent das MCP-Tool konfiguriert und
allowed_toolsenthältknowledge_base_retrieve. - Aktualisieren Sie Ihre Agent-Anweisungen so, dass sie explizit die Knowledge Base verwenden müssen, und um "Ich weiß nicht" zurückzugeben, wenn der Abruf die Antwort nicht enthält.