Omówienie narzędzi

Struktura agentów obsługuje wiele różnych typów narzędzi, które rozszerzają możliwości agenta. Narzędzia umożliwiają agentom interakcję z systemami zewnętrznymi, wykonywanie kodu, wyszukiwanie danych i nie tylko.

Typy narzędzi

Typ narzędzia Opis
Narzędzia funkcji Kod niestandardowy, który agenci mogą wywoływać podczas konwersacji
Interpreter kodów Wykonywanie kodu w środowisku w trybie piaskownicy
wyszukiwanie plików Wyszukiwanie przekazanych plików
Wyszukiwanie w Sieci Web Wyszukaj informacje w Internecie
Hostowane narzędzia MCP Serwery MCP wywoływane przez środowisko uruchomieniowe dostawcy
Lokalne narzędzia MCP Serwery MCP uruchomione lokalnie lub na hostach niestandardowych
Przybornika znaleziono Nazwane, wersjonowane pakiety hostowanych konfiguracji narzędzi zarządzanych w projekcie Foundry
Typ narzędzia Opis
Narzędzia funkcji Kod niestandardowy, który agenci mogą wywoływać podczas konwersacji
Interpreter kodów Wykonywanie kodu w środowisku w trybie piaskownicy
wyszukiwanie plików Wyszukiwanie przekazanych plików
Wyszukiwanie w Sieci Web Wyszukaj informacje w Internecie
Hostowane narzędzia MCP Serwery MCP wywoływane przez środowisko uruchomieniowe dostawcy
Lokalne narzędzia MCP Serwery MCP uruchomione lokalnie lub na hostach niestandardowych
Przybornika znaleziono Nazwane, wersjonowane pakiety hostowanych konfiguracji narzędzi zarządzanych w projekcie Foundry
Generowanie obrazów Generowanie hostowanego obrazu w środowisku uruchomieniowym rozwiązania Foundry/OpenAI Responses
Shell Wykonywanie hostowanej powłoki w środowisku uruchomieniowym odpowiedzi OpenAI — różni się od wbudowanych narzędzi środowiska uruchomieniowego interfejsu wiersza polecenia platformy GitHub Copilot
Podstawy Binga Uziemienie sieci Web za pomocą własnego zasobu grounding z wyszukiwaniem Bing — eksperymentalne
Wyszukiwanie niestandardowe Bing Uziemienie Bing ograniczone do wyselekcjonowanych list domen — wersja zapoznawcza
Wyszukiwanie AI platformy Azure Wykonywanie zapytań względem indeksu Wyszukiwanie AI platformy Azure za pośrednictwem połączenia z usługą Foundry — eksperymentalne
SharePoint Podstawowe odpowiedzi w zawartości SharePoint — wersja zapoznawcza
Microsoft Fabric Wykonywanie zapytań względem agenta danych Fabric — wersja zapoznawcza
Wyszukiwanie pamięci Wyszukiwanie magazynu pamięci zarządzanej przez program Foundry — wersja zapoznawcza
Wykorzystanie komputerów Dysk środowiska pulpitu lub przeglądarki — wersja zapoznawcza
Automatyzacja przeglądarki Prowadzenie przeglądarki za pośrednictwem Azure Playwright — wersja zapoznawcza
Narzędzie Agent-to-Agent (A2A) Wywoływanie zdalnego agenta A2A jako narzędzia z agenta usługi Foundry — wersja zapoznawcza

Uwaga / Notatka

Narzędzia oznaczone jako eksperymentalne lub zapoznawcza są udokumentowane na odpowiedniej stronie dostawcy i emitują ExperimentalWarning pierwszy raz, gdy są one używane w procesie.

Zatwierdzanie narzędzi

Zatwierdzanie narzędzi to funkcja struktury, która umożliwia bramę każdego wywołania narzędzia — narzędzi funkcji, hostowanych narzędzi, wywołań narzędzi MCP — za pomocą decyzji człowieka w pętli, zanim model otrzyma wynik. Jest ona obsługiwana przez funkcję wywoływanego klienta czatu platformy zarówno w .NET, jak i Python, dlatego współpracuje z dowolnym dostawcą, którego klient wywołuje narzędzia lokalnie; nie jest to funkcja dostawcy. Zobacz stronę Zatwierdzenie narzędzia , aby uzyskać pełny wzorzec, w tym sposób interakcji zatwierdzeń z sesjami, przesyłaniem strumieniowym i oprogramowaniem pośredniczącym.

Macierz obsługi dostawcy

Dostawcy openAI i Azure OpenAI oferują dwa typy klientów — odpowiedzi i uzupełnianie czatu — z różnymi możliwościami narzędzi. Klienci usługi Azure OpenAI dublują swoje odpowiedniki openAI. Copilot Studio i A2A agenci są uruchamiani w usłudze zdalnej, aby ich możliwości były konfigurowane na agencie zdalnym, a nie za pośrednictwem klienta platformy Agent — nie są one wymienione w macierzy.

Typ narzędzia Odpowiedzi Uzupełnianie czatu Odlewnia Antropiczny Ollama GitHub Copilot
Narzędzia funkcji
Interpreter kodów
wyszukiwanie plików
Wyszukiwanie w Sieci Web
Hostowane narzędzia MCP
Lokalne narzędzia MCP

Uwaga / Notatka

Kolumny Responses i Chat Completion dotyczą zarówno interfejsu OpenAI, jak i Azure OpenAI — warianty Azure dublują tę samą obsługę narzędzia co ich odpowiedniki OpenAI. Przestarzały interfejs API OpenAI Assistants nie jest już udokumentowany; Aby uzyskać wskazówki dotyczące migracji, zobacz przewodnik migracji Semantic Kernel.

Macierz obsługi dostawcy

Dostawcy openAI i Azure OpenAI oferują wiele typów klientów z różnymi możliwościami narzędzi. Klienci usługi Azure OpenAI dublują swoje odpowiedniki openAI. Kolumna Foundry ma zastosowanie do FoundryChatClient — dla FoundryAgentprogramu narzędzia są konfigurowane w definicji agenta foundry (zobacz Co działa i czego nie ma w programie FoundryAgent). Copilot Studio i A2A agenci są uruchamiani w usłudze zdalnej, aby ich możliwości były konfigurowane na agencie zdalnym, a nie za pośrednictwem klienta platformy Agent — nie są one wymienione w macierzy.

Typ narzędzia Odpowiedzi Uzupełnianie czatu Odlewnia Antropiczny Ollama Znaleziono lokalnie GitHub Copilot
Narzędzia funkcji ⚠️¹ ⚠️¹
Interpreter kodów
wyszukiwanie plików
Wyszukiwanie w Sieci Web
Generowanie obrazów
Hostowana powłoka (get_shell_tool)
Wbudowana powłoka/system plików/pobieranie adresów URL ✅²
Hostowane narzędzia MCP
Lokalne narzędzia MCP
Przybornika znaleziono
Uziemienie Bing (eksperymentalne)
Wyszukiwanie niestandardowe Bing (wersja zapoznawcza)
Wyszukiwanie AI platformy Azure (eksperymentalna)
SharePoint (wersja zapoznawcza)
Microsoft Fabric (wersja zapoznawcza)
Wyszukiwanie pamięci (wersja zapoznawcza)
Korzystanie z komputera (wersja zapoznawcza)
Automatyzacja przeglądarki (wersja zapoznawcza)
Narzędzie Agent-to-Agent (A2A) ( wersja zapoznawcza)

¹ Zależy od wybranego modelu lokalnego obsługującego wywoływanie funkcji. ² Wbudowane w środowisko uruchomieniowe interfejsu wiersza polecenia GitHub Copilot obsługiwane przez program obsługi uprawnień. Inna powierzchnia od platformy OpenAI.get_shell_tool

Uwaga / Notatka

Kolumny Responses i Chat Completion dotyczą zarówno interfejsu OpenAI, jak i Azure OpenAI — warianty Azure dublują tę samą obsługę narzędzia co ich odpowiedniki OpenAI. Lokalne narzędzia MCP współpracują z dowolnym dostawcą, który obsługuje narzędzia funkcji.

Używanie agenta jako narzędzia funkcji

Agent można użyć jako narzędzia funkcji dla innego agenta, umożliwiając kompozycję agenta i bardziej zaawansowane przepływy pracy. Agent wewnętrzny jest konwertowany na narzędzie funkcji i dostarczany do agenta zewnętrznego, który może następnie wywołać go w razie potrzeby.

Wywołaj .AsAIFunction() metodę AIAgent , aby przekonwertować ją na narzędzie funkcji, które można udostępnić innemu agentowi:

// Create the inner agent with its own tools
AIAgent weatherAgent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
     .AsAIAgent(
        model: "gpt-4o-mini",
        instructions: "You answer questions about the weather.",
        name: "WeatherAgent",
        description: "An agent that answers questions about the weather.",
        tools: [AIFunctionFactory.Create(GetWeather)]);

// Create the main agent and provide the inner agent as a function tool
AIAgent agent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
     .AsAIAgent(
        model: "gpt-4o-mini",
        instructions: "You are a helpful assistant.",
        tools: [weatherAgent.AsAIFunction()]);

// The main agent can now call the weather agent as a tool
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));

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.

Wywołaj .as_tool() agenta, aby przekonwertować go na narzędzie funkcji, które można udostępnić innemu agentowi:

import os
from agent_framework.openai import OpenAIChatCompletionClient
from azure.identity import AzureCliCredential

# Create the inner agent with its own tools
weather_agent = OpenAIChatCompletionClient(
    model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
    credential=AzureCliCredential(),
).as_agent(
    name="WeatherAgent",
    description="An agent that answers questions about the weather.",
    instructions="You answer questions about the weather.",
    tools=get_weather
)

# Create the main agent and provide the inner agent as a function tool
main_agent = OpenAIChatCompletionClient(
    model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
    credential=AzureCliCredential(),
).as_agent(
    instructions="You are a helpful assistant.",
    tools=weather_agent.as_tool()
)

# The main agent can now call the weather agent as a tool
result = await main_agent.run("What is the weather like in Amsterdam?")
print(result.text)

Możesz również dostosować nazwę narzędzia, opis i nazwę argumentu:

weather_tool = weather_agent.as_tool(
    name="WeatherLookup",
    description="Look up weather information for any location",
    arg_name="query",
    arg_description="The weather query or location"
)

Dalsze kroki