Compartir a través de


Inicio rápido: Creación de un nuevo agente

El Servicio de Agente de Azure AI le permite crear agentes de IA adaptados a sus necesidades mediante instrucciones personalizadas y aumentadas por herramientas avanzadas como el intérprete de código y funciones personalizadas.

| Documentación de referencia | Muestras | Código fuente de la biblioteca | Paquete (NuGet) |

Requisitos previos

Configuración de su proyecto de Agente y Centro de Azure AI

En la siguiente sección se muestra cómo configurar los recursos necesarios para dar los primeros pasos con Azure AI Agent Service:

  1. Creación de un Centro de Azure AI para configurar el entorno de su aplicación y los recursos de Azure.

  2. La creación de un proyecto de Azure AI en su Centro crea un punto de conexión al que puede llamar su aplicación y configura los servicios de la aplicación para acceder a los recursos de su inquilino.

  3. Conexión de un recurso de Azure OpenAI o un recurso de Servicios de Azure AI

Elegir configuración básica o estándar del agente

Configuración básica: los agentes usan recursos de almacenamiento y búsqueda multiinquilino totalmente administrados por Microsoft. No tiene visibilidad ni control sobre estos recursos subyacentes de Azure.

Configuración estándar: los agentes usan recursos de almacenamiento y búsqueda de un solo inquilino propiedad del cliente. Con esta configuración, tiene visibilidad y control total sobre estos recursos, pero incurre en costes en función del uso.

Descripción e implementación automática Diagrama (haga clic para acercar)
Implemente una configuración básica del agente que use identidad administrada para la autenticación. Los recursos para el centro de IA, el proyecto de IA, la cuenta de almacenamiento y los servicios de IA se crean por usted.

La cuenta de Servicios de IA se conecta a su proyecto y centro y se implementa un modelo gpt-4o-mini en la región de eastus. De forma predeterminada, se usa un almacén de claves administrado por Microsoft.

Implementación en Azure
Diagrama de arquitectura para la configuración de un agente básico.
Implemente una configuración estándar del agente que use identidad administrada para la autenticación.

Los recursos para el centro de IA, el proyecto de IA, el almacén de claves, la cuenta de almacenamiento, los servicios de IA y la Búsqueda de IA se crean por usted.

Los Servicios de IA, la Búsqueda de IA, el almacén de claves y la cuenta de almacenamiento están conectados a su proyecto y a su centro. Un modelo gpt-4o-mini se implementa en la región de eastus.

Implementación en Azure
Diagrama de arquitectura para la configuración del agente estándar.

[Opcional] Selección de modelos en plantilla de implementación automática

Puede personalizar el modelo usando su agente editando los parámetros del modelo en la plantilla de implementación automática. Para implementar un modelo diferente, es necesario actualizar al menos los parámetros modelName y modelVersion.

De manera predeterminada, la plantilla de implementación está configurada con los siguientes valores:

Parámetro del modelo Valor predeterminado
modelName gpt-4o-mini
modelFormat OpenAI (para Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation estado

Importante

No cambie el parámetro modelFormat.

Las plantillas solo admiten con la implementación de modelos de Azure OpenAI. Consulte qué modelos de OpenAI son compatibles en la documentación de Modelos compatibles con el modelo de Azure AI Agent Service.

[Opcional] Use sus propios recursos en la configuración del agente

Nota:

Si usa un recurso de AI Services o Azure OpenAI existente, no se implementará ningún modelo. Puede implementar un modelo en el recurso una vez completada la configuración del agente.

Use un recurso de AI Services, Azure OpenAI, una cuenta de almacenamiento o una instancia de Búsqueda de Azure AI o Azure Blob Storage existente, para lo que debe especificar el identificador completo del recurso de arm en el archivo de parámetros:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Si desea usar un recurso de Azure OpenAI existente, deberá actualizar los parámetros aiServiceAccountResourceId y aiServiceKind en el archivo de parámetros. El parámetro aiServiceKind debe establecerse en AzureOpenAI.

Para más información, consulte Uso de recursos propios.

Configuración y ejecución de un agente

Componente Descripción
Agente IA personalizada que usa modelos de IA junto con herramientas.
Herramienta Las herramientas ayudan a ampliar la capacidad de un agente para responder con fiabilidad y precisión durante una conversación. Por ejemplo, conectando con bases de conocimientos definidas por el usuario para fundamentar el modelo, o habilitando la búsqueda en la Web para proporcionar información actualizada.
Subproceso Una sesión de conversación entre un agente y un usuario. Los subprocesos almacenan mensajes y controlan automáticamente el truncamiento para ajustar el contenido a un contexto del modelo.
Mensaje Un mensaje creado por un agente o un usuario. Los mensajes pueden incluir texto, imágenes y otros archivos. Los mensajes se almacenan como una lista en el subproceso.
Ejecutar Activación de un agente para empezar a ejecutarse en función del contenido de la conversación. El agente usa su configuración y los mensajes de la conversación para realizar tareas llamando a modelos y herramientas. Como parte de una ejecución, el agente anexa mensajes a la conversación.
Paso de ejecución Una lista detallada de los pasos que tomó el agente como parte de una ejecución. Un agente puede llamar a herramientas o crear mensajes durante su ejecución. Examinar los pasos de ejecución le permite comprender cómo el agente obtiene sus resultados.

Instale el paquete de .NET en el proyecto. Por ejemplo, si usa la CLI de .NET, ejecute el siguiente comando.

dotnet add package Azure.AI.Projects
dotnet add package Azure.Identity

A continuación, para autenticar las solicitudes de API y ejecutar el programa, use el comando az login para iniciar sesión en la suscripción de Azure.

az login

Use el código siguiente para crear y ejecutar un agente. Para ejecutar este código, deberá crear una cadena de conexión usando la información de su proyecto. Esta cadena tiene el formato:

<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>

Sugerencia

También puede encontrar su cadena de conexión en la información general de su proyecto en el portal de Azure AI Foundry, en Detalles del proyecto>Cadena de conexión del proyecto. Recorte de pantalla que muestra la cadena de conexión en el portal de Azure AI Foundry.

HostName puede encontrarse navegando hasta su discovery_url y eliminando el https:// inicial y el /discovery final. Para buscar discovery_url, ejecute este comando de la CLI:

az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url

Por ejemplo, la cadena de conexión puede tener un aspecto similar al siguiente:

eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name

Establezca esta cadena de conexión como una variable de entorno denominada PROJECT_CONNECTION_STRING.

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

#nullable disable

using Azure.Identity;

namespace Azure.AI.Projects.Tests;

public class Sample_Agent
{
    static async Task Main()
    {
        var connectionString = Environment.GetEnvironmentVariable("AZURE_AI_CONNECTION_STRING");

        AgentsClient client = new AgentsClient(connectionString, new DefaultAzureCredential());

        // Step 1: Create an agent
        Response<Agent> agentResponse = await client.CreateAgentAsync(
            model: "gpt-4o-mini",
            name: "My Agent",
            instructions: "You are a helpful agent.",
            tools: new List<ToolDefinition> { new CodeInterpreterToolDefinition() });
        Agent agent = agentResponse.Value;

        // Intermission: agent should now be listed

        Response<PageableList<Agent>> agentListResponse = await client.GetAgentsAsync();

        //// Step 2: Create a thread
        Response<AgentThread> threadResponse = await client.CreateThreadAsync();
        AgentThread thread = threadResponse.Value;

        // Step 3: Add a message to a thread
        Response<ThreadMessage> messageResponse = await client.CreateMessageAsync(
            thread.Id,
            MessageRole.User,
            "I need to solve the equation `3x + 11 = 14`. Can you help me?");
        ThreadMessage message = messageResponse.Value;

        // Intermission: message is now correlated with thread
        // Intermission: listing messages will retrieve the message just added

        Response<PageableList<ThreadMessage>> messagesListResponse = await client.GetMessagesAsync(thread.Id);
        //Assert.That(messagesListResponse.Value.Data[0].Id == message.Id);

        // Step 4: Run the agent
        Response<ThreadRun> runResponse = await client.CreateRunAsync(
            thread.Id,
            agent.Id,
            additionalInstructions: "");
        ThreadRun run = runResponse.Value;

        do
        {
            await Task.Delay(TimeSpan.FromMilliseconds(500));
            runResponse = await client.GetRunAsync(thread.Id, runResponse.Value.Id);
        }
        while (runResponse.Value.Status == RunStatus.Queued
            || runResponse.Value.Status == RunStatus.InProgress);

        Response<PageableList<ThreadMessage>> afterRunMessagesResponse
            = await client.GetMessagesAsync(thread.Id);
        IReadOnlyList<ThreadMessage> messages = afterRunMessagesResponse.Value.Data;

        // Note: messages iterate from newest to oldest, with the messages[0] being the most recent
        foreach (ThreadMessage threadMessage in messages)
        {
            Console.Write($"{threadMessage.CreatedAt:yyyy-MM-dd HH:mm:ss} - {threadMessage.Role,10}: ");
            foreach (MessageContent contentItem in threadMessage.ContentItems)
            {
                if (contentItem is MessageTextContent textItem)
                {
                    Console.Write(textItem.Text);
                }
                else if (contentItem is MessageImageFileContent imageFileItem)
                {
                    Console.Write($"<image from ID: {imageFileItem.FileId}");
                }
                Console.WriteLine();
            }
        }
    }
}

| Documentación de referencia | Muestras | Código fuente de la biblioteca | Paquete (PyPi) |

Requisitos previos

Configuración de su proyecto de Agente y Centro de Azure AI

En la siguiente sección se muestra cómo configurar los recursos necesarios para dar los primeros pasos con Azure AI Agent Service:

  1. Creación de un Centro de Azure AI para configurar el entorno de su aplicación y los recursos de Azure.

  2. La creación de un proyecto de Azure AI en su Centro crea un punto de conexión al que puede llamar su aplicación y configura los servicios de la aplicación para acceder a los recursos de su inquilino.

  3. Conexión de un recurso de Azure OpenAI o un recurso de Servicios de Azure AI

Elegir configuración básica o estándar del agente

Configuración básica: los agentes usan recursos de almacenamiento y búsqueda multiinquilino totalmente administrados por Microsoft. No tiene visibilidad ni control sobre estos recursos subyacentes de Azure.

Configuración estándar: los agentes usan recursos de almacenamiento y búsqueda de un solo inquilino propiedad del cliente. Con esta configuración, tiene visibilidad y control total sobre estos recursos, pero incurre en costes en función del uso.

Descripción e implementación automática Diagrama (haga clic para acercar)
Implemente una configuración básica del agente que use identidad administrada para la autenticación. Los recursos para el centro de IA, el proyecto de IA, la cuenta de almacenamiento y los servicios de IA se crean por usted.

La cuenta de Servicios de IA se conecta a su proyecto y centro y se implementa un modelo gpt-4o-mini en la región de eastus. De forma predeterminada, se usa un almacén de claves administrado por Microsoft.

Implementación en Azure
Diagrama de arquitectura para la configuración de un agente básico.
Implemente una configuración estándar del agente que use identidad administrada para la autenticación.

Los recursos para el centro de IA, el proyecto de IA, el almacén de claves, la cuenta de almacenamiento, los servicios de IA y la Búsqueda de IA se crean por usted.

Los Servicios de IA, la Búsqueda de IA, el almacén de claves y la cuenta de almacenamiento están conectados a su proyecto y a su centro. Un modelo gpt-4o-mini se implementa en la región de eastus.

Implementación en Azure
Diagrama de arquitectura para la configuración del agente estándar.

[Opcional] Selección de modelos en plantilla de implementación automática

Puede personalizar el modelo usando su agente editando los parámetros del modelo en la plantilla de implementación automática. Para implementar un modelo diferente, es necesario actualizar al menos los parámetros modelName y modelVersion.

De manera predeterminada, la plantilla de implementación está configurada con los siguientes valores:

Parámetro del modelo Valor predeterminado
modelName gpt-4o-mini
modelFormat OpenAI (para Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation estado

Importante

No cambie el parámetro modelFormat.

Las plantillas solo admiten con la implementación de modelos de Azure OpenAI. Consulte qué modelos de OpenAI son compatibles en la documentación de Modelos compatibles con el modelo de Azure AI Agent Service.

[Opcional] Use sus propios recursos en la configuración del agente

Nota:

Si usa un recurso de AI Services o Azure OpenAI existente, no se implementará ningún modelo. Puede implementar un modelo en el recurso una vez completada la configuración del agente.

Use un recurso de AI Services, Azure OpenAI, una cuenta de almacenamiento o una instancia de Búsqueda de Azure AI o Azure Blob Storage existente, para lo que debe especificar el identificador completo del recurso de arm en el archivo de parámetros:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Si desea usar un recurso de Azure OpenAI existente, deberá actualizar los parámetros aiServiceAccountResourceId y aiServiceKind en el archivo de parámetros. El parámetro aiServiceKind debe establecerse en AzureOpenAI.

Para más información, consulte Uso de recursos propios.

Configuración y ejecución de un agente

Componente Descripción
Agente IA personalizada que usa modelos de IA junto con herramientas.
Herramienta Las herramientas ayudan a ampliar la capacidad de un agente para responder con fiabilidad y precisión durante una conversación. Por ejemplo, conectando con bases de conocimientos definidas por el usuario para fundamentar el modelo, o habilitando la búsqueda en la Web para proporcionar información actualizada.
Subproceso Una sesión de conversación entre un agente y un usuario. Los subprocesos almacenan mensajes y controlan automáticamente el truncamiento para ajustar el contenido a un contexto del modelo.
Mensaje Un mensaje creado por un agente o un usuario. Los mensajes pueden incluir texto, imágenes y otros archivos. Los mensajes se almacenan como una lista en el subproceso.
Ejecutar Activación de un agente para empezar a ejecutarse en función del contenido de la conversación. El agente usa su configuración y los mensajes de la conversación para realizar tareas llamando a modelos y herramientas. Como parte de una ejecución, el agente anexa mensajes a la conversación.
Paso de ejecución Una lista detallada de los pasos que tomó el agente como parte de una ejecución. Un agente puede llamar a herramientas o crear mensajes durante su ejecución. Examinar los pasos de ejecución le permite comprender cómo el agente obtiene sus resultados.

Ejecute los siguientes comandos para instalar los paquetes de Python.

pip install azure-ai-projects
pip install azure-identity

A continuación, para autenticar las solicitudes de API y ejecutar el programa, use el comando az login para iniciar sesión en la suscripción de Azure.

az login

Use el código siguiente para crear y ejecutar un agente. Para ejecutar este código, deberá crear una cadena de conexión usando la información de su proyecto. Esta cadena tiene el formato:

<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>

Sugerencia

También puede encontrar su cadena de conexión en la información general de su proyecto en el portal de Azure AI Foundry, en Detalles del proyecto>Cadena de conexión del proyecto. Recorte de pantalla que muestra la cadena de conexión en el portal de Azure AI Foundry.

HostName puede encontrarse navegando hasta su discovery_url y eliminando el https:// inicial y el /discovery final. Para buscar discovery_url, ejecute este comando de la CLI:

az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url

Por ejemplo, la cadena de conexión puede tener un aspecto similar al siguiente:

eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name

Establezca esta cadena de conexión como una variable de entorno denominada PROJECT_CONNECTION_STRING.

import os
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import CodeInterpreterTool
from azure.identity import DefaultAzureCredential
from typing import Any
from pathlib import Path

# Create an Azure AI Client from a connection string, copied from your Azure AI Foundry project.
# At the moment, it should be in the format "<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>"
# HostName can be found by navigating to your discovery_url and removing the leading "https://" and trailing "/discovery"
# To find your discovery_url, run the CLI command: az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
# Project Connection example: eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
# Customer needs to login to Azure subscription via Azure CLI and set the environment variables

project_client = AIProjectClient.from_connection_string(
    credential=DefaultAzureCredential(), conn_str=os.environ["PROJECT_CONNECTION_STRING"]
)

with project_client:
    # Create an instance of the CodeInterpreterTool
    code_interpreter = CodeInterpreterTool()

    # The CodeInterpreterTool needs to be included in creation of the agent
    agent = project_client.agents.create_agent(
        model="gpt-4o-mini",
        name="my-agent",
        instructions="You are helpful agent",
        tools=code_interpreter.definitions,
        tool_resources=code_interpreter.resources,
    )
    print(f"Created agent, agent ID: {agent.id}")

    # Create a thread
    thread = project_client.agents.create_thread()
    print(f"Created thread, thread ID: {thread.id}")

    # Create a message
    message = project_client.agents.create_message(
        thread_id=thread.id,
        role="user",
        content="Could you please create a bar chart for the operating profit using the following data and provide the file to me? Company A: $1.2 million, Company B: $2.5 million, Company C: $3.0 million, Company D: $1.8 million",
    )
    print(f"Created message, message ID: {message.id}")

    # Run the agent
    run = project_client.agents.create_and_process_run(thread_id=thread.id, assistant_id=agent.id)
    print(f"Run finished with status: {run.status}")

    if run.status == "failed":
        # Check if you got "Rate limit is exceeded.", then you want to get more quota
        print(f"Run failed: {run.last_error}")

    # Get messages from the thread
    messages = project_client.agents.list_messages(thread_id=thread.id)
    print(f"Messages: {messages}")

    # Get the last message from the sender
    last_msg = messages.get_last_text_message_by_role("assistant")
    if last_msg:
        print(f"Last Message: {last_msg.text.value}")

    # Generate an image file for the bar chart
    for image_content in messages.image_contents:
        print(f"Image File ID: {image_content.image_file.file_id}")
        file_name = f"{image_content.image_file.file_id}_image_file.png"
        project_client.agents.save_file(file_id=image_content.image_file.file_id, file_name=file_name)
        print(f"Saved image file to: {Path.cwd() / file_name}")

    # Print the file path(s) from the messages
    for file_path_annotation in messages.file_path_annotations:
        print(f"File Paths:")
        print(f"Type: {file_path_annotation.type}")
        print(f"Text: {file_path_annotation.text}")
        print(f"File ID: {file_path_annotation.file_path.file_id}")
        print(f"Start Index: {file_path_annotation.start_index}")
        print(f"End Index: {file_path_annotation.end_index}")
        project_client.agents.save_file(file_id=file_path_annotation.file_path.file_id, file_name=Path(file_path_annotation.text).name)

    # Delete the agent once done
    project_client.agents.delete_agent(agent.id)
    print("Deleted agent")

| Documentación de referencia | Código fuente de la biblioteca | Paquete (PyPi) |

Requisitos previos

Configuración de su proyecto de Agente y Centro de Azure AI

En la siguiente sección se muestra cómo configurar los recursos necesarios para dar los primeros pasos con Azure AI Agent Service:

  1. Creación de un Centro de Azure AI para configurar el entorno de su aplicación y los recursos de Azure.

  2. La creación de un proyecto de Azure AI en su Centro crea un punto de conexión al que puede llamar su aplicación y configura los servicios de la aplicación para acceder a los recursos de su inquilino.

  3. Conexión de un recurso de Azure OpenAI o un recurso de Servicios de Azure AI

Elegir configuración básica o estándar del agente

Configuración básica: los agentes usan recursos de almacenamiento y búsqueda multiinquilino totalmente administrados por Microsoft. No tiene visibilidad ni control sobre estos recursos subyacentes de Azure.

Configuración estándar: los agentes usan recursos de almacenamiento y búsqueda de un solo inquilino propiedad del cliente. Con esta configuración, tiene visibilidad y control total sobre estos recursos, pero incurre en costes en función del uso.

Descripción e implementación automática Diagrama (haga clic para acercar)
Implemente una configuración básica del agente que use identidad administrada para la autenticación. Los recursos para el centro de IA, el proyecto de IA, la cuenta de almacenamiento y los servicios de IA se crean por usted.

La cuenta de Servicios de IA se conecta a su proyecto y centro y se implementa un modelo gpt-4o-mini en la región de eastus. De forma predeterminada, se usa un almacén de claves administrado por Microsoft.

Implementación en Azure
Diagrama de arquitectura para la configuración de un agente básico.
Implemente una configuración estándar del agente que use identidad administrada para la autenticación.

Los recursos para el centro de IA, el proyecto de IA, el almacén de claves, la cuenta de almacenamiento, los servicios de IA y la Búsqueda de IA se crean por usted.

Los Servicios de IA, la Búsqueda de IA, el almacén de claves y la cuenta de almacenamiento están conectados a su proyecto y a su centro. Un modelo gpt-4o-mini se implementa en la región de eastus.

Implementación en Azure
Diagrama de arquitectura para la configuración del agente estándar.

[Opcional] Selección de modelos en plantilla de implementación automática

Puede personalizar el modelo usando su agente editando los parámetros del modelo en la plantilla de implementación automática. Para implementar un modelo diferente, es necesario actualizar al menos los parámetros modelName y modelVersion.

De manera predeterminada, la plantilla de implementación está configurada con los siguientes valores:

Parámetro del modelo Valor predeterminado
modelName gpt-4o-mini
modelFormat OpenAI (para Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation estado

Importante

No cambie el parámetro modelFormat.

Las plantillas solo admiten con la implementación de modelos de Azure OpenAI. Consulte qué modelos de OpenAI son compatibles en la documentación de Modelos compatibles con el modelo de Azure AI Agent Service.

[Opcional] Use sus propios recursos en la configuración del agente

Nota:

Si usa un recurso de AI Services o Azure OpenAI existente, no se implementará ningún modelo. Puede implementar un modelo en el recurso una vez completada la configuración del agente.

Use un recurso de AI Services, Azure OpenAI, una cuenta de almacenamiento o una instancia de Búsqueda de Azure AI o Azure Blob Storage existente, para lo que debe especificar el identificador completo del recurso de arm en el archivo de parámetros:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Si desea usar un recurso de Azure OpenAI existente, deberá actualizar los parámetros aiServiceAccountResourceId y aiServiceKind en el archivo de parámetros. El parámetro aiServiceKind debe establecerse en AzureOpenAI.

Para más información, consulte Uso de recursos propios.

Configuración y ejecución de un agente

Componente Descripción
Agente IA personalizada que usa modelos de IA junto con herramientas.
Herramienta Las herramientas ayudan a ampliar la capacidad de un agente para responder con fiabilidad y precisión durante una conversación. Por ejemplo, conectando con bases de conocimientos definidas por el usuario para fundamentar el modelo, o habilitando la búsqueda en la Web para proporcionar información actualizada.
Subproceso Una sesión de conversación entre un agente y un usuario. Los subprocesos almacenan mensajes y controlan automáticamente el truncamiento para ajustar el contenido a un contexto del modelo.
Mensaje Un mensaje creado por un agente o un usuario. Los mensajes pueden incluir texto, imágenes y otros archivos. Los mensajes se almacenan como una lista en el subproceso.
Ejecutar Activación de un agente para empezar a ejecutarse en función del contenido de la conversación. El agente usa su configuración y los mensajes de la conversación para realizar tareas llamando a modelos y herramientas. Como parte de una ejecución, el agente anexa mensajes a la conversación.
Paso de ejecución Una lista detallada de los pasos que tomó el agente como parte de una ejecución. Un agente puede llamar a herramientas o crear mensajes durante su ejecución. Examinar los pasos de ejecución le permite comprender cómo el agente obtiene sus resultados.

Ejecute los siguientes comandos para instalar los paquetes de Python.

pip install azure-ai-projects
pip install azure-identity
pip install openai

A continuación, para autenticar las solicitudes de API y ejecutar el programa, use el comando az login para iniciar sesión en la suscripción de Azure.

az login

Use el código siguiente para crear y ejecutar un agente. Para ejecutar este código, deberá crear una cadena de conexión usando la información de su proyecto. Esta cadena tiene el formato:

<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>

Sugerencia

También puede encontrar su cadena de conexión en la información general de su proyecto en el portal de Azure AI Foundry, en Detalles del proyecto>Cadena de conexión del proyecto. Recorte de pantalla que muestra la cadena de conexión en el portal de Azure AI Foundry.

HostName puede encontrarse navegando hasta su discovery_url y eliminando el https:// inicial y el /discovery final. Para buscar discovery_url, ejecute este comando de la CLI:

az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url

Por ejemplo, la cadena de conexión puede tener un aspecto similar al siguiente:

eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name

Establezca esta cadena de conexión como una variable de entorno denominada PROJECT_CONNECTION_STRING.

import os, time
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from openai import AzureOpenAI


with AIProjectClient.from_connection_string(
    credential=DefaultAzureCredential(),
    conn_str=os.environ["PROJECT_CONNECTION_STRING"],
) as project_client:

    # Explicit type hinting for IntelliSense
    client: AzureOpenAI = project_client.inference.get_azure_openai_client(
        # The latest API version is 2024-10-01-preview
        api_version = os.environ.get("AZURE_OPENAI_API_VERSION"),
    )

    with client:
        agent = client.beta.assistants.create(
            model="gpt-4o-mini", name="my-agent", instructions="You are a helpful agent"
        )
        print(f"Created agent, agent ID: {agent.id}")

        thread = client.beta.threads.create()
        print(f"Created thread, thread ID: {thread.id}")

        message = client.beta.threads.messages.create(thread_id=thread.id, role="user", content="Hello, tell me a joke")
        print(f"Created message, message ID: {message.id}")

        run = client.beta.threads.runs.create(thread_id=thread.id, assistant_id=agent.id)

        # Poll the run while run status is queued or in progress
        while run.status in ["queued", "in_progress", "requires_action"]:
            time.sleep(1)  # Wait for a second
            run = client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id)
            print(f"Run status: {run.status}")

        client.beta.assistants.delete(agent.id)
        print("Deleted agent")

        messages = client.beta.threads.messages.list(thread_id=thread.id)
        print(f"Messages: {messages}")

| Documentación de referencia | Ejemplos | Código fuente de la biblioteca | Paquete (PyPi) |

Requisitos previos

Configuración de su proyecto de Agente y Centro de Azure AI

En la siguiente sección se muestra cómo configurar los recursos necesarios para dar los primeros pasos con Azure AI Agent Service:

  1. Creación de un Centro de Azure AI para configurar el entorno de su aplicación y los recursos de Azure.

  2. La creación de un proyecto de Azure AI en su Centro crea un punto de conexión al que puede llamar su aplicación y configura los servicios de la aplicación para acceder a los recursos de su inquilino.

  3. Conexión de un recurso de Azure OpenAI o un recurso de Servicios de Azure AI

Elegir configuración básica o estándar del agente

Configuración básica: los agentes usan recursos de almacenamiento y búsqueda multiinquilino totalmente administrados por Microsoft. No tiene visibilidad ni control sobre estos recursos subyacentes de Azure.

Configuración estándar: los agentes usan recursos de almacenamiento y búsqueda de un solo inquilino propiedad del cliente. Con esta configuración, tiene visibilidad y control total sobre estos recursos, pero incurre en costes en función del uso.

Descripción e implementación automática Diagrama (haga clic para acercar)
Implemente una configuración básica del agente que use identidad administrada para la autenticación. Los recursos para el centro de IA, el proyecto de IA, la cuenta de almacenamiento y los servicios de IA se crean por usted.

La cuenta de Servicios de IA se conecta a su proyecto y centro y se implementa un modelo gpt-4o-mini en la región de eastus. De forma predeterminada, se usa un almacén de claves administrado por Microsoft.

Implementación en Azure
Diagrama de arquitectura para la configuración de un agente básico.
Implemente una configuración estándar del agente que use identidad administrada para la autenticación.

Los recursos para el centro de IA, el proyecto de IA, el almacén de claves, la cuenta de almacenamiento, los servicios de IA y la Búsqueda de IA se crean por usted.

Los Servicios de IA, la Búsqueda de IA, el almacén de claves y la cuenta de almacenamiento están conectados a su proyecto y a su centro. Un modelo gpt-4o-mini se implementa en la región de eastus.

Implementación en Azure
Diagrama de arquitectura para la configuración del agente estándar.

[Opcional] Selección de modelos en plantilla de implementación automática

Puede personalizar el modelo usando su agente editando los parámetros del modelo en la plantilla de implementación automática. Para implementar un modelo diferente, es necesario actualizar al menos los parámetros modelName y modelVersion.

De manera predeterminada, la plantilla de implementación está configurada con los siguientes valores:

Parámetro del modelo Valor predeterminado
modelName gpt-4o-mini
modelFormat OpenAI (para Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation estado

Importante

No cambie el parámetro modelFormat.

Las plantillas solo admiten con la implementación de modelos de Azure OpenAI. Consulte qué modelos de OpenAI son compatibles en la documentación de Modelos compatibles con el modelo de Azure AI Agent Service.

[Opcional] Use sus propios recursos en la configuración del agente

Nota:

Si usa un recurso de AI Services o Azure OpenAI existente, no se implementará ningún modelo. Puede implementar un modelo en el recurso una vez completada la configuración del agente.

Use un recurso de AI Services, Azure OpenAI, una cuenta de almacenamiento o una instancia de Búsqueda de Azure AI o Azure Blob Storage existente, para lo que debe especificar el identificador completo del recurso de arm en el archivo de parámetros:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Si desea usar un recurso de Azure OpenAI existente, deberá actualizar los parámetros aiServiceAccountResourceId y aiServiceKind en el archivo de parámetros. El parámetro aiServiceKind debe establecerse en AzureOpenAI.

Para más información, consulte Uso de recursos propios.

Configuración y ejecución de un agente

Componente Descripción
Agente IA personalizada que usa modelos de IA junto con herramientas.
Herramienta Las herramientas ayudan a ampliar la capacidad de un agente para responder con fiabilidad y precisión durante una conversación. Por ejemplo, conectando con bases de conocimientos definidas por el usuario para fundamentar el modelo, o habilitando la búsqueda en la Web para proporcionar información actualizada.
Subproceso Una sesión de conversación entre un agente y un usuario. Los subprocesos almacenan mensajes y controlan automáticamente el truncamiento para ajustar el contenido a un contexto del modelo.
Mensaje Un mensaje creado por un agente o un usuario. Los mensajes pueden incluir texto, imágenes y otros archivos. Los mensajes se almacenan como una lista en el subproceso.
Ejecutar Activación de un agente para empezar a ejecutarse en función del contenido de la conversación. El agente usa su configuración y los mensajes de la conversación para realizar tareas llamando a modelos y herramientas. Como parte de una ejecución, el agente anexa mensajes a la conversación.
Paso de ejecución Una lista detallada de los pasos que tomó el agente como parte de una ejecución. Un agente puede llamar a herramientas o crear mensajes durante su ejecución. Examinar los pasos de ejecución le permite comprender cómo el agente obtiene sus resultados.

Ejecute los comandos siguientes para instalar los paquetes de npm.

npm install @azure/ai-projects
npm install @azure/identity

A continuación, para autenticar las solicitudes de API y ejecutar el programa, use el comando az login para iniciar sesión en la suscripción de Azure.

az login

Use el código siguiente para crear y ejecutar un agente. Para ejecutar este código, deberá crear una cadena de conexión usando la información de su proyecto. Esta cadena tiene el formato:

<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>

Sugerencia

También puede encontrar su cadena de conexión en la información general de su proyecto en el portal de Azure AI Foundry, en Detalles del proyecto>Cadena de conexión del proyecto. Recorte de pantalla que muestra la cadena de conexión en el portal de Azure AI Foundry.

HostName puede encontrarse navegando hasta su discovery_url y eliminando el https:// inicial y el /discovery final. Para buscar discovery_url, ejecute este comando de la CLI:

az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url

Por ejemplo, la cadena de conexión puede tener un aspecto similar al siguiente:

eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name

Establezca esta cadena de conexión como una variable de entorno denominada PROJECT_CONNECTION_STRING.

// index.js

import {
  AIProjectsClient,
  DoneEvent,
  ErrorEvent,
  isOutputOfType,
  MessageStreamEvent,
  RunStreamEvent,
  ToolUtility,
} from "@azure/ai-projects";
import { DefaultAzureCredential } from "@azure/identity";

const connectionString =
  process.env["AZURE_AI_PROJECTS_CONNECTION_STRING"] || "<project connection string>";

if (!connectionString) {
  throw new Error("AZURE_AI_PROJECTS_CONNECTION_STRING must be set in the environment variables");
}

export async function main() {
  const client = AIProjectsClient.fromConnectionString(
    connectionString || "",
    new DefaultAzureCredential(),
  );

  // Step 1 code interpreter tool
  const codeInterpreterTool = ToolUtility.createCodeInterpreterTool();

  // Step 2 an agent
  const agent = await client.agents.createAgent("gpt-4o-mini", {
    name: "my-agent",
    instructions: "You are a helpful agent",
    tools: [codeInterpreterTool.definition],
    toolResources: codeInterpreterTool.resources,
  });

  // Step 3 a thread
  const thread = await client.agents.createThread();

  // Step 4 a message to thread
  await client.agents.createMessage(
    thread.id, {
    role: "user",
    content: "I need to solve the equation `3x + 11 = 14`. Can you help me?",
  });

  // Intermission is now correlated with thread
  // Intermission messages will retrieve the message just added

  // Step 5 the agent
  const streamEventMessages = await client.agents.createRun(thread.id, agent.id).stream();

  for await (const eventMessage of streamEventMessages) {
    switch (eventMessage.event) {
      case RunStreamEvent.ThreadRunCreated:
        break;
      case MessageStreamEvent.ThreadMessageDelta:
        {
          const messageDelta = eventMessage.data;
          messageDelta.delta.content.forEach((contentPart) => {
            if (contentPart.type === "text") {
              const textContent = contentPart;
              const textValue = textContent.text?.value || "No text";
            }
          });
        }
        break;

      case RunStreamEvent.ThreadRunCompleted:
        break;
      case ErrorEvent.Error:
        console.log(`An error occurred. Data ${eventMessage.data}`);
        break;
      case DoneEvent.Done:
        break;
    }
  }

  // 6. Print the messages from the agent
  const messages = await client.agents.listMessages(thread.id);

  // Messages iterate from oldest to newest
  // messages[0] is the most recent
  for (let i = messages.data.length - 1; i >= 0; i--) {
    const m = messages.data[i];
    if (isOutputOfType(m.content[0], "text")) {
      const textContent = m.content[0];
      console.log(`${textContent.text.value}`);
      console.log(`---------------------------------`);
    }
  }

  // 7. Delete the agent once done
  await client.agents.deleteAgent(agent.id);
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

La salida contiene la indicación y las respuestas.

I need to solve the equation `3x + 11 = 14`. Can you help me?
---------------------------------
Sure! I can help you solve the equation \(3x + 11 = 14\).

To solve this equation, we need to isolate the variable \(x\). Let's go ahead and solve it.
---------------------------------
The solution to the equation \(3x + 11 = 14\) is \(x = 1\). 

Therefore, the value of \(x\) that satisfies the equation is 1. 

Let me know if you need help with anything else!
---------------------------------

| Documentación de referencia | Ejemplos | Código fuente de la biblioteca | Paquete (PyPi) |

Requisitos previos

Configuración de su proyecto de Agente y Centro de Azure AI

En la siguiente sección se muestra cómo configurar los recursos necesarios para dar los primeros pasos con Azure AI Agent Service:

  1. Creación de un Centro de Azure AI para configurar el entorno de su aplicación y los recursos de Azure.

  2. La creación de un proyecto de Azure AI en su Centro crea un punto de conexión al que puede llamar su aplicación y configura los servicios de la aplicación para acceder a los recursos de su inquilino.

  3. Conexión de un recurso de Azure OpenAI o un recurso de Servicios de Azure AI

Elegir configuración básica o estándar del agente

Configuración básica: los agentes usan recursos de almacenamiento y búsqueda multiinquilino totalmente administrados por Microsoft. No tiene visibilidad ni control sobre estos recursos subyacentes de Azure.

Configuración estándar: los agentes usan recursos de almacenamiento y búsqueda de un solo inquilino propiedad del cliente. Con esta configuración, tiene visibilidad y control total sobre estos recursos, pero incurre en costes en función del uso.

Descripción e implementación automática Diagrama (haga clic para acercar)
Implemente una configuración básica del agente que use identidad administrada para la autenticación. Los recursos para el centro de IA, el proyecto de IA, la cuenta de almacenamiento y los servicios de IA se crean por usted.

La cuenta de Servicios de IA se conecta a su proyecto y centro y se implementa un modelo gpt-4o-mini en la región de eastus. De forma predeterminada, se usa un almacén de claves administrado por Microsoft.

Implementación en Azure
Diagrama de arquitectura para la configuración de un agente básico.
Implemente una configuración estándar del agente que use identidad administrada para la autenticación.

Los recursos para el centro de IA, el proyecto de IA, el almacén de claves, la cuenta de almacenamiento, los servicios de IA y la Búsqueda de IA se crean por usted.

Los Servicios de IA, la Búsqueda de IA, el almacén de claves y la cuenta de almacenamiento están conectados a su proyecto y a su centro. Un modelo gpt-4o-mini se implementa en la región de eastus.

Implementación en Azure
Diagrama de arquitectura para la configuración del agente estándar.

[Opcional] Selección de modelos en plantilla de implementación automática

Puede personalizar el modelo usando su agente editando los parámetros del modelo en la plantilla de implementación automática. Para implementar un modelo diferente, es necesario actualizar al menos los parámetros modelName y modelVersion.

De manera predeterminada, la plantilla de implementación está configurada con los siguientes valores:

Parámetro del modelo Valor predeterminado
modelName gpt-4o-mini
modelFormat OpenAI (para Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation estado

Importante

No cambie el parámetro modelFormat.

Las plantillas solo admiten con la implementación de modelos de Azure OpenAI. Consulte qué modelos de OpenAI son compatibles en la documentación de Modelos compatibles con el modelo de Azure AI Agent Service.

[Opcional] Use sus propios recursos en la configuración del agente

Nota:

Si usa un recurso de AI Services o Azure OpenAI existente, no se implementará ningún modelo. Puede implementar un modelo en el recurso una vez completada la configuración del agente.

Use un recurso de AI Services, Azure OpenAI, una cuenta de almacenamiento o una instancia de Búsqueda de Azure AI o Azure Blob Storage existente, para lo que debe especificar el identificador completo del recurso de arm en el archivo de parámetros:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Si desea usar un recurso de Azure OpenAI existente, deberá actualizar los parámetros aiServiceAccountResourceId y aiServiceKind en el archivo de parámetros. El parámetro aiServiceKind debe establecerse en AzureOpenAI.

Para más información, consulte Uso de recursos propios.

Configuración y ejecución de un agente

Componente Descripción
Agente IA personalizada que usa modelos de IA junto con herramientas.
Herramienta Las herramientas ayudan a ampliar la capacidad de un agente para responder con fiabilidad y precisión durante una conversación. Por ejemplo, conectando con bases de conocimientos definidas por el usuario para fundamentar el modelo, o habilitando la búsqueda en la Web para proporcionar información actualizada.
Subproceso Una sesión de conversación entre un agente y un usuario. Los subprocesos almacenan mensajes y controlan automáticamente el truncamiento para ajustar el contenido a un contexto del modelo.
Mensaje Un mensaje creado por un agente o un usuario. Los mensajes pueden incluir texto, imágenes y otros archivos. Los mensajes se almacenan como una lista en el subproceso.
Ejecutar Activación de un agente para empezar a ejecutarse en función del contenido de la conversación. El agente usa su configuración y los mensajes de la conversación para realizar tareas llamando a modelos y herramientas. Como parte de una ejecución, el agente anexa mensajes a la conversación.
Paso de ejecución Una lista detallada de los pasos que tomó el agente como parte de una ejecución. Un agente puede llamar a herramientas o crear mensajes durante su ejecución. Examinar los pasos de ejecución le permite comprender cómo el agente obtiene sus resultados.

Ejecute los comandos siguientes para instalar los paquetes de npm.

npm install @azure/ai-projects
npm install @azure/identity

A continuación, para autenticar las solicitudes de API y ejecutar el programa, use el comando az login para iniciar sesión en la suscripción de Azure.

az login

Use el código siguiente para crear y ejecutar un agente. Para ejecutar este código, deberá crear una cadena de conexión usando la información de su proyecto. Esta cadena tiene el formato:

<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>

Sugerencia

También puede encontrar su cadena de conexión en la información general de su proyecto en el portal de Azure AI Foundry, en Detalles del proyecto>Cadena de conexión del proyecto. Recorte de pantalla que muestra la cadena de conexión en el portal de Azure AI Foundry.

HostName puede encontrarse navegando hasta su discovery_url y eliminando el https:// inicial y el /discovery final. Para buscar discovery_url, ejecute este comando de la CLI:

az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url

Por ejemplo, la cadena de conexión puede tener un aspecto similar al siguiente:

eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name

Establezca esta cadena de conexión como una variable de entorno denominada PROJECT_CONNECTION_STRING.

// index.ts

import type {
  MessageDeltaChunk,
  MessageDeltaTextContent,
  MessageTextContentOutput,
} from "@azure/ai-projects";
import {
  AIProjectsClient,
  DoneEvent,
  ErrorEvent,
  isOutputOfType,
  MessageStreamEvent,
  RunStreamEvent,
  ToolUtility,
} from "@azure/ai-projects";
import { DefaultAzureCredential } from "@azure/identity";

const connectionString =
  process.env["AZURE_AI_PROJECTS_CONNECTION_STRING"] || "<project connection string>";

if (!connectionString) {
  throw new Error("AZURE_AI_PROJECTS_CONNECTION_STRING must be set in the environment variables");
}

export async function main(): Promise<void> {
  const client = AIProjectsClient.fromConnectionString(
    connectionString || "",
    new DefaultAzureCredential(),
  );

  // Step 1: Create code interpreter tool
  const codeInterpreterTool = ToolUtility.createCodeInterpreterTool();

  // Step 2: Create an agent
  const agent = await client.agents.createAgent("gpt-4o-mini", {
    name: "my-agent",
    instructions: "You are a helpful agent",
    tools: [codeInterpreterTool.definition],
    toolResources: codeInterpreterTool.resources,
  });

  // Step 3: Create a thread
  const thread = await client.agents.createThread();

  // Step 4: Add a message to thread
  await client.agents.createMessage(
    thread.id, {
    role: "user",
    content: "I need to solve the equation `3x + 11 = 14`. Can you help me?",
  });

  // Intermission: message is now correlated with thread
  // Intermission: listing messages will retrieve the message just added

  // Step 5: Run the agent
  const streamEventMessages = await client.agents.createRun(thread.id, agent.id).stream();

  for await (const eventMessage of streamEventMessages) {
    switch (eventMessage.event) {
      case RunStreamEvent.ThreadRunCreated:
        break;
      case MessageStreamEvent.ThreadMessageDelta:
        {
          const messageDelta = eventMessage.data as MessageDeltaChunk;
          messageDelta.delta.content.forEach((contentPart) => {
            if (contentPart.type === "text") {
              const textContent = contentPart as MessageDeltaTextContent;
              const textValue = textContent.text?.value || "No text";
            }
          });
        }
        break;

      case RunStreamEvent.ThreadRunCompleted:
        break;
      case ErrorEvent.Error:
        console.log(`An error occurred. Data ${eventMessage.data}`);
        break;
      case DoneEvent.Done:
        break;
    }
  }

  // 6. Print the messages from the agent
  const messages = await client.agents.listMessages(thread.id);

  // Messages iterate from oldest to newest
  // messages[0] is the most recent
  for (let i = messages.data.length - 1; i >= 0; i--) {
    const m = messages.data[i];
    if (isOutputOfType<MessageTextContentOutput>(m.content[0], "text")) {
      const textContent = m.content[0] as MessageTextContentOutput;
      console.log(`${textContent.text.value}`);
      console.log(`---------------------------------`);
    }
  }

  // 7. Delete the agent once done
  await client.agents.deleteAgent(agent.id);
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

La salida contiene la indicación y las respuestas.

I need to solve the equation `3x + 11 = 14`. Can you help me?
---------------------------------
Sure! I can help you solve the equation \(3x + 11 = 14\).

To solve this equation, we need to isolate the variable \(x\). Let's go ahead and solve it.
---------------------------------
The solution to the equation \(3x + 11 = 14\) is \(x = 1\). 

Therefore, the value of \(x\) that satisfies the equation is 1. 

Let me know if you need help with anything else!
---------------------------------