Dela via


Snabbstart: Skapa en ny agent

Med Azure AI Foundry 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.

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt.
  • Se till att den person som skapar kontot och projektet har rollen Azure AI-kontoägare i prenumerationsomfånget
    • Om du har rollen Deltagare eller Cognitive Services-deltagare på prenumerationsnivå kan du också uppfylla detta krav.

Viktigt!

Azure AI Foundry-portalen stöder endast grundläggande agentuppsättningar just nu. Om du vill utföra en standardkonfiguration av agenten kan du läsa artikeln Miljökonfiguration om du vill veta mer.

Skapa ett Foundry-konto och ett projekt i Azure AI Foundry-portalen

Följ dessa steg för att skapa ett konto och projekt i Azure AI Foundry:

  1. Gå till Azure AI Foundry. Om du är i ett projekt väljer du Azure AI Foundry längst upp till vänster på sidan för att gå till startsidan.

  2. Använd flödet för att komma igång med att skapa en agent för en snabbare upplevelse. Klicka på Skapa en agent.

    En skärmbild av Azure AI Foundry-portalen.

  3. Ange ett namn för projektet. Om du vill anpassa standardvärdena väljer du Avancerade alternativ.

    En skärmbild av de avancerade alternativen för att skapa ett projekt.

  4. Välj Skapa.

  5. Vänta tills dina resurser har allokerats.

    1. Ett konto och projekt (underordnad resurs för ditt konto) skapas.
    2. Gpt-4o-modellen distribueras automatiskt
    3. En standardagent skapas
  6. När du är klar hamnar du direkt på agentens lekplats och du kan börja skapa agenter.

    Skärmbild av agentens lekplats.

    Anmärkning

    Om du får behörighetsfel när du försöker konfigurera eller skapa agenter kontrollerar du att du har Azure AI-användaren i projektet.

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

Förutsättningar

  • En konfigurerad agentmiljö
  • Tilldela RBAC-rollenför Azure AI-användare till varje gruppmedlem som behöver skapa eller redigera agenter med hjälp av SDK eller Agent Playground
    • Den här rollen måste tilldelas i projektomfånget
    • Minsta behörigheter som krävs: agenter/*/läsning, agenter/*/åtgärd, agenter/*/ta bort

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.
Springa Aktivering av en agent för att starta 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.

Skapa ett .NET-konsolprojekt.

dotnet new console

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

dotnet add package Azure.AI.Agents.Persistent
dotnet add package Azure.Identity

För att autentisera dina API-begäranden och köra programmet använder du kommandot az login för att logga in på din Azure-prenumeration.

az login

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 hämta slutpunkten för projektet. Den här strängen är i formatet:

https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>

Tips/Råd

Du hittar slutpunkten i översikten för projektet i Azure AI Foundry-portalen under Bibliotek>Azure AI Foundry. En skärmbild som visar slutpunkten i Azure AI Foundry-portalen.

Slutpunkten kan till exempel se ut ungefär så här:

https://myresource.services.ai.azure.com/api/projects/myproject

Ange den här slutpunkten i en appsetting-variabel med namnet ProjectEndpoint.

using Azure;
using Azure.AI.Agents.Persistent;
using Azure.Identity;
using Microsoft.Extensions.Configuration;
using System.Diagnostics;

IConfigurationRoot configuration = new ConfigurationBuilder()
    .SetBasePath(AppContext.BaseDirectory)
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .Build();

var projectEndpoint = configuration["ProjectEndpoint"];
var modelDeploymentName = configuration["ModelDeploymentName"];

//Create a PersistentAgentsClient and PersistentAgent.
PersistentAgentsClient client = new(projectEndpoint, new DefaultAzureCredential());

//Give PersistentAgent a tool to execute code using CodeInterpreterToolDefinition.
PersistentAgent agent = client.Administration.CreateAgent(
    model: modelDeploymentName,
    name: "My Test Agent",
    instructions: "You politely help with math questions. Use the code interpreter tool when asked to visualize numbers.",
    tools: [new CodeInterpreterToolDefinition()]
);

//Create a thread to establish a session between Agent and a User.
PersistentAgentThread thread = client.Threads.CreateThread();

//Ask a question of the Agent.
client.Messages.CreateMessage(
    thread.Id,
    MessageRole.User,
    "Hi, Agent! Draw a graph for a line with a slope of 4 and y-intercept of 9.");

//Have Agent beging processing user's question with some additional instructions associated with the ThreadRun.
ThreadRun run = client.Runs.CreateRun(
    thread.Id,
    agent.Id,
    additionalInstructions: "Please address the user as Jane Doe. The user has a premium account.");

//Poll for completion.
do
{
    Thread.Sleep(TimeSpan.FromMilliseconds(500));
    run = client.Runs.GetRun(thread.Id, run.Id);
}
while (run.Status == RunStatus.Queued
    || run.Status == RunStatus.InProgress
    || run.Status == RunStatus.RequiresAction);

//Get the messages in the PersistentAgentThread. Includes Agent (Assistant Role) and User (User Role) messages.
Pageable<PersistentThreadMessage> messages = client.Messages.GetMessages(
    threadId: thread.Id,
    order: ListSortOrder.Ascending);

//Display each message and open the image generated using CodeInterpreterToolDefinition.
foreach (PersistentThreadMessage threadMessage in messages)
{
    foreach (MessageContent content in threadMessage.ContentItems)
    {
        switch (content)
        {
            case MessageTextContent textItem:
                Console.WriteLine($"[{threadMessage.Role}]: {textItem.Text}");
                break;
            case MessageImageFileContent imageFileContent:
                Console.WriteLine($"[{threadMessage.Role}]: Image content file ID = {imageFileContent.FileId}");
                BinaryData imageContent = client.Files.GetFileContent(imageFileContent.FileId);
                string tempFilePath = Path.Combine(AppContext.BaseDirectory, $"{Guid.NewGuid()}.png");
                File.WriteAllBytes(tempFilePath, imageContent.ToArray());
                client.Files.DeleteFile(imageFileContent.FileId);

                ProcessStartInfo psi = new()
                {
                    FileName = tempFilePath,
                    UseShellExecute = true
                };
                Process.Start(psi);
                break;
        }
    }
}

//Clean up test resources.
client.Threads.DeleteThread(threadId: thread.Id);
client.Administration.DeleteAgent(agentId: agent.Id);

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

Förutsättningar

  • En konfigurerad agentmiljö
  • Tilldela RBAC-rollenför Azure AI-användare till varje gruppmedlem som behöver skapa eller redigera agenter med hjälp av SDK eller Agent Playground
    • Den här rollen måste tilldelas i projektomfånget
    • Minsta behörigheter som krävs: agenter/*/läsning, agenter/*/åtgärd, agenter/*/ta bort

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.
Springa Aktivering av en agent för att starta 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.
Utför steg En detaljerad lista över steg som agenten utförde som en del av en process. En agent kan kalla verktyg eller skapa meddelanden under sin körning. Genom att undersöka körsteg kan du förstå hur agenten når sina resultat.

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

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

För att autentisera dina API-begäranden och köra programmet använder du kommandot az login för att logga in på din Azure-prenumeration.

az login

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 hämta slutpunkten för projektet. Den här strängen är i formatet:

https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>

Tips/Råd

Du hittar slutpunkten i översikten för projektet i Azure AI Foundry-portalen under Bibliotek>Azure AI Foundry. En skärmbild som visar slutpunkten i Azure AI Foundry-portalen.

Slutpunkten kan till exempel se ut ungefär så här:

https://myresource.services.ai.azure.com/api/projects/myproject

Ange den här slutpunkten som en miljövariabel med namnet PROJECT_ENDPOINT.

import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.agents.models import CodeInterpreterTool

# Create an Azure AI Client from an endpoint, copied from your Azure AI Foundry project.
# You need to login to Azure subscription via Azure CLI and set the environment variables
project_endpoint = os.environ["PROJECT_ENDPOINT"]  # Ensure the PROJECT_ENDPOINT environment variable is set

# Create an AIProjectClient instance
project_client = AIProjectClient(
    endpoint=project_endpoint,
    credential=DefaultAzureCredential(),  # Use Azure Default Credential for authentication
)

code_interpreter = CodeInterpreterTool()
with project_client:
    # Create an agent with the Bing Grounding tool
    agent = project_client.agents.create_agent(
        model=os.environ["MODEL_DEPLOYMENT_NAME"],  # Model deployment name
        name="my-agent",  # Name of the agent
        instructions="You are a helpful agent",  # Instructions for the agent
        tools=code_interpreter.definitions,  # Attach the tool
    )
    print(f"Created agent, ID: {agent.id}")

    # Create a thread for communication
    thread = project_client.agents.threads.create()
    print(f"Created thread, ID: {thread.id}")
    
    # Add a message to the thread
    message = project_client.agents.messages.create(
        thread_id=thread.id,
        role="user",  # Role of the message sender
        content="What is the weather in Seattle today?",  # Message content
    )
    print(f"Created message, ID: {message['id']}")
    
    # Create and process an agent run
    run = project_client.agents.runs.create_and_process(thread_id=thread.id, agent_id=agent.id)
    print(f"Run finished with status: {run.status}")
    
    # Check if the run failed
    if run.status == "failed":
        print(f"Run failed: {run.last_error}")
    
    # Fetch and log all messages
    messages = project_client.agents.messages.list(thread_id=thread.id)
    for message in messages:
        print(f"Role: {message.role}, Content: {message.content}")
    
    # Delete the agent when done
    project_client.agents.delete_agent(agent.id)
    print("Deleted agent")

| Referensdokumentation | Exempel | Bibliotekskällkod | Paket (npm) |

Förutsättningar

  • En konfigurerad agentmiljö
  • Tilldela RBAC-rollenför Azure AI-användare till varje gruppmedlem som behöver skapa eller redigera agenter med hjälp av SDK eller Agent Playground
    • Den här rollen måste tilldelas i projektomfånget
    • Minsta behörigheter som krävs: agenter/*/läsning, agenter/*/åtgärd, agenter/*/ta bort

Konfigurera och köra en agent

Komponent Beskrivning
Handläggare Anpassad AI som använder AI-modeller 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.
Springa Aktivering av en agent för att starta 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.
Utför steg En detaljerad lista över steg som agenten utförde som en del av en process. En agent kan kalla verktyg eller skapa meddelanden under sin körning. Genom att undersöka körsteg kan du förstå hur agenten når sina resultat.

Viktiga objekt i den här koden är:

Initiera först ett nytt projekt genom att köra:

npm init -y

Kör följande kommandon för att installera de npm-paket som krävs.

npm install @azure/ai-agents @azure/identity
npm install dotenv

För att autentisera dina API-begäranden och köra programmet använder du kommandot az login för att logga in på din Azure-prenumeration.

az login

Använd följande kod för att skapa och köra en agent som laddar upp en CSV-fil med data och sedan genererar ett stapeldiagram från dessa data. Om du vill köra den här koden måste du hämta slutpunkten för projektet. Den här strängen är i formatet:

https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>

Tips/Råd

Du hittar slutpunkten i översikten för projektet i Azure AI Foundry-portalen under Bibliotek>Azure AI Foundry. En skärmbild som visar slutpunkten i Azure AI Foundry-portalen.

Slutpunkten ser till exempel ut ungefär så här:

https://myresource.services.ai.azure.com/api/projects/myproject

Ange den här slutpunkten som en miljövariabel med namnet PROJECT_ENDPOINT i en .env fil.

Viktigt!

  • Den här snabbstartskoden använder miljövariabler för känslig konfiguration. Committa aldrig din .env-fil till versionskontroll, se till att .env listas i din .gitignore-fil.
  • Kom ihåg: Om du oavsiktligt committerar känslig information, tänk på att dessa autentiseringsuppgifter kan ha komprometterats och rotera dem omedelbart.

Skapa sedan en index.js fil och klistra in följande kod:

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

/**
 * This sample demonstrates how to use agent operations with code interpreter from the Azure Agents service.
 *
 * @summary demonstrates how to use agent operations with code interpreter.
 */
// @ts-nocheck
import type {
  MessageDeltaChunk,
  MessageDeltaTextContent,
  MessageImageFileContent,
  MessageTextContent,
  ThreadRun,
} from "@azure/ai-agents";
import {
  RunStreamEvent,
  MessageStreamEvent,
  DoneEvent,
  ErrorEvent,
  AgentsClient,
  isOutputOfType,
  ToolUtility,
} from "@azure/ai-agents";
import { DefaultAzureCredential } from "@azure/identity";

import * as fs from "fs";
import path from "node:path";
import "dotenv/config";

const projectEndpoint = process.env["PROJECT_ENDPOINT"] || "<project endpoint>";
const modelDeploymentName = process.env["MODEL_DEPLOYMENT_NAME"] || "gpt-4o";

export async function main(): Promise<void> {
  // Create an Azure AI Client
  const client = new AgentsClient(projectEndpoint, new DefaultAzureCredential());

  // Upload file and wait for it to be processed
  const filePath = "./data/nifty500QuarterlyResults.csv";
  const localFileStream = fs.createReadStream(filePath);
  const localFile = await client.files.upload(localFileStream, "assistants", {
    fileName: "myLocalFile",
  });

  console.log(`Uploaded local file, file ID : ${localFile.id}`);

  // Create code interpreter tool
  const codeInterpreterTool = ToolUtility.createCodeInterpreterTool([localFile.id]);

  // Notice that CodeInterpreter must be enabled in the agent creation, otherwise the agent will not be able to see the file attachment
  const agent = await client.createAgent(modelDeploymentName, {
    name: "my-agent",
    instructions: "You are a helpful agent",
    tools: [codeInterpreterTool.definition],
    toolResources: codeInterpreterTool.resources,
  });
  console.log(`Created agent, agent ID: ${agent.id}`);

  // Create a thread
  const thread = await client.threads.create();
  console.log(`Created thread, thread ID: ${thread.id}`);

  // Create a message
  const message = await client.messages.create(
    thread.id,
    "user",
    "Could you please create a bar chart in the TRANSPORTATION sector for the operating profit from the uploaded CSV file and provide the file to me?",
  );

  console.log(`Created message, message ID: ${message.id}`);

  // Create and execute a run
  const streamEventMessages = await client.runs.create(thread.id, agent.id).stream();

  for await (const eventMessage of streamEventMessages) {
    switch (eventMessage.event) {
      case RunStreamEvent.ThreadRunCreated:
        console.log(`ThreadRun status: ${(eventMessage.data as ThreadRun).status}`);
        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";
              console.log(`Text delta received:: ${textValue}`);
            }
          });
        }
        break;

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

  // Delete the original file from the agent to free up space (note: this does not delete your version of the file)
  await client.files.delete(localFile.id);
  console.log(`Deleted file, file ID : ${localFile.id}`);

  // Print the messages from the agent
  const messagesIterator = client.messages.list(thread.id);
  const messagesArray = [];
  for await (const m of messagesIterator) {
    messagesArray.push(m);
  }
  console.log("Messages:", messagesArray);

  // Get most recent message from the assistant
// Get most recent message from the assistant
  const assistantMessage = messagesArray.find((msg) => msg.role === "assistant");
  if (assistantMessage) {
    // Look for an image file in the assistant's message
    const imageFileOutput = assistantMessage.content.find(content => 
      content.type === "image_file" && content.imageFile?.fileId);
    
    if (imageFileOutput) {
      try {
        // Save the newly created file
        console.log(`Saving new files...`);
        const imageFile = imageFileOutput.imageFile.fileId;
        const imageFileName = path.resolve(
          "./data/" + (await client.files.get(imageFile)).filename + "ImageFile.png",
        );
        console.log(`Image file name : ${imageFileName}`);

        const fileContent = await client.files.getContent(imageFile).asNodeStream();
        if (fileContent && fileContent.body) {
          const chunks = [];
          for await (const chunk of fileContent.body) {
            chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
          }
          const buffer = Buffer.concat(chunks);
          fs.writeFileSync(imageFileName, buffer);
          console.log(`Successfully saved image to ${imageFileName}`);
        } else {
          console.error("No file content available in the response");
        }
      } catch (error) {
        console.error("Error saving image file:", error);
      }
    } else {
      console.log("No image file found in assistant's message");
    }
  } else {
    console.log("No assistant message found");
  }

  // Iterate through messages and print details for each annotation
  console.log(`Message Details:`);
  messagesArray.forEach((m) => {
    console.log(`File Paths:`);
    console.log(`Type: ${m.content[0].type}`);
    if (isOutputOfType<MessageTextContent>(m.content[0], "text")) {
      const textContent = m.content[0] as MessageTextContent;
      console.log(`Text: ${textContent.text.value}`);
    }
    console.log(`File ID: ${m.id}`);
    // firstId and lastId are properties of the paginator, not the messages array
    // Removing these references as they don't exist in this context
  });

  // Delete the agent once done
  await client.deleteAgent(agent.id);
  console.log(`Deleted agent, agent ID: ${agent.id}`);
}

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

Kör koden med .node index.js Den här koden genererar en PNG-bildfil för stapeldiagrammet i TRANSPORT-sektorn för rörelseresultatet från den uppladdade CSV-filen och tillhandahåller filen till dig. Fullständig exempelkod tillgänglig.

| Referensdokumentation |

Förutsättningar

  • En konfigurerad agentmiljö
  • Tilldela RBAC-rollenför Azure AI-användare till varje gruppmedlem som behöver skapa eller redigera agenter med hjälp av SDK eller Agent Playground
    • Den här rollen måste tilldelas i projektomfånget
    • Minsta behörigheter som krävs: agenter/*/läsning, agenter/*/åtgärd, agenter/*/ta bort

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.
Springa Aktivering av en agent för att starta 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.
Utför steg En detaljerad lista över steg som agenten utförde som en del av en process. En agent kan kalla verktyg eller skapa meddelanden under sin körning. Genom att undersöka körsteg kan du förstå hur agenten når sina resultat.

API-anropsinformation

Om du vill autentisera dina API-begäranden använder du kommandot az login för att logga in på din Azure-prenumeration.

az login

Därefter måste du hämta Entra ID-token för att tillhandahålla som auktorisering till API-anropen. Hämta token med cli-kommandot:

az account get-access-token --resource 'https://ai.azure.com' | jq -r .accessToken | tr -d '"'

Ange åtkomsttoken som en miljövariabel med namnet AGENT_TOKEN.

Om du vill göra REST API-anrop till Azure AI Foundry Agent Service måste du använda slutpunkten enligt nedan:

https://<your_ai_service_name>.services.ai.azure.com/api/projects/<your_project_name>

Slutpunkten kan till exempel se ut ungefär så här:

https://exampleaiservice.services.ai.azure.com/api/projects/project

Ange den här slutpunkten som en miljövariabel med namnet AZURE_AI_FOUNDRY_PROJECT_ENDPOINT.

Anmärkning

  • För api-version parametern är 2025-05-01 GA API-versionen och den senaste förhandsversionen av API:et är 2025-05-15-preview. Du måste använda förhandsversions-API:et för verktyg som finns i förhandsversionen.
  • Överväg att göra DIN API-version till en miljövariabel, till exempel $API_VERSION.

Skapa en handläggare

Anmärkning

Med Azure AI Agents Service kräver parametern model modelldistributionsnamn. Om namnet på modelldistributionen skiljer sig från det underliggande modellnamnet justerar du koden till "model": "{your-custom-model-deployment-name}".

curl --request POST \
  --url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/assistants?api-version=2025-05-01 \
  -H "Authorization: Bearer $AGENT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "instructions": "You are a helpful agent.",
    "name": "my-agent",
    "tools": [{"type": "code_interpreter"}],
    "model": "gpt-4o-mini"
  }'

Skapa en tråd

curl --request POST \
  --url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/threads?api-version=2025-05-01 \
  -H "Authorization: Bearer $AGENT_TOKEN" \
  -H "Content-Type: application/json" \
  -d ''

Lägg till en användarfråga i tråden

curl --request POST \
  --url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/threads/thread_abc123/messages?api-version=2025-05-01 \
  -H "Authorization: Bearer $AGENT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
      "role": "user",
      "content": "I need to solve the equation `3x + 11 = 14`. Can you help me?"
    }'

Starta tråden

curl --request POST \
  --url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/threads/thread_abc123/runs?api-version=2025-05-01 \
  -H "Authorization: Bearer $AGENT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "assistant_id": "asst_abc123",
  }'

Hämta status för körningen

curl --request GET \
  --url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/threads/thread_abc123/runs/run_abc123?api-version=2025-05-01 \
  -H "Authorization: Bearer $AGENT_TOKEN"

Hämta agentsvaret

curl --request GET \
  --url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/threads/thread_abc123/messages?api-version=2025-05-01 \
  -H "Authorization: Bearer $AGENT_TOKEN"