Web Search

Die Websuche ermöglicht Es Agents, das Web nach up-to-datumsinformationen zu durchsuchen. Dieses Tool ermöglicht Es Agents, Fragen zu aktuellen Ereignissen zu beantworten, Dokumentationen zu finden und über ihre Schulungsdaten hinaus auf Informationen zuzugreifen.

Hinweis

Die Verfügbarkeit der Websuche hängt vom zugrunde liegenden Agentanbieter ab. Siehe Anbieterübersicht für anbieterspezifischen Support.

Das folgende Beispiel zeigt, wie Sie einen Agent mit dem Websuchtool erstellen:

using System;
using Azure.AI.Projects;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;

// Requires: dotnet add package Microsoft.Agents.AI.Foundry --prerelease
var endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT")
    ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini";

// Create an agent with hosted web search.
AIAgent agent = new AIProjectClient(new Uri(endpoint), new DefaultAzureCredential())
    .AsAIAgent(
        model: deploymentName,
        instructions: "You are a helpful assistant that can search the web for current information.",
        tools: [new HostedWebSearchTool()]);

Console.WriteLine(await agent.RunAsync("What is the current weather in Seattle?"));

Warnung

DefaultAzureCredential ist praktisch für die Entwicklung, erfordert aber sorgfältige Überlegungen in der Produktion. Berücksichtigen Sie in der Produktion die Verwendung bestimmter Anmeldeinformationen (z. B. ManagedIdentityCredential), um Latenzprobleme, unbeabsichtigte Abfragen von Anmeldeinformationen und potenzielle Sicherheitsrisiken durch Ausweichmechanismen zu vermeiden.

Das folgende Beispiel zeigt, wie Sie einen Agent mit dem Websuchtool erstellen:

# Copyright (c) Microsoft. All rights reserved.

import asyncio

from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient

"""
OpenAI Responses Client with Web Search Example

This sample demonstrates using get_web_search_tool() with OpenAI Responses Client
for direct real-time information retrieval and current data access.
"""


async def main() -> None:
    client = OpenAIChatClient()

    # Create web search tool with location context
    web_search_tool = client.get_web_search_tool(
        user_location={"city": "Seattle", "country": "US"},
    )

    agent = Agent(
        client=client,
        instructions="You are a helpful assistant that can search the web for current information.",
        tools=[web_search_tool],
    )

    message = "What is the current weather? Do not ask for my current location."
    stream = False
    print(f"User: {message}")

    if stream:
        print("Assistant: ", end="")
        async for chunk in agent.run(message, stream=True):
            if chunk.text:
                print(chunk.text, end="")
        print("")
    else:
        response = await agent.run(message)
        print(f"Assistant: {response}")


if __name__ == "__main__":
    asyncio.run(main())

Websuche

Der hostedtool.WebSearch Typ ermöglicht die serverseitige Websuche bei Verwendung eines Anbieters, der ihn unterstützt.

import "github.com/microsoft/agent-framework-go/tool/hostedtool"

webSearch := &hostedtool.WebSearch{}

a := foundryprovider.NewAgent(endpoint, token, foundryprovider.ModelDeployment(model), foundryprovider.AgentConfig{
    Config: agent.Config{
        Tools: []tool.Tool{webSearch},
    },
})

Hinweis

Die Websuche ist ein gehostetes Tool – die Suche wird vom KI-Dienst ausgeführt, nicht lokal.

Verwenden der Websuche mit Dem Harness Agent

Fügen Sie HostedWebSearchTool für einen einfachen Agent die Tools des Agents hinzu, wie zuvor gezeigt. HarnessAgent fügt standardmäßig ein HostedWebSearchTool Tool hinzu, sodass keine Toolregistrierung erforderlich ist:

using Microsoft.Agents.AI;

AIAgent agent = chatClient.AsHarnessAgent(new HarnessAgentOptions
{
    ChatOptions = new()
    {
        Instructions = "Use web search for current information and cite the sources you used.",
    },
});

Wird festgelegt DisableWebSearch = true , wenn der ausgewählte Anbieter die gehostete Websuche nicht unterstützt oder wenn Sie ein anbieterspezifisches Suchtool selbst registrieren ChatOptions.Toolsmöchten. Wenn Sie Ihr eigenes Websuchtool hinzufügen, ohne den Standardwert zu deaktivieren, empfängt der Agent beide Tools.

Die Websuche wird vom Modellanbieter gehostet; es gibt keinen lokalen Suchclientlebenszyklus für die Verwaltung der Nutzung. Verfügbarkeit, unterstützte Modelle, Suchparameter, Datenhaltung und Abrechnung hängen vom IChatClient Anbieter ab. Nicht unterstützte Clients können das gehostete Tool ablehnen, wenn die Anforderung gesendet wird.

Behandeln Von Suchabfragen und Ergebnissen als Daten, die eine externe Vertrauensgrenze überschreiten. Schließen Sie keine geheimen Schlüssel in Abfragen ein, und behandeln Sie abgerufene Seiten als nicht vertrauenswürdige Inhalte, die eine indirekte Eingabeaufforderungseinfügung enthalten können. Überprüfen Sie wichtige Ansprüche und Zitate, bevor Sie Maßnahmen ergreifen.

HarnessAgent steht im Microsoft.Agents.AI.Harness Paket zur Verfügung.

Rufen Sie client.get_web_search_tool(...) für einen einfachen Agent das zurückgegebene Tool an Agent, wie zuvor gezeigt. create_harness_agent Aufrufe client.get_web_search_tool() ohne Argumente standardmäßig, wenn der Client folgendes implementiert SupportsWebSearchTool:

from agent_framework import create_harness_agent

agent = create_harness_agent(client=client)

Wenn der Client nicht implementiert SupportsWebSearchToolwird, protokolliert die Factory eine Warnung und wird ohne Websuche fortgesetzt. Wird festgelegt disable_web_search=True , um die automatische Registrierung und die Warnung zu unterdrücken.

Um anbieterspezifische Einstellungen zu übergeben, deaktivieren Sie die Standardeinstellung, und registrieren Sie das konfigurierte Tool explizit:

agent = create_harness_agent(
    client=client,
    disable_web_search=True,
    tools=[
        client.get_web_search_tool(
            user_location={"city": "Seattle", "country": "US"},
            search_context_size="medium",
        )
    ],
)

Der Anbieter besitzt die Ausführung und den Lebenszyklus der gehosteten Suche. Unterstützte Parameter, Modelle, Datenverarbeitung und Abrechnung hängen von der Clientimplementierung ab. Fügen Sie keine geheimen Schlüssel in Abfragen ein, behandeln Sie abgerufene Inhalte als nicht vertrauenswürdige Eingaben, und überprüfen Sie wichtige Ansprüche und Zitate, bevor Sie Aktionen ausführen.

create_harness_agent wird veröffentlicht in agent-framework-core; Websuche bleibt nur über Clients verfügbar, die implementiert werden SupportsWebSearchTool.

Ein verpacktes Go Harness ist derzeit nicht verfügbar. Fügen Sie hostedtool.WebSearch einen einfachen Go-Agent hinzu, wie zuvor gezeigt.

Nächste Schritte