Panoramica degli strumenti

Agent Framework supporta molti tipi diversi di strumenti che estendono le funzionalità dell'agente. Gli strumenti consentono agli agenti di interagire con sistemi esterni, eseguire codice, cercare dati e altro ancora.

Tipi di strumenti

Tipo di strumento Descrzione
Strumenti per le funzioni Codice personalizzato che gli agenti possono chiamare durante le conversazioni
Interprete di codice Eseguire codice in un ambiente in modalità sandbox
Ricerca file Eseguire ricerche nei file caricati
Ricerca Web Cercare informazioni sul Web
Strumenti MCP ospitati Server MCP richiamati dal runtime del provider
Strumenti MCP locali Server MCP in esecuzione in locale o in host personalizzati
Casella degli strumenti foundry Bundle denominati e con controllo delle versioni delle configurazioni degli strumenti ospitati gestite in un progetto Foundry
Tipo di strumento Descrzione
Strumenti per le funzioni Codice personalizzato che gli agenti possono chiamare durante le conversazioni
Interprete di codice Eseguire codice in un ambiente in modalità sandbox
Ricerca file Eseguire ricerche nei file caricati
Ricerca Web Cercare informazioni sul Web
Strumenti MCP ospitati Server MCP richiamati dal runtime del provider
Strumenti MCP locali Server MCP in esecuzione in locale o in host personalizzati
Casella degli strumenti foundry Bundle denominati e con controllo delle versioni delle configurazioni degli strumenti ospitati gestite in un progetto Foundry
Generazione di immagini Generazione di immagini ospitate nel runtime delle risposte Foundry/OpenAI
Shell Esecuzione della shell ospitata nel runtime delle risposte OpenAI, distinta dagli strumenti predefiniti della shell/file/URL dell'interfaccia della riga di comando di GitHub Copilot
Fondamenti di Bing Web grounding tramite il proprio grounding con la risorsa Ricerca Bing - sperimentale
Ricerca personalizzata Bing Base bing limitata a un elenco di domini curato - anteprima
Ricerca di intelligenza artificiale di Azure Eseguire una query su un indice Azure AI Search tramite una connessione Foundry - sperimentale
SharePoint Risposte di base nel contenuto di SharePoint - anteprima
Microsoft Fabric Eseguire query su un agente dati Fabric - anteprima
Ricerca memoria Cercare un archivio di memoria gestito da Foundry - anteprima
Uso del computer Eseguire l'unità di un ambiente desktop o browser - anteprima
Automazione del browser Guidare un browser tramite Azure Playwright - anteprima
Strumento tra agenti (A2A) Chiamare un agente A2A remoto come strumento da un agente Foundry - anteprima

Annotazioni

Gli strumenti contrassegnati come sperimentali o di anteprima sono documentati nella pagina del provider pertinente e generano una ExperimentalWarning prima volta che vengono usati in un processo.

Approvazione degli strumenti

L'approvazione degli strumenti è una funzionalità del framework che consente di controllare ogni chiamata dello strumento, ovvero strumenti di funzione, strumenti ospitati, chiamate allo strumento MCP, tramite una decisione umana nel ciclo prima che il modello riceva il risultato. Viene gestito dal client di chat di richiamo della funzione del framework sia in .NET che in Python, quindi funziona con qualsiasi provider il cui client richiama gli strumenti in locale; non è una funzionalità per provider. Vedere la pagina Approvazione strumento per il modello completo, incluso il modo in cui le approvazioni interagiscono con sessioni, streaming e middleware.

Matrice di supporto del provider

I provider OpenAI e Azure OpenAI offrono ognuno due tipi di client, risposte e completamento chat, con diverse funzionalità degli strumenti. I client OpenAI di Azure rispecchiano gli equivalenti OpenAI. Copilot Studio e A2A agenti vengono eseguiti in un servizio remoto in modo che le relative funzionalità siano configurate nell'agente remoto anziché tramite il client di Agent Framework, non sono elencate nella matrice.

Tipo di strumento Risposte Completamento chat Fonderia Anthropic Ollama GitHub Copilot
Strumenti per le funzioni
Interprete di codice
Ricerca file
Ricerca Web
Strumenti MCP ospitati
Strumenti MCP locali

Annotazioni

Le colonne Responses e Chat Completion si applicano sia a OpenAI che a Azure OpenAI. Le varianti Azure rispecchiano lo stesso strumento supportato dalle controparti OpenAI. L'API OpenAI Assistants deprecata non è più documentata; Per indicazioni sulla migrazione, vedere la guida alla migrazione Kernel semantico.

Matrice di supporto del provider

I provider OpenAI e Azure OpenAI offrono ognuno più tipi di client con diverse funzionalità degli strumenti. I client OpenAI di Azure rispecchiano gli equivalenti OpenAI. La colonna Foundry si applica a FoundryChatClient : per FoundryAgent, gli strumenti sono configurati nella definizione dell'agente Foundry (vedere Cosa funziona e cosa non funziona con FoundryAgent). Copilot Studio e A2A agenti vengono eseguiti in un servizio remoto in modo che le relative funzionalità siano configurate nell'agente remoto anziché tramite il client di Agent Framework, non sono elencate nella matrice.

Tipo di strumento Risposte Completamento chat Fonderia Anthropic Ollama Foundry Local GitHub Copilot
Strumenti per le funzioni ⚠️¹ ⚠️¹
Interprete di codice
Ricerca file
Ricerca Web
Generazione di immagini
Shell ospitata (get_shell_tool)
Shell predefinita/file system/recupero URL ✅²
Strumenti MCP ospitati
Strumenti MCP locali
Casella degli strumenti foundry
Bing Grounding (sperimentale)
Ricerca personalizzata Bing (anteprima)
Azure AI Search (sperimentale)
SharePoint (anteprima)
Microsoft Fabric (anteprima)
Ricerca memoria (anteprima)
Uso computer (anteprima)
Automazione browser (anteprima)
Strumento da agente a agente (A2A) ( anteprima)

¹ Dipende dal modello locale scelto che supporta la chiamata di funzione. ² Integrato nel runtime dell'interfaccia della riga di comando GitHub Copilot, gestito da un gestore di autorizzazioni. Superficie diversa da Quella di get_shell_toolOpenAI.

Annotazioni

Le colonne Responses e Chat Completion si applicano sia a OpenAI che a Azure OpenAI. Le varianti Azure rispecchiano lo stesso strumento supportato dalle controparti OpenAI. Gli strumenti MCP locali funzionano con qualsiasi provider che supporta gli strumenti per le funzioni.

Uso di un agente come strumento per le funzioni

È possibile usare un agente come strumento funzione per un altro agente, abilitando la composizione degli agenti e flussi di lavoro più avanzati. L'agente interno viene convertito in uno strumento di funzione e fornito all'agente esterno, che può quindi chiamarlo in base alle esigenze.

Chiamare .AsAIFunction() su un AIAgent oggetto per convertirlo in uno strumento funzione che può essere fornito a un altro agente:

// 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?"));

Avvertimento

DefaultAzureCredential è utile per lo sviluppo, ma richiede un'attenta considerazione nell'ambiente di produzione. Nell'ambiente di produzione prendere in considerazione l'uso di credenziali specifiche ,ad esempio ManagedIdentityCredential, per evitare problemi di latenza, probe di credenziali indesiderate e potenziali rischi per la sicurezza dai meccanismi di fallback.

Chiamare .as_tool() un agente per convertirlo in uno strumento funzione che può essere fornito a un altro agente:

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)

È anche possibile personalizzare il nome, la descrizione e il nome dell'argomento dello strumento:

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

Passaggi successivi