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.
Med verktyg kan agenten anropa anpassade funktioner, till exempel hämta väderdata, köra frågor mot en databas eller anropa ett API.
Definiera ett verktyg som vilken metod som helst med ett [Description] attribut:
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 en agent med verktyget:
using System;
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")
?? throw new InvalidOperationException("Set AZURE_OPENAI_ENDPOINT");
var deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? "gpt-4o-mini";
AIAgent agent = new AzureOpenAIClient(new Uri(endpoint), new AzureCliCredential())
.GetChatClient(deploymentName)
.AsAIAgent(instructions: "You are a helpful assistant.", tools: [AIFunctionFactory.Create(GetWeather)]);
Agenten anropar automatiskt verktyget när det är relevant:
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));
Tips/Råd
Här finns ett fullständigt körbart exempelprogram.
Definiera ett verktyg med dekoratören @tool :
# NOTE: approval_mode="never_require" is for sample brevity.
# Use "always_require" in production for user confirmation before tool execution.
@tool(approval_mode="never_require")
def get_weather(
location: Annotated[str, Field(description="The location to get the weather for.")],
) -> str:
"""Get the weather for a given location."""
conditions = ["sunny", "cloudy", "rainy", "stormy"]
return f"The weather in {location} is {conditions[randint(0, 3)]} with a high of {randint(10, 30)}°C."
Skapa en agent med verktyget:
agent = client.as_agent(
name="WeatherAgent",
instructions="You are a helpful weather agent. Use the get_weather tool to answer questions.",
tools=get_weather,
)
Tips/Råd
Se det fullständiga exemplet för den fullständiga körbara filen.
Nästa steg
Gå djupare:
- Översikt över verktyg – lär dig mer om alla tillgängliga verktygstyper
- Funktionsverktyg – avancerade funktionsverktygsmönster
- Verktygsgodkännande – människa-i-loopen för verktygsanrop