Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Web Search umożliwia agentom wyszukiwanie w Internecie up-to-date informacji. To narzędzie umożliwia agentom odpowiadanie na pytania dotyczące bieżących zdarzeń, znajdowanie dokumentacji i uzyskiwanie dostępu do informacji poza ich danymi treningowymi.
Uwaga / Notatka
Dostępność wyszukiwania w Sieci Web zależy od bazowego dostawcy agenta. Zobacz Omówienie dostawców , aby uzyskać pomoc techniczną specyficzną dla dostawcy.
W poniższym przykładzie pokazano, jak utworzyć agenta za pomocą narzędzia wyszukiwania w Sieci Web:
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?"));
Ostrzeżenie
DefaultAzureCredential jest wygodne do programowania, ale wymaga starannego rozważenia w środowisku produkcyjnym. W środowisku produkcyjnym rozważ użycie określonego poświadczenia (np. ManagedIdentityCredential), aby uniknąć problemów z opóźnieniami, niezamierzonego sondowania poświadczeń i potencjalnych zagrożeń bezpieczeństwa wynikających z mechanizmów awaryjnych.
W poniższym przykładzie pokazano, jak utworzyć agenta za pomocą narzędzia wyszukiwania w Sieci Web:
# 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())
Wyszukiwanie w Internecie
Typ hostedtool.WebSearch umożliwia wyszukiwanie w Internecie po stronie serwera podczas korzystania z dostawcy, który go obsługuje.
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},
},
})
Uwaga / Notatka
Wyszukiwanie w Sieci Web to narzędzie hostowane — wyszukiwanie jest wykonywane przez usługę sztucznej inteligencji, a nie lokalnie.
Używanie wyszukiwania w Internecie z agentem uprzęży
W przypadku zwykłego agenta dodaj HostedWebSearchTool do narzędzi agenta, jak pokazano wcześniej.
HarnessAgent dodaje jeden HostedWebSearchTool domyślnie, więc rejestracja narzędzia nie jest wymagana:
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.",
},
});
Ustaw DisableWebSearch = true , gdy wybrany dostawca nie obsługuje hostowanego wyszukiwania w Internecie lub gdy chcesz samodzielnie zarejestrować narzędzie wyszukiwania specyficzne dla dostawcy za pośrednictwem usługi ChatOptions.Tools. Jeśli dodasz własne narzędzie do wyszukiwania w Internecie bez wyłączania wartości domyślnej, agent otrzyma oba narzędzia.
Wyszukiwanie w sieci Web jest hostowane przez dostawcę modelu; Nie ma lokalnego cyklu życia klienta wyszukiwania, aby uprzęży zarządzać. Dostępność, obsługiwane modele, parametry wyszukiwania, rezydencja danych i rozliczenia zależą od dostawcy IChatClient . Nieobsługiwane klienci mogą odrzucać hostowane narzędzie po wysłaniu żądania.
Traktuj zapytania wyszukiwania i wyniki jako dane przechodzące przez zewnętrzną granicę zaufania. Nie dołączaj wpisów tajnych do zapytań i traktuj pobrane strony jako niezaufaną zawartość, która może zawierać pośrednie wstrzyknięcie monitu. Przed podjęciem akcji sprawdź ważne oświadczenia i cytaty.
HarnessAgent jest dostępny w pakiecie Microsoft.Agents.AI.Harness .
W przypadku zwykłego agenta wywołaj client.get_web_search_tool(...) i przekaż zwrócone narzędzie do Agentmetody , jak pokazano wcześniej.
create_harness_agent wywołania client.get_web_search_tool() bez argumentów domyślnie, gdy klient implementuje SupportsWebSearchToolelement :
from agent_framework import create_harness_agent
agent = create_harness_agent(client=client)
Jeśli klient nie implementuje SupportsWebSearchTool, fabryka rejestruje ostrzeżenie i kontynuuje wyszukiwanie w Internecie. Ustaw disable_web_search=True wartość , aby pominąć automatyczną rejestrację i ostrzeżenie.
Aby przekazać ustawienia specyficzne dla dostawcy, wyłącz ustawienie domyślne i jawnie zarejestruj skonfigurowane narzędzie:
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",
)
],
)
Dostawca jest właścicielem wykonywania i cyklu życia wyszukiwania hostowanego. Obsługiwane parametry, modele, obsługa danych i rozliczenia zależą od implementacji klienta. Nie umieszczaj wpisów tajnych w zapytaniach, traktuj pobraną zawartość jako niezaufane dane wejściowe i przed podjęciem akcji sprawdź ważne oświadczenia i cytaty.
create_harness_agent jest zwalniany w agent-framework-coresystemie ; wyszukiwanie w internecie pozostaje dostępne tylko za pośrednictwem klientów, którzy implementują SupportsWebSearchToolprogram .
Spakowane narzędzie Go Harness nie jest obecnie dostępne. Dodaj hostedtool.WebSearch do zwykłego agenta języka Go, jak pokazano wcześniej.