Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве показано, как использовать агента в качестве функционального инструмента, чтобы один агент мог вызывать другой агент как инструмент.
Предпосылки
Предварительные требования и установка пакетов NuGet см. в разделе "Создание и запуск простого агента " в этом руководстве.
Создание и использование агента в качестве средства функции
Вы можете использовать AIAgent в качестве функционального инструмента, вызвав .AsAIFunction() на агенте и предоставив его как средство другому агенту. Это позволяет создавать агенты и создавать более сложные рабочие процессы.
Сначала создайте средство функции в качестве метода C#и при необходимости украсите его описаниями. Это средство будет использоваться вашим агентом, доступным в виде функции.
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.";
AIAgent Создайте инструмент функции.
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)]);
Теперь создайте основного агента и предоставьте weatherAgent в качестве инструментальной функции, вызвав .AsAIFunction() для преобразования weatherAgent в инструментальную функцию.
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()]);
Вызовите основного агента как обычно. Теперь он может использовать погодный агент в качестве инструмента и должен отвечать на французском языке.
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));
В этом руководстве показано, как использовать агента в качестве функционального инструмента, чтобы один агент мог вызывать другой агент как инструмент.
Предпосылки
Для ознакомления с предварительными требованиями и установкой пакетов см. шаг "Создание и запуск простого агента" в этом руководстве.
Создание и использование агента в качестве средства функции
Вы можете использовать ChatAgent как функцию-инструмент, вызвав .as_tool() на агенте и предоставив его в качестве инструмента другому агенту. Это позволяет создавать агенты и создавать более сложные рабочие процессы.
Сначала создайте инструмент функции, который будет использоваться вашим агентом и предоставляется как функция.
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."
ChatAgent Создайте инструмент функции.
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
)
Теперь создайте основного агента и предоставьте weather_agent в качестве инструментальной функции, вызвав .as_tool() для преобразования weather_agent в инструментальную функцию.
main_agent = AzureOpenAIChatClient(credential=AzureCliCredential()).create_agent(
instructions="You are a helpful assistant who responds in French.",
tools=weather_agent.as_tool()
)
Вызовите основного агента как обычно. Теперь он может использовать погодный агент в качестве инструмента и должен отвечать на французском языке.
result = await main_agent.run("What is the weather like in Amsterdam?")
print(result.text)
При преобразовании агента в инструмент можно также настроить имя инструмента, описание и имя аргумента:
# 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
)