Delen via


Een agent gebruiken als functiehulpmiddel

In deze zelfstudie leert u hoe u een agent als functiehulpmiddel gebruikt, zodat een agent een andere agent als hulpprogramma kan aanroepen.

Vereiste voorwaarden

Zie de stap Een eenvoudige agent maken en uitvoeren in deze zelfstudie voor vereisten en het installeren van NuGet-pakketten.

Een agent maken en gebruiken als functiehulpprogramma

U kunt een AIAgent als functie gebruiken door .AsAIFunction() aan te roepen op de agent en het als hulpmiddel aan een andere agent aan te bieden. Hierdoor kunt u agents opstellen en geavanceerdere werkstromen bouwen.

Maak eerst een functiehulpmiddel als een C#-methode en verfraaid deze indien nodig met beschrijvingen. Dit hulpprogramma wordt gebruikt door uw agent die beschikbaar wordt gesteld als functie.

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

Maak een AIAgent functie die gebruikmaakt van het functiehulpprogramma.

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)]);

Maak nu een hoofdagent en geef weatherAgent als functietool op door .AsAIFunction() aan te roepen om weatherAgent naar een functietool om te zetten.

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()]);

Roep de hoofdagent zoals gebruikelijk aan. De weeragent kan nu als hulpmiddel worden aangeroepen en moet in het Frans reageren.

Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));

In deze zelfstudie leert u hoe u een agent als functiehulpmiddel gebruikt, zodat een agent een andere agent als hulpprogramma kan aanroepen.

Vereiste voorwaarden

Zie de stap Een eenvoudige agent maken en uitvoeren in deze zelfstudie voor vereisten en het installeren van pakketten.

Een agent maken en gebruiken als functiehulpprogramma

U kunt een ChatAgent als functiehulpprogramma gebruiken door .as_tool() op de agent aan te roepen en het als hulpprogramma aan een andere agent op te geven. Hierdoor kunt u agents opstellen en geavanceerdere werkstromen bouwen.

Eerst, maak een functie-tool die wordt gebruikt door uw agent en die als functie wordt gepresenteerd.

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

Maak een ChatAgent functie die gebruikmaakt van het functiehulpprogramma.

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
)

Maak nu een hoofdagent en geef weather_agent als functietool op door .as_tool() aan te roepen om weather_agent naar een functietool om te zetten.

main_agent = AzureOpenAIChatClient(credential=AzureCliCredential()).create_agent(
    instructions="You are a helpful assistant who responds in French.",
    tools=weather_agent.as_tool()
)

Roep de hoofdagent zoals gebruikelijk aan. De weeragent kan nu als hulpmiddel worden aangeroepen en moet in het Frans reageren.

result = await main_agent.run("What is the weather like in Amsterdam?")
print(result.text)

U kunt ook de naam, beschrijving en argumentnaam van het hulpprogramma aanpassen wanneer u een agent converteert naar een hulpprogramma:

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

Volgende stappen