Web Search

Pencarian Web memungkinkan agen mencari web untuk informasi up-to-tanggal. Alat ini memungkinkan agen menjawab pertanyaan tentang peristiwa saat ini, menemukan dokumentasi, dan mengakses informasi di luar data pelatihan mereka.

Nota

Ketersediaan Pencarian Web bergantung pada penyedia agen yang mendasar. Lihat Gambaran Umum Penyedia untuk dukungan khusus penyedia.

Contoh berikut menunjukkan cara membuat agen dengan alat Pencarian 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?"));

Warning

DefaultAzureCredential nyaman untuk pengembangan tetapi membutuhkan pertimbangan yang cermat dalam produksi. Dalam produksi, pertimbangkan untuk menggunakan kredensial tertentu (misalnya, ManagedIdentityCredential) untuk menghindari masalah latensi, pemeriksaan kredensial yang tidak diinginkan, dan potensi risiko keamanan dari mekanisme fallback.

Contoh berikut menunjukkan cara membuat agen dengan alat Pencarian 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())

Pencarian web

Jenis ini hostedtool.WebSearch memungkinkan pencarian web sisi server saat menggunakan penyedia yang mendukungnya.

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

Nota

Pencarian web adalah alat yang dihosting — pencarian dilakukan oleh layanan AI, bukan secara lokal.

Menggunakan pencarian web dengan Agen Harness

Untuk agen biasa, tambahkan HostedWebSearchTool ke alat agen, seperti yang ditunjukkan sebelumnya. HarnessAgent menambahkan satu HostedWebSearchTool secara default, jadi tidak ada pendaftaran alat yang diperlukan:

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

Atur DisableWebSearch = true ketika penyedia yang dipilih tidak mendukung pencarian web yang dihosting atau ketika Anda ingin mendaftarkan alat pencarian khusus penyedia sendiri melalui ChatOptions.Tools. Jika Anda menambahkan alat pencarian web Anda sendiri tanpa menonaktifkan default, agen akan menerima kedua alat tersebut.

Pencarian web dihosting oleh penyedia model; tidak ada siklus hidup klien pencarian lokal untuk dikelola Harness. Ketersediaan, model yang didukung, parameter pencarian, residensi data, dan penagihan bergantung pada IChatClient penyedia. Klien yang tidak didukung dapat menolak alat yang dihosting saat permintaan dikirim.

Perlakukan kueri dan hasil pencarian sebagai data yang melintasi batas kepercayaan eksternal. Jangan sertakan rahasia dalam kueri, dan perlakukan halaman yang diambil sebagai konten yang tidak tepercaya yang dapat berisi injeksi prompt tidak langsung. Verifikasi klaim dan kutipan penting sebelum mengambil tindakan.

HarnessAgent tersedia dari Microsoft.Agents.AI.Harness paket.

Untuk agen biasa, panggil client.get_web_search_tool(...) dan teruskan alat yang dikembalikan ke Agent, seperti yang ditunjukkan sebelumnya. create_harness_agent client.get_web_search_tool() panggilan tanpa argumen secara default ketika klien menerapkan SupportsWebSearchTool:

from agent_framework import create_harness_agent

agent = create_harness_agent(client=client)

Jika klien tidak menerapkan SupportsWebSearchTool, pabrik mencatat peringatan dan berlanjut tanpa pencarian web. Atur disable_web_search=True untuk menekan pendaftaran otomatis dan peringatan.

Untuk melewati pengaturan khusus penyedia, nonaktifkan default dan daftarkan alat yang dikonfigurasi secara eksplisit:

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

Penyedia memiliki eksekusi dan siklus hidup pencarian yang dihosting. Parameter, model, penanganan data, dan penagihan yang didukung bergantung pada implementasi klien. Jangan letakkan rahasia dalam kueri, perlakukan konten yang diambil sebagai input yang tidak tepercaya, dan verifikasi klaim dan kutipan penting sebelum mengambil tindakan.

create_harness_agent dirilis di agent-framework-core; pencarian web tetap tersedia hanya melalui klien yang mengimplementasikan SupportsWebSearchTool.

Go Harness paket saat ini tidak tersedia. Tambahkan hostedtool.WebSearch ke agen Go biasa seperti yang ditunjukkan sebelumnya.

Langkah berikutnya