Visão Geral das Ferramentas

O Agent Framework suporta muitos tipos diferentes de ferramentas que estendem as capacidades dos agentes. As ferramentas permitem aos agentes interagir com sistemas externos, executar código, pesquisar dados e muito mais.

Tipos de Ferramentas

Tipo de Ferramenta Description
Ferramentas Funcionais Código personalizado que os agentes podem chamar durante conversas
Intérprete de código Executar código num ambiente sandbox
Pesquisa de Ficheiros Pesquise entre ficheiros carregados
Pesquisa na Web Pesquise na internet para obter informações
Ferramentas MCP Alojadas Servidores MCP invocados pelo tempo de execução do fornecedor
Ferramentas MCP Locais Servidores MCP a correr localmente ou em hosts personalizados
Caixas de Ferramentas da Fundição Pacotes nomeados e versionados de configurações de ferramentas alojadas geridos num projeto Foundry
Tipo de Ferramenta Description
Ferramentas Funcionais Código personalizado que os agentes podem chamar durante conversas
Intérprete de código Executar código num ambiente sandbox
Pesquisa de Ficheiros Pesquise entre ficheiros carregados
Pesquisa na Web Pesquise na internet para obter informações
Ferramentas MCP Alojadas Servidores MCP invocados pelo tempo de execução do fornecedor
Ferramentas MCP Locais Servidores MCP a correr localmente ou em hosts personalizados
Caixas de Ferramentas da Fundição Pacotes nomeados e versionados de configurações de ferramentas alojadas geridos num projeto Foundry
Geração de Imagem Geração de imagens alojadas no runtime Foundry / OpenAI Responses
Shell Execução de shell alojada no runtime OpenAI Responses — diferente das ferramentas integradas de runtime shell/ficheiro/URL do GitHub Copilot CLI
Aterramento do Bing Grounding web através do seu próprio recurso de pesquisa Grounding with Bing — experimental
Pesquisa Personalizada Bing Aterramento do Bing restrito a uma lista de domínios curada — pré-visualização
Pesquisa de IA do Azure Consultar um índice Pesquisa de IA do Azure através de uma ligação Foundry — experimental
SharePoint Respostas no terreno em conteúdo SharePoint — pré-visualização
Microsoft Fabric Consultar um agente de dados Fabric — pré-visualização
Pesquisa de Memória Pesquise numa loja de memória gerida pela Foundry — pré-visualização
Utilização de computadores Conduza um ambiente de ambiente de trabalho ou navegador — pré-visualização
Automação de Navegadores Conduza um navegador via Azure Playwright — pré-visualização
Ferramenta Agent-para-Agente (A2A) Chamar um agente A2A remoto como ferramenta a partir de um agente Foundry — pré-visualização

Observação

As ferramentas marcadas como experimental ou de pré-visualização são documentadas na página do fornecedor relevante e emitem uma ExperimentalWarning primeira vez que são usadas num processo.

Aprovação de Ferramentas

A Aprovação de Ferramentas é uma funcionalidade de framework que permite bloquear todas as invocações de ferramentas — ferramentas funcionais, ferramentas alojadas, chamadas de ferramenta MCP — através de uma decisão humana no ciclo antes de o modelo receber o resultado. É gerido pelo cliente de chat invocador de funções do framework, tanto em .NET como em Python, pelo que funciona com qualquer fornecedor cujo cliente invoque ferramentas localmente; não é uma capacidade por fornecedor. Consulte a página de Aprovação de Ferramentas para o padrão completo, incluindo como as aprovações interagem com sessões, streaming e middleware.

Matriz de Suporte ao Prestador

Os fornecedores OpenAI e Azure OpenAI oferecem cada um dois tipos de clientes — Respostas e Conclusão de Chat — com diferentes capacidades de ferramenta. Os clientes Azure OpenAI espelham os seus equivalentes OpenAI. Copilot Studio e A2A funcionam num serviço remoto, pelo que as suas capacidades estão configuradas no agente remoto em vez de através do cliente Agent Framework — não estão listados na matriz.

Tipo de Ferramenta Respostas Conclusão do Chat Fundição Anthropic Ollama Copiloto do GitHub
Ferramentas Funcionais
Intérprete de código
Pesquisa de Ficheiros
Pesquisa na Web
Ferramentas MCP Alojadas
Ferramentas MCP Locais

Observação

As colunas Respostas e Chat Completion aplicam-se tanto ao OpenAI como ao Azure OpenAI — as variantes Azure espelham o mesmo suporte de ferramentas que os seus equivalentes OpenAI. A obsoleta API OpenAI Assistants já não está documentada; Para orientações de migração, consulte o Guia de Migração Kernel Semântico.

Matriz de Suporte ao Prestador

Os fornecedores OpenAI e Azure OpenAI oferecem cada um múltiplos tipos de clientes com diferentes capacidades de ferramenta. Os clientes Azure OpenAI espelham os seus equivalentes OpenAI. A coluna Foundry aplica-se a FoundryChatClient — para FoundryAgent, as ferramentas estão configuradas na definição do agente Foundry ( veja O que funciona e o que não funciona com FoundryAgent). Copilot Studio e A2A funcionam num serviço remoto, pelo que as suas capacidades estão configuradas no agente remoto em vez de através do cliente Agent Framework — não estão listados na matriz.

Tipo de Ferramenta Respostas Conclusão do Chat Fundição Anthropic Ollama Fundição Local Copiloto do GitHub
Ferramentas Funcionais ⚠️¹ ⚠️¹
Intérprete de código
Pesquisa de Ficheiros
Pesquisa na Web
Geração de Imagem
Shell Hospedado (get_shell_tool)
Shell / sistema de ficheiros / busca de URL incorporada ✅²
Ferramentas MCP Alojadas
Ferramentas MCP Locais
Caixas de Ferramentas da Fundição
Bing Grounding (experimental)
Pesquisa Personalizada Bing (pré-visualização)
Pesquisa de IA do Azure (experimental)
SharePoint (pré-visualização)
Microsoft Fabric (pré-visualização)
Pesquisa de Memória (pré-visualização)
Utilização do Computador (pré-visualização)
Automação do Navegador (pré-visualização)
Ferramenta Agent-para-Agente (A2A) (pré-visualização)

¹ Depende do modelo local escolhido que suporta a chamada da função. ² Integrado no runtime CLI do GitHub Copilot, bloqueado por um gestor de permissões. Superfície diferente da do OpenAI get_shell_tool.

Observação

As colunas Respostas e Chat Completion aplicam-se tanto ao OpenAI como ao Azure OpenAI — as variantes Azure espelham o mesmo suporte de ferramentas que os seus equivalentes OpenAI. As ferramentas MCP locais funcionam com qualquer fornecedor que suporte ferramentas funcionais.

Utilização de um Agente como Ferramenta Funcional

Pode usar um agente como ferramenta funcional para outro agente, permitindo a composição de agentes e fluxos de trabalho mais avançados. O agente interno é convertido numa ferramenta funcional e fornecido ao agente externo, que pode então chamá-lo conforme necessário.

Chama .AsAIFunction() um AIAgent para o converter numa ferramenta de função que possa ser fornecida a outro 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?"));

Advertência

DefaultAzureCredential é conveniente para o desenvolvimento, mas requer uma consideração cuidadosa na produção. Em produção, considere usar uma credencial específica (por exemplo, ManagedIdentityCredential) para evitar problemas de latência, sondagens não intencionais de credenciais e potenciais riscos de segurança provenientes de mecanismos de recurso.

Chamar .as_tool() um agente para o converter numa ferramenta funcional que possa ser fornecida a outro 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)

Também pode personalizar o nome da ferramenta, descrição e nome do argumento:

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

Próximos passos