Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Agent Framework stöder många olika typer av verktyg som utökar agentfunktionerna. Med verktyg kan agenter interagera med externa system, köra kod, söka efter data med mera.
Verktygstyper
| Verktygstyp | Description |
|---|---|
| Funktionsverktyg | Anpassad kod som agenter kan anropa under konversationer |
| Godkännande av verktyg | Human-in-the-loop-godkännande för verktygsanrop |
| Kodtolkare | Köra kod i en miljö med begränsat läge |
| Filsökning | Sök igenom uppladdade filer |
| Webbsökning | Sök på webben efter information |
| Värdbaserade MCP-verktyg | MCP-verktyg som hanteras av Microsoft Foundry |
| Lokala MCP-verktyg | MCP-verktyg som körs lokalt eller på anpassade servrar |
Providersupportmatris
OpenAI- och Azure OpenAI-leverantörerna erbjuder var och en flera klienttyper med olika verktygsfunktioner. Azure OpenAI-klienter speglar sina OpenAI-motsvarigheter.
| Verktygstyp | Chatten har slutförts | Svaren | Assistenter | Gjuteri | Anthropic | Ollama | GitHub Copilot | Copilot Studio |
|---|---|---|---|---|---|---|---|---|
| Funktionsverktyg | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Godkännande av verktyg | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Kodtolkare | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Filsökning | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Webbsökning | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Värdbaserade MCP-verktyg | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Lokala MCP-verktyg | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
Anmärkning
Kolumnerna Chat Completion, Responses och Assistants gäller för både OpenAI och Azure OpenAI – Azure-varianterna speglar samma verktygsstöd som deras OpenAI-motsvarigheter.
Providersupportmatris
OpenAI- och Azure OpenAI-leverantörerna erbjuder var och en flera klienttyper med olika verktygsfunktioner. Azure OpenAI-klienter speglar sina OpenAI-motsvarigheter.
| Verktygstyp | Chatten har slutförts | Svaren | Assistenter | Gjuteri | Anthropic | Claude Agent | Ollama | GitHub Copilot |
|---|---|---|---|---|---|---|---|---|
| Funktionsverktyg | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Godkännande av verktyg | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Kodtolkare | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Filsökning | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Webbsökning | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Bildgenerering | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Värdbaserade MCP-verktyg | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Lokala MCP-verktyg | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Anmärkning
Kolumnerna Chat Completion, Responses och Assistants gäller för både OpenAI och Azure OpenAI – Azure-varianterna speglar samma verktygsstöd som deras OpenAI-motsvarigheter. Lokala MCP-verktyg fungerar med alla leverantörer som stöder funktionsverktyg.
Använda en agent som ett funktionsverktyg
Du kan använda en agent som ett funktionsverktyg för en annan agent, vilket möjliggör agentsammansättning och mer avancerade arbetsflöden. Den inre agenten konverteras till ett funktionsverktyg och tillhandahålls till den yttre agenten, som sedan kan anropa den efter behov.
Anropa .AsAIFunction() en AIAgent för att konvertera den till ett funktionsverktyg som kan tillhandahållas till en annan agent:
// Create the inner agent with its own tools
AIAgent weatherAgent = new AIProjectClient(
new Uri("<your-foundry-project-endpoint>"),
new DefaultAzureCredential())
.AsAIAgent(
model: "gpt-4o-mini",
instructions: "You answer questions about the weather.",
name: "WeatherAgent",
description: "An agent that answers questions about the weather.",
tools: [AIFunctionFactory.Create(GetWeather)]);
// Create the main agent and provide the inner agent as a function tool
AIAgent agent = new AIProjectClient(
new Uri("<your-foundry-project-endpoint>"),
new DefaultAzureCredential())
.AsAIAgent(
model: "gpt-4o-mini",
instructions: "You are a helpful assistant.",
tools: [weatherAgent.AsAIFunction()]);
// The main agent can now call the weather agent as a tool
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));
Varning
DefaultAzureCredential är praktiskt för utveckling men kräver noggrant övervägande i produktion. I produktion bör du överväga att använda en specifik autentiseringsuppgift (t.ex. ManagedIdentityCredential) för att undvika problem med svarstid, oavsiktlig avsökning av autentiseringsuppgifter och potentiella säkerhetsrisker från reservmekanismer.
Anropa .as_tool() en agent för att konvertera den till ett funktionsverktyg som kan tillhandahållas till en annan agent:
import os
from agent_framework.openai import OpenAIChatCompletionClient
from azure.identity import AzureCliCredential
# Create the inner agent with its own tools
weather_agent = OpenAIChatCompletionClient(
model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
credential=AzureCliCredential(),
).as_agent(
name="WeatherAgent",
description="An agent that answers questions about the weather.",
instructions="You answer questions about the weather.",
tools=get_weather
)
# Create the main agent and provide the inner agent as a function tool
main_agent = OpenAIChatCompletionClient(
model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
credential=AzureCliCredential(),
).as_agent(
instructions="You are a helpful assistant.",
tools=weather_agent.as_tool()
)
# The main agent can now call the weather agent as a tool
result = await main_agent.run("What is the weather like in Amsterdam?")
print(result.text)
Du kan också anpassa verktygets namn, beskrivning och argumentnamn:
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"
)