Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo mostra como implantar um agente em contêineres no Serviço do Agente do Foundry usando a CLI do Desenvolvedor do Azure (azd), o SDK do Python ou a API REST. Escolha um método de implantação usando o seletor na parte superior do artigo. Use as abordagens SDK ou REST quando quiser gerenciar implantações de agente diretamente de seus próprios aplicativos ou serviços.
Se você estiver implantando pela primeira vez ou quiser um passo a passo guiado, confira o Início Rápido: Criar e implantar um agente hospedado. A CLI do Desenvolvedor do Azure (azd) e a extensão do VS Code cuidam automaticamente da compilação, do envio, do versionamento e da configuração de RBAC.
Dica
Prefere um loop interno sem Docker? Você também pode implantar um agente hospedado diretamente do código-fonte – carregar um .zip de seus Python ou .NET código e a plataforma compila e hospeda-o para você.
Ciclo de vida da implantação
Cada implantação de agente hospedado segue esta sequência:
- Compile e envie - Empacote o código do agente em uma imagem de contêiner e envie-a para o Registro de Contêiner do Azure.
- Criar uma versão do agente - Registre a imagem com o Serviço de Agente do Foundry. A plataforma provisiona a infraestrutura e cria uma identidade de agente do Entra dedicada.
-
Verificar o status - Aguarde até que o status da versão atinja
active. - Invocar - Enviar solicitações para o endpoint dedicado do agente.
Pré-requisitos
- Um projeto Microsoft Foundry.
- Código do agente usando uma estrutura com suporte.
- Docker Desktop instalado para desenvolvimento de contêiner local.
- CLI do Azure versão 2.80 ou posterior.
Permissões necessárias
Você precisa ter a função Gerenciador de Projeto do Foundry no escopo do projeto para implantar um agente hospedado. Essa função concede permissões de plano de dados para criar e atualizar agentes, além da capacidade de criar atribuições de função para a identidade do agente criada pela plataforma, se necessário. Para obter um detalhamento das permissões envolvidas, consulte a referência de permissões do agente hospedado.
Importante
As funções RBAC do Foundry foram renomeadas recentemente. Foundry User, Foundry Owner, Foundry Account Owner e Foundry Project Manager eram anteriormente chamados de Usuário do Azure AI, Proprietário do Azure AI, Proprietário da conta do Azure AI e Gerente de Projeto do Azure AI. Você ainda pode ver os nomes anteriores em alguns lugares enquanto essa mudança de nome está sendo implementada. Os IDs das funções e as permissões principais não são alterados com a mudança de nome.
A plataforma cria uma identidade de agente de Microsoft Entra dedicada para cada agente hospedado no momento da implantação. Essa identidade é um principal de serviço que o contêiner em execução usa para acessar modelos e ferramentas. Você não precisa configurar identidades gerenciadas manualmente. A identidade do agente pode acessar a inferência de modelos por meio do endpoint do projeto e do armazenamento de sessão, por padrão. Para recursos externos (por exemplo, seu próprio Armazenamento do Azure), atribua funções RBAC manualmente à Microsoft Entra ID do agente. Para obter mais informações, consulte o acesso do Agente além dos padrões.
Se você usar azd ou a extensão do VS Code, as ferramentas lidam com a maioria das atribuições de RBAC automaticamente, incluindo Leitor de Repositório de Registro de Contêiner para a identidade gerenciada do projeto (extrações de imagem).
Para obter mais informações, consulte Autenticação e autorização.
Importante
O suporte para implantar o Registro de Contêiner do Azure do seu agente hospedado em uma rede privada (ponto de extremidade privado com o acesso à rede pública desativado) depende de quando o projeto Foundry foi criado. Os projetos criados após 25 de junho de 2026 dão suporte a um registro privado. Projetos criados antes dessa data exigem que o registro esteja acessível por meio do seu endpoint público para que a plataforma possa baixar a imagem. Os projetos existentes não são afetados. Para obter a lista completa de restrições de rede, consulte Limitações.
Requisitos de contêiner
Sua imagem de contêiner deve atender aos requisitos a seguir para ser executada na plataforma do agente hospedado.
Importante
A plataforma de hospedagem requer imagens de contêiner x86_64 (linux/amd64). Se você estiver desenvolvendo no Apple Silicon ou em outros computadores baseados em ARM, use docker build --platform linux/amd64 . para evitar a criação de uma imagem ARM incompatível.
Bibliotecas de protocolo
Os agentes hospedados se comunicam com o gateway do Foundry por meio de bibliotecas de protocolo. Escolha o protocolo que corresponde ao padrão de interação do agente:
| Protocolo | biblioteca de Python | biblioteca de .NET | Ponto de extremidade | Melhor para |
|---|---|---|---|---|
| Respostas | azure-ai-agentserver-responses |
Azure.AI.AgentServer.Responses |
/responses |
Chatbots de conversa, streaming, vários turnos com histórico gerenciado pela plataforma |
| Invocações | azure-ai-agentserver-invocations |
Azure.AI.AgentServer.Invocations |
/invocations |
Receptores de webhook, processamento não conversacional, fluxos de trabalho assíncronos personalizados |
| Invocações (WebSocket) | azure-ai-agentserver-invocations |
Azure.AI.AgentServer.Invocations |
/invocations_ws |
Streaming bidirecional: agentes de voz em tempo real, mídia interativa |
O protocolo WebSocket usa o identificador invocations_ws e envia no mesmo azure-ai-agentserver-invocations pacote que a rota HTTP /invocations , para que um contêiner possa atender a ambos. Use isso quando precisar de streaming persistente e bidirecional completo, por exemplo, para enviar PCM do microfone ao agente e receber de volta áudio sintetizado. Para cenários de voz, consulte Criar um agente de voz com agentes hospedados.
Um único contêiner pode expor vários protocolos simultaneamente declarando-os quando você cria o agente - no protocols campo do azure.ai.agent serviço em azure.yaml, uma chamada do SDK ou uma solicitação de API REST - e importando as bibliotecas necessárias. Use as bibliotecas de protocolo em sua estrutura existente, seja o Microsoft Agent Framework, o LangChain ou o código personalizado.
Biblioteca de protocolos de respostas
As bibliotecas Python e .NET para o protocolo Respostas implementam a API de Respostas de IA Azure. Importe o pacote e implemente a IResponseHandler interface. A biblioteca lida com roteamento, streaming com SSE (eventos enviados pelo servidor), execução em segundo plano, cancelamento, cache e gerenciamento do ciclo de vida de resposta.
IResponseHandler
IResponseHandler é a abstração principal que você implementa. A biblioteca chama CreateAsync para cada solicitação de entrada e entrega o IAsyncEnumerable<ResponseStreamEvent> retornado aos clientes por meio de SSE:
public class EchoHandler : ResponseHandler
{
public override IAsyncEnumerable<ResponseStreamEvent> CreateAsync(
CreateResponse request,
ResponseContext context,
CancellationToken cancellationToken)
{
return new TextResponse(context, request,
createText: async ct =>
{
var input = await context.GetInputTextAsync(cancellationToken: ct);
return $"Echo: {input}";
});
}
}
ResponseEventStream
ResponseEventStream gerencia sequenceNumber, outputIndex, contentIndex, itemId e o ciclo de vida completo de Response automaticamente. Cada yield return corresponde diretamente a um evento SSE, então você não precisa acompanhar esse estado sozinho.
Modos de streaming e em segundo plano
- Modo de streaming (padrão): os eventos SSE são entregues em tempo real ao cliente conectado.
-
Modo de plano de fundo: o manipulador é executado até a conclusão sem um cliente SSE conectado. Os eventos são armazenados em buffer e estão disponíveis para reprodução por meio do
GET /responses/{id}.
Ciclo de vida de resposta
A biblioteca orquestra o ciclo de vida completo da resposta: created ->in_progress ->completed (ou failed ou cancelled). A biblioteca também gerencia automaticamente o cancelamento, o tratamento de erros e as garantias de eventos terminais.
Segurança de thread
Todas as instâncias de serviço registradas por meio de AddResponsesServer() são seguras para threads. As instâncias do manipulador são definidas por solicitação.
Para obter diretrizes detalhadas de implementação do manipulador, consulte o guia de implementação handler. Para obter exemplos executáveis, consulte os exemplos de protocolo Responses.
Pontos de extremidade de integridade
As bibliotecas de protocolo expõem automaticamente um(a) /readiness endpoint para verificações de integridade da plataforma. Você não precisa implementar isso por conta própria.
Porta
Os contêineres atendem o tráfego na porta 8088 localmente. Na produção, o gateway do Foundry cuida do roteamento; seu contêiner não precisa expor uma porta pública.
Variáveis de ambiente injetadas na plataforma
A plataforma do agente hospedado injeta automaticamente variáveis de ambiente no contêiner em runtime. Seu código pode ler essas variáveis sem declará-las no mapa env do serviço azure.ai.agent em azure.yaml nem nas configurações de variáveis de ambiente do SDK e da REST. O FOUNDRY_* prefixo é reservado para uso de plataforma.
| Variável | Propósito |
|---|---|
FOUNDRY_PROJECT_ENDPOINT |
URL do endpoint do projeto Foundry |
FOUNDRY_PROJECT_ARM_ID |
ID do recurso ARM do projeto Foundry |
FOUNDRY_AGENT_NAME |
Nome do agente em execução |
FOUNDRY_AGENT_VERSION |
Versão do agente em execução |
FOUNDRY_AGENT_SESSION_ID |
ID da sessão para a solicitação atual (somente contêineres hospedados) |
APPLICATIONINSIGHTS_CONNECTION_STRING |
Cadeia de conexão do Application Insights para telemetria |
Não redeclare variáveis injetadas na plataforma em azure.yaml : elas são definidas automaticamente.
Variáveis que você declara, como MODEL_DEPLOYMENT_NAME ou pontos de extremidade MCP da caixa de ferramentas, vão no env mapa do azure.ai.agent serviço em azure.yaml ou na chamada do SDK create_version.
Importante
Quando você implanta seu agente hospedado no Serviço de Agente do Foundry, a plataforma injeta automaticamente uma cadeia de conexão do Application Insights no contêiner do agente como uma variável de ambiente, permitindo o rastreamento do OpenTelemetry por padrão. Para exibir rastreamentos distribuídos, solicitações e dependências, abra o recurso do Application Insights provisionado durante a configuração no portal do Azure e navegue até Investigar > Pesquisa de transações ou Desempenho. Use azd ai agent monitor os para logs de console ao vivo. Quando o AppInsights está habilitado, esse projeto registra rastreamentos para ajudar a monitorar e avaliar as interações no nível do usuário com agentes. Membros do projeto aos quais foi atribuída a função Leitor do Log Analytics no AppInsights podem visualizar dados de rastreamento, os quais podem conter dados pessoais e/ou Conteúdo do Cliente. Se as tabelas de Log Analytics subjacentes estiverem protegidas, os membros precisarão da função Leitor de Dados de Monitoramento Privilegiado para exibir esses dados de rastreamento. Examine quais dados de rastreamento são coletados e quem pode exibir e usar esses dados. Preços adicionais do Azure Monitor App Insights podem ser aplicados.
Saiba mais.
Referenciar conexões de projeto em variáveis de ambiente
Em vez de codificar secretos (chaves de API, tokens, pontos de extremidade) diretamente no seu código azure.yaml ou na sua imagem, obtenha-os a partir de uma conexão com um projeto do Foundry no momento da inicialização da área restrita. Qualquer valor que você declarar como variável de ambiente pode ser uma expressão de marcador que a plataforma resolve antes que seu contêiner seja iniciado.
Sintaxe de marcador
Um marcador tem a forma ${{connections.<name>.<path>}}, em que <name> é o nome do recurso da conexão (visível no portal em Detalhes do projeto>Recursos conectados) e <path> é um dos seguintes:
| Caminho | É resolvido desta forma |
|---|---|
credentials.<field> |
Um campo secreto na conexão |
target |
A propriedade target da conexão (por exemplo, uma URL de endpoint) |
metadata.<field> |
Um campo abaixo de metadata da conexão |
O nome do campo a ser usado depende da categoria de conexão:
| Categoria de conexão | Nome do campo no espaço reservado |
|---|---|
ApiKey, AppInsights |
Sempre key--por exemplo, credentials.key |
CustomKeys |
O nome da chave que você forneceu ao criar a conexão, por exemplo, credentials.github_token |
Example
Primeiro, crie uma CustomKeys conexão no projeto que armazena o segredo. Consulte Adicionar uma nova conexão no Microsoft Foundry. Em seguida, faça referência a ele a partir do env mapa no azure.ai.agent serviço em azure.yaml:
services:
my-agent:
host: azure.ai.agent
env:
MODEL_DEPLOYMENT_NAME: gpt-5-mini
GITHUB_TOKEN: ${{connections.agent-secrets.credentials.github_token}}
Na inicialização do sandbox, a Foundry resolve o marcador e injeta o valor resolvido como uma variável de ambiente comum. Seu código o lê como qualquer outro env var:
import os
token = os.environ["GITHUB_TOKEN"]
Um GET na versão do agente retorna o texto literal ${{...}} – o segredo resolvido nunca é ecoado novamente por meio da API de gerenciamento.
Considerações
- Crie a conexão antes de implantar a versão. Se a conexão ou o campo referenciado estiver ausente na inicialização do sandbox, o placeholder não é resolvido e a variável fica vazia.
- Os segredos são somente gravação. GET em uma conexão retorna
credentials: null. Verifique a resolução lendo o env var de dentro do contêiner em execução, não inspecionando a conexão. - Registre você mesmo os nomes dos campos
CustomKeys. A API de gerenciamento nunca os ecoa novamente após a criação. Mantenha-os próximos à sua fonte de agente (por exemplo, em modelos de IaC ou ao lado deazure.yaml) para que você possa criar placeholders posteriormente sem precisar adivinhar. - O Foundry gerencia o nome do segredo de backup. Quando você cria a conexão, o Foundry armazena o valor no Key Vault com um nome que ele mesmo escolhe — você não pode referenciar um segredo existente do Key Vault pelo nome. Para usar seu próprio Key Vault como repositório de suporte, consulte Configure uma conexão com o Key Vault.
Empacote e execute teste no seu agente em ambiente local
Antes de implantar no Foundry, valide se o agente funciona localmente usando a biblioteca de protocolos. O contêiner atende aos mesmos pontos de extremidade localmente como em produção.
Testar o protocolo de respostas
POST http://localhost:8088/responses
Content-Type: application/json
{
"input": "Where is Seattle?",
"stream": false
}
Testar o protocolo Invocations
POST http://localhost:8088/invocations
Content-Type: application/json
{
"message": "Hello!"
}
Implantar usando a CLI do desenvolvedor Azure ou o VS Code
A CLI do Desenvolvedor do Azure (azd) e o Kit de Ferramentas do Microsoft Foundry para Visual Studio Code automatizam todo o ciclo de vida da implantação: compilar o contêiner, enviá-lo para o Registro de Contêiner do Azure, criar a versão do agente e atribuir funções RBAC. Para obter um passo a passo guiado pela primeira vez, consulte o Início Rápido: Criar e implantar um agente hospedado.
Implante com um comando
No diretório do projeto do agente, provisione a infraestrutura e implante em uma única etapa:
azd up
azd up combina azd provision, que cria o projeto Foundry, a implantação de modelo, o registro de contêineres, o Application Insights e a identidade gerenciada, com azd deploy. Use-o em implantações iniciais ou sempre que você alterar tanto a infraestrutura quanto o código do agente.
Implantar apenas alterações no código
Se você já provisionou seus recursos de Azure e só precisa enviar por push uma nova versão do agente:
azd deploy
Durante azd deploy, a CLI:
- Cria sua imagem de contêiner remotamente em Registro de Contêiner do Azure, para que você não precise do Docker local.
- Efetua push da imagem para o registro.
- Cria uma versão hospedada do agente no Foundry Agent Service.
- Cria uma identidade de agente Microsoft Entra dedicada e atribui as funções RBAC que o agente precisa para acessar modelos e ferramentas.
Gerenciar versões
Cada azd deploy cria uma nova versão do agente. A CLI preserva as versões anteriores e a versão mais recente está ativa por padrão.
Verificar a implantação
azd ai agent show
A saída inclui o nome do agente, a versão, os protocolos, os recursos do contêiner, as variáveis de ambiente e a data e hora de criação. Use --output table para uma exibição de resumo.
Criar imagens localmente
Por padrão, azd cria imagens de contêiner remotamente em Registro de Contêiner do Azure. Para criar imagens localmente, defina remoteBuild: false em azure.yaml. Os builds locais exigem o Docker Desktop.
Para verificar prompts e respostas com base em uma política de segurança de conteúdo, adicione uma proteção de segurança de conteúdo ao seu agente.
Implantar usando o SDK do Python
Use o SDK quando quiser gerenciar implantações de agente diretamente de Python código.
Pré-requisitos adicionais
Uma imagem de contêiner em Registro de Contêiner do Azure
Gravador de Repositório do Registro de Contêiner ou AcrPush no registro de contêiner (para fazer push de imagens)
Azure SDK de Projetos de IA versão 2.3.0 ou posterior
pip install "azure-ai-projects>=2.3.0"
Compilar e enviar a imagem do contêiner
Crie sua imagem do Docker:
docker build --platform linux/amd64 -t myagent:v1 .Envie para o Registro de Contêiner do Azure
az acr login --name myregistry docker tag myagent:v1 myregistry.azurecr.io/myagent:v1 docker push myregistry.azurecr.io/myagent:v1
Dica
Use marcas de imagem exclusivas em vez de :latest para implantações reproduzíveis.
Configurar permissões do Registro de Contêiner
Conceda à identidade gerenciada do seu projeto acesso para extrair imagens:
No portal Azure, acesse o recurso de projeto do Foundry.
Selecione Identidade e copie a ID do Objeto (principal) em Atribuído pelo sistema.
Atribua a função Leitor do Repositório de Registro de Contêiner a essa identidade no registro de contêiner. Consulte Registro de Contêiner do Azure funções e permissões.
Criar uma versão do agente hospedado
Quando você cria uma versão, a plataforma provisiona automaticamente o agente. Não há nenhuma etapa inicial separada. A plataforma cria um instantâneo de contêiner e prepara o agente para atender às solicitações.
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import HostedAgentDefinition, ProtocolVersionRecord, AgentEndpointProtocol, ContainerConfiguration
from azure.identity import DefaultAzureCredential
# Format: "https://resource_name.services.ai.azure.com/api/projects/project_name"
PROJECT_ENDPOINT = "your_project_endpoint"
# Create project client
credential = DefaultAzureCredential()
project = AIProjectClient(
endpoint=PROJECT_ENDPOINT,
credential=credential,
)
# Create a hosted agent version
agent = project.agents.create_version(
agent_name="my-agent",
definition=HostedAgentDefinition(
protocol_versions=[
ProtocolVersionRecord(protocol=AgentEndpointProtocol.RESPONSES, version="1.0.0")
],
cpu="1",
memory="2Gi",
container_configuration=ContainerConfiguration(
image="your-registry.azurecr.io/your-image:tag"
),
environment_variables={
"MODEL_DEPLOYMENT_NAME": "gpt-5-mini"
}
)
)
print(f"Agent created: {agent.name}, version: {agent.version}")
Para expor ambos os protocolos, passe-os ambos no protocol_versions
protocol_versions=[
ProtocolVersionRecord(protocol=AgentEndpointProtocol.RESPONSES, version="1.0.0"),
ProtocolVersionRecord(protocol=AgentEndpointProtocol.INVOCATIONS, version="1.0.0"),
ProtocolVersionRecord(protocol=AgentEndpointProtocol.INVOCATIONS_WS, version="1.0.0"),
],
Parâmetros de chave:
| Parâmetro | Descrição |
|---|---|
agent_name |
Nome exclusivo (alfanumérico com hifens, máximo de 63 caracteres) |
container_configuration.image |
URL completa da imagem do Registro de Contêiner do Azure com tag |
cpu |
Alocação de CPU (por exemplo, "1") |
memory |
Alocação de memória (por exemplo, "2Gi") |
protocol_versions |
Protocolos que o contêiner expõe (responsesou invocationsambos) |
Sondar o status da versão
Depois de criar uma versão, pressione até que o status seja active antes de invocar o agente. O provisionamento normalmente leva menos de um minuto, dependendo do tamanho da imagem.
import time
# Poll until the agent version is active
while True:
version_info = project.agents.get_version(
agent_name="my-agent",
agent_version=agent.version
)
status = version_info["status"]
print(f"Status: {status}")
if status == "active":
print("Agent is ready!")
break
elif status == "failed":
print(f"Provisioning failed: {version_info['error']}")
break
time.sleep(5)
Valores de status de versão:
| Status | Descrição |
|---|---|
creating |
Provisionamento de infraestrutura em andamento |
active |
O agente está pronto para atender às solicitações |
failed |
Falha no provisionamento – verifique se há detalhes no error campo |
deleting |
A versão está sendo otimizada |
deleted |
A versão foi totalmente removida |
Invocar o agente
Depois que a versão atingir o status active, use get_openai_client para criar um cliente do OpenAI vinculado ao ponto de extremidade do agente.
Para o protocolo Respostas :
# Create an OpenAI client bound to the agent endpoint
openai_client = project.get_openai_client(agent_name="my-agent")
response = openai_client.responses.create(
input="Hello! What can you do?",
)
print(response.output_text)
Para o protocolo Invocações, chame o endpoint de invocações diretamente:
import requests
token = credential.get_token("https://ai.azure.com/.default").token
url = f"{PROJECT_ENDPOINT}/agents/my-agent/endpoint/protocols/invocations"
response = requests.post(url, headers={
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
}, params={"api-version": "v1"}, json={
"message": "Process this task"
})
print(response.json())
Para obter exemplos mais completos, consulte os exemplos de agente hospedado.
Implantar usando a API REST
Use a API REST para implantações diretas baseadas em HTTP ou ao integrar com ferramentas personalizadas.
Antes de começar, compile e envie por push sua imagem de contêiner para o Registro de Contêiner do Azure e conceda à identidade gerenciada do projeto a função Container Registry Repository Reader no registro.
Configurar variáveis
BASE_URL="https://{account}.services.ai.azure.com/api/projects/{project}"
API_VERSION="v1"
TOKEN=$(az account get-access-token --resource https://ai.azure.com --query accessToken -o tsv)
Criar um agente
curl -X POST "$BASE_URL/agents?api-version=$API_VERSION" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "my-agent",
"definition": {
"kind": "hosted",
"container_configuration": {
"image": "myacr.azurecr.io/my-agent:v1"
},
"cpu": "1",
"memory": "2Gi",
"protocol_versions": [
{"protocol": "responses", "version": "1.0.0"}
],
"environment_variables": {
"MODEL_DEPLOYMENT_NAME": "gpt-5-mini"
}
}
}'
A criação de um agente também cria a versão 1 e dispara o provisionamento.
Para filtrar prompts e respostas de acordo com uma política de segurança de conteúdo, inclua um objeto rai_config no definition. Consulte Adicionar um guardrail de segurança de conteúdo a um agente hospedado.
Sondar o status da versão
Consultar o ponto de extremidade de versão até que status seja active:
while true; do
STATUS=$(curl -s -X GET "$BASE_URL/agents/my-agent/versions/1?api-version=$API_VERSION" \
-H "Authorization: Bearer $TOKEN" | jq -r '.status')
echo "Status: $STATUS"
[ "$STATUS" = "active" ] && echo "Ready!" && break
[ "$STATUS" = "failed" ] && echo "Provisioning failed." && exit 1
sleep 5
done
Invocar o agente
Use o endpoint dedicado do agente para enviar solicitações. Defina "stream": true para receber eventos enviados pelo servidor.
Protocolo de respostas:
curl -X POST "$BASE_URL/agents/my-agent/endpoint/protocols/openai/responses?api-version=$API_VERSION" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"input": "Hello! What can you do?",
"store": true
}'
Protocolo de invocações:
curl -X POST "$BASE_URL/agents/my-agent/endpoint/protocols/invocations?api-version=$API_VERSION" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"message": "Process this task"
}'
Criar uma nova versão
Implante o código ou a configuração atualizados criando uma nova versão:
curl -X POST "$BASE_URL/agents/my-agent/versions?api-version=$API_VERSION" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"definition": {
"kind": "hosted",
"container_configuration": {
"image": "myacr.azurecr.io/my-agent:v2"
},
"cpu": "1",
"memory": "2Gi",
"protocol_versions": [
{"protocol": "responses", "version": "1.0.0"}
],
"environment_variables": {
"MODEL_DEPLOYMENT_NAME": "gpt-5-mini"
}
}
}'
Limpar recursos
Para evitar custos, libere os recursos quando concluir. A computação do agente é desprovisionada após 15 minutos de inatividade, portanto, não há custo quando um agente não está atendendo solicitações.
Limpeza da CLI para Desenvolvedores do Azure
azd down
Limpeza do SDK
Excluir uma única versão:
project.agents.delete_version(agent_name="my-agent", agent_version=agent.version)
Ou exclua todo o agente e todas as suas versões:
project.agents.delete(agent_name="my-agent")
Limpeza da API REST
Excluir uma única versão:
curl -X DELETE "$BASE_URL/agents/my-agent/versions/1?api-version=$API_VERSION" \
-H "Authorization: Bearer $TOKEN"
Ou exclua todo o agente:
curl -X DELETE "$BASE_URL/agents/my-agent?api-version=$API_VERSION" \
-H "Authorization: Bearer $TOKEN"
Aviso
Excluir um agente remove todas as suas versões e encerra as sessões ativas. Esta ação não pode ser desfeita.
Solucionando problemas
Os erros de provisionamento aparecem nos campos error.code e error.message do objeto de versão. Verifique o status da versão após a criação para identificar problemas.
| Código de erro | Código HTTP | Solução |
|---|---|---|
image_pull_failed |
400 | Verifique o URI da imagem. Confirme se a identidade gerenciada do projeto possui o Leitor de Repositório do Registro de Contêiner no ACR e se o status da política azureADAuthenticationAsArmPolicy do registro é enabled |
SubscriptionIsNotRegistered |
400 | Registrar o provedor de assinatura |
InvalidAcrPullCredentials |
401 | Corrigir a identidade gerenciada ou o RBAC do registro |
UnauthorizedAcrPull |
403 | Fornecer credenciais ou identidade corretas |
AcrImageNotFound |
404 | Corrigir nome/etiqueta da imagem ou publicar imagem |
RegistryNotFound |
400/404 | Corrigir o DNS do Registro ou a acessibilidade de rede |
Para erros 5xx, entre em contato com Microsoft suporte.
Para obter requisitos de RBAC detalhados e solução de problemas de permissão, consulte a referência de permissões do agente hospedado.