Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Den här handledningen visar hur du använder en agent som ett funktionellt verktyg, så att du kan använda en agent som verktyg för att anropa en annan agent.
Förutsättningar
Förutsättningar och installation av NuGet-paket finns i steget Skapa och kör en enkel agent i den här självstudien.
Skapa och använda en agent som ett funktionsverktyg
Du kan använda ett AIAgent som funktionsverktyg genom att anropa .AsAIFunction() agenten och tillhandahålla den som ett verktyg till en annan agent. På så sätt kan du skapa agenter och skapa mer avancerade arbetsflöden.
Skapa först ett funktionsverktyg som en C#-metod och dekorera det med beskrivningar om det behövs. Det här verktyget används av din agent som exponeras som en funktion.
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.";
Skapa ett AIAgent som använder funktionsverktyget.
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)]);
Skapa nu en huvudagent och ange weatherAgent som ett funktionsverktyg genom att anropa .AsAIFunction() för att konvertera weatherAgent till ett funktionsverktyg.
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()]);
Anropa huvudagenten som vanligt. Den kan nu anropa väderagenten som ett verktyg och bör svara på franska.
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));
Den här handledningen visar hur du använder en agent som ett funktionellt verktyg, så att du kan använda en agent som verktyg för att anropa en annan agent.
Förutsättningar
Förutsättningar och installation av paket finns i steget Skapa och kör en enkel agent i den här självstudien.
Skapa och använda en agent som ett funktionsverktyg
Du kan använda ett ChatAgent som funktionsverktyg genom att anropa .as_tool() agenten och tillhandahålla den som ett verktyg till en annan agent. På så sätt kan du skapa agenter och skapa mer avancerade arbetsflöden.
Skapa först ett verktyg som din agent kan använda och som exponeras som en funktion.
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."
Skapa en ChatAgent som använder funktionsverktyget.
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
)
Skapa nu en huvudagent och ange weather_agent som ett funktionsverktyg genom att anropa .as_tool() för att konvertera weather_agent till ett funktionsverktyg.
main_agent = AzureOpenAIChatClient(credential=AzureCliCredential()).create_agent(
instructions="You are a helpful assistant who responds in French.",
tools=weather_agent.as_tool()
)
Anropa huvudagenten som vanligt. Den kan nu anropa väderagenten som ett verktyg och bör svara på franska.
result = await main_agent.run("What is the weather like in Amsterdam?")
print(result.text)
Du kan också anpassa verktygets namn, beskrivning och argumentnamn när du konverterar en agent till ett verktyg:
# 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
)