Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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"
)