Web Search

Met webzoekopdrachten kunnen agents op internet zoeken naar up-to-datumgegevens. Met dit hulpprogramma kunnen agents vragen beantwoorden over actuele gebeurtenissen, documentatie zoeken en toegang krijgen tot informatie buiten hun trainingsgegevens.

Opmerking

Beschikbaarheid van webzoekopdrachten is afhankelijk van de onderliggende agentprovider. Zie Overzicht van providers voor providerspecifieke ondersteuning.

In het volgende voorbeeld ziet u hoe u een agent maakt met het hulpprogramma Webzoekopdrachten:

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?"));

Warning

DefaultAzureCredential is handig voor ontwikkeling, maar vereist zorgvuldige overwegingen in de productieomgeving. Overweeg in productie een specifieke referentie te gebruiken (bijvoorbeeld ManagedIdentityCredential) om latentieproblemen, onbedoelde referentieprobing en potentiƫle beveiligingsrisico's van terugvalmechanismen te voorkomen.

In het volgende voorbeeld ziet u hoe u een agent maakt met het hulpprogramma Webzoekopdrachten:

# 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())

Zoeken op internet

Met hostedtool.WebSearch het type kunt u zoeken aan de serverzijde wanneer u een provider gebruikt die dit ondersteunt.

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},
    },
})

Opmerking

Webzoekopdrachten is een gehost hulpprogramma: de zoekopdracht wordt uitgevoerd door de AI-service, niet lokaal.

Webzoekopdrachten gebruiken met Harness Agent

Voor een gewone agent voegt u deze toe HostedWebSearchTool aan de hulpprogramma's van de agent, zoals eerder wordt weergegeven. HarnessAgent voegt er standaard een HostedWebSearchTool toe, dus er is geen hulpprogrammaregistratie vereist:

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.",
    },
});

Instellen DisableWebSearch = true wanneer de geselecteerde provider geen ondersteuning biedt voor gehoste zoekopdrachten op internet of wanneer u zelf ChatOptions.Toolseen providerspecifiek zoekprogramma wilt registreren. Als u uw eigen webzoekprogramma toevoegt zonder de standaardwaarde uit te schakelen, ontvangt de agent beide hulpprogramma's.

Webzoekopdrachten worden gehost door de modelprovider; er is geen lokale zoekclientlevenscyclus voor de Harness die moet worden beheerd. Beschikbaarheid, ondersteunde modellen, zoekparameters, gegevenslocatie en facturering zijn afhankelijk van de IChatClient provider. Niet-ondersteunde clients kunnen het gehoste hulpprogramma weigeren wanneer de aanvraag wordt verzonden.

Zoekquery's en resultaten behandelen als gegevens die een grens van een externe vertrouwensrelatie overschrijden. Neem geen geheimen op in query's en behandel opgehaalde pagina's als niet-vertrouwde inhoud die indirecte promptinjectie kan bevatten. Controleer belangrijke claims en bronvermeldingen voordat u acties uitvoert.

HarnessAgent is beschikbaar via het Microsoft.Agents.AI.Harness pakket.

Voor een gewone agent roept client.get_web_search_tool(...) u het geretourneerde hulpprogramma aan en geeft u dit door aan Agent, zoals eerder wordt weergegeven. create_harness_agent aanroepen client.get_web_search_tool() zonder argumenten standaard wanneer de client het volgende implementeert SupportsWebSearchTool:

from agent_framework import create_harness_agent

agent = create_harness_agent(client=client)

Als de client niet implementeert SupportsWebSearchTool, registreert de factory een waarschuwing en gaat deze verder zonder webzoekopdrachten. Ingesteld disable_web_search=True om automatische registratie en de waarschuwing te onderdrukken.

Als u providerspecifieke instellingen wilt doorgeven, schakelt u de standaardinstelling uit en registreert u het geconfigureerde hulpprogramma expliciet:

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",
        )
    ],
)

De provider is eigenaar van de uitvoering en levenscyclus van gehoste zoekopdrachten. Ondersteunde parameters, modellen, gegevensverwerking en facturering zijn afhankelijk van de client-implementatie. Plaats geen geheimen in query's, behandel opgehaalde inhoud als niet-vertrouwde invoer en controleer belangrijke claims en bronvermeldingen voordat u acties onderneemt.

create_harness_agent wordt vrijgegeven in agent-framework-core; webzoekopdrachten blijven alleen beschikbaar via clients die implementeren SupportsWebSearchTool.

Een verpakte Go Harness is momenteel niet beschikbaar. Toevoegen hostedtool.WebSearch aan een gewone Go-agent, zoals eerder is weergegeven.

Volgende stappen