Migrar agentes hospedados para a versão prévia pública atualizada

Este artigo orienta você na migração de agentes hospedados da visualização pública inicial para a visualização pública atualizada do Foundry Agent Service. A versão prévia atualizada apresenta um novo back-end de hospedagem, bibliotecas de protocolo, modelo de identidade e APIs de gerenciamento.

Importante

O back-end inicial de hospedagem de visualização pública está sendo desativado. Você deve reimplantar seus agentes usando o novo modelo descrito neste artigo. As implantações de agente existentes no back-end antigo não serão migradas automaticamente e terão suporte apenas até 22 de maio de 2026.

Este guia se aplica a você caso tenha implantado um agente hospedado antes de abril de 2026 usando os pacotes azure-ai-agentserver-agentframework ou azure-ai-agentserver-langgraph qualquer código personalizado que utilizou as APIs de hospedagem em versão prévia inicial.

O que mudou

A versão prévia atualizada implementa um modelo de sandbox baseado em sessão na plataforma existente. Principais alterações:

  • Ciclo de vida de computação automática – não há início manual, interrupção ou gerenciamento de réplica. A plataforma provisiona a computação quando uma solicitação chega e a desprovisiona após 15 minutos de inatividade. Consulte o mapeamento de comando da CLI.
  • Isolamento baseado em sessão — Cada sessão recebe seu próprio sandbox com armazenamento persistente $HOME e /files entre turnos e períodos ociosos.
  • As bibliotecas de protocolo substituem adaptadores de estrutura — os pacotes de adaptador específicos da estrutura (azure-ai-agentserver-agentframework, azure-ai-agentserver-langgraph) são substituídos por bibliotecas específicas do protocolo (azure-ai-agentserver-responses, azure-ai-agentserver-invocations). Consulte Biblioteca de Protocolos e Migração de Framework.
  • Identidade dedicada do agente a partir do tempo de implantação – cada agente recebe sua própria identidade Entra durante a criação, substituindo o modelo compartilhado de identidade gerenciada pelo projeto. Consulte as alterações de Identidade e RBAC.
  • Ponto de extremidade do agente dedicado – cada agente obtém sua própria URL de ponto de extremidade (por exemplo, {project_endpoint}/agents/{name}/endpoint/protocols/openai/v1/responses). Você não precisa mais rotear por meio de um ponto de extremidade de projeto compartilhado com agent_reference no corpo da solicitação. Consulte as alterações de invocação do Agente.
  • Novos protocolos — invocações, atividades e protocolos A2A ingressam no protocolo de respostas existente. Um único agente pode expor vários protocolos simultaneamente.
  • API REST para ciclo de vida completo – cobertura REST completa para operações de agente, versão, sessão e arquivo. Consulte as alterações de método do SDK.
  • Criação de host de capacidade removida — A plataforma gerencia o provisionamento de infraestrutura automaticamente. Você não precisa mais criar um host de capacidade no nível da conta. Consulte APIs removidas.

Pré-requisitos

Etapas de migração em um relance

As etapas a seguir resumem a migração de ponta a ponta. Cada um direciona para a seção detalhada.

  1. Atualizar bibliotecas de protocolo e código do agente – substitua os adaptadores da estrutura pelas novas bibliotecas de protocolo e atualize o ponto de entrada do agente. Escolha seu caminho: Agent Framework, LangGraph ou custom/BYO.
  2. Atualização de chamadas de API, CLI e SDK — Remove comandos de CLI obsoletos, atualiza métodos de SDK e migra para o ponto de extremidade de agente dedicado. Consulte APIs removidas, mapeamento de comando da CLI, alterações de método do SDK e alterações de invocação do Agente.
  3. Atualização de identidade e RBAC — Concede acesso a recursos downstream à identidade Entra dedicada do agente. Consulte as alterações de Identidade e RBAC.
  4. Atualizar as ferramentas da Azure Developer CLI — Instalar a mais recente azd Extensão e atualização dos agentes do Foundry agent.yaml. Consulte alterações da CLI do Desenvolvedor do Azure.
  5. Reimplantar e verificar : crie sua imagem de contêiner, implante usando azd up ou o SDK e confirme se a versão atinge active o status.

Para obter um resumo de tarefa por tarefa, consulte a lista de verificação de migração no final deste artigo.

Biblioteca de protocolos e migração de estrutura

A versão preliminar inicial utilizava pacotes adaptadores específicos da estrutura (azure-ai-agentserver-agentframework, azure-ai-agentserver-langgraph) que encapsulavam o código de seu agente. A versão prévia atualizada substitui-as por bibliotecas específicas do protocolo e pacotes de integração de estrutura atualizados.

Seu caminho de migração depende de qual estrutura você usa:

  • Microsoft Agent Framework — Use os pacotes atualizados do Agent Framework com a ponte ResponsesHostServer.
  • LangGraph — Use a biblioteca de protocolo azure-ai-agentserver-responses diretamente com ResponsesAgentServerHost.
  • CrewAI, Kernel semântico ou código personalizado — use as bibliotecas de protocolo diretamente (azure-ai-agentserver-responses ou azure-ai-agentserver-invocations).

Alterações de pacote

Bibliotecas de protocolo (todos os usuários)

Pacote de visualização inicial Substituição da versão preliminar atualizada
azure-ai-agentserver-core azure-ai-agentserver-core 2.0.0b1 – ainda necessário, agora instalado automaticamente como uma dependência dos pacotes de protocolo
azure-ai-agentserver-agentframework Removido — consulte o Framework de Agentes ou os caminhos da biblioteca de protocolos abaixo
azure-ai-agentserver-langgraph Removido — use diretamente azure-ai-agentserver-responses ou azure-ai-agentserver-invocations
Azure.AI.AgentServer.Core (.NET) Azure.AI.AgentServer.Core 1.0.0-beta.21 — ainda necessário como dependência
Azure.AI.AgentServer.AgentFramework (.NET) Azure.AI.AgentServer.Responses 1.0.0-beta.1 ou Azure.AI.AgentServer.Invocations 1.0.0-beta.1

Pacotes do Agent Framework (somente usuários do Agent Framework)

Os pacotes do Agent Framework também foram atualizados para a versão prévia atualizada:

Visualização inicial Visualização atualizada
agent-framework (pacote único) agent-framework-core, agent-framework-openai, , agent-framework-foundryagent-framework-orchestrations
AzureAIAgentClient FoundryChatClient (de agent_framework.foundry)
ChatAgent Agent (de agent_framework)
@ai_function Decorador @tool decorador com parâmetro approval_mode
Não disponível agent-framework-foundry-hosting — ponte entre o Agent Framework e a biblioteca de protocolos

Migrar agentes do Agent Framework

Se seu agente usa o Microsoft Agent Framework, use a ponte ResponsesHostServer de agent-framework-foundry-hosting. Essa abordagem mantém o código do Agent Framework (definição de agente, ferramentas, instruções) intacto enquanto utiliza a nova biblioteca de protocolos nos bastidores.

Versão prévia inicial:

from azure.ai.agentserver.agentframework import from_agent_framework
from agent_framework import ai_function, ChatAgent
from agent_framework.azure import AzureAIAgentClient

client = AzureAIAgentClient(
    project_endpoint=PROJECT_ENDPOINT,
    model_deployment_name="gpt-4.1",
    credential=DefaultAzureCredential(),
)

@ai_function
def get_weather(location: str) -> str:
    """Get the weather for a location."""
    return f"The weather in {location} is sunny."

agent = ChatAgent(
    chat_client=client,
    instructions="You are a helpful assistant.",
    tools=[get_weather],
)

if __name__ == "__main__":
    from_agent_framework(agent).run()

Visualização atualizada:

import os

from agent_framework import Agent, tool
from agent_framework.foundry import FoundryChatClient
from agent_framework_foundry_hosting import ResponsesHostServer
from azure.identity import DefaultAzureCredential
from pydantic import Field
from typing_extensions import Annotated

client = FoundryChatClient(
    project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
    model=os.environ["MODEL_DEPLOYMENT_NAME"],
    credential=DefaultAzureCredential(),
)


@tool(approval_mode="never_require")
def get_weather(
    location: Annotated[str, Field(description="The location to get the weather for.")],
) -> str:
    """Get the weather for a location."""
    return f"The weather in {location} is sunny."


agent = Agent(
    client=client,
    instructions="You are a helpful assistant.",
    tools=[get_weather],
    default_options={"store": False},
)

server = ResponsesHostServer(agent)
server.run()

Principais diferenças:

  • AzureAIAgentClientFoundryChatClient (de agent_framework.foundry).
  • ChatAgentAgent (de agent_framework).
  • @ai_function@tool(approval_mode="never_require") com dicas de tipo Annotated para descrições de parâmetros.
  • from_agent_framework(agent).run()ResponsesHostServer(agent).run().
  • Adicione default_options={"store": False} porque o histórico de conversas é gerenciado pela plataforma de hospedagem.

Para ferramentas MCP, use client.get_mcp_tool() em vez de definir ferramentas na create_version API:

mcp_tool = client.get_mcp_tool(
    name="GitHub",
    url="https://api.githubcopilot.com/mcp/",
    headers={"Authorization": f"Bearer {github_pat}"},
    approval_mode="never_require",
)

agent = Agent(client=client, tools=[mcp_tool], ...)

Para obter exemplos, consulte os exemplos de agente hospedado do Agent Framework.

Nota

Para migração do .NET (C#) Agent Framework, o padrão usa extensões AddFoundryResponses e MapFoundryResponses ASP.NET em vez de ResponsesHostServer. Consulte os exemplos de agente hospedado do .NET Agent Framework para obter exemplos completos.

Migrar agentes do LangGraph

Se o agente usar o LangGraph, substitua o adaptador azure-ai-agentserver-langgraph pela biblioteca de protocolos azure-ai-agentserver-responses. A lógica do agente do LangGraph (definição de grafo, ferramentas, configuração de LLM) permanece a mesma: somente o ponto de entrada de hospedagem é alterado.

Versão prévia inicial:

from azure.ai.agentserver.langgraph import from_langgraph
from langchain_openai import AzureChatOpenAI
from langgraph.prebuilt import create_react_agent

llm = AzureChatOpenAI(azure_endpoint=ENDPOINT, azure_deployment="gpt-4o", ...)
tools = [my_tool_a, my_tool_b]
graph = create_react_agent(llm, tools=tools, prompt=SYSTEM_PROMPT)

if __name__ == "__main__":
    from_langgraph(graph).run()

Visualização atualizada:

import asyncio
import os

import httpx
from azure.ai.agentserver.responses import (
    CreateResponse,
    ResponseContext,
    ResponsesAgentServerHost,
    ResponsesServerOptions,
    TextResponse,
)
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from langchain_core.messages import AIMessage, HumanMessage
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent


FOUNDRY_PROJECT_ENDPOINT = os.environ["FOUNDRY_PROJECT_ENDPOINT"]
MODEL = os.environ.get("AZURE_AI_MODEL_DEPLOYMENT_NAME", "gpt-4.1")

_token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://ai.azure.com/.default"
)


# httpx auth hook that injects a fresh Microsoft Entra token on every request.
class _AzureTokenAuth(httpx.Auth):
    def auth_flow(self, request):
        request.headers["Authorization"] = f"Bearer {_token_provider()}"
        yield request


llm = ChatOpenAI(
    base_url=f"{FOUNDRY_PROJECT_ENDPOINT}/openai/v1",
    api_key="placeholder",  # overridden by _AzureTokenAuth
    model=MODEL,
    use_responses_api=True,
    http_client=httpx.Client(auth=_AzureTokenAuth()),
)
tools = [my_tool_a, my_tool_b]
graph = create_react_agent(llm, tools=tools, prompt=SYSTEM_PROMPT)

app = ResponsesAgentServerHost(
    options=ResponsesServerOptions(default_fetch_history_count=20)
)


@app.response_handler
async def handle(
    request: CreateResponse,
    context: ResponseContext,
    cancellation_signal: asyncio.Event,
):
    async def run_graph():
        try:
            history = await context.get_history()
        except Exception:
            history = []
        user_input = await context.get_input_text() or ""

        # Convert platform history to LangChain messages
        lc_messages = []
        for item in history:
            if hasattr(item, "content"):
                for c in item.content:
                    if hasattr(c, "text") and c.text:
                        if item.role == "user":
                            lc_messages.append(HumanMessage(content=c.text))
                        else:
                            lc_messages.append(AIMessage(content=c.text))
        lc_messages.append(HumanMessage(content=user_input))

        result = await graph.ainvoke({"messages": lc_messages})
        raw = result["messages"][-1].content
        if isinstance(raw, list):
            yield "".join(
                block.get("text", "") if isinstance(block, dict) else str(block)
                for block in raw
            )
        else:
            yield raw or ""

    return TextResponse(context, request, text=run_graph())


if __name__ == "__main__":
    app.run()

Principais diferenças:

  • azure-ai-agentserver-langgraphazure-ai-agentserver-responses. O adaptador específico do LangGraph é removido.
  • from_langgraph(graph).run() → Explicit ResponsesAgentServerHost com um @app.response_handler que retorna um TextResponse.
  • Usa ChatOpenAI com base_url=f"{FOUNDRY_PROJECT_ENDPOINT}/openai/v1" em vez de AzureChatOpenAI. Isso usa o ponto de extremidade com escopo de projeto, que requer apenas permissões em nível de projeto.
  • O histórico de conversas é obtido via context.get_history() e convertido em tipos de mensagem LangChain para suporte a múltiplas interações.
  • A lógica do agente do LangGraph (ferramentas, criação de grafo) não é alterada. Para controle refinado sobre chamadas de função, itens de raciocínio ou vários tipos de saída, use ResponseEventStream em vez de TextResponse.

Integração da Caixa de Ferramentas do MCP

Para conectar seu agente LangGraph às ferramentas do Foundry Toolbox via MCP, use langchain-mcp-adapters dentro de seu manipulador. Carregue ferramentas dinamicamente a partir do endpoint do MCP.

from langchain_mcp_adapters.tools import load_mcp_tools
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client


@app.response_handler
async def handle(request, context, cancellation_signal):
    user_input = await context.get_input_text()
    endpoint = os.environ["TOOLBOX_ENDPOINT"]
    token = DefaultAzureCredential().get_token("https://ai.azure.com/.default").token
    headers = {
        "Authorization": f"Bearer {token}",
        "Foundry-Features": "Toolsets=V1Preview",
    }

    async with streamablehttp_client(endpoint, headers=headers) as (r, w, _):
        async with ClientSession(r, w) as session:
            await session.initialize()
            tools = await load_mcp_tools(session)
            graph = create_react_agent(llm, tools=tools, prompt=SYSTEM_PROMPT)
            result = await graph.ainvoke(
                {"messages": [{"role": "user", "content": user_input}]},
            )
            # ... extract answer and return TextResponse

Adicione estes pacotes ao seu requirements.txt:

langchain-mcp-adapters>=0.1.0
mcp>=1.0.0

Para obter exemplos completos, consulte os exemplos de agente hospedado do LangGraph.

Migrar agentes personalizados ou BYO

Se você usar CrewAI, Kernel semântico ou outro código personalizado, use a biblioteca de protocolos diretamente. As bibliotecas de protocolo são independentes da estrutura– você lida com orquestração, ferramentas e memória em seu próprio código.

Protocolo de respostas – Uso ResponsesAgentServerHost para agentes de conversação. Registre seu manipulador com o decorador @app.response_handler:

import asyncio

from azure.ai.agentserver.responses import (
    CreateResponse,
    ResponseContext,
    ResponsesAgentServerHost,
    TextResponse,
)

app = ResponsesAgentServerHost()


@app.response_handler
async def handler(
    request: CreateResponse,
    context: ResponseContext,
    cancellation_signal: asyncio.Event,
):
    text = await context.get_input_text()
    return TextResponse(context, request, text=f"Echo: {text}")


app.run()

Para respostas de streaming, passe uma iterável assíncrona para TextResponse. Para controle refinado sobre chamadas de função, itens de raciocínio ou vários tipos de saída, use ResponseEventStream em vez de TextResponse.

Protocolo de Invocações — use InvocationAgentServerHost para agentes que precisam de cargas JSON arbitrárias (webhooks, processamento não conversacional). O manipulador usa os tipos Starlette Request/Response diretamente.

from azure.ai.agentserver.invocations import InvocationAgentServerHost
from starlette.requests import Request
from starlette.responses import JSONResponse, Response

app = InvocationAgentServerHost()


@app.invoke_handler
async def handle(request: Request) -> Response:
    data = await request.json()
    return JSONResponse({"greeting": f"Hello, {data['name']}!"})


app.run()

O protocolo Invocations também suporta operações de longa duração com @app.get_invocation_handler e @app.cancel_invocation_handler para sondagem e cancelamento.

Escolha seu protocolo com base no padrão de interação do agente. Veja o que são agentes hospedados – Protocolos para orientação sobre qual protocolo usar.

Alteração do formato de versão do protocolo

O formato de versão do protocolo foi alterado de "v1" para semver "1.0.0":

# Initial preview
ProtocolVersionRecord(protocol=AgentProtocol.RESPONSES, version="v1")

# Refreshed preview
ProtocolVersionRecord(protocol=AgentProtocol.RESPONSES, version="1.0.0")

APIs removidas

As seguintes APIs da versão prévia inicial não estão disponíveis na versão prévia atualizada:

API removida Razão
az cognitiveservices agent start O ciclo de vida de computação é automático – não é necessário iniciar manualmente
az cognitiveservices agent stop A computação é desprovisionada automaticamente após 15 minutos de inatividade
az cognitiveservices agent update Substituído por PATCH /agents/{name} para roteamento de ponto de extremidade. Crie uma nova versão para alterações em tempo de execução
az cognitiveservices agent delete-deployment Exclua a versão diretamente em vez disso
az cognitiveservices agent list-versions Usar az rest --method GET contra a API REST
az cognitiveservices agent show Usar az rest --method GET ou azd ai agent show
Criação de host de capacidade (PUT .../capabilityHosts/accountcaphost) A plataforma manipula a infraestrutura automaticamente
tools parâmetro em create_version As ferramentas são acessadas por meio do ponto de extremidade MCP da Caixa de Ferramentas do Foundry durante o tempo de execução.

Mapeamento de comando da CLI

CLI de visualização inicial Equivalente de versão preliminar atualizado
az cognitiveservices agent start --name X --agent-version 1 Removido — a computação é iniciada automaticamente na primeira solicitação
az cognitiveservices agent stop --name X --agent-version 1 Removido — o processamento para automaticamente após o tempo limite ocioso
az cognitiveservices agent update --min-replicas N --max-replicas M Removido — sem gerenciamento de réplicas
az cognitiveservices agent show --name X az rest --method GET --url "$BASE_URL/agents/X" --resource "https://ai.azure.com"
az cognitiveservices agent list-versions --name X az rest --method GET --url "$BASE_URL/agents/X/versions" --resource "https://ai.azure.com"
az cognitiveservices agent delete --name X az rest --method DELETE --url "$BASE_URL/agents/X" --resource "https://ai.azure.com"
az cognitiveservices agent delete --name X --agent-version 1 az rest --method DELETE --url "$BASE_URL/agents/X/versions/1" --resource "https://ai.azure.com"
az cognitiveservices agent delete-deployment --name X --agent-version 1 Removido — exclua a versão em vez disso

Onde BASE_URL está https://{account}.services.ai.azure.com/api/projects/{project}.

Alterações no método SDK

Visualização inicial Visualização atualizada
pip install "azure-ai-projects>=2.0.0" pip install "azure-ai-projects>=2.1.0"
project.get_openai_client() por extra_body={"agent_reference": {"name": ..., "type": "agent_reference"}} project.get_openai_client(agent_name="my-agent") — o cliente está pré-vinculado, não é extra_body necessário
ProtocolVersionRecord(protocol=AgentProtocol.RESPONSES, version="v1") ProtocolVersionRecord(protocol=AgentProtocol.RESPONSES, version="1.0.0")
tools=[...] Em HostedAgentDefinition Removido — use o ponto de extremidade MCP do Foundry Toolbox
Não disponível project.beta.agents.create_session(agent_name, isolation_key=..., version_indicator=...), .get_session(), , .list_sessions().delete_session(isolation_key=...)
Não disponível project.beta.agents.download_session_file(path=...) .get_session_files(path=...), .delete_session_file(path=...)
Não disponível project.beta.agents.patch_agent_details() para roteamento de endpoints e distribuição de tráfego
Não disponível metadata={"enableVnextExperience": "true"} parâmetro em client.agents.create_version()

Alterações na invocação do agente

Na versão preliminar inicial, você roteava para agentes por meio de um ponto de extremidade de projeto compartilhado, passando um agent_reference no corpo da solicitação. Na versão prévia atualizada, cada agente obtém um ponto de extremidade dedicado e o SDK é associado a ele automaticamente.

Versão prévia inicial:

openai_client = project.get_openai_client()
response = openai_client.responses.create(
    input=[{"role": "user", "content": "Hello!"}],
    extra_body={"agent_reference": {"name": "my-agent", "type": "agent_reference"}}
)

Visualização atualizada:

openai_client = project.get_openai_client(agent_name="my-agent")
response = openai_client.responses.create(
    input="Hello!",
)
print(response.output_text)

Nota

Usar agent_name requer allow_preview=True ao construir o AIProjectClient:

project = AIProjectClient(
    credential=DefaultAzureCredential(),
    endpoint=PROJECT_ENDPOINT,
    allow_preview=True,
)

O agent_name parâmetro informa ao SDK que ele deve direcionar o endpoint dedicado do agente. Para chamadas REST, use o endpoint do agente diretamente.

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" \
  -H "Foundry-Features: HostedAgents=V1Preview" \
  -d '{"input": "Hello!", "model": "gpt-4.1", "stream": false}'

Importante

As chamadas REST para endpoints de agentes hospedados exigem o cabeçalho Foundry-Features: HostedAgents=V1Preview durante a pré-visualização. Sem ela, a solicitação retorna um preview_feature_required erro. O SDK define esse cabeçalho automaticamente.

Os pontos de extremidade ativos dependem dos protocolos que você declara na definição de versão do agente. As rotas de Respostas e Conversas residem no namespace compatível com OpenAI em {project_endpoint}/agents/{name}/endpoint/protocols/openai/v1/{responses|conversations}, enquanto Invocations, Activity e A2A roteiam diretamente em {project_endpoint}/agents/{name}/endpoint/protocols/{invocations|activityprotocol|a2a}.

Alterações de status de versão

Os estados do ciclo de vida do agente foram alterados de uma máquina de estados manual para estados de provisionamento automático:

Estado de visualização inicial Status de prévia atualizado
Stopped (inicial) Não aplicável — sem estado parado
StartingStarted creatingactive
Failed failed
Running Stopping → →Stopped Não aplicável — a computação é desprovisionada automaticamente
Não disponível deletingdeleted

Alterações de identidade e RBAC

O modelo de identidade foi alterado significativamente:

Aspecto Visualização inicial Visualização atualizada
Identidade de tempo de execução do agente não publicado Projeto de identidade gerenciada (compartilhada) Identidade do agente dedicado do Entra (por agente)
Quando a identidade dedicada é criada Apenas no momento da publicação No momento da implantação (todos os agentes)
Função de identidade gerenciada do projeto Identidade de tempo de execução para todos os agentes não publicados Somente infraestrutura — usado para pulls de imagens de contêiner
Função de implantação necessária Azure Proprietário de IA (novo projeto), Proprietário de IA + Colaborador (novos recursos) ou Leitor + usuário de IA Azure (projeto existente) Azure AI Project Manager no escopo do projeto
Reconfiguração do RBAC pós-publicação Obrigatório – as permissões de MI do projeto não são transferidas para a identidade do agente Não é necessário – o agente tem sua própria identidade desde o início

Ação necessária

  1. Atualizar atribuições de RBAC: a identidade gerenciada pelo projeto não é mais a identidade de tempo de execução. Conceda funções de RBAC para quaisquer recursos do Azure downstream diretamente à identidade Entra do agente.
  2. Simplifique os papéis de implantação: você precisa de Azure AI Project Manager no escopo do projeto para criar e implantar agentes hospedados.

Alterações na CLI do Desenvolvedor do Azure

Comandos atualizados

Visualização inicial Visualização atualizada
azd init -t https://github.com/Azure-Samples/azd-ai-starter-basic azd ai agent init (seleção interativa de modelo)
azd ai agent init --project-id /subscriptions/.../projects/... Mesma sintaxe, ainda com suporte
azd up Mesmo: configura, compila, envia, cria versão
azd down Mesmo : limpa os recursos
Não disponível azd ai agent show — exibir o status do agente
Não disponível azd ai agent monitor — status e logs em tempo real
Não disponível azd ai agent invoke --input "..." — invoque o agente
Não disponível azd ai agent files upload/list/download/remove — gerenciamento de arquivos de sessão

Ação necessária

  1. Atualize a extensão de agentes do Foundry:

    azd ext install azure.ai.agents
    
  2. Se seu agent.yaml especificar version: "v1" para versões de protocolo, altere para version: "1.0.0".

Alterações de streaming de log

Aspecto Visualização inicial Visualização atualizada
Ponto de acesso .../versions/{v}/containers/default:logstream .../versions/{v}/sessions/{sessionId}:logstream
Formato de resposta Texto sem formatação (segmentado) Eventos Enviados pelo Servidor (SSE) com Cargas JSON
Parâmetros de consulta kind=console\|system tail=20, replica_name Simplificado – sem parâmetros de consulta necessários
Conexão máxima 10 minutos 30 minutos
Tempo limite de inatividade 1 minuto 2 minutos
azd access Não disponível azd ai agent monitor

Lacunas conhecidas

Os seguintes recursos da versão prévia inicial ainda não estão disponíveis na versão prévia atualizada:

Funcionalidade Status Solução alternativa
az cognitiveservices agent Extensão da CLI Removido — sem comandos CLI de primeira parte Usar az rest para chamadas à API REST ou azd ai agent para fluxos de trabalho de desenvolvedor
Atualizações de metadados sem versão (descrição, etiquetas) Ainda não disponível via SDK Usar az rest --method PATCH contra a API REST
Dimensionamento explícito de réplica (réplicas mínimas/máximas) Substituído por dimensionamento automático baseado em sessão As sessões são dimensionadas automaticamente; nenhuma configuração necessária
Excluir implantação sem excluir a versão Não disponível Exclua a versão diretamente; criar uma nova versão quando necessário

Lista de verificação de migração

Use esta lista de verificação para acompanhar sua migração:

  • Atualize azure-ai-projects o SDK para a versão 2.1.0 ou posterior.
  • Usuários do Agent Framework: atualizar pacotes do Agent Framework (agent-framework-core, agent-framework-foundry, agent-framework-foundry-hostingetc.). Substitua from_agent_framework(agent).run() por ResponsesHostServer(agent).run(). Atualizar AzureAIAgentClientFoundryChatClient, ChatAgentAgente @ai_function@tool.
  • Usuários do LangGraph: substitua por azure-ai-agentserver-langgraphazure-ai-agentserver-responses. Substitua from_langgraph(graph).run() por um ResponsesAgentServerHost manipulador que retorna um TextResponse. Use ChatOpenAI com o ponto de extremidade com escopo de projeto em vez de AzureChatOpenAI. Adicionar langchain-mcp-adapters e mcp se estiver usando a Caixa de Ferramentas do Foundry.
  • Usuários personalizados/BYO: substitua pacotes de adaptador de estrutura por bibliotecas de protocolo (azure-ai-agentserver-responses ou azure-ai-agentserver-invocations). Reescreva pontos de entrada do agente usando ResponsesAgentServerHost ou InvocationAgentServerHost.
  • Atualize as strings de versão do protocolo de "v1" para "1.0.0" no código e em agent.yaml.
  • Atualize agent.yaml se estiver usando azd (formato de versão do protocolo, remova todas as definições tools da definição do agente).
  • Remova as chamadas de CLI az cognitiveservices agent dos scripts e pipelines de CI/CD; substitua-as por comandos az rest ou azd ai agent.
  • Remova as etapas de criação de hosts de capacidade dos scripts de provisionamento.
  • Atualizar código de invocação do agente — use project.get_openai_client(agent_name=...) em vez de extra_body com agent_reference.
  • Revise o RBAC — conceda acesso a recursos downstream à identidade Entra dedicada do agente, e não à identidade gerenciada pelo projeto.
  • Atualize azd a extensão de agentes do Foundry para a versão mais recente.
  • Crie uma imagem de contêiner com --platform linux/amd64 (se ainda não estiver).
  • Reimplante seu agente usando azd up ou o método SDK create_version .
  • Verifique se a nova versão alcança o status active antes de enviar o tráfego.

Próximas etapas