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.
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"
)