En esta guía rápida, empezarás a usar modelos y agentes en Foundry.
Hará lo siguiente:
- Generación de una respuesta a partir de un modelo
- Crear un agente con una indicación definida
- Tener una conversación multiturno con el agente
Prerrequisitos
Establecimiento de variables de entorno y obtención del código
Almacene el punto de conexión del proyecto como una variable de entorno. Establezca también estos valores para usarlos en los scripts.
PROJECT_ENDPOINT=<endpoint copied from welcome screen>
AGENT_NAME="MyAgent"
MODEL_DEPLOYMENT_NAME="gpt-4.1-mini"
Siga estos pasos a continuación o obtenga el código:
Inicie sesión con el comando de la CLI az login para autenticarse antes de ejecutar los scripts de Python.
Siga estos pasos a continuación o obtenga el código:
Inicie sesión con el comando de la CLI az login para autenticarse antes de ejecutar los scripts de C#.
Siga estos pasos a continuación o obtenga el código:
Inicie sesión con el comando de la CLI az login para autenticarse antes de ejecutar los scripts de TypeScript.
Siga estos pasos a continuación o obtenga el código:
Inicie sesión con el comando de la CLI az login para autenticarse antes de ejecutar los scripts de Java.
Siga estos pasos a continuación o obtenga el código:
Inicie sesión con el comando de la CLI az login para autenticarse antes de ejecutar el comando siguiente.
Obtenga un token de acceso temporal. Expirará en 60-90 minutos, necesitará actualizarlo después de eso.
az account get-access-token --scope https://ai.azure.com/.default
Guarde los resultados como la variable AZURE_AI_AUTH_TOKENde entorno .
No es necesario ningún código al usar el portal de Foundry.
Instalación y autenticación
Asegúrese de instalar la versión preliminar o prerelanzamiento correcta de los paquetes, tal como se muestra aquí.
Instale estos paquetes, incluida la versión preliminar de azure-ai-projects. Esta versión usa la API de proyectos de Foundry (nueva) (versión preliminar).
pip install --pre "azure-ai-projects>=2.0.0b4"
pip install python-dotenv
Inicie sesión con el comando de la CLI az login para autenticarse antes de ejecutar los scripts de Python.
Instale los paquetes:
Agregar paquetes NuGet mediante la CLI de .NET en el terminal integrado: Estos paquetes usan la API de proyectos Foundry (nueva) en versión preliminar.
dotnet add package Azure.AI.Projects --prerelease
dotnet add package Azure.AI.Projects.OpenAI --prerelease
dotnet add package Azure.Identity
Inicie sesión con el comando de la CLI az login para autenticarse antes de ejecutar los scripts de C#.
Instale estos paquetes, incluida la versión preliminar de @azure/ai-projects. Esta versión usa la API Foundry (nueva) (vista previa).
npm install @azure/ai-projects@beta @azure/identity dotenv
Inicie sesión con el comando de la CLI az login para autenticarse antes de ejecutar los scripts de TypeScript.
- Inicie sesión con el comando de la CLI
az login para autenticarse antes de ejecutar los scripts de Java.
Inicie sesión con el comando de la CLI az login para autenticarse antes de ejecutar el comando siguiente.
Obtenga un token de acceso temporal. Expirará en 60-90 minutos, necesitará actualizarlo después de eso.
az account get-access-token --scope https://ai.azure.com/.default
Guarde los resultados como la variable AZURE_AI_AUTH_TOKENde entorno .
No es necesario realizar ninguna instalación para usar el portal de Foundry.
Chatear con un modelo
La interacción con un modelo es el bloque de creación básico de las aplicaciones de inteligencia artificial. Envíe una entrada y reciba una respuesta del modelo:
import os
from dotenv import load_dotenv
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
load_dotenv()
print(f"Using PROJECT_ENDPOINT: {os.environ['PROJECT_ENDPOINT']}")
print(f"Using MODEL_DEPLOYMENT_NAME: {os.environ['MODEL_DEPLOYMENT_NAME']}")
project_client = AIProjectClient(
endpoint=os.environ["PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
)
openai_client = project_client.get_openai_client()
response = openai_client.responses.create(
model=os.environ["MODEL_DEPLOYMENT_NAME"],
input="What is the size of France in square miles?",
)
print(f"Response output: {response.output_text}")
using Azure.AI.Projects;
using Azure.AI.Projects.OpenAI;
using Azure.Identity;
using OpenAI;
using OpenAI.Responses;
#pragma warning disable OPENAI001
string projectEndpoint = Environment.GetEnvironmentVariable("PROJECT_ENDPOINT")
?? throw new InvalidOperationException("Missing environment variable 'PROJECT_ENDPOINT'");
string modelDeploymentName = Environment.GetEnvironmentVariable("MODEL_DEPLOYMENT_NAME")
?? throw new InvalidOperationException("Missing environment variable 'MODEL_DEPLOYMENT_NAME'");
AIProjectClient projectClient = new(new Uri(projectEndpoint ), new AzureCliCredential());
ProjectResponsesClient responseClient = projectClient.OpenAI.GetProjectResponsesClientForModel(modelDeploymentName);
ResponseResult response = await responseClient.CreateResponseAsync("What is the size of France in square miles?");
Console.WriteLine(response.GetOutputText());
import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";
import "dotenv/config";
const projectEndpoint = process.env["PROJECT_ENDPOINT"] || "<project endpoint>";
const deploymentName = process.env["MODEL_DEPLOYMENT_NAME"] || "<model deployment name>";
async function main(): Promise<void> {
const project = new AIProjectClient(projectEndpoint, new DefaultAzureCredential());
const openAIClient = await project.getOpenAIClient();
const response = await openAIClient.responses.create({
model: deploymentName,
input: "What is the size of France in square miles?",
});
console.log(`Response output: ${response.output_text}`);
}
main().catch(console.error);
package com.azure.ai.agents;
import com.azure.core.util.Configuration;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;
public class CreateResponse {
public static void main(String[] args) {
String endpoint = Configuration.getGlobalConfiguration().get("PROJECT_ENDPOINT");
String model = Configuration.getGlobalConfiguration().get("MODEL_DEPLOYMENT_NAME");
// Code sample for creating a response
ResponsesClient responsesClient = new AgentsClientBuilder()
.credential(new DefaultAzureCredentialBuilder().build())
.endpoint(endpoint)
.serviceVersion(AgentsServiceVersion.V2025_11_15_PREVIEW)
.buildResponsesClient();
ResponseCreateParams responseRequest = new ResponseCreateParams.Builder()
.input("Hello, how can you help me?")
.model(model)
.build();
Response response = responsesClient.getResponseService().create(responseRequest);
System.out.println("Response ID: " + response.id());
System.out.println("Response Model: " + response.model());
System.out.println("Response Created At: " + response.createdAt());
System.out.println("Response Output: " + response.output());
}
}
Reemplace YOUR-FOUNDRY-RESOURCE-NAME con sus valores:
curl -X POST https://YOUR-FOUNDRY-RESOURCE-NAME.services.ai.azure.com/api/projects/YOUR-PROJECT-NAME/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_AI_AUTH_TOKEN" \
-d '{
"model": "gpt-4.1-mini",
"input": "What is the size of France in square miles?"
}'
Una vez implementado el modelo, se le mueve automáticamente de Inicio a la sección Compilación . El nuevo modelo está seleccionado y listo para probarlo.
Comience a chatear con su modelo, por ejemplo, "Escribirme un poema sobre flores".
Después de ejecutar el código, verá una respuesta generada por el modelo en la consola (por ejemplo, un poema corto o una respuesta al mensaje). Esto confirma que el punto de conexión del proyecto, la autenticación y la implementación del modelo funcionan correctamente.
Crear un agente
Cree un agente mediante el modelo implementado.
Un agente define el comportamiento principal. Una vez creado, garantiza respuestas coherentes en las interacciones del usuario sin repetir instrucciones cada vez. Puede actualizar o eliminar agentes en cualquier momento.
import os
from dotenv import load_dotenv
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import PromptAgentDefinition
load_dotenv()
project_client = AIProjectClient(
endpoint=os.environ["PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
)
agent = project_client.agents.create_version(
agent_name=os.environ["AGENT_NAME"],
definition=PromptAgentDefinition(
model=os.environ["MODEL_DEPLOYMENT_NAME"],
instructions="You are a helpful assistant that answers general questions",
),
)
print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")
using Azure.AI.Projects;
using Azure.AI.Projects.OpenAI;
using Azure.Identity;
string projectEndpoint = Environment.GetEnvironmentVariable("PROJECT_ENDPOINT")
?? throw new InvalidOperationException("Missing environment variable 'PROJECT_ENDPOINT'");
string modelDeploymentName = Environment.GetEnvironmentVariable("MODEL_DEPLOYMENT_NAME")
?? throw new InvalidOperationException("Missing environment variable 'MODEL_DEPLOYMENT_NAME'");
string agentName = Environment.GetEnvironmentVariable("AGENT_NAME")
?? throw new InvalidOperationException("Missing environment variable 'AGENT_NAME'");
AIProjectClient projectClient = new(new Uri(projectEndpoint), new AzureCliCredential());
AgentDefinition agentDefinition = new PromptAgentDefinition(modelDeploymentName)
{
Instructions = "You are a helpful assistant that answers general questions",
};
AgentVersion newAgentVersion = projectClient.Agents.CreateAgentVersion(
agentName,
options: new(agentDefinition));
List<AgentVersion> agentVersions = projectClient.Agents.GetAgentVersions(agentName);
foreach (AgentVersion agentVersion in agentVersions)
{
Console.WriteLine($"Agent: {agentVersion.Id}, Name: {agentVersion.Name}, Version: {agentVersion.Version}");
}
import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";
import "dotenv/config";
const projectEndpoint = process.env["PROJECT_ENDPOINT"] || "<project endpoint>";
const deploymentName = process.env["MODEL_DEPLOYMENT_NAME"] || "<model deployment name>";
async function main(): Promise<void> {
const project = new AIProjectClient(projectEndpoint, new DefaultAzureCredential());
const agent = await project.agents.createVersion("my-agent-basic", {
kind: "prompt",
model: deploymentName,
instructions: "You are a helpful assistant that answers general questions",
});
console.log(`Agent created (id: ${agent.id}, name: ${agent.name}, version: ${agent.version})`);
}
main().catch(console.error);
package com.azure.ai.agents;
import com.azure.ai.agents.models.AgentVersionDetails;
import com.azure.ai.agents.models.PromptAgentDefinition;
import com.azure.core.util.Configuration;
import com.azure.identity.DefaultAzureCredentialBuilder;
public class CreateAgent {
public static void main(String[] args) {
String endpoint = Configuration.getGlobalConfiguration().get("PROJECT_ENDPOINT");
String model = Configuration.getGlobalConfiguration().get("MODEL_DEPLOYMENT_NAME");
// Code sample for creating an agent
AgentsClient agentsClient = new AgentsClientBuilder()
.credential(new DefaultAzureCredentialBuilder().build())
.endpoint(endpoint)
.buildAgentsClient();
PromptAgentDefinition request = new PromptAgentDefinition(model);
AgentVersionDetails agent = agentsClient.createAgentVersion("MyAgent", request);
System.out.println("Agent ID: " + agent.getId());
System.out.println("Agent Name: " + agent.getName());
System.out.println("Agent Version: " + agent.getVersion());
}
}
Reemplace YOUR-FOUNDRY-RESOURCE-NAME con sus valores:
curl -X POST https://YOUR-FOUNDRY-RESOURCE-NAME.services.ai.azure.com/api/projects/YOUR-PROJECT-NAME/agents?api-version=v1 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_AI_AUTH_TOKEN" \
-d '{
"name": "MyAgent",
"definition": {
"kind": "prompt",
"model": "gpt-4.1-mini",
"instructions": "You are a helpful assistant that answers general questions"
}
}'
Ahora cree un agente e interactúe con él.
- Aún en la sección Compilación , seleccione Agentes en el panel izquierdo.
- Seleccione Crear agente y asígnele un nombre.
La salida confirma que se creó el agente. En el caso de las pestañas del SDK, verá el nombre del agente y el identificador impresos en la consola.
Chatear con un agente
Use el agente creado anteriormente denominado "MyAgent" para interactuar mediante la formulación de una pregunta y un seguimiento relacionado. La conversación mantiene un registro de estas interacciones.
import os
from dotenv import load_dotenv
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
load_dotenv()
project_client = AIProjectClient(
endpoint=os.environ["PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
)
agent_name = os.environ["AGENT_NAME"]
openai_client = project_client.get_openai_client()
# Optional Step: Create a conversation to use with the agent
conversation = openai_client.conversations.create()
print(f"Created conversation (id: {conversation.id})")
# Chat with the agent to answer questions
response = openai_client.responses.create(
conversation=conversation.id, #Optional conversation context for multi-turn
extra_body={"agent_reference": {"name": agent_name, "type": "agent_reference"}},
input="What is the size of France in square miles?",
)
print(f"Response output: {response.output_text}")
# Optional Step: Ask a follow-up question in the same conversation
response = openai_client.responses.create(
conversation=conversation.id,
extra_body={"agent_reference": {"name": agent_name, "type": "agent_reference"}},
input="And what is the capital city?",
)
print(f"Response output: {response.output_text}")
using Azure.AI.Projects;
using Azure.AI.Projects.OpenAI;
using Azure.Identity;
using OpenAI.Responses;
#pragma warning disable OPENAI001
string projectEndpoint = Environment.GetEnvironmentVariable("PROJECT_ENDPOINT")
?? throw new InvalidOperationException("Missing environment variable 'PROJECT_ENDPOINT'");
string modelDeploymentName = Environment.GetEnvironmentVariable("MODEL_DEPLOYMENT_NAME")
?? throw new InvalidOperationException("Missing environment variable 'MODEL_DEPLOYMENT_NAME'");
string agentName = Environment.GetEnvironmentVariable("AGENT_NAME")
?? throw new InvalidOperationException("Missing environment variable 'AGENT_NAME'");
AIProjectClient projectClient = new(new Uri(projectEndpoint), new AzureCliCredential());
// Optional Step: Create a conversation to use with the agent
ProjectConversation conversation = projectClient.OpenAI.Conversations.CreateProjectConversation();
ProjectResponsesClient responsesClient = projectClient.OpenAI.GetProjectResponsesClientForAgent(
defaultAgent: agentName,
defaultConversationId: conversation.Id);
// Chat with the agent to answer questions
ResponseResult response = responsesClient.CreateResponse("What is the size of France in square miles?");
Console.WriteLine(response.GetOutputText());
// Optional Step: Ask a follow-up question in the same conversation
response = responsesClient.CreateResponse("And what is the capital city?");
Console.WriteLine(response.GetOutputText());
import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";
import "dotenv/config";
const projectEndpoint = process.env["PROJECT_ENDPOINT"] || "<project endpoint>";
const deploymentName = process.env["MODEL_DEPLOYMENT_NAME"] || "<model deployment name>";
async function main(): Promise<void> {
const project = new AIProjectClient(projectEndpoint, new DefaultAzureCredential());
const openAIClient = await project.getOpenAIClient();
// Create agent
console.log("Creating agent...");
const agent = await project.agents.createVersion("my-agent-basic", {
kind: "prompt",
model: deploymentName,
instructions: "You are a helpful assistant that answers general questions",
});
console.log(`Agent created (id: ${agent.id}, name: ${agent.name}, version: ${agent.version})`);
// Create conversation with initial user message
// You can save the conversation ID to database to retrieve later
console.log("\nCreating conversation with initial user message...");
const conversation = await openAIClient.conversations.create({
items: [
{ type: "message", role: "user", content: "What is the size of France in square miles?" },
],
});
console.log(`Created conversation with initial user message (id: ${conversation.id})`);
// Generate response using the agent
console.log("\nGenerating response...");
const response = await openAIClient.responses.create(
{
conversation: conversation.id,
},
{
body: { agent: { name: agent.name, type: "agent_reference" } },
},
);
console.log(`Response output: ${response.output_text}`);
// Clean up
console.log("\nCleaning up resources...");
await openAIClient.conversations.delete(conversation.id);
console.log("Conversation deleted");
await project.agents.deleteVersion(agent.name, agent.version);
console.log("Agent deleted");
}
main().catch(console.error);
package com.azure.ai.agents;
import com.azure.ai.agents.models.AgentReference;
import com.azure.ai.agents.models.AgentVersionDetails;
import com.azure.ai.agents.models.PromptAgentDefinition;
import com.azure.identity.AuthenticationUtil;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.azure.AzureOpenAIServiceVersion;
import com.openai.azure.AzureUrlPathMode;
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.credential.BearerTokenCredential;
import com.openai.models.conversations.Conversation;
import com.openai.models.conversations.items.ItemCreateParams;
import com.openai.models.responses.EasyInputMessage;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;
public class ChatWithAgent {
public static void main(String[] args) {
String endpoint = Configuration.getGlobalConfiguration().get("AZURE_AGENTS_ENDPOINT");
String agentName = "MyAgent";
AgentsClient agentsClient = new AgentsClientBuilder()
.credential(new DefaultAzureCredentialBuilder().build())
.endpoint(endpoint)
.buildAgentsClient();
AgentDetails agent = agentsClient.getAgent(agentName);
Conversation conversation = conversationsClient.getConversationService().create();
conversationsClient.getConversationService().items().create(
ItemCreateParams.builder()
.conversationId(conversation.id())
.addItem(EasyInputMessage.builder()
.role(EasyInputMessage.Role.SYSTEM)
.content("You are a helpful assistant that speaks like a pirate.")
.build()
).addItem(EasyInputMessage.builder()
.role(EasyInputMessage.Role.USER)
.content("Hello, agent!")
.build()
).build()
);
AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion());
Response response = responsesClient.createWithAgentConversation(agentReference, conversation.id());
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl(endpoint.endsWith("/") ? endpoint + "openai" : endpoint + "/openai")
.azureUrlPathMode(AzureUrlPathMode.UNIFIED)
.credential(BearerTokenCredential.create(AuthenticationUtil.getBearerTokenSupplier(
new DefaultAzureCredentialBuilder().build(), "https://ai.azure.com/.default")))
.azureServiceVersion(AzureOpenAIServiceVersion.fromString("2025-11-15-preview"))
.build();
ResponseCreateParams responseRequest = new ResponseCreateParams.Builder()
.input("Hello, how can you help me?")
.model(model)
.build();
Response result = client.responses().create(responseRequest);
}
}
Reemplace YOUR-FOUNDRY-RESOURCE-NAME con sus valores:
# Generate a response using the agent
curl -X POST https://YOUR-FOUNDRY-RESOURCE-NAME.services.ai.azure.com/api/projects/YOUR-PROJECT-NAME/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_AI_AUTH_TOKEN" \
-d '{
"agent_reference": {"type": "agent_reference", "name": "<AGENT_NAME>"},
"input": [{"role": "user", "content": "What is the size of France in square miles?"}]
}'
# Optional Step: Create a conversation to use with the agent
curl -X POST https://YOUR-FOUNDRY-RESOURCE-NAME.services.ai.azure.com/api/projects/YOUR-PROJECT-NAME/openai/v1/conversations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_AI_AUTH_TOKEN" \
-d '{
"items": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "What is the size of France in square miles?"
}
]
}
]
}'
# Lets say Conversation ID created is conv_123456789. Use this in the next step
#Optional Step: Ask a follow-up question in the same conversation
curl -X POST https://YOUR-FOUNDRY-RESOURCE-NAME.services.ai.azure.com/api/projects/YOUR-PROJECT-NAME/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_AI_AUTH_TOKEN" \
-d '{
"agent_reference": {"type": "agent_reference", "name": "<AGENT_NAME>", "version": "1"},
"conversation": "<CONVERSATION_ID>",
"input": [{"role": "user", "content": "And what is the capital?"}]
}'
Interactúe con el agente.
- Agregue instrucciones, como "Usted es un asistente de escritura útil".
- Comience a chatear con su agente, por ejemplo, "Escribir un poema sobre el sol".
- Siga con "¿Qué hay de un haiku?"
Verá las respuestas del agente a ambas solicitudes. La respuesta de seguimiento muestra que el agente mantiene el historial de conversaciones entre turnos.
Limpieza de recursos
Si ya no necesita ninguno de los recursos que ha creado, elimine el grupo de recursos asociado al proyecto.
- En Azure Portal, seleccione el grupo de recursos y, a continuación, seleccione Eliminar. Confirme que desea eliminar el grupo de recursos.
Paso siguiente