Tu primer agente con Microsoft Foundry: guía paso a paso con Python

Llevo un tiempo siguiendo la evolución de Azure AI Foundry y, hasta hace poco, montar un agente conversacional requería bastantes piezas: orquestadores, gestión manual de hilos, autenticación con tokens… La cosa se ha simplificado mucho. Con el nuevo Foundry Agent Service y el SDK azure-ai-projects 2.x puedes tener un agente funcionando en menos de 50 líneas de Python.

En esta guía vamos a hacer exactamente eso. Partimos desde cero: creamos el proyecto en Azure, desplegamos un modelo, preparamos el entorno y programamos un agente que mantiene historial de conversación entre turnos. Sin magia negra.

Qué es un Prompt Agent en Foundry

Un Prompt Agent es, en esencia, un agente definido de forma declarativa. Le dices qué modelo usa, qué instrucciones sigue y qué herramientas tiene disponibles — y Foundry se encarga de lo demás. No hay que gestionar hilos manualmente ni construir el contexto a mano.

Lo interesante es que soporta todos los modelos directos de Foundry: gpt-4.1-mini, gpt-5-mini, y cualquier otro que tengas desplegado en tu proyecto. Y la conversación multi-turno viene de serie — el historial se mantiene automáticamente usando un objeto Conversation.

Nota: El SDK 2.x usa la nueva API «Foundry projects (new)». Si vienes de azure-ai-projects 1.x, el código NO es compatible. Hay una sección de migración en la documentación oficial.

Prerrequisitos: montar la infraestructura

Antes de escribir una sola línea de Python necesitamos tres cosas en Azure: un recurso Foundry, un proyecto dentro de ese recurso, y un modelo desplegado. Vamos con Azure CLI, que es más reproducible que el portal.

1. Crear el recurso y el proyecto

Primero, un grupo de recursos (o usa uno existente):

az group create –name my-foundry-rg –location eastus

Luego el recurso Foundry — ojo con el flag –allow-project-management, es obligatorio:

az cognitiveservices account create \
–name my-foundry-resource \
–resource-group my-foundry-rg \
–kind AIServices \
–sku s0 \
–location eastus \
–allow-project-management

El nombre del recurso también se usa como subdominio, así que tiene que ser único globalmente. Si el nombre está ocupado, añade un sufijo numérico o tus iniciales.

az cognitiveservices account update \
–name my-foundry-resource \
–resource-group my-foundry-rg \
–custom-domain my-foundry-resource

az cognitiveservices account project create \
–name my-foundry-resource \
–resource-group my-foundry-rg \
–project-name my-foundry-project \
–location eastus

2. Desplegar un modelo

Desplegamos gpt-4.1-mini. Es el modelo que usaremos en el agente — pequeño, rápido y más que suficiente para este escenario:

az cognitiveservices account deployment create \
–name my-foundry-resource \
–resource-group my-foundry-rg \
–deployment-name gpt-4.1-mini \
–model-name gpt-4.1-mini \
–model-version «2025-04-14» \
–model-format OpenAI \
–sku-capacity 10 \
–sku-name Standard

Cuando el estado sea provisioningState: Succeeded ya estamos listos. Anota el endpoint del proyecto — lo necesitarás en el código. Puedes verlo en el portal de Foundry (https://ai.azure.com) en la pantalla de bienvenida del proyecto, o con az cognitiveservices account project show.

Preparar el entorno de desarrollo

Python 3.10 o superior, entorno virtual, Azure CLI instalado. Nada especial. Pero sí hay un detalle importante: la autenticación se hace con az login, no con API keys. El SDK usa DefaultAzureCredential, que en local lee tus credenciales del CLI.

# Windows
py -3 -m venv .venv
.venv\scripts\activate

# Instalar Azure CLI (si no lo tienes)
winget install -e –id Microsoft.AzureCLI

# Autenticarse
az login

# Instalar el SDK (versión 2.x, obligatorio)
pip install «azure-ai-projects>=2.0.0»

Un apunte sobre la versión: el pip install sin restricción puede darte la 1.x si hay problemas de resolución. Mejor fijar el rango como aparece arriba.

Crear el agente con Python

Con el entorno listo, crear el agente son cuatro líneas efectivas. El resto es setup de cliente:

from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import PromptAgentDefinition

PROJECT_ENDPOINT = «https://my-foundry-resource.ai.azure.com/api/projects/my-foundry-project»
AGENT_NAME = «MiAsistenteGeneral»

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

agent = project.agents.create_version(
agent_name=AGENT_NAME,
definition=PromptAgentDefinition(
model=»gpt-4.1-mini»,
instructions=»Eres un asistente técnico que responde en español.»,
),
)
print(f»Agente creado: {agent.name} (id: {agent.id}, versión: {agent.version})»)

Fíjate en el objeto PromptAgentDefinition: ahí van las instrucciones del sistema y el modelo. Puedes actualizar o eliminar el agente en cualquier momento — no es inmutable.

Conversación multi-turno: el agente recuerda

Y aquí viene lo bueno. Con un objeto Conversation el agente mantiene el contexto entre mensajes. No hace falta pasar el historial manualmente:

openai = project.get_openai_client()

# Crear una conversación (hilo persistente)
conversation = openai.conversations.create()

# Primer mensaje
response = openai.responses.create(
conversation=conversation.id,
extra_body={«agent_reference»: {«name»: AGENT_NAME, «type»: «agent_reference»}},
input=»¿Cuál es la superficie de Francia en kilómetros cuadrados?»,
)
print(response.output_text)

# Pregunta de seguimiento — el agente recuerda el contexto
response = openai.responses.create(
conversation=conversation.id,
extra_body={«agent_reference»: {«name»: AGENT_NAME, «type»: «agent_reference»}},
input=»¿Y cuál es su capital?»,
)
print(response.output_text)

La segunda pregunta —»¿Y cuál es su capital?»— no necesita contexto adicional. El agente ya sabe que estamos hablando de Francia porque la conversación lo recuerda. Esto es justo lo que diferencia un agente real de un simple completion de una sola vuelta.

Nota: El endpoint del proyecto tiene el formato: https://nombre-recurso.ai.azure.com/api/projects/nombre-proyecto. Puedes copiarlo directamente desde la pantalla de bienvenida del proyecto en ai.azure.com.

Conclusión

Si trabajas con Azure AI Foundry y necesitas montar agentes conversacionales rápido, el Foundry Agent Service con azure-ai-projects 2.x es la opción más directa ahora mismo. La infraestructura con CLI te lleva unos 10 minutos, y el código del agente es sorprendentemente limpio.

Hay cosas que no hemos cubierto aquí — herramientas personalizadas, function calling, memoria persistente entre sesiones — pero este quickstart es el punto de partida correcto. Desde aquí ya puedes explorar el catálogo de herramientas del SDK y añadir capacidades según lo que necesite tu caso de uso.

Documentación oficial utilizada (actualizada a abril de 2026):