Dela via


Snabbstart: Skapa en ny agent

Med Azure AI Agent Service kan du skapa AI-agenter som är skräddarsydda för dina behov med hjälp av anpassade instruktioner och utökade med avancerade verktyg som kodtolkare och anpassade funktioner.

| Referensdokumentation | Exempel | på biblioteks källkodspaket | (NuGet) |

Förutsättningar

RBAC-roller

Kontrollera att både utvecklare och slutanvändare har följande behörigheter:

  • Microsoft.MachineLearningServices/workspaces/agents/read
  • Microsoft.MachineLearningServices/workspaces/agents/action
  • Microsoft.MachineLearningServices/workspaces/agents/delete

Om du vill skapa anpassade behörigheter kontrollerar du att de har:

  • agents/*/read
  • agents/*/action
  • agents/*/delete

Konfigurera ditt Azure AI Hub- och Agent-projekt

I följande avsnitt visas hur du konfigurerar de resurser som krävs för att komma igång med Azure AI Agent Service:

  1. Skapa en Azure AI Hub för att konfigurera din appmiljö och Azure-resurser.

  2. När du skapar ett Azure AI-projekt under hubben skapas en slutpunkt som appen kan anropa och konfigurerar apptjänster för åtkomst till resurser i din klientorganisation.

  3. Ansluta en Azure OpenAI-resurs eller en Azure AI Services-resurs

Välj Basic- eller Standard Agent-konfiguration

Grundläggande installation: Agenter använder sök- och lagringsresurser för flera klientorganisationer som hanteras fullständigt av Microsoft. Du har inte insyn eller kontroll över dessa underliggande Azure-resurser.

Standardkonfiguration: Agenter använder kundägda sök- och lagringsresurser med en enda klientorganisation. Med den här konfigurationen har du fullständig kontroll och insyn över dessa resurser, men du ådrar dig kostnader baserat på din användning.

Beskrivning och autodeploy Diagram (klicka för att zooma in)
Distribuera en grundläggande agentkonfiguration som använder hanterad identitet för autentisering. Resurser för AI-hubben, AI-projektet, lagringskontot och AI-tjänsterna skapas åt dig.

AI Services-kontot är anslutet till projektet och hubben och en gpt-4o-mini-modell distribueras i regionen eastus. Ett Microsoft-hanterat nyckelvalv används som standard.

Distribuera till Azure
Ett arkitekturdiagram för grundläggande agentkonfiguration.
Distribuera en standardagentkonfiguration som använder hanterad identitet för autentisering.

Resurser för AI-hubben, AI-projektet, nyckelvalvet, lagringskontot, AI Services och AI Search skapas åt dig.

AI-tjänster, AI-sökning, nyckelvalv och lagringskonto är anslutna till ditt projekt och din hubb. En gpt-4o-mini-modell distribueras i regionen eastus.

Distribuera till Azure
Ett arkitekturdiagram för standardagentkonfiguration.

[Valfritt] Modellval i mall för automatisk distribution

Du kan anpassa den modell som används av agenten genom att redigera modellparametrarna i mallen för automatisk distribution. Om du vill distribuera en annan modell måste du uppdatera parametrarna modelName och modelVersion .

Som standard konfigureras distributionsmallen med följande värden:

Modellparameter Standardvärde
modelName gpt-4o-mini
modelFormat OpenAI (för Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation eastus

Viktigt!

Ändra inte parametern modelFormat.

Mallarna stöder endast distribution av Azure OpenAI-modeller. Se vilka Azure OpenAI-modeller som stöds i supportdokumentationen för Azure AI Agent Service-modellen.

[Valfritt] Använd dina egna resurser under agentkonfigurationen

Kommentar

Om du använder en befintlig AI Services- eller Azure OpenAI-resurs distribueras ingen modell. Du kan distribuera en modell till resursen när agentkonfigurationen är klar.

Använd en befintlig AI Services-, Azure OpenAI-, AI Search- och/eller Azure Blob Storage-resurs genom att ange det fullständiga armresurs-ID:t i parameterfilen:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Om du vill använda en befintlig Azure OpenAI-resurs måste du uppdatera parametrarna aiServiceAccountResourceIdaiServiceKind och i parameterfilen. Parametern aiServiceKind ska vara inställd på AzureOpenAI.

Mer information finns i hur du använder dina egna resurser.

Konfigurera och köra en agent

Komponent beskrivning
Handläggare Anpassad AI som använder AI-modeller tillsammans med verktyg.
Verktyg Verktyg hjälper till att utöka en agent förmåga att svara tillförlitligt och korrekt under konversationen. Som att ansluta till användardefinierade kunskapsbas för att jorda modellen eller aktivera webbsökning för att tillhandahålla aktuell information.
Tråd En konversationssession mellan en agent och en användare. Trådar lagrar meddelanden och hanterar automatiskt trunkering för att passa in innehåll i en modells kontext.
Meddelande Ett meddelande som skapats av en agent eller en användare. Meddelanden kan innehålla text, bilder och andra filer. Meddelanden lagras som en lista i tråden.
Kör Aktivering av en agent för att börja köras baserat på innehållet i Tråd. Agenten använder sin konfiguration och Trådens meddelanden för att utföra uppgifter genom att anropa modeller och verktyg. Som en del av en Körning lägger agenten till Meddelanden i tråden.
Kör steg En detaljerad lista över steg som agenten vidtog som en del av en Körning. En agent kan anropa verktyg eller skapa meddelanden under körningen. Genom att undersöka körningssteg kan du förstå hur agenten kommer till sina resultat.

Installera .NET-paketet i projektet. Om du till exempel använder .NET CLI kör du följande kommando.

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

Använd följande kod för att skapa och köra en agent. Om du vill köra den här koden måste du skapa en anslutningssträng med hjälp av information från projektet. Den här strängen är i formatet:

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

Dricks

Du hittar även din anslutningssträng i översikten för projektet i Azure AI Foundry-portalen under Projektinformation>Project anslutningssträng. En skärmbild som visar anslutningssträng i Azure AI Foundry-portalen.

HostName kan hittas genom att navigera till din discovery_url och ta bort den inledande https:// och avslutande /discovery. För att hitta ditt discovery_urlkör du det här CLI-kommandot:

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

Din anslutningssträng kan till exempel se ut ungefär så här:

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

Ange den här anslutningssträng som en miljövariabel med namnet 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();
            }
        }
    }
}

| Referensdokumentation | Exempel | på biblioteks källkodspaket | (PyPi) |

Förutsättningar

RBAC-roller

Kontrollera att både utvecklare och slutanvändare har följande behörigheter:

  • Microsoft.MachineLearningServices/workspaces/agents/read
  • Microsoft.MachineLearningServices/workspaces/agents/action
  • Microsoft.MachineLearningServices/workspaces/agents/delete

Om du vill skapa anpassade behörigheter kontrollerar du att de har:

  • agents/*/read
  • agents/*/action
  • agents/*/delete

Konfigurera ditt Azure AI Hub- och Agent-projekt

I följande avsnitt visas hur du konfigurerar de resurser som krävs för att komma igång med Azure AI Agent Service:

  1. Skapa en Azure AI Hub för att konfigurera din appmiljö och Azure-resurser.

  2. När du skapar ett Azure AI-projekt under hubben skapas en slutpunkt som appen kan anropa och konfigurerar apptjänster för åtkomst till resurser i din klientorganisation.

  3. Ansluta en Azure OpenAI-resurs eller en Azure AI Services-resurs

Välj Basic- eller Standard Agent-konfiguration

Grundläggande installation: Agenter använder sök- och lagringsresurser för flera klientorganisationer som hanteras fullständigt av Microsoft. Du har inte insyn eller kontroll över dessa underliggande Azure-resurser.

Standardkonfiguration: Agenter använder kundägda sök- och lagringsresurser med en enda klientorganisation. Med den här konfigurationen har du fullständig kontroll och insyn över dessa resurser, men du ådrar dig kostnader baserat på din användning.

Beskrivning och autodeploy Diagram (klicka för att zooma in)
Distribuera en grundläggande agentkonfiguration som använder hanterad identitet för autentisering. Resurser för AI-hubben, AI-projektet, lagringskontot och AI-tjänsterna skapas åt dig.

AI Services-kontot är anslutet till projektet och hubben och en gpt-4o-mini-modell distribueras i regionen eastus. Ett Microsoft-hanterat nyckelvalv används som standard.

Distribuera till Azure
Ett arkitekturdiagram för grundläggande agentkonfiguration.
Distribuera en standardagentkonfiguration som använder hanterad identitet för autentisering.

Resurser för AI-hubben, AI-projektet, nyckelvalvet, lagringskontot, AI Services och AI Search skapas åt dig.

AI-tjänster, AI-sökning, nyckelvalv och lagringskonto är anslutna till ditt projekt och din hubb. En gpt-4o-mini-modell distribueras i regionen eastus.

Distribuera till Azure
Ett arkitekturdiagram för standardagentkonfiguration.

[Valfritt] Modellval i mall för automatisk distribution

Du kan anpassa den modell som används av agenten genom att redigera modellparametrarna i mallen för automatisk distribution. Om du vill distribuera en annan modell måste du uppdatera parametrarna modelName och modelVersion .

Som standard konfigureras distributionsmallen med följande värden:

Modellparameter Standardvärde
modelName gpt-4o-mini
modelFormat OpenAI (för Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation eastus

Viktigt!

Ändra inte parametern modelFormat.

Mallarna stöder endast distribution av Azure OpenAI-modeller. Se vilka Azure OpenAI-modeller som stöds i supportdokumentationen för Azure AI Agent Service-modellen.

[Valfritt] Använd dina egna resurser under agentkonfigurationen

Kommentar

Om du använder en befintlig AI Services- eller Azure OpenAI-resurs distribueras ingen modell. Du kan distribuera en modell till resursen när agentkonfigurationen är klar.

Använd en befintlig AI Services-, Azure OpenAI-, AI Search- och/eller Azure Blob Storage-resurs genom att ange det fullständiga armresurs-ID:t i parameterfilen:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Om du vill använda en befintlig Azure OpenAI-resurs måste du uppdatera parametrarna aiServiceAccountResourceIdaiServiceKind och i parameterfilen. Parametern aiServiceKind ska vara inställd på AzureOpenAI.

Mer information finns i hur du använder dina egna resurser.

Konfigurera och köra en agent

Komponent beskrivning
Handläggare Anpassad AI som använder AI-modeller tillsammans med verktyg.
Verktyg Verktyg hjälper till att utöka en agent förmåga att svara tillförlitligt och korrekt under konversationen. Som att ansluta till användardefinierade kunskapsbas för att jorda modellen eller aktivera webbsökning för att tillhandahålla aktuell information.
Tråd En konversationssession mellan en agent och en användare. Trådar lagrar meddelanden och hanterar automatiskt trunkering för att passa in innehåll i en modells kontext.
Meddelande Ett meddelande som skapats av en agent eller en användare. Meddelanden kan innehålla text, bilder och andra filer. Meddelanden lagras som en lista i tråden.
Kör Aktivering av en agent för att börja köras baserat på innehållet i Tråd. Agenten använder sin konfiguration och Trådens meddelanden för att utföra uppgifter genom att anropa modeller och verktyg. Som en del av en Körning lägger agenten till Meddelanden i tråden.
Kör steg En detaljerad lista över steg som agenten vidtog som en del av en Körning. En agent kan anropa verktyg eller skapa meddelanden under körningen. Genom att undersöka körningssteg kan du förstå hur agenten kommer till sina resultat.

Kör följande kommandon för att installera Python-paketen.

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

Använd följande kod för att skapa och köra en agent. Om du vill köra den här koden måste du skapa en anslutningssträng med hjälp av information från projektet. Den här strängen är i formatet:

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

Dricks

Du hittar även din anslutningssträng i översikten för projektet i Azure AI Foundry-portalen under Projektinformation>Project anslutningssträng. En skärmbild som visar anslutningssträng i Azure AI Foundry-portalen.

HostName kan hittas genom att navigera till din discovery_url och ta bort den inledande https:// och avslutande /discovery. För att hitta ditt discovery_urlkör du det här CLI-kommandot:

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

Din anslutningssträng kan till exempel se ut ungefär så här:

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

Ange den här anslutningssträng som en miljövariabel med namnet 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_sender("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")

| ReferensdokumentationEns källkodspaket | för bibliotek (PyPi) | |

Förutsättningar

RBAC-roller

Kontrollera att både utvecklare och slutanvändare har följande behörigheter:

  • Microsoft.MachineLearningServices/workspaces/agents/read
  • Microsoft.MachineLearningServices/workspaces/agents/action
  • Microsoft.MachineLearningServices/workspaces/agents/delete

Om du vill skapa anpassade behörigheter kontrollerar du att de har:

  • agents/*/read
  • agents/*/action
  • agents/*/delete

Konfigurera ditt Azure AI Hub- och Agent-projekt

I följande avsnitt visas hur du konfigurerar de resurser som krävs för att komma igång med Azure AI Agent Service:

  1. Skapa en Azure AI Hub för att konfigurera din appmiljö och Azure-resurser.

  2. När du skapar ett Azure AI-projekt under hubben skapas en slutpunkt som appen kan anropa och konfigurerar apptjänster för åtkomst till resurser i din klientorganisation.

  3. Ansluta en Azure OpenAI-resurs eller en Azure AI Services-resurs

Välj Basic- eller Standard Agent-konfiguration

Grundläggande installation: Agenter använder sök- och lagringsresurser för flera klientorganisationer som hanteras fullständigt av Microsoft. Du har inte insyn eller kontroll över dessa underliggande Azure-resurser.

Standardkonfiguration: Agenter använder kundägda sök- och lagringsresurser med en enda klientorganisation. Med den här konfigurationen har du fullständig kontroll och insyn över dessa resurser, men du ådrar dig kostnader baserat på din användning.

Beskrivning och autodeploy Diagram (klicka för att zooma in)
Distribuera en grundläggande agentkonfiguration som använder hanterad identitet för autentisering. Resurser för AI-hubben, AI-projektet, lagringskontot och AI-tjänsterna skapas åt dig.

AI Services-kontot är anslutet till projektet och hubben och en gpt-4o-mini-modell distribueras i regionen eastus. Ett Microsoft-hanterat nyckelvalv används som standard.

Distribuera till Azure
Ett arkitekturdiagram för grundläggande agentkonfiguration.
Distribuera en standardagentkonfiguration som använder hanterad identitet för autentisering.

Resurser för AI-hubben, AI-projektet, nyckelvalvet, lagringskontot, AI Services och AI Search skapas åt dig.

AI-tjänster, AI-sökning, nyckelvalv och lagringskonto är anslutna till ditt projekt och din hubb. En gpt-4o-mini-modell distribueras i regionen eastus.

Distribuera till Azure
Ett arkitekturdiagram för standardagentkonfiguration.

[Valfritt] Modellval i mall för automatisk distribution

Du kan anpassa den modell som används av agenten genom att redigera modellparametrarna i mallen för automatisk distribution. Om du vill distribuera en annan modell måste du uppdatera parametrarna modelName och modelVersion .

Som standard konfigureras distributionsmallen med följande värden:

Modellparameter Standardvärde
modelName gpt-4o-mini
modelFormat OpenAI (för Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation eastus

Viktigt!

Ändra inte parametern modelFormat.

Mallarna stöder endast distribution av Azure OpenAI-modeller. Se vilka Azure OpenAI-modeller som stöds i supportdokumentationen för Azure AI Agent Service-modellen.

[Valfritt] Använd dina egna resurser under agentkonfigurationen

Kommentar

Om du använder en befintlig AI Services- eller Azure OpenAI-resurs distribueras ingen modell. Du kan distribuera en modell till resursen när agentkonfigurationen är klar.

Använd en befintlig AI Services-, Azure OpenAI-, AI Search- och/eller Azure Blob Storage-resurs genom att ange det fullständiga armresurs-ID:t i parameterfilen:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Om du vill använda en befintlig Azure OpenAI-resurs måste du uppdatera parametrarna aiServiceAccountResourceIdaiServiceKind och i parameterfilen. Parametern aiServiceKind ska vara inställd på AzureOpenAI.

Mer information finns i hur du använder dina egna resurser.

Konfigurera och köra en agent

Komponent beskrivning
Handläggare Anpassad AI som använder AI-modeller tillsammans med verktyg.
Verktyg Verktyg hjälper till att utöka en agent förmåga att svara tillförlitligt och korrekt under konversationen. Som att ansluta till användardefinierade kunskapsbas för att jorda modellen eller aktivera webbsökning för att tillhandahålla aktuell information.
Tråd En konversationssession mellan en agent och en användare. Trådar lagrar meddelanden och hanterar automatiskt trunkering för att passa in innehåll i en modells kontext.
Meddelande Ett meddelande som skapats av en agent eller en användare. Meddelanden kan innehålla text, bilder och andra filer. Meddelanden lagras som en lista i tråden.
Kör Aktivering av en agent för att börja köras baserat på innehållet i Tråd. Agenten använder sin konfiguration och Trådens meddelanden för att utföra uppgifter genom att anropa modeller och verktyg. Som en del av en Körning lägger agenten till Meddelanden i tråden.
Kör steg En detaljerad lista över steg som agenten vidtog som en del av en Körning. En agent kan anropa verktyg eller skapa meddelanden under körningen. Genom att undersöka körningssteg kan du förstå hur agenten kommer till sina resultat.

Kör följande kommandon för att installera Python-paketen.

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

Använd följande kod för att skapa och köra en agent. Om du vill köra den här koden måste du skapa en anslutningssträng med hjälp av information från projektet. Den här strängen är i formatet:

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

Dricks

Du hittar även din anslutningssträng i översikten för projektet i Azure AI Foundry-portalen under Projektinformation>Project anslutningssträng. En skärmbild som visar anslutningssträng i Azure AI Foundry-portalen.

HostName kan hittas genom att navigera till din discovery_url och ta bort den inledande https:// och avslutande /discovery. För att hitta ditt discovery_urlkör du det här CLI-kommandot:

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

Din anslutningssträng kan till exempel se ut ungefär så här:

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

Ange den här anslutningssträng som en miljövariabel med namnet 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}")