Übersicht über Tools

Agent Framework unterstützt viele verschiedene Arten von Tools, die Agentfunktionen erweitern. Mit Tools können Agents mit externen Systemen interagieren, Code ausführen, Suchdaten und vieles mehr ausführen.

Tooltypen

Tooltyp Description
Funktionstools Benutzerdefinierter Code, den Agents während Unterhaltungen anrufen können
Codedolmetscher Ausführen von Code in einer Sandkastenumgebung
Dateisuche Durchsuchen von hochgeladenen Dateien
Websuche Im Web nach Informationen suchen
Gehostete MCP-Tools MCP-Server, die von der Anbieterlaufzeit aufgerufen werden
Lokale MCP-Tools MCP-Server, die lokal oder auf benutzerdefinierten Hosts ausgeführt werden
Foundry Toolboxes Benannte, versionsgesteuerte Bündel von gehosteten Toolkonfigurationen, die in einem Foundry-Projekt verwaltet werden
Tooltyp Description
Funktionstools Benutzerdefinierter Code, den Agents während Unterhaltungen anrufen können
Codedolmetscher Ausführen von Code in einer Sandkastenumgebung
Dateisuche Durchsuchen von hochgeladenen Dateien
Websuche Im Web nach Informationen suchen
Gehostete MCP-Tools MCP-Server, die von der Anbieterlaufzeit aufgerufen werden
Lokale MCP-Tools MCP-Server, die lokal oder auf benutzerdefinierten Hosts ausgeführt werden
Foundry Toolboxes Benannte, versionsgesteuerte Bündel von gehosteten Toolkonfigurationen, die in einem Foundry-Projekt verwaltet werden
Bilderzeugung Gehostete Bildgenerierung in der Laufzeit der Foundry/OpenAI-Antworten
Shell Ausführung der gehosteten Shell für die OpenAI-Antwortlaufzeit – unterscheidet sich von den integrierten Shell-/Datei-/URL-Laufzeittools der GitHub Copilot CLI
Bing Grounding Web-Grounding über Ihre eigene Grounding mit Bing Search-Ressource – experimentell
Benutzerdefinierte Bing-Suche Bing-Bodenierung auf eine kuratierte Domänenliste beschränkt – Vorschau
Azure KI-Suche Abfragen eines Azure KI-Suche Index über eine Foundry-Verbindung – experimentell
SharePoint Grundantworten in SharePoint Inhalten – Vorschau
Microsoft Fabric Abfragen eines Fabric Daten-Agents – Vorschau
Speichersuche Durchsuchen eines Speichers mit verwaltetem Gießereispeicher – Vorschau
Computernutzung Steuern einer Desktop- oder Browserumgebung – Vorschau
Browserautomatisierung Fahren Sie einen Browser über Azure Playwright – Vorschau
Agent-zu-Agent-Tool (A2A) Aufrufen eines A2A-Remote-Agents als Tool von einem Foundry-Agent – Vorschau

Hinweis

Tools, die als experimentell gekennzeichnet sind oder eine Vorschau sind, werden auf der entsprechenden Anbieterseite dokumentiert und geben ein ExperimentalWarning , wenn sie zum ersten Mal in einem Prozess verwendet werden.

Toolgenehmigung

Die Toolgenehmigung ist ein Frameworkfeature, mit dem Sie jeden Toolaufruf – Funktionstools, gehostete Tools, MCP-Toolaufrufe – über eine schleifenbasierte Entscheidung absperren können, bevor das Modell das Ergebnis erhält. Es wird vom Funktions-Aufruf des Chatclients des Frameworks sowohl in .NET als auch in Python behandelt, sodass er mit jedem Anbieter funktioniert, dessen Client Tools lokal aufruft; es handelt sich nicht um eine Funktion pro Anbieter. Auf der Seite " Toolgenehmigung" finden Sie das vollständige Muster, einschließlich der Interaktion von Genehmigungen mit Sitzungen, Streaming und Middleware.

Anbieterunterstützungsmatrix

Die OpenAI- und Azure OpenAI-Anbieter bieten jeweils zwei Clienttypen – Antworten und Chatabschluss – mit unterschiedlichen Toolfunktionen. Azure OpenAI-Clients spiegeln ihre OpenAI-Entsprechungen wieder. Copilot Studio und A2A Agents werden auf einem Remotedienst ausgeführt, sodass ihre Funktionen auf dem Remote-Agent und nicht über den Agent Framework-Client konfiguriert sind – sie sind nicht in der Matrix aufgeführt.

Tooltyp Antworten Chatabschluss Foundry Anthropic Ollama GitHub Copilot
Funktionstools
Codedolmetscher
Dateisuche
Websuche
Gehostete MCP-Tools
Lokale MCP-Tools

Hinweis

Die Spalten Responses und Chat Completion gelten sowohl für OpenAI als auch für Azure OpenAI– die Azure Varianten spiegeln die gleiche Toolunterstützung wie ihre OpenAI-Entsprechungen wider. Die veraltete OpenAI Assistants-API ist nicht mehr dokumentiert; Anleitungen zur Migration finden Sie im Migrationshandbuch Semantischer Kernel.

Anbieterunterstützungsmatrix

Die OpenAI- und Azure OpenAI-Anbieter bieten jeweils mehrere Clienttypen mit unterschiedlichen Toolfunktionen. Azure OpenAI-Clients spiegeln ihre OpenAI-Entsprechungen wieder. Die Spalte "Foundry" gilt für FoundryChatClient – für - für FoundryAgent, die Tools werden in der Definition des Foundry-Agents konfiguriert (siehe Was funktioniert und was nicht mit FoundryAgent). Copilot Studio und A2A Agents werden auf einem Remotedienst ausgeführt, sodass ihre Funktionen auf dem Remote-Agent und nicht über den Agent Framework-Client konfiguriert sind – sie sind nicht in der Matrix aufgeführt.

Tooltyp Antworten Chatabschluss Foundry Anthropic Ollama Foundry Local GitHub Copilot
Funktionstools ⚠️¹ ⚠️¹
Codedolmetscher
Dateisuche
Websuche
Bilderzeugung
Gehostete Shell (get_shell_tool)
Integrierte Shell / Dateisystem / URL Fetch ✅²
Gehostete MCP-Tools
Lokale MCP-Tools
Foundry Toolboxes
Bing Grounding (experimentell)
Benutzerdefinierte Bing-Suche (Vorschau)
Azure KI-Suche (experimentell)
SharePoint (Vorschau)
Microsoft Fabric (Vorschau)
Speichersuche (Vorschau)
Computerverwendung (Vorschau)
Browserautomatisierung (Vorschau)
Agent-zu-Agent-Tool (A2A) (Vorschau)

¹ Hängt vom gewählten lokalen Modell ab, das Funktionsaufrufe unterstützt. ² Integriert in die GitHub Copilot CLI-Laufzeit, gated by a permission handler. Unterschiedliche Oberfläche von OpenAI es get_shell_tool.

Hinweis

Die Spalten Responses und Chat Completion gelten sowohl für OpenAI als auch für Azure OpenAI– die Azure Varianten spiegeln die gleiche Toolunterstützung wie ihre OpenAI-Entsprechungen wider. Lokale MCP-Tools funktionieren mit jedem Anbieter, der Funktionstools unterstützt.

Verwenden eines Agents als Funktionstool

Sie können einen Agent als Funktionstool für einen anderen Agent verwenden, wodurch die Agentkomposition und erweiterte Workflows aktiviert werden. Der innere Agent wird in ein Funktionstool konvertiert und an den äußeren Agent bereitgestellt, der ihn dann nach Bedarf aufrufen kann.

Rufen Sie .AsAIFunction() eine AIAgent Funktion auf, um sie in ein Funktionstool zu konvertieren, das einem anderen Agent zur Verfügung gestellt werden kann:

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

Warnung

DefaultAzureCredential ist praktisch für die Entwicklung, erfordert aber sorgfältige Überlegungen in der Produktion. Berücksichtigen Sie in der Produktion die Verwendung bestimmter Anmeldeinformationen (z. B. ManagedIdentityCredential), um Latenzprobleme, unbeabsichtigte Abfragen von Anmeldeinformationen und potenzielle Sicherheitsrisiken durch Ausweichmechanismen zu vermeiden.

Rufen Sie .as_tool() einen Agent auf, um ihn in ein Funktionstool zu konvertieren, das einem anderen Agent zur Verfügung gestellt werden kann:

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)

Sie können auch den Toolnamen, die Beschreibung und den Argumentnamen anpassen:

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

Nächste Schritte