Erdung von Agenten mit Bing-Suchwerkzeugen

Gießereimodelle haben einen Wissensschnitt. Sie können nicht über einen festen Zeitpunkt hinaus auf neue Informationen zugreifen. Mithilfe von Grounding mit Bing Search und Grounding mit Bing Custom Search (Vorschau) können Ihre Agents öffentliche Webdaten in Echtzeit integrieren, wenn Sie Antworten generieren. Mithilfe dieser Tools können Sie Fragen wie "Was ist die top KI News heute" stellen.

Der Erdungsprozess umfasst mehrere wichtige Schritte:

  1. Abfrageformulierung: Der Agent identifiziert Informationslücken und erstellt Suchabfragen.
  2. Suchausführung: Das Verbindungstool sendet Abfragen an Suchmaschinen und ruft Ergebnisse ab.
  3. Informationssynthese: Der Agent verarbeitet Suchergebnisse und integriert Ergebnisse in Antworten.
  4. Quellzuordnung: Der Agent bietet Transparenz durch Zitate von Suchquellen.

Wichtig

  • Grounding mit der Bing-Suche und Grounding mit der benutzerdefinierten Bing-Suche sind First Party Consumption Services mit Bedingungen für Onlinedienste. Sie unterliegen der Grounding mit Bing-Nutzungsbedingungen und den Microsoft Datenschutzbestimmungen.
  • Das Microsoft Datenschutz-Addendum gilt nicht für Daten, die mit Grounding bei Bing Search oder Grounding bei Bing Custom Search gesendet werden. Wenn Sie diese Dienste verwenden, fließen Ihre Daten außerhalb der Azure Compliance- und Geo-Grenze. Dies bedeutet auch, dass die Nutzung dieser Dienste den Verzicht auf alle erhöhten Sicherheits- und Compliance-Verpflichtungen der Government Community Cloud beinhaltet, einschließlich Datenhoheit und überprüfungs-/staatsbürgerschaftsbasierter Unterstützung, soweit zutreffend.
  • Die Verwendung von Grounding mit Bing Search und Grounding mit Bing Custom Search kann Kosten verursachen. Details finden Sie unter "Preise".
  • Im Abschnitt Manage finden Sie Informationen dazu, wie Azure Administratoren den Zugriff auf die Verwendung von Grounding mit Bing Search und Grounding mit bing Custom Search verwalten können.

Hinweis

Beginnen Sie mit dem Websuchtool. Erfahren Sie mehr über die Unterschiede zwischen Websuche und der Verankerung bei der Bing-Suche (oder der Verankerung bei der Bing Custom-Suche) in der Übersicht über die Web-Verankerung.

Verwendungsunterstützung

Die folgende Tabelle zeigt die SDK- und Setupunterstützung.

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

Hinweis

Nicht alle Modelle unterstützen das Grounding mit Bing Search oder Grounding mit der benutzerdefinierten Bing-Suche. Eine vollständige Liste der Modelle, die diese Tools unterstützen, finden Sie unter Toolunterstützung nach Region und Modell.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie folgendes haben:

  • Ein Azure-Abonnement mit den richtigen Berechtigungen.
  • Azure RBAC-Rollen:
    • Rolle "Mitwirkender" oder "Besitzer" auf der Abonnement- oder Ressourcengruppenebene, um Bing-Ressourcen zu erstellen und Ressourcenschlüssel abzurufen.
    • Azure AI Project Manager Rolle mit der Aufgabe, Projektverbindungen in Foundry zu erstellen. Weitere Informationen finden Sie unter Role-based access control for Microsoft Foundry.
  • Ein Foundry-Projekt, das mit einem konfigurierten Endpunkt erstellt wurde.
  • Ein KI-Modell, das in Ihrem Projekt bereitgestellt wird.
  • SDK für Ihre bevorzugte Sprache installiert:
    • Python: azure-ai-projects
    • C#: Azure.AI.Extensions.OpenAI
    • TypeScript/JavaScript: @azure/ai-projects
    • Java: com.azure:azure-ai-agents:2.0.0
  • für die Authentifizierung konfigurierte Azure-Anmeldeinformationen (z. B. DefaultAzureCredential).
    • Für REST-Beispiele richten Sie Umgebungsvariablen ein:
      • FOUNDRY_PROJECT_ENDPOINT: Die URL des Projekt-Endpunkts von Foundry.
      • FOUNDRY_MODEL_DEPLOYMENT_NAME: Der Name des bereitgestellten Modells.
      • BING_PROJECT_CONNECTION_ID: Ihr Grounding mit Bing Search-Projektverbindungs-ID.
      • BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID: Ihr Erdungsvorgang mit der Verbindungs-ID des benutzerdefinierten Bing-Suchprojekts.
      • BING_CUSTOM_SEARCH_INSTANCE_NAME: Ihre benutzerdefinierte Suchinstanz.
      • AGENT_TOKEN.
  • Eine Bing Grounding- oder Bing Custom Search-Ressource, die mit Ihrem Foundry-Projekt erstellt und verbunden wurde. ** Ein kostenpflichtiges Abonnement ist erforderlich, um ein Grounding mit Bing-Suche oder Grounding mit der Bing Custom Search-Ressource zu erstellen.
  • Das Grounding mit Bing Search-Tool funktioniert in einem netzwerkgeschützten Foundry-Projekt, verhält sich jedoch wie ein öffentlicher Endpunkt. Berücksichtigen Sie dieses Verhalten, wenn Sie das Tool in einer netzwerkgeschützten Umgebung verwenden.

Konfiguration

In diesem Abschnitt fügen Sie eine Projektverbindung für die Bing-Ressource hinzu und erfassen die in den Beispielen verwendeten Werte. SDK-Beispiele verwenden den Namen der Projektverbindung und lösen die Verbindungs-ID zur Laufzeit auf. REST-Beispiele verwenden die Projektverbindungs-ID. Sie können diese Bicep-Vorlage verwenden, um einen einfachen Agenten mit aktivierter Bing-Suche-Funktion und Grounding zu erstellen.

Wenn Sie bereits über eine Projektverbindungs-ID für die Bing-Ressource verfügen, die Sie verwenden möchten, überspringen Sie diesen Abschnitt.

  1. Fügen Sie dem Projekt die entsprechende Verbindung hinzu.

    Für schrittweise Anleitungen sehen Sie unter „Hinzufügen einer neuen Verbindung zu Ihrem Projekt“ nach.

    Wichtig

    • Sie benötigen die Rolle "Mitwirkender" oder "Besitzer " auf Abonnement- oder Ressourcengruppenebene, um Bing-Ressourcen zu erstellen und Ressourcenschlüssel abzurufen.
    • Um die Ressourcenschlüssel zu finden, wechseln Sie im Azure-Portal zu Ihrer Bing-Grounding-Ressource im >Ressourcenmanagement>Schlüssel.
  2. Rufen Sie den Projektverbindungsnamen und die ID aus den Verbindungsdetails ab, und legen Sie dann die Werte als Umgebungsvariablen fest.

  • Für SDK-Beispiele:
    • Für die Erdung mit Bing-Suche: stellen Sie BING_PROJECT_CONNECTION_NAME ein.
    • Für die Erdung mit Bing Custom Search: einstellen BING_CUSTOM_SEARCH_PROJECT_CONNECTION_NAME.
  • Für REST-Beispiele:
    • Für die Erdung mit Bing-Suche: stellen Sie BING_PROJECT_CONNECTION_ID ein.
    • Für die Erdung mit Bing Custom Search: einstellen BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID.

Die Projektverbindungs-ID verwendet das Format:

/subscriptions/{{subscriptionID}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.CognitiveServices/accounts/{{foundryAccountName}}/projects/{{foundryProjectName}}/connections/{{foundryConnectionName}}

Verfügbare Tools

Werkzeug Beschreibung Anwendungsfall
Grundlagen mit Bing-Suche Bietet Agents standardmäßigen Zugriff auf die Suchfunktionen von Bing. Szenarien, die einen breiten Wissenszugriff erfordern.
Einführung in die benutzerdefinierte Bing-Suche (Vorschau) Ermöglicht Es Agents, innerhalb einer konfigurierbaren Gruppe öffentlicher Webdomänen zu suchen. Sie definieren die Teile des Webs, aus dem Sie zeichnen möchten, damit Benutzer nur relevante Ergebnisse aus von Ihnen ausgewählten Domänen sehen. Szenarien, die eine Informationsverwaltung erfordern.

Hinweis

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

Codebeispiele

Hinweis

  • Sie benötigen das neueste SDK-Paket. Details finden Sie in der Schnellstartanleitung .
  • Verwenden Sie für SDK-Beispiele den Projektverbindungsnamen. Verwenden Sie für REST-Beispiele die Projektverbindungs-ID im Format/subscriptions/{{subscriptionID}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.CognitiveServices/accounts/{{foundryAccountName}}/projects/{{foundryProjectName}}/connections/{{foundryConnectionName}}.

Die folgenden Beispiele zeigen, wie Sie einen Agent mit Grounding mit Bing Search-Tools erstellen und wie der Agent zum Beantworten von Benutzerabfragen verwendet wird.

from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
    PromptAgentDefinition,
    BingGroundingTool,
    BingGroundingSearchToolParameters,
    BingGroundingSearchConfiguration,
)

# Format: "https://resource_name.ai.azure.com/api/projects/project_name"
PROJECT_ENDPOINT = "your_project_endpoint"
BING_CONNECTION_NAME = "my-bing-connection"

# Create clients to call Foundry API
project = AIProjectClient(
    endpoint=PROJECT_ENDPOINT,
    credential=DefaultAzureCredential(),
)
openai = project.get_openai_client()

# Get connection ID from connection name
bing_connection = project.connections.get(BING_CONNECTION_NAME)

agent = project.agents.create_version(
    agent_name="MyAgent",
    definition=PromptAgentDefinition(
        model="gpt-4.1-mini",
        instructions="You are a helpful assistant.",
        tools=[
            BingGroundingTool(
                bing_grounding=BingGroundingSearchToolParameters(
                    search_configurations=[
                        BingGroundingSearchConfiguration(
                            project_connection_id=bing_connection.id
                        )
                    ]
                )
            )
        ],
    ),
    description="You are a helpful agent.",
)
print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")

stream_response = openai.responses.create(
    stream=True,
    tool_choice="required",
    input="What is today's date and weather in Seattle?",
    extra_body={"agent_reference": {"name": agent.name, "type": "agent_reference"}},
)

for event in stream_response:
    if event.type == "response.created":
        print(f"Follow-up response created with ID: {event.response.id}")
    elif event.type == "response.output_text.delta":
        print(f"Delta: {event.delta}")
    elif event.type == "response.text.done":
        print(f"\nFollow-up response done!")
    elif event.type == "response.output_item.done":
        if event.item.type == "message":
            item = event.item
            if item.content[-1].type == "output_text":
                text_content = item.content[-1]
                for annotation in text_content.annotations:
                    if annotation.type == "url_citation":
                        print(f"URL Citation: {annotation.url}")
    elif event.type == "response.completed":
        print(f"\nFollow-up completed!")
        print(f"Full response: {event.response.output_text}")

Funktionsweise dieses Codes

In diesem Beispiel wird mit dem Bing Search-Tool ein Agent mit Grounding erstellt, der Echtzeitinformationen aus dem Web abrufen kann. Wenn Sie den Code ausführen:

  1. Sie erstellt eine AIProjectClient und authentifiziert sich mithilfe Ihrer Azure Anmeldeinformationen.
  2. Erstellt einen Agenten mit dem Bing-Grounding-Tool, das mithilfe Ihrer Bing-Verbindung konfiguriert wird.
  3. Sendet eine Abfrage mit der Frage nach aktuellem Datum und Wetter in Seattle.
  4. Der Agent verwendet das Bing-Erdungstool, um das Web zu durchsuchen und die Antwort zu streamen.
  5. Extrahiert und zeigt URL-Zitate aus den Suchergebnissen an.

Erforderliche Eingaben

  • Aktualisieren Sie die PROJECT_ENDPOINT Und BING_CONNECTION_NAME Konstanten im Code mit Ihren Werten.
  • Azure Anmeldeinformationen, die für DefaultAzureCredential konfiguriert sind.

Erwartete Ausgabe

Agent created (id: asst_abc123, name: MyAgent, version: 1)
Follow-up response created with ID: resp_xyz789
Delta: Today
Delta: 's date
Delta:  is December 12, 2025...
Follow-up response done!
URL Citation: https://www.weather.gov/seattle/
Follow-up completed!
Full response: Today's date is December 12, 2025, and the weather in Seattle is...

Einführung in die benutzerdefinierte Bing-Suche (Vorschau)

from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
    PromptAgentDefinition,
    BingCustomSearchPreviewTool,
    BingCustomSearchToolParameters,
    BingCustomSearchConfiguration,
)

# Format: "https://resource_name.ai.azure.com/api/projects/project_name"
PROJECT_ENDPOINT = "your_project_endpoint"
CUSTOM_SEARCH_CONNECTION_NAME = "my-custom-search-connection"
CUSTOM_SEARCH_INSTANCE_NAME = "my-custom-search-instance"

# Create clients to call Foundry API
project = AIProjectClient(
    endpoint=PROJECT_ENDPOINT,
    credential=DefaultAzureCredential(),
)
openai = project.get_openai_client()

# Get connection ID from connection name
bing_custom_connection = project.connections.get(CUSTOM_SEARCH_CONNECTION_NAME)

bing_custom_search_tool = BingCustomSearchPreviewTool(
    bing_custom_search_preview=BingCustomSearchToolParameters(
        search_configurations=[
            BingCustomSearchConfiguration(
                project_connection_id=bing_custom_connection.id,
                instance_name=CUSTOM_SEARCH_INSTANCE_NAME,
            )
        ]
    )
)

agent = project.agents.create_version(
    agent_name="MyAgent",
    definition=PromptAgentDefinition(
        model="gpt-4.1-mini",
        instructions="""You are a helpful agent that can use Bing Custom Search tools to assist users. 
        Use the available Bing Custom Search tools to answer questions and perform tasks.""",
        tools=[bing_custom_search_tool],
    ),
)
print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")

user_input = input(
    "Enter your question for the Bing Custom Search agent " "(e.g., 'Tell me more about foundry agent service'): \n"
)

# Send initial request that will trigger the Bing Custom Search tool
stream_response = openai.responses.create(
    stream=True,
    input=user_input,
    extra_body={"agent_reference": {"name": agent.name, "type": "agent_reference"}},
)

for event in stream_response:
    if event.type == "response.created":
        print(f"Follow-up response created with ID: {event.response.id}")
    elif event.type == "response.output_text.delta":
        print(f"Delta: {event.delta}")
    elif event.type == "response.text.done":
        print(f"\nFollow-up response done!")
    elif event.type == "response.output_item.done":
        if event.item.type == "message":
            item = event.item
            if item.content[-1].type == "output_text":
                text_content = item.content[-1]
                for annotation in text_content.annotations:
                    if annotation.type == "url_citation":
                        print(
                            f"URL Citation: {annotation.url}, "
                            f"Start index: {annotation.start_index}, "
                            f"End index: {annotation.end_index}"
                        )
    elif event.type == "response.completed":
        print(f"\nFollow-up completed!")
        print(f"Full response: {event.response.output_text}")

Funktionsweise dieses Codes

Dies ist ein Beispiel für die Erstellung eines Agenten mit dem Bing Custom Search Tool, der in einer konfigurierbaren Menge öffentlicher Web-Domains sucht. Wenn Sie den Code ausführen:

  1. Sie erstellt eine AIProjectClient und authentifiziert sich mithilfe Ihrer Azure Anmeldeinformationen.
  2. Erstellt einen Agent mit dem Bing Custom Search-Tool, das mithilfe Ihrer benutzerdefinierten Suchinstanz konfiguriert ist.
  3. Aufforderungen an den Benutzer, die nach bestimmten Themen innerhalb Ihrer konfigurierten Bereiche fragen.
  4. Der Agent verwendet das Bing Custom Search-Tool, um nur Ihre angegebenen Domänen zu durchsuchen und die Antwort zu streamen.
  5. Extrahiert und zeigt URL-Zitate mit Start- und Endpositionen aus den benutzerdefinierten Suchergebnissen an.

Erforderliche Eingaben

  • Aktualisieren Sie die PROJECT_ENDPOINT, CUSTOM_SEARCH_CONNECTION_NAMEund CUSTOM_SEARCH_INSTANCE_NAME Konstanten im Code mit Ihren Werten.
  • Azure Anmeldeinformationen, die für DefaultAzureCredential konfiguriert sind.
  • Benutzereingabe zur Laufzeit.

Erwartete Ausgabe

Agent created (id: asst_abc123, name: MyAgent, version: 1)
Enter your question for the Bing Custom Search agent (e.g., 'Tell me more about foundry agent service'):
Tell me more about foundry agent service
Follow-up response created with ID: resp_xyz789
Delta: Microsoft
Delta:  Foundry
Delta:  Agent Service...
Follow-up response done!
URL Citation: https://learn.microsoft.com/azure/ai-foundry/agents, Start index: 45, End index: 120
Follow-up completed!
Full response: Microsoft Foundry Agent Service enables you to build...

Die folgenden C#-Beispiele veranschaulichen, wie Sie einen Agenten mit dem Grounding-Tool für Bing-Suche erstellen und wie der Agent verwendet wird, um Benutzeranfragen zu beantworten. In diesen Beispielen werden synchrone Aufrufe zur Vereinfachung verwendet. Asynchrone Beispiele finden Sie in den C#-Beispielen agenttools.

Um Ihrem Agent die Verwendung der Bing-Such-API zu ermöglichen, verwenden Sie BingGroundingTool.

Grundlagen mit Bing-Suche

// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
var projectEndpoint = "your_project_endpoint";
var bingConnectionName = "my-bing-connection";

// Create project client to call Foundry API
AIProjectClient projectClient = new(
    endpoint: new Uri(projectEndpoint),
    tokenProvider: new DefaultAzureCredential());

// Get connection ID from connection name
AIProjectConnection bingConnection = projectClient.Connections.GetConnection(connectionName: bingConnectionName);

// Create the agent version with Bing grounding tool
BingGroundingTool bingGroundingAgentTool = new(new BingGroundingSearchToolOptions(
  searchConfigurations: [new BingGroundingSearchConfiguration(projectConnectionId: bingConnection.Id)]
    )
);
DeclarativeAgentDefinition agentDefinition = new(model: "gpt-4.1-mini")
{
    Instructions = "You are a helpful agent.",
    Tools = { bingGroundingAgentTool, }
};
AgentVersion agentVersion = projectClient.AgentAdministrationClient.CreateAgentVersion(
    agentName: "myAgent",
    options: new(agentDefinition));

// Output the agent version info
ProjectResponsesClient responseClient = projectClient.ProjectOpenAIClient.GetProjectResponsesClientForAgent(agentVersion.Name);

ResponseResult response = responseClient.CreateResponse("How does wikipedia explain Euler's Identity?");

// Extract and format URL citation annotations
string citation = "";
foreach (ResponseItem item in response.OutputItems)
{
    if (item is MessageResponseItem messageItem)
    {
        foreach (ResponseContentPart content in messageItem.Content)
        {
            foreach (ResponseMessageAnnotation annotation in content.OutputTextAnnotations)
            {
                if (annotation is UriCitationMessageAnnotation uriAnnotation)
                {
                    citation = $" [{uriAnnotation.Title}]({uriAnnotation.Uri})";
                }
            }
        }
    }
}

// Validate and print the response
Assert.That(response.Status, Is.EqualTo(ResponseStatus.Completed));
Console.WriteLine($"{response.GetOutputText()}{citation}");

// Clean up resources by deleting the agent version
projectClient.AgentAdministrationClient.DeleteAgentVersion(agentName: agentVersion.Name, agentVersion: agentVersion.Version);

Funktionsweise dieses Codes

In diesem Beispiel wird ein Agent erstellt, der das Grounding mit Bing Search-Tool verwendet und die synchrone Reaktionsbehandlung veranschaulicht. Wenn Sie den Code ausführen:

  1. Er erstellt einen AIProjectClient mithilfe Ihres Projektendpunkts.
  2. Ruft die Bing-Verbindungskonfiguration aus Ihrem Projekt ab.
  3. Erstellt einen Agenten mit dem konfigurierten Bing-Grundlagentool.
  4. Sendet eine Abfrage, die fragt, wie Wikipedia Eulers Identität erklärt.
  5. Der Agent verwendet das Bing-Suchwerkzeug, um im Internet zu suchen und liefert formatierte Ergebnisse mit URL-Zitaten zurück.
  6. Bereinigt durch Löschen der Agentversion.

Erforderliche Eingaben

  • Aktualisieren Sie die projectEndpoint Und bingConnectionName Konstanten im Code mit Ihren Werten.
  • Azure Anmeldeinformationen, die für DefaultAzureCredential konfiguriert sind.

Erwartete Ausgabe

Euler's identity is considered one of the most elegant equations in mathematics... [Euler's identity - Wikipedia](https://en.wikipedia.org/wiki/Euler%27s_identity)

Verwendung von Bing in Streamingszenarien

// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
var projectEndpoint = "your_project_endpoint";
var bingConnectionName = "my-bing-connection";

// Create project client to call Foundry API
AIProjectClient projectClient = new(
    endpoint: new Uri(projectEndpoint),
    tokenProvider: new DefaultAzureCredential());

// Get connection ID from connection name
AIProjectConnection bingConnection = projectClient.Connections.GetConnection(connectionName: bingConnectionName);

// Create the agent version with Bing grounding tool
BingGroundingTool bingGroundingAgentTool = new(new BingGroundingSearchToolOptions(
  searchConfigurations: [new BingGroundingSearchConfiguration(projectConnectionId: bingConnection.Id)]
    )
);
DeclarativeAgentDefinition agentDefinition = new(model: "gpt-4.1-mini")
{
    Instructions = "You are a helpful agent.",
    Tools = { bingGroundingAgentTool }
};
AgentVersion agentVersion = projectClient.AgentAdministrationClient.CreateAgentVersion(
    agentName: "myAgent",
    options: new(agentDefinition));

// Stream the response from the agent version
ProjectResponsesClient responseClient = projectClient.ProjectOpenAIClient.GetProjectResponsesClientForAgent(agentVersion.Name);

string annotation = "";
string text = "";

// Parse the streaming response and output the results
foreach (StreamingResponseUpdate streamResponse in responseClient.CreateResponseStreaming("How does wikipedia explain Euler's Identity?"))
{
    if (streamResponse is StreamingResponseCreatedUpdate createUpdate)
    {
        Console.WriteLine($"Stream response created with ID: {createUpdate.Response.Id}");
    }
    else if (streamResponse is StreamingResponseOutputTextDeltaUpdate textDelta)
    {
        Console.WriteLine($"Delta: {textDelta.Delta}");
    }
    else if (streamResponse is StreamingResponseOutputTextDoneUpdate textDoneUpdate)
    {
        text = textDoneUpdate.Text;
    }
    else if (streamResponse is StreamingResponseOutputItemDoneUpdate itemDoneUpdate)
    {
        if (annotation.Length == 0)
        {
            // Extract and format URL citation annotations
            if (itemDoneUpdate.Item is MessageResponseItem messageItem)
            {
                foreach (ResponseContentPart content in messageItem.Content)
                {
                    foreach (ResponseMessageAnnotation messageAnnotation in content.OutputTextAnnotations)
                    {
                        if (messageAnnotation is UriCitationMessageAnnotation uriAnnotation)
                        {
                            annotation = $" [{uriAnnotation.Title}]({uriAnnotation.Uri})";
                        }
                    }
                }
            }
        }
    }
    else if (streamResponse is StreamingResponseErrorUpdate errorUpdate)
    {
        throw new InvalidOperationException($"The stream has failed: {errorUpdate.Message}");
    }
}
Console.WriteLine($"{text}{annotation}");

// Clean up resources by deleting the agent version
projectClient.AgentAdministrationClient.DeleteAgentVersion(agentName: agentVersion.Name, agentVersion: agentVersion.Version);

Funktionsweise dieses Codes

In diesem Beispiel wird ein Agent mit Grounding mithilfe des Bing-Suchtools erstellt und die Handhabung von Streaming-Antworten veranschaulicht. Wenn Sie den Code ausführen:

  1. Er erstellt einen AIProjectClient mithilfe Ihres Projektendpunkts.
  2. Ruft die Bing-Verbindungskonfiguration aus Ihrem Projekt ab.
  3. Erstellt einen Agenten mit dem konfigurierten Bing-Grundlagentool.
  4. Sendet eine Abfrage, die fragt, wie Wikipedia Eulers Identität erklärt.
  5. Der Agent verwendet das Bing-Erdungstool und streamt die Antwort in Echtzeit.
  6. Verarbeitet Streamingereignisse, einschließlich Delta-Textaktualisierungen und Zitatextraktion.
  7. Bereinigt durch Löschen der Agentversion.

Erforderliche Eingaben

  • Aktualisieren Sie die projectEndpoint Und bingConnectionName Konstanten im Code mit Ihren Werten.
  • Azure Anmeldeinformationen, die für DefaultAzureCredential konfiguriert sind.

Erwartete Ausgabe

Stream response created with ID: resp_xyz789
Delta: Euler
Delta: 's
Delta:  Identity
Delta:  is one of the most...
Euler's Identity is one of the most elegant equations in mathematics... [Euler's identity - Wikipedia](https://en.wikipedia.org/wiki/Euler%27s_identity)

Die folgenden REST-API-Beispiele zeigen, wie Sie die Grounding-Funktion zusammen mit Bing Search und Bing Custom Search (Vorschau) verwenden können, um Benutzeranfragen zu beantworten.

Grundlagen mit Bing-Suche

Authentifizierungseinrichtung

Konfigurieren Sie vor dem Ausführen von REST-API-Aufrufen die Authentifizierung:

  1. Festlegen von Umgebungsvariablen:

    • FOUNDRY_PROJECT_ENDPOINT: Die URL des Projekt-Endpunkts von Foundry.
    • FOUNDRY_MODEL_DEPLOYMENT_NAME: Der Name des bereitgestellten Modells.
    • BING_PROJECT_CONNECTION_ID: Ihr Grounding mit Bing Search-Projektverbindungs-ID.
  2. Erhalt eines Bearer Tokens

    export AGENT_TOKEN=$(az account get-access-token --scope "https://ai.azure.com/.default" --query accessToken -o tsv)
    
    curl --request POST \
      --url "$FOUNDRY_PROJECT_ENDPOINT/openai/v1/responses" \
      -H "Authorization: Bearer $AGENT_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
      "model": "'$FOUNDRY_MODEL_DEPLOYMENT_NAME'",
      "input": "How does Wikipedia explain Euler\u0027s identity?",
      "tool_choice": "required",
      "tools": [
        {
          "type": "bing_grounding",
          "bing_grounding": {
            "search_configurations": [
              {
                "project_connection_id": "'$BING_PROJECT_CONNECTION_ID'",
                "count": 7,
                "market": "en-US",
                "set_lang": "en",
                "freshness": "7d"
              }
            ]
          }
        }
      ]
    }'
    

Funktionsweise dieses Codes

Diese REST-API-Anforderung erstellt eine Antwort mithilfe von Grounding mit Bing Search. Die Anforderung:

  1. Sendet eine POST-Anforderung an den Endpunkt für Foundry-Antworten.
  2. Enthält die Modellbereitstellung und Benutzereingabe im Anforderungstext.
  3. Konfiguriert das Bing-Grundlagen-Tool mit Suchparametern (Anzahl, Markt, Sprache, Aktualität).
  4. Gibt eine Antwort mit Websuchergebnissen und Zitaten zurück.

Erforderliche Eingaben

  • Umgebungsvariablen: FOUNDRY_PROJECT_ENDPOINT, AGENT_TOKEN, FOUNDRY_MODEL_DEPLOYMENT_NAME, BING_PROJECT_CONNECTION_ID.
  • Gültiges Bearertoken mit entsprechenden Berechtigungen.

Erwartete Ausgabe

JSON-Antwort mit:

  • id: Antwort-ID
  • output_text: Generierter Text mit fundierten Informationen
  • citations: Array von URL-Zitaten, die zum Generieren der Antwort verwendet werden

Einführung in die benutzerdefinierte Bing-Suche (Vorschau)

curl --request POST \
  --url "$FOUNDRY_PROJECT_ENDPOINT/openai/v1/responses" \
  -H "Authorization: Bearer $AGENT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "'$FOUNDRY_MODEL_DEPLOYMENT_NAME'",
  "input": "How does Wikipedia explain Euler\u0027s identity?",
  "tool_choice": "required",
  "tools": [
    {
      "type": "bing_custom_search_preview",
      "bing_custom_search_preview": {
        "search_configurations": [
          {
            "project_connection_id": "'$BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID'",
            "instance_name": "'$BING_CUSTOM_SEARCH_INSTANCE_NAME'",
            "count": 7,
            "market": "en-US",
            "set_lang": "en",
            "freshness": "7d"
          }
        ]
      }
    }
  ]
}'

Funktionsweise dieses Codes

Diese REST-API-Anforderung generiert eine Antwort unter Verwendung von Grounding mit der Benutzerdefinierten Bing-Suche. Die Anforderung:

  1. Sendet eine POST-Anforderung an den Endpunkt für Foundry-Antworten.
  2. Enthält die Modellbereitstellung und Benutzereingabe im Anforderungstext.
  3. Konfiguriert das Bing Custom Search-Tool mit Ihrem Instanznamen und Suchparametern.
  4. Gibt eine Antwort mit benutzerdefinierten Suchergebnissen zurück, die auf Ihre konfigurierten Domänen beschränkt sind.

Erforderliche Eingaben

  • Umgebungsvariablen: FOUNDRY_PROJECT_ENDPOINT, AGENT_TOKEN, FOUNDRY_MODEL_DEPLOYMENT_NAME, BING_CUSTOM_SEARCH_PROJECT_CONNECTION_IDBING_CUSTOM_SEARCH_INSTANCE_NAME
  • Gültiges Bearertoken mit entsprechenden Berechtigungen.
  • Bing Custom Search-Instanz, die bereits mit Zieldomänen konfiguriert ist

Erwartete Ausgabe

JSON-Antwort mit:

  • id: Antwort-ID
  • output_text: Generierter Text mit Informationen aus Ihrem benutzerdefinierten Domänensatz
  • citations: Array von URL-Zitaten aus Ihren konfigurierten Domänen

Die folgenden TypeScript-Beispiele veranschaulichen, wie Sie einen Agenten mit Grounding und Bing Search sowie Grounding und Bing Custom Search (Vorschau)-Tools erstellen und wie dieser Agent zum Beantworten von Benutzeranfragen verwendet werden kann. JavaScript-Beispiele finden Sie in den JavaScript-Beispielen agent-Tools im Azure SDK für JavaScript-Repository auf GitHub.

Grundlagen mit Bing-Suche

import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";

// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
const PROJECT_ENDPOINT = "your_project_endpoint";
const BING_CONNECTION_NAME = "my-bing-connection";

export async function main(): Promise<void> {
  // Create clients to call Foundry API
  const project = new AIProjectClient(PROJECT_ENDPOINT, new DefaultAzureCredential());
  const openai = project.getOpenAIClient();

  // Get connection ID from connection name
  const bingConnection = await project.connections.get(BING_CONNECTION_NAME);

  const agent = await project.agents.createVersion("MyBingGroundingAgent", {
    kind: "prompt",
    model: "gpt-4.1-mini",
    instructions: "You are a helpful assistant.",
    tools: [
      {
        type: "bing_grounding",
        bing_grounding: {
          search_configurations: [
            {
              project_connection_id: bingConnection.id,
            },
          ],
        },
      },
    ],
  });
  console.log(`Agent created (id: ${agent.id}, name: ${agent.name}, version: ${agent.version})`);

  // Send request that requires current information from the web
  const streamResponse = await openai.responses.create(
    {
      input: "What is today's date and weather in Seattle?",
      stream: true,
    },
    {
      body: {
        agent: { name: agent.name, type: "agent_reference" },
        tool_choice: "required",
      },
    },
  );

  // Process the streaming response
  for await (const event of streamResponse) {
    if (event.type === "response.created") {
      console.log(`Follow-up response created with ID: ${event.response.id}`);
    } else if (event.type === "response.output_text.delta") {
      process.stdout.write(event.delta);
    } else if (event.type === "response.output_text.done") {
      console.log("\n\nFollow-up response done!");
    } else if (event.type === "response.output_item.done") {
      if (event.item.type === "message") {
        const item = event.item;
        if (item.content && item.content.length > 0) {
          const lastContent = item.content[item.content.length - 1];
          if (lastContent.type === "output_text" && lastContent.annotations) {
            for (const annotation of lastContent.annotations) {
              if (annotation.type === "url_citation") {
                console.log(
                  `URL Citation: ${annotation.url}, Start index: ${annotation.start_index}, End index: ${annotation.end_index}`,
                );
              }
            }
          }
        }
      }
    } else if (event.type === "response.completed") {
      console.log("\nFollow-up completed!");
    }
  }

  // Clean up resources by deleting the agent version
  // This prevents accumulation of unused resources in your project
  console.log("\nCleaning up resources...");
  await project.agents.deleteVersion(agent.name, agent.version);
  console.log("Agent deleted");

  console.log("\nBing grounding agent sample completed!");
}

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

Funktionsweise dieses Codes

In diesem Beispiel wird mit dem Bing Search-Tool ein Agent mit Grounding erstellt, der Echtzeitinformationen aus dem Web abrufen kann. Wenn Sie den Code ausführen:

  1. Sie erstellt eine AIProjectClient und authentifiziert sich mithilfe Ihrer Azure Anmeldeinformationen.
  2. Erstellt einen Agenten mit dem Bing-Grounding-Tool, das mithilfe Ihrer Bing-Verbindung konfiguriert wird.
  3. Sendet eine Abfrage, die nach dem aktuellen Datum und wetter in Seattle fragt, wobei die Toolauswahl auf "erforderlich" festgelegt ist.
  4. Der Agent verwendet das Bing-Erdungstool, um das Web zu durchsuchen und die Antwort zu streamen.
  5. Verarbeitet Streamingereignisse und extrahiert URL-Zitate mit ihren Positionen im Text.
  6. Bereinigt durch Löschen der Agentversion.

Erforderliche Eingaben

  • Aktualisieren Sie die PROJECT_ENDPOINT Und BING_CONNECTION_NAME Konstanten im Code mit Ihren Werten.
  • Azure Anmeldeinformationen, die für DefaultAzureCredential konfiguriert sind.

Erwartete Ausgabe

Agent created (id: asst_abc123, name: MyBingGroundingAgent, version: 1)
Follow-up response created with ID: resp_xyz789
Today's date is December 12, 2025, and the weather in Seattle...

Follow-up response done!
URL Citation: https://www.weather.gov/seattle/, Start index: 45, End index: 120

Follow-up completed!

Cleaning up resources...
Agent deleted

Bing grounding agent sample completed!

Einführung in die benutzerdefinierte Bing-Suche (Vorschau)

import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";
import * as readline from "readline";

// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
const PROJECT_ENDPOINT = "your_project_endpoint";
const CUSTOM_SEARCH_CONNECTION_NAME = "my-custom-search-connection";
const CUSTOM_SEARCH_INSTANCE_NAME = "my-custom-search-instance";

export async function main(): Promise<void> {
  // Create clients to call Foundry API
  const project = new AIProjectClient(PROJECT_ENDPOINT, new DefaultAzureCredential());
  const openai = project.getOpenAIClient();

  // Get connection ID from connection name
  const bingCustomConnection = await project.connections.get(CUSTOM_SEARCH_CONNECTION_NAME);

  const agent = await project.agents.createVersion("MyAgent", {
    kind: "prompt",
    model: "gpt-4.1-mini",
    instructions:
      "You are a helpful agent that can use Bing Custom Search tools to assist users. Use the available Bing Custom Search tools to answer questions and perform tasks.",
    tools: [
      {
        type: "bing_custom_search_preview",
        bing_custom_search_preview: {
          search_configurations: [
            {
              project_connection_id: bingCustomConnection.id,
              instance_name: CUSTOM_SEARCH_INSTANCE_NAME,
            },
          ],
        },
      },
    ],
  });
  console.log(`Agent created (id: ${agent.id}, name: ${agent.name}, version: ${agent.version})`);

  // Prompt user for input
  const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
  });

  const userInput = await new Promise<string>((resolve) => {
    rl.question(
      "Enter your question for the Bing Custom Search agent (e.g., 'Tell me more about foundry agent service'): \n",
      (answer) => {
        rl.close();
        resolve(answer);
      },
    );
  });

  // Send initial request that will trigger the Bing Custom Search tool
  const streamResponse = await openai.responses.create(
    {
      input: userInput,
      stream: true,
    },
    {
      body: {
        agent: { name: agent.name, type: "agent_reference" },
      },
    },
  );

  // Process the streaming response
  for await (const event of streamResponse) {
    if (event.type === "response.created") {
      console.log(`Follow-up response created with ID: ${event.response.id}`);
    } else if (event.type === "response.output_text.delta") {
      process.stdout.write(event.delta);
    } else if (event.type === "response.output_text.done") {
      console.log("\n\nFollow-up response done!");
    } else if (event.type === "response.output_item.done") {
      if (event.item.type === "message") {
        const item = event.item;
        if (item.content && item.content.length > 0) {
          const lastContent = item.content[item.content.length - 1];
          if (lastContent.type === "output_text" && lastContent.annotations) {
            for (const annotation of lastContent.annotations) {
              if (annotation.type === "url_citation") {
                console.log(
                  `URL Citation: ${annotation.url}, Start index: ${annotation.start_index}, End index: ${annotation.end_index}`,
                );
              }
            }
          }
        }
      }
    } else if (event.type === "response.completed") {
      console.log("\nFollow-up completed!");
    }
  }

  // Clean up resources by deleting the agent version
  // This prevents accumulation of unused resources in your project
  console.log("\nCleaning up resources...");
  await project.agents.deleteVersion(agent.name, agent.version);
  console.log("Agent deleted");

  console.log("\nBing Custom Search agent sample completed!");
}

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

Funktionsweise dieses Codes

In diesem Beispiel wird ein Agent mit "Grounding" für die benutzerdefinierte Bing-Suche erstellt, der innerhalb Ihrer konfigurierten Domains durchsucht. Wenn Sie den Code ausführen:

  1. Sie erstellt eine AIProjectClient und authentifiziert sich mithilfe Ihrer Azure Anmeldeinformationen.
  2. Erstellt einen Agent mit dem Bing Custom Search-Tool, das mithilfe Ihrer benutzerdefinierten Suchinstanz konfiguriert ist.
  3. Fordert die Benutzereingabe zur Laufzeit über die Befehlszeile auf.
  4. Der Agent verwendet das Bing Custom Search-Tool, um nur Ihre angegebenen Domänen zu durchsuchen und die Antwort zu streamen.
  5. Verarbeitet Streamingereignisse und extrahiert URL-Zitate mit ihren Positionen im Text.
  6. Bereinigt durch Löschen der Agentversion.

Erforderliche Eingaben

  • Aktualisieren Sie die PROJECT_ENDPOINT, CUSTOM_SEARCH_CONNECTION_NAMEund CUSTOM_SEARCH_INSTANCE_NAME Konstanten im Code mit Ihren Werten.
  • Azure Anmeldeinformationen, die für DefaultAzureCredential konfiguriert sind.
  • Benutzereingaben, die zur Laufzeit über die Konsole bereitgestellt werden.

Erwartete Ausgabe

Agent created (id: asst_abc123, name: MyAgent, version: 1)
Enter your question for the Bing Custom Search agent (e.g., 'Tell me more about foundry agent service'):
Tell me more about foundry agent service
Follow-up response created with ID: resp_xyz789
Microsoft Foundry Agent Service enables you to build...

Follow-up response done!
URL Citation: https://learn.microsoft.com/azure/ai-foundry/agents, Start index: 0, End index: 89

Follow-up completed!

Cleaning up resources...
Agent deleted

Bing Custom Search agent sample completed!

Verwenden Sie Bing Grounding in einem Java-Agenten

Fügen Sie die Abhängigkeit zu Ihrem pom.xml hinzu:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-ai-agents</artifactId>
    <version>2.0.0</version>
</dependency>

Erstellen eines Agents mit Bing-Verbindung

import com.azure.ai.agents.AgentsClient;
import com.azure.ai.agents.AgentsClientBuilder;
import com.azure.ai.agents.ResponsesClient;
import com.azure.ai.agents.models.*;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;

import java.util.Arrays;
import java.util.Collections;

public class BingGroundingExample {
    public static void main(String[] args) {
        // Format: "https://resource_name.ai.azure.com/api/projects/project_name"
        String projectEndpoint = "your_project_endpoint";
        String bingConnectionId = "my-bing-connection-id";

        AgentsClientBuilder builder = new AgentsClientBuilder()
            .credential(new DefaultAzureCredentialBuilder().build())
            .endpoint(projectEndpoint);

        AgentsClient agentsClient = builder.buildAgentsClient();
        ResponsesClient responsesClient = builder.buildResponsesClient();

        // Create Bing grounding tool with connection configuration
        BingGroundingTool bingTool = new BingGroundingTool(
            new BingGroundingSearchToolParameters(Arrays.asList(
                new BingGroundingSearchConfiguration(bingConnectionId)
            ))
        );

        // Create agent with Bing grounding tool
        PromptAgentDefinition agentDefinition = new PromptAgentDefinition("gpt-4.1-mini")
            .setInstructions("You are a helpful assistant. Use Bing to find up-to-date information.")
            .setTools(Collections.singletonList(bingTool));

        AgentVersionDetails agent = agentsClient.createAgentVersion("bing-grounding-agent", agentDefinition);
        System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion());

        // Create a response
        AgentReference agentReference = new AgentReference(agent.getName())
            .setVersion(agent.getVersion());

        Response response = responsesClient.createAzureResponse(
            new AzureCreateResponseOptions().setAgentReference(agentReference),
            ResponseCreateParams.builder()
                .input("What are the latest developments in AI?"));

        System.out.println("Response: " + response.output());

        // Clean up
        agentsClient.deleteAgentVersion(agent.getName(), agent.getVersion());
    }
}

Funktionsweise

Die Benutzerabfrage ist die Nachricht, dass ein Endbenutzer an einen Agent sendet, z. B. *"sollte ich heute einen Regenschirm mit mir nehmen? Ich bin in Seattle." *Anweisungen sind die Systemnachricht, die ein Entwickler bereitstellen kann, um Kontext zu teilen und Anweisungen für das KI-Modell zur Verwendung verschiedener Tools oder Verhalten bereitzustellen.

Wenn ein Benutzer eine Abfrage sendet, verarbeitet die KI-Modellbereitstellung des Kunden diese zuerst (mithilfe der bereitgestellten Anweisungen), um später eine Bing-Suchabfrage auszuführen (die für Entwickler sichtbar ist). Die Verankerung mit Bing liefert relevante Suchergebnisse an die Modellimplementierung des Kunden zurück, die dann die finale Ausgabe generiert.

Hinweis

Wenn Sie Grounding mit Bing Search oder Grounding mit der benutzerdefinierten Bing-Suche verwenden, werden nur die Bing-Suchabfrage, die Toolparameter und Ihr Ressourcenschlüssel an Bing gesendet. Der Dienst sendet keine endbenutzerspezifischen Informationen. Ihr Ressourcenschlüssel wird ausschließlich für Abrechnungs- und Zinsgrenzwerte an Bing gesendet.

Die Autorisierung erfolgt zwischen dem Grounding mit Bing Search oder Grounding mit dem benutzerdefinierten Bing-Suchdienst und dem Foundry Agent-Dienst. Jede Bing-Suchanfrage, die der Dienst generiert und an Bing sendet, wird zu Zwecken der Verankerung zusammen mit dem Ressourcenschlüssel außerhalb der Compliance-Grenze von Azure an den Dienst "Grounding mit Bing Search" übertragen. Die Verwendung von Bing Search unterliegt den Bedingungen von Bing und verfügt nicht über die gleichen Compliance-Standards und Zertifizierungen wie der Agentendienst, wie in den Nutzungsbedingungen beschrieben. Sie sind dafür verantwortlich, zu beurteilen, ob die Verwendung von Grounding mit Bing Search oder Grounding mit Bing Custom Search in Ihrem Agenten Ihren Bedürfnissen und Anforderungen entspricht.

Transaktionen mit Ihrer Grounding-Bing-Ressource werden nach der Anzahl der Toolaufrufe pro Durchlauf gezählt. Sie können sehen, wie viele Toolaufrufe aus dem Ausführungsschritt ausgeführt werden.

Entwickler und Endbenutzer haben keinen Zugriff auf unformatierte Inhalte, die von Grounding mit Bing Search zurückgegeben werden. Die Modellantwort enthält jedoch Zitate mit Links zu den Websites, die verwendet werden, um die Antwort zu generieren, und einen Link zur Bing-Abfrage, die für die Suche verwendet wird. Sie können die Modellantwort abrufen, indem Sie auf die Daten in der Unterhaltung zugreifen, die erstellt wurde. Diese beiden Verweise müssen in der genauen Form aufbewahrt und angezeigt werden, die von Microsoft bereitgestellt wird, gemäß der Verankerung mit Bing Searchs Nutzungs- und Anzeigeanforderungen. Ausführliche Informationen finden Sie im Abschnitt "Grounding with Bing Search results".

So werden Suchergebnisse angezeigt

Gemäß den Nutzungsbedingungen und Anzeigeanforderungen laut Grounding mit Bing müssen Sie sowohl die URLs von Websites als auch die URLs von Bing-Suchanfragen in Ihrer benutzerdefinierten Oberfläche anzeigen. Diese Informationen finden Sie in der API-Antwort im arguments Parameter. Um die Webseite zu rendern, ersetzen Sie den Endpunkt der Bing-Suchabfrage-URL durch www.bing.com und Ihre Bing-Suchabfrage-URL würde wie https://www.bing.com/search?q={search query} aussehen.

Screenshot mit Zitaten für Bing-Suchergebnisse.

Grundlage mit der Bing Custom Search-Konfiguration

Die Verankerung mit der benutzerdefinierten Bing-Suche ist ein leistungsstarkes Tool, mit dem Sie einen Unterbereich des Webs auswählen können, um das Verankerungswissen Ihres Agenten einzuschränken. Hier sind einige Tipps, die Ihnen helfen, diese Funktion vollständig zu nutzen:

  • Wenn Sie eine öffentliche Website besitzen, die Sie in die Suche aufnehmen möchten, die Bing jedoch noch nicht indiziert hat, finden Sie in den Bing Webmaster-Richtlinien ausführliche Informationen dazu, wie Ihre Website indiziert werden kann. Die Webmasterdokumentation enthält auch Details zum Abrufen von Bing zum Durchforsten Ihrer Website, wenn der Index veraltet ist.
  • Sie benötigen mindestens die Mitwirkenderolle für die Bing Custom Search-Ressource, um eine Konfiguration zu erstellen.
  • Sie können nur bestimmte Domänen blockieren und eine Suche für den Rest des Webs durchführen (z. B. die Website eines Wettbewerbers).
  • Die Grundlage für die benutzerdefinierte Bing-Suche gibt nur Ergebnisse für Domänen und Webseiten zurück, die von Bing öffentlich und indiziert sind.
    • Domäne (z. B https://www.microsoft.com. )
    • Domäne und Pfad (z. B https://www.microsoft.com/surface. )
    • Webseite (z. B https://www.microsoft.com/en-us/p/surface-earbuds/8r9cpq146064. )

Optionale Parameter

Wenn Sie dem Agenten das Tool "Grounding mit Bing Search" oder "Grounding mit Bing Custom Search" hinzufügen, können Sie die folgenden Parameter übergeben. Diese Parameter wirken sich auf die Toolausgabe aus, und das KI-Modell verwendet möglicherweise nicht vollständig alle Ausgaben. In den Codebeispielen finden Sie Informationen zur Unterstützung von API-Versionen und wie man diese Parameter übergibt.

Namen Wert Typ Erforderlich
count Die Anzahl der Suchergebnisse, die in der Antwort zurückgegeben werden sollen. Der Standardwert ist 5, und der Maximalwert ist 50. Die tatsächlich gelieferte Zahl kann kleiner als angefordert sein. Mehrere Seiten können eine gewisse Überschneidung in den Ergebnissen aufweisen. Dieser Parameter wirkt sich nur auf Webseitenergebnisse aus. Es ist möglich, dass das KI-Modell möglicherweise nicht alle von Bing zurückgegebenen Suchergebnisse verwendet. UnsignedShort Nein
freshness Filtern Sie Suchergebnisse nach dem folgenden Alter, unabhängig von der Groß-/Kleinschreibung:
Tag: Zurückgeben von Webseiten, die Bing innerhalb der letzten 24 Stunden entdeckt hat.
Woche: Zurückgeben von Webseiten, die Bing innerhalb der letzten 7 Tage entdeckt hat.
Monat: Zurückgeben von Webseiten, die Bing innerhalb der letzten 30 Tage entdeckt hat. Um Artikel abzurufen, die von Bing während eines bestimmten Zeitrahmens entdeckt werden, geben Sie einen Datumsbereich in der Form an: YYYY-MM-DD..YYYY-MM-DD. Beispiel: freshness=2019-02-01..2019-05-30. Um die Ergebnisse auf ein einzelnes Datum zu beschränken, legen Sie diesen Parameter auf ein bestimmtes Datum fest. Beispiel: freshness=2019-02-04.
Schnur Nein
market Der Markt, aus dem die Ergebnisse stammen. Typischerweise ist mkt das Land/die Region, von dem der Benutzer die Anfrage sendet. Es kann jedoch ein anderes Land/eine andere Region sein, wenn sich der Benutzer nicht in einem Land/einer Region befindet, in dem Bing Ergebnisse liefert. Der Markt muss in folgender Form vorliegen: <language>-<country/region>. Beispiel: en-US. Bei der Zeichenfolge wird die Groß-/Kleinschreibung nicht beachtet. Eine Liste möglicher Marktwerte finden Sie unter "Marktcodes". Wenn bekannt, werden Sie ermutigt, immer den Markt anzugeben. Wenn Sie den Markt angeben, hilft Bing, die Anforderung weiter zu leiten und eine entsprechende und optimale Antwort zurückzugeben. Wenn Sie einen Markt angeben, der nicht in Marktcodes aufgeführt ist, verwendet Bing einen am besten geeigneten Marktcode basierend auf einer internen Zuordnung, die geändert werden kann. Schnur Nein
set_lang Die Sprache, die für Benutzeroberflächenzeichenfolgen verwendet werden soll. Sie können die Sprache entweder mit einem 2-Buchstaben- oder einem 4-Buchstaben-Code angeben. Die Verwendung von 4-Buchstaben-Codes wird bevorzugt.
Eine Liste der unterstützten Sprachcodes finden Sie unter Bing unterstützte Sprachen.
Bing lädt die lokalisierten Zeichenfolgen, wenn setlang ein gültiger 2-Buchstaben-neutraler Kulturcode (fr) oder ein gültiger 4-Buchstaben-spezifischer Kulturcode (fr-ca) enthält. fr-caBeispielsweise lädt Bing die fr neutralen Kulturcodezeichenfolgen.
Wenn setlang ungültig ist (z. B. zh) oder Bing die Sprache nicht unterstützt (z. B. af, af-na), verwendet Bing standardmäßig en (Englisch).
Um den 2-Buchstaben-Code anzugeben, legen Sie diesen Parameter auf einen ISO 639-1-Sprachcode fest.
Um den 4-Buchstaben-Code anzugeben, verwenden Sie das Formular <language>-<country/region> , in <language> dem es sich um einen ISO 639-1-Sprachcode (neutrale Kultur) handelt und <country/region> ein ISO 3166-Länder-/Regionscode (spezifische Kultur) ist. Verwenden Sie beispielsweise en-US für amerikanisches Englisch.
Obwohl optional, sollten Sie immer die Sprache angeben. In der Regel setzen Sie setLang auf dieselbe Sprache wie die von mkt angegebene, es sei denn, der Benutzer möchte, dass die Zeichenfolgen der Benutzeroberfläche in einer anderen Sprache angezeigt werden.
Schnur Nein

Unterstützte Funktionen und bekannte Probleme

  • Das Grounding mit Bing Search-Tool dient zum Abrufen von Echtzeitinformationen aus dem Web, nicht für bestimmte Webdomänen. Verwenden Sie zum Abrufen von Informationen aus bestimmten Bereichen das Grounding-Tool mit der Bing Custom Search.
  • Bitten Sie das Modell nicht, eine ganze Webseite zusammenzufassen .
  • Innerhalb einer Ausführung wertet das KI-Modell die Toolausgabe aus und kann sich entscheiden, das Tool erneut für weitere Informationen und Kontext aufzurufen. Das KI-Modell kann auch entscheiden, welche Teile der Werkzeugausgaben verwendet werden, um die Antwort zu generieren.
  • Der Foundry Agent Service gibt KI-Modell generierte Antworten als Ausgabe zurück, sodass die End-to-End-Latenz durch die Modellvorverarbeitung und nach der Verarbeitung beeinflusst wird.
  • Das Grounding mit Bing Search und Grounding mit Bing Custom Search Tools gibt die Toolausgabe nicht an Entwickler und Endbenutzer zurück.
  • Das Grounding mit Bing Search und das Grounding mit Bing Custom Search funktioniert nur mit Agents, die keinen VPN oder privaten Endpunkte verwenden. Der Agent muss über normalen Netzwerkzugriff verfügen.
  • Verwenden Sie das standardmäßige Zitatmuster (die in annotation gesendeten Links) für Links aus der Verankerung mit Bing-Tools. Bitten Sie das Modell nicht, Zitatlinks zu generieren.

Problembehandlung

Verwenden Sie diesen Abschnitt, um häufige Probleme bei verwendung von Grounding mit Bing Search-Tools zu beheben.

Fehler beim Verbindungs-ID-Format

Problem: Fehlermeldung, die ein ungültiges Verbindungs-ID-Format angibt.

Lösung: Überprüfen Sie, ob Die Verbindungs-ID dem erforderlichen Format entspricht:

/subscriptions/{{subscriptionID}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.CognitiveServices/accounts/{{foundryAccountName}}/projects/{{foundryProjectName}}/connections/{{foundryConnectionName}}

Ersetzen Sie alle Platzhalterwerte (einschließlich {{ und }}) durch Ihre tatsächlichen Ressourcenbezeichner.

Authentifizierungsfehler

Problem: Fehler "Nicht autorisiert" oder "Verboten" beim Erzeugen von Agenten oder Durchführen von Abfragen.

Lösung:

  1. Stellen Sie sicher, dass Sie über die erforderlichen RBAC-Rollen verfügen:
    • Rolle als Mitwirkender oder Besitzer für die Erstellung von Bing-Ressourcen
    • Rolle des Projektmanagers für Azure Künstliche Intelligenz zum Erstellen von Projektverbindungen
  2. Überprüfen Sie, ob Ihre Azure Anmeldeinformationen ordnungsgemäß konfiguriert sind:
    • Für Python/TypeScript: DefaultAzureCredential kann authentifiziert werden.
    • Für REST: Bearer-Token ist gültig und nicht abgelaufen
  3. Führen Sie az login aus, um Ihre Anmeldeinformationen zu aktualisieren, wenn Sie Azure CLI verwenden.

Netzwerkkonnektivitätsprobleme

Problem: Bei Bing Search-Anfragen tritt ein Timeout auf oder eine Verbindung kann nicht hergestellt werden.

Lösung: Grounding mit Bing-Suche und Grounding mit der benutzerdefinierten Bing-Suche funktionieren nicht bei VPN- oder privaten Endpunkten. Sicherstellen:

  • Ihr Netzwerk verfügt über normalen Internetzugang.
  • Sie verwenden keine VPN-Verbindung.
  • Private Endpunkte sind nicht für den Agentdienst konfiguriert.
  • Firewallregeln ermöglichen ausgehende Verbindungen mit Bing-Diensten.

Benutzerdefinierte Suche gibt keine Ergebnisse zurück.

Problem: Die benutzerdefinierte Bing-Suche gibt leere Ergebnisse zurück oder findet keine erwarteten Inhalte.

Lösung:

  • Überprüfen Sie, ob Ihre benutzerdefinierte Suchinstanz ordnungsgemäß mit Zieldomänen konfiguriert ist.
  • Stellen Sie sicher, dass die Domänen, die Sie durchsuchen möchten, von Bing öffentlich und indiziert sind.
  • Überprüfen Sie, ob die konfigurierten Domänen Ihren Erwartungen an die Suchabfrage entsprechen.
  • Wenn Ihre Website nicht indiziert ist, lesen Sie Bing Webmaster-Richtlinien für Anweisungen zur Indizierung.
  • Warten Sie, bis Bing kürzlich hinzugefügte oder aktualisierte Inhalte durchforstet (kann mehrere Tage dauern).

Fehlende oder ungültige Konfigurationswerte

Problem: Code schlägt mit Verbindungsfehlern oder "nicht gefundenen" Antworten fehl.

Lösung: Stellen Sie sicher, dass Sie alle erforderlichen Konstanten im Code mit ihren tatsächlichen Werten aktualisieren:

  • PROJECT_ENDPOINT (Python/TypeScript) oder projectEndpoint (C#/Java): Die URL des Foundry-Projektendpunkts.
  • Verbindungsname oder -ID für Ihre Bing-Ressource.
  • Für die benutzerdefinierte Suche: Der Name der benutzerdefinierten Suchinstanz.
  • Legen Sie für REST-API Umgebungsvariablen fest: FOUNDRY_PROJECT_ENDPOINT, , FOUNDRY_MODEL_DEPLOYMENT_NAMEoder BING_PROJECT_CONNECTION_IDBING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID, und AGENT_TOKEN.

Agent verwendet nicht das Erdungstool

Problem: Der Agent antwortet, ohne das Bing-Erdungstool aufzurufen.

Lösung:

  • Stellen Sie sicher, dass ihre Abfrage aktuelle Informationen benötigt, die das Modell nicht kennt.
  • Legen Sie für die explizite Toolverwendung tool_choice="required" in Ihrer Anforderung fest (Python/TypeScript-Beispiele zeigen dies).
  • Überprüfen Sie, ob das Tool in der Agentdefinition ordnungsgemäß konfiguriert ist.
  • Konsultieren Sie die Anweisungen des Agenten, um die verfügbaren Tools für aktuelle Informationen zu nutzen.

Instanzname für Grounding mit dem benutzerdefinierten Bing-Suchtool wurde nicht gefunden.

Problem:

{"error": "Tool_User_Error", "message": "[bing_search] Failed to call Get Custom Search Instance with status 404: {\"error\":{\"code\":\"ResourceNotFound\",\"message\":\"Instance or Customer not found\",\"target\":\"instanceName or customerId\"}}."}

Lösung:

  • Stellen Sie sicher, dass sich Ihr Instanzname in der Grounding-Ressource mit Bing Custom Search befindet, die Sie verwenden.
  • Überprüfen Sie noch einmal, ob der Instanzname richtig geschrieben ist.

Administratoren können RBAC-Rollenzuweisungen verwenden, um die Verwendung von "Grounding with Bing" und "Grounding with Bing Custom Search" innerhalb des Abonnements oder der Ressourcengruppe zu aktivieren oder zu deaktivieren.

  1. Der Administrator registriert Microsoft.Bing im Azure-Abonnement. Der Administrator benötigt Berechtigungen zum Ausführen des /register/action Vorgangs für den Ressourcenanbieter. Die Rollen "Mitwirkender" und "Besitzer" enthalten diese Berechtigung. Weitere Informationen zum Registrieren finden Sie unter Azure Ressourcenanbieter und -typen.
  2. Nachdem der Administrator Microsoft.Bing registriert hat, können Benutzer mit Berechtigungen den Ressourcenschlüssel für ein Grounding mit Bing und/oder Grounding mit Bing Custom Search-Ressource erstellen, löschen oder abrufen. Diese Benutzer benötigen die Rolle "Mitwirkender" oder "Besitzer " auf Abonnement- oder Ressourcengruppenebene.
  3. Nachdem Sie ein Grounding mit Bing und/oder mit der benutzerdefinierten Bing-Suchressource für Grounding erstellt haben, können Benutzer mit Berechtigungen eine Verbindung mit Microsoft Foundry erstellen, um die Ressource zu verbinden und sie als Tool im Foundry-Agentendienst zu verwenden. Diese Benutzer benötigen mindestens die rolle Azure AI Project Manager.
  1. Der Administrator benötigt die Rolle "Besitzer " oder "Mitwirkender " im Abonnement.
  2. Der Administrator löscht alle Grounding mit Bing Search und Grounding mit Bing Custom Search-Ressourcen im Abonnement.
  3. Der Administrator hebt die Registrierung des Microsoft.Bing Ressourcenanbieters im Abonnement auf (Sie können die Registrierung vor dem Löschen aller Ressourcen nicht aufheben). Weitere Informationen finden Sie unter Azure Ressourcenanbieter und -typen.
  4. Der Administrator erstellt eine Azure Policy, um die Erstellung von Grounding mit Bing Search und Grounding mit Bing Custom Search-Ressourcen in ihrem Abonnement entsprechend dem Beispiel zu verbieten.

Nächste Schritte