Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm erfahren Sie, wie Sie einen Agent als Funktionstool verwenden, damit ein Agent einen anderen Agent als Tool aufrufen kann.
Voraussetzungen
Für Voraussetzungen und die Installation von NuGet-Paketen siehe den Schritt Erstellen und Ausführen eines einfachen Agenten in diesem Tutorial.
Erstellen und Verwenden eines Agents als Funktionstool
Sie können ein AIAgent als Funktionstool verwenden, indem Sie .AsAIFunction() beim Agenten aufrufen und es als Tool für einen anderen Agenten bereitstellen. Auf diese Weise können Sie Agents verfassen und erweiterte Workflows erstellen.
Erstellen Sie zunächst ein Funktionstool als C#-Methode, und versehen Sie es bei Bedarf mit Beschreibungen. Dieses Tool wird von Ihrem Agent verwendet, der als Funktion verfügbar gemacht wird.
using System.ComponentModel;
[Description("Get the weather for a given location.")]
static string GetWeather([Description("The location to get the weather for.")] string location)
=> $"The weather in {location} is cloudy with a high of 15°C.";
Erstellen Sie ein AIAgent, das die Funktion verwendet.
using System;
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
using OpenAI;
AIAgent weatherAgent = new AzureOpenAIClient(
new Uri("https://<myresource>.openai.azure.com"),
new AzureCliCredential())
.GetChatClient("gpt-4o-mini")
.CreateAIAgent(
instructions: "You answer questions about the weather.",
name: "WeatherAgent",
description: "An agent that answers questions about the weather.",
tools: [AIFunctionFactory.Create(GetWeather)]);
Erstellen Sie nun einen Hauptagenten und stellen Sie weatherAgent als Funktionstool bereit, indem Sie .AsAIFunction() aufrufen, um weatherAgent in ein Funktionstool zu konvertieren.
AIAgent agent = new AzureOpenAIClient(
new Uri("https://<myresource>.openai.azure.com"),
new AzureCliCredential())
.GetChatClient("gpt-4o-mini")
.CreateAIAgent(instructions: "You are a helpful assistant who responds in French.", tools: [weatherAgent.AsAIFunction()]);
Rufen Sie den Hauptagenten wie gewöhnlich auf. Sie kann nun den Wetteragenten als Tool aufrufen und sollte auf Französisch reagieren.
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));
In diesem Lernprogramm erfahren Sie, wie Sie einen Agent als Funktionstool verwenden, damit ein Agent einen anderen Agent als Tool aufrufen kann.
Voraussetzungen
Die erforderlichen Komponenten und die Installation von Paketen finden Sie im Schritt "Erstellen und Ausführen eines einfachen Agents " in diesem Lernprogramm.
Erstellen und Verwenden eines Agents als Funktionstool
Sie können ein ChatAgent als Funktion verwenden, indem Sie .as_tool() beim Agenten aufrufen und es einem anderen Agenten als Werkzeug zur Verfügung stellen. Auf diese Weise können Sie Agents verfassen und erweiterte Workflows erstellen.
Erstellen Sie zuerst ein Funktionstool, das von Ihrem Agenten verwendet wird und als Funktion bereitgestellt wird.
from typing import Annotated
from pydantic import Field
def get_weather(
location: Annotated[str, Field(description="The location to get the weather for.")],
) -> str:
"""Get the weather for a given location."""
return f"The weather in {location} is cloudy with a high of 15°C."
Erstellen Sie ein ChatAgent, das das Funktionstool verwendet.
from agent_framework.azure import AzureOpenAIChatClient
from azure.identity import AzureCliCredential
weather_agent = AzureOpenAIChatClient(credential=AzureCliCredential()).create_agent(
name="WeatherAgent",
description="An agent that answers questions about the weather.",
instructions="You answer questions about the weather.",
tools=get_weather
)
Erstellen Sie nun einen Hauptagenten und stellen Sie weather_agent als Funktionstool bereit, indem Sie .as_tool() aufrufen, um weather_agent in ein Funktionstool zu konvertieren.
main_agent = AzureOpenAIChatClient(credential=AzureCliCredential()).create_agent(
instructions="You are a helpful assistant who responds in French.",
tools=weather_agent.as_tool()
)
Rufen Sie den Hauptagenten wie gewöhnlich auf. Sie kann nun den Wetteragenten als Tool aufrufen und sollte auf Französisch reagieren.
result = await main_agent.run("What is the weather like in Amsterdam?")
print(result.text)
Sie können den Toolnamen, die Beschreibung und den Argumentnamen auch beim Konvertieren eines Agents in ein Tool anpassen:
# Convert agent to tool with custom parameters
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"
)
main_agent = AzureOpenAIChatClient(credential=AzureCliCredential()).create_agent(
instructions="You are a helpful assistant who responds in French.",
tools=weather_tool
)