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.
Um agente hospedado executa o seu código no Foundry Agent Service. Neste artigo, ligas esse código a uma caixa de ferramentas para que o agente descubra e chame as ferramentas através de um endpoint do Protocolo de Contexto de Modelo (MCP).
Se usares um agente de programação como o GitHub Copilot, o Microsoft Foundry Skill pode ajudar a ligar o agente alojado a um endpoint toolbox e adaptar a amostra às tuas próprias ferramentas.
Pré-requisitos
- Uma caixa de ferramentas com pelo menos uma ferramenta e uma versão padrão.
- Um projeto Microsoft Foundry com um modelo implementado.
- Um projeto de agente alojado. Para criar o agente e a caixa de ferramentas em conjunto, complete o início rápido da caixa de ferramentas.
- Uma identidade de desenvolvimento que possa aceder ao projeto Foundry. Inicie sessão localmente com
az loginouazd auth loginantes de fazer uma amostra. - Quaisquer permissões necessárias pelos serviços subjacentes às ferramentas da toolbox. Para ferramentas que utilizam o pass-through de identidade do OAuth ou do Microsoft Entra, consulte a autenticação do Toolbox antes de implementar o agente.
Escolha o endpoint da caixa de ferramentas
Utilize o endpoint do consumidor da toolbox para um agente que deve seguir a default_version da toolbox:
https://<account>.services.ai.azure.com/api/projects/<project>/toolboxes/<toolbox-name>/mcp?api-version=v1
Quando promove outra versão do toolbox como predefinida, um agente que utiliza este endpoint recebe a nova versão sem alterar o endpoint nem fazer uma nova implementação.
Use um endpoint de desenvolvimento específico de uma versão apenas quando precisar de testar uma versão imutável antes da promoção:
https://<account>.services.ai.azure.com/api/projects/<project>/toolboxes/<toolbox-name>/versions/<version>/mcp?api-version=v1
Autentique o agente na caixa de ferramentas
O agente autentica-se no endpoint da caixa de ferramentas com a sua identidade Microsoft Entra e o https://ai.azure.com/.default âmbito. A configuração de ligação de cada ferramenta da caixa de ferramentas determina que identidade ou credencial é transmitida ao serviço subsequente.
Não coloques chaves de API downstream ou tokens OAuth no código do agente. Configure essas credenciais na ligação de projeto à qual a ferramenta Toolbox faz referência. Para obter detalhes sobre os tipos de autenticação suportados, o consentimento e os requisitos de função, consulte a autenticação do Toolbox.
Ligar o agente alojado
Utilize o Microsoft Agent Framework
O exemplo de Python mantido utiliza FoundryToolbox do pacote de alojamento do Agent Framework. A classe resolve a caixa de ferramentas a partir de TOOLBOX_ENDPOINT, ou a partir de FOUNDRY_PROJECT_ENDPOINT e TOOLBOX_NAME. Também autentica os pedidos MCP e encaminha o ID de chamada por pedido do ambiente de execução alojado.
Instale Python 3.12 ou posterior, Azure Developer CLI (azd) 1.25 ou posterior, e a microsoft.foundry extensão antes de inicializar o exemplo.
Inicialize um projeto a partir do exemplo da caixa de ferramentas do agente hospedado:
mkdir my-toolbox-agent && cd my-toolbox-agent azd ai agent init -m https://github.com/microsoft-foundry/foundry-samples/blob/main/samples/python/hosted-agents/agent-framework/responses/04-foundry-toolbox/azure.yamlDefine o nome da caixa de ferramentas. O exemplo cria o endpoint do consumidor a partir do endpoint do projeto e deste nome:
azd env set TOOLBOX_NAME <toolbox-name>Execute o agente localmente:
azd ai agent runNoutro terminal, verifique se o agente descobre as ferramentas da caixa de ferramentas:
azd ai agent invoke --local "List the tools you can use and briefly describe each one."
A resposta lista as ferramentas que a caixa de ferramentas devolve do MCP tools/list. Se a resposta não contiver ferramentas da caixa de ferramentas, consulte Resolver problemas de ligação.
Use LangGraph
Use AzureAIProjectToolbox quando o seu código de agente hospedado for construído com o LangGraph. A integração carrega as ferramentas da caixa de ferramentas como ferramentas LangChain e gere a autenticação no endpoint do consumidor.
Instale a integração com o LangChain Azure e as suas dependências de alojamento:
pip install "langchain-azure-ai[hosting]>=1.2.8"Defina
FOUNDRY_PROJECT_ENDPOINTno ambiente do agente alojado. O tempo de execução fornece este valor após a implantação. Configure-o você mesmo para desenvolvimento local.Carregue as ferramentas pelo nome da caixa de ferramentas:
import asyncio
from langchain_azure_ai.tools import AzureAIProjectToolbox
async def load_tools():
toolbox = AzureAIProjectToolbox(toolbox_name="<toolbox-name>")
tools = await toolbox.get_tools()
print("\n".join(tool.name for tool in tools))
asyncio.run(load_tools())
A saída contém os nomes que a caixa de ferramentas devolve do MCP tools/list:
<tool-name>
<tool-name>
Referência:AzureAIProjectToolbox
- Passe as ferramentas carregadas ao seu agente LangGraph e execute um prompt que requer uma das ferramentas da caixa de ferramentas. Para uma implementação completa, consulte o exemplo da caixa de ferramentas LangGraph.
Utilize a integração de alojamento do Agent Framework Foundry para registar uma toolbox pelo respetivo nome.
AddFoundryToolboxes constrói o endpoint do consumidor a partir de FOUNDRY_PROJECT_ENDPOINT, chama o MCP tools/list durante a inicialização e adiciona as ferramentas descobertas a cada pedido de agente.
Instala o SDK .NET 10 e o CLI do Azure antes de executares o sample mantido.
Comece pelo exemplo da caixa de ferramentas hospedada publicamente, ou adicione o pacote de alojamento Foundry a um host existente do Agent Framework.
Defina estas variáveis ambientais para o desenvolvimento local:
AZURE_AI_PROJECT_ENDPOINT=https://<account>.services.ai.azure.com/api/projects/<project> AZURE_AI_MODEL_DEPLOYMENT_NAME=<model-deployment-name> TOOLBOX_NAME=<toolbox-name>Foundry fornece
FOUNDRY_PROJECT_ENDPOINTao contentor implementado. Mantenha o nome da caixa de ferramentas emTOOLBOX_NAME; os outros nomes de variáveis emFOUNDRY_*estão reservados pelo ambiente de execução alojado.Em
Program.cs, regista o agente comAddFoundryResponses, e depois regista a caixa de ferramentas comAddFoundryToolboxes(credential, toolboxName). Depois de criar a aplicação web, chameMapFoundryResponsesantes deRun. O exemplo público inclui as importações necessárias, os pacotes, a criação do agente e a configuração das credenciais.Inicie o host e, em seguida, invoque-o com um pedido que requeira uma ferramenta da caixa de ferramentas. O
/readinessendpoint devolve um estado pouco saudável quando o host não consegue enumerar as ferramentas da caixa de ferramentas.
As integrações da caixa de ferramentas do agente alojado neste artigo estão disponíveis para Python e .NET. Para chamar o endpoint MCP a partir de outro runtime, use um cliente HTTP MCP Streamable, autentique com um token para https://ai.azure.com/.default, e implemente o contrato de runtime do agente hospedado.
As integrações do conjunto de ferramentas de agente alojado neste artigo estão disponíveis para Python e .NET. Para chamar o endpoint MCP a partir de outro runtime, use um cliente HTTP MCP Streamable, autentique com um token para https://ai.azure.com/.default, e implemente o contrato de runtime do agente hospedado.
Utilize o Microsoft Foundry Toolkit for Visual Studio Code para criar a estrutura de um exemplo de agente alojado ligado a uma caixa de ferramentas.
Instale o Visual Studio Code, a extensão do Microsoft Foundry Toolkit e o pacote de extensões da sua linguagem de programação antes de criar a estrutura do projeto.
- Na Barra de Atividades, selecione Foundry Toolkit.
- Na secção Meus Recursos, expanda o seu projeto e depois expanda as Ferramentas.
- No separador Caixas de Ferramentas, localize a caixa de ferramentas e, em seguida, selecione Modelo de código Scaffold.
- Na Paleta de Comandos, selecione uma pasta de projeto.
- Abra o ficheiro gerado
README.mde, em seguida, conclua os passos de execução local e de implementação correspondentes. - Execute um prompt que exija uma ferramenta da caixa de ferramentas e confirme que o agente invoca a ferramenta esperada.
Passe o nome da caixa de ferramentas para um exemplo de agente hospedado que constrói o endpoint do consumidor a partir de FOUNDRY_PROJECT_ENDPOINT:
Instale o Azure Developer CLI (azd) 1.25 ou posterior e a microsoft.foundry extensão antes de executar estes comandos.
Inspecionar a caixa de ferramentas e a sua versão padrão atual:
azd ai toolbox show <toolbox-name> --output jsonA saída utiliza a
endpointpropriedade. O endpoint devolvido por este comando identifica a versão selecionada e é útil para testar essa versão.Armazene o nome da caixa de ferramentas no ambiente
azd:azd env set TOOLBOX_NAME <toolbox-name>Para executar o agente hospedado localmente, utilize:
azd ai agent runPara implementar o agente hospedado, utilize:
azd deploy
Se a sua aplicação aceitar apenas um URL completo, defina TOOLBOX_ENDPOINT como o endpoint do consumidor não versionado na secção Escolher o endpoint da toolbox.
Fazer cumprir a aprovação de ferramentas
Cada entrada devolvida pelo MCP tools/list pode conter um _meta.tool_configuration.require_approval valor:
| Valor | Comportamento em tempo de execução exigido |
|---|---|
always |
Mostrar o nome da ferramenta proposta e os argumentos ao utilizador, aguardar uma aprovação explícita e invocar a ferramenta apenas após a aprovação. Repita este processo em cada chamada. |
never |
Invoque a ferramenta sem pedido de confirmação. |
O ponto final MCP da caixa de ferramentas não bloqueia tools/call quando require_approval é always. O ambiente de execução do seu agente deve aplicar a definição antes de cada invocação. Uma instrução no prompt de sistema, por si só, não garante aprovação.
Use require_approval: never a menos que o seu ambiente de execução consiga pausar a chamada à ferramenta pendente, recolher a decisão do utilizador e retomar ou rejeitar exatamente essa chamada. Para configurar o valor numa ferramenta da caixa de ferramentas, consulte Configurar a aprovação da ferramenta.
Resolver problemas de ligação
| Symptom | Causa e resolução |
|---|---|
| O agente não retorna ferramentas da caixa de ferramentas. | Confirme que a caixa de ferramentas tem uma versão predefinida, que o nome da caixa corresponde e que a identidade do agente pode aceder ao projeto Foundry. |
| O arranque ou a prontidão falham. | Uma caixa de ferramentas enumera todas as suas fontes de ferramentas em conjunto. Verifique os registos do agente para ver se há uma ligação falhada, servidor MCP indisponível ou nome de ferramenta permitido inválido. Corrige ou remove essa fonte, cria uma nova versão e promove-a. |
Uma ferramenta retorna 401 ou 403. |
Verifique a identidade entre o agente e a caixa de ferramentas e a autenticação a jusante configurada na ligação do projeto da ferramenta. São limites de autorização separados. |
| Uma ferramenta pede consentimento. | Devolva o pedido de consentimento para o utilizador com sessão iniciada e retome a chamada após o consentimento. Consulte os requisitos de tenant e de função em Autenticação do Toolbox. |
| Não aparece uma alteração de versão. | Confirme que o agente utiliza o endpoint de consumidor não versionado e que promoveu a versão pretendida para default_version. |