Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
Prerequisites
- 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, vilket ger de behörigheter som krävs för att skapa projektet
- Om du har rollen Deltagare eller Cognitive Services-deltagare på prenumerationsnivå kan du också skapa projektet
- När projektet har skapats kontrollerar du att den person som skapar agenten i projektet har Rollen Azure AI-användare på projektnivå
Important
Azure AI Foundry-portalen stöder endast grundläggande agentkonfiguration 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:
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.
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.
Ange ett namn för projektet. Om du vill anpassa standardvärdena väljer du Avancerade alternativ.
Välj Skapa.
Vänta tills dina resurser har allokerats.
- Ett konto och projekt (underordnad resurs för ditt konto) skapas.
- Gpt-4o-modellen distribueras automatiskt
- En standardagent skapas
När du är klar hamnar du direkt på agentens lekplats och du kan börja skapa agenter. Du kan ge agenten instruktioner om vad du ska göra och hur du gör det. Till exempel: "Du är en användbar agent som kan svara på frågor om geografi." Sedan kan du börja chatta med din agent.
Note
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) |
Prerequisites
- 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
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>
Important
Från och med maj 2025 använder Azure AI Agent Service en slutpunkt för Foundry-projekt i stället för anslutningssträngen som tidigare användes för hubbbaserade projekt. Om du använder ett hubbbaserat projekt kan du inte använda de aktuella versionerna av SDK och REST API. Mer information finns i SDK-användning med hubbbaserade projekt.
Du hittar slutpunkten i översikten för projektet i Azure AI Foundry-portalen under Bibliotek>Azure AI Foundry.
Ange den här slutpunkten i en miljövariabel med namnet ProjectEndpoint.
Du behöver också modellens implementeringsnamn. Du hittar den i Modeller + slutpunkter i den vänstra navigeringsmenyn.
Spara namnet på modelldistributionsnamnet som en miljövariabel med namnet ModelDeploymentName.
using Azure;
using Azure.AI.Agents.Persistent;
using Azure.Identity;
using System.Diagnostics;
var projectEndpoint = System.Environment.GetEnvironmentVariable("ProjectEndpoint");
var modelDeploymentName = System.Environment.GetEnvironmentVariable("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 begin 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;
}
}
}
//If you want to delete your agent, uncomment the following lines:
//client.Threads.DeleteThread(threadId: thread.Id);
//client.Administration.DeleteAgent(agentId: agent.Id);
| Referensdokumentation | Exempel | på biblioteks källkodspaket | (PyPi) |
Prerequisites
- 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
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>
Important
Från och med maj 2025 använder Azure AI Agent Service en slutpunkt för Foundry-projekt i stället för anslutningssträngen som tidigare användes för hubbbaserade projekt. Om du använder ett hubbbaserat projekt kan du inte använda de aktuella versionerna av SDK och REST API. Mer information finns i SDK-användning med hubbbaserade projekt.
Du hittar slutpunkten i översikten för projektet i Azure AI Foundry-portalen under Bibliotek>Azure AI Foundry.
Ange den här slutpunkten som en miljövariabel med namnet PROJECT_ENDPOINT.
Du behöver också modellens implementeringsnamn. Du hittar den i Modeller + slutpunkter i den vänstra navigeringsmenyn.
Spara namnet på modelldistributionsnamnet som en miljövariabel med namnet MODEL_DEPLOYMENT_NAME.
import os
from pathlib import Path
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.agents.models import CodeInterpreterTool
# Create an AIProjectClient 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 Code Interpreter 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 politely help with math questions. Use the Code Interpreter tool when asked to visualize numbers.", # 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="Hi, Agent! Draw a graph for a line with a slope of 4 and y-intercept of 9.", # 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,
additional_instructions="Please address the user as Jane Doe. The user has a premium account",
)
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}")
# Save every image file in the message
for img in message.image_contents:
file_id = img.image_file.file_id
file_name = f"{file_id}_image_file.png"
project_client.agents.files.save(file_id=file_id, file_name=file_name)
print(f"Saved image file to: {Path.cwd() / file_name}")
# Uncomment these lines to delete the agent when done
# project_client.agents.delete_agent(agent.id)
# print("Deleted agent")
| Referensdokumentation | Exempel | Bibliotekskällkod | Paket (npm) |
Prerequisites
- 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
Viktiga objekt i den här koden är:
Initiera först ett nytt TypeScript-projekt genom att köra:
npm init -y
npm pkg set type="module"
Kör följande kommandon för att installera de npm-paket som krävs.
npm install @azure/ai-agents @azure/identity
npm install @types/node typescript --save-dev
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 besvara matematikfrågan I need to solve the equation '3x + 11 = 14'. Can you help me?. 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>
Du hittar slutpunkten i översikten för projektet i Azure AI Foundry-portalen under Bibliotek>Azure AI Foundry.
Ange den här slutpunkten som en miljövariabel med namnet PROJECT_ENDPOINT i en .env fil.
Du behöver också modellens implementeringsnamn. Du hittar den i Modeller + slutpunkter i den vänstra navigeringsmenyn.
Spara namnet på modelldistributionsnamnet som en miljövariabel med namnet MODEL_DEPLOYMENT_NAME.
Important
- Den här snabbstartskoden använder miljövariabler för känslig konfiguration. Committa aldrig din
.env-fil till versionskontroll, se till att.envlistas 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 en tsconfig.json fil med följande innehåll:
{
"compilerOptions": {
"module": "nodenext",
"target": "esnext",
"types": ["node"],
"lib": ["esnext"],
"sourceMap": true,
"declaration": true,
"declarationMap": true,
"noUncheckedIndexedAccess": true,
"exactOptionalPropertyTypes": true,
"strict": true,
"verbatimModuleSyntax": true,
"isolatedModules": true,
"noUncheckedSideEffectImports": true,
"moduleDetection": "force",
"skipLibCheck": true,
}
}
Skapa sedan en index.ts fil och klistra in följande kod:
import { AgentsClient } from "@azure/ai-agents";
import { DefaultAzureCredential } from "@azure/identity";
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());
// Create an agent
const agent = await client.createAgent(modelDeploymentName, {
name: "my-agent",
instructions: "You are a helpful agent specialized in math. When providing mathematical explanations, use plain text formatting with simple characters like +, -, *, / for operations. Do not use LaTeX formatting with backslashes or special notation. Make your explanations clear and easy to read in a terminal.",
});
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}`);
// List all threads for the agent
const threads = client.threads.list();
console.log(`Threads for agent ${agent.id}:`);
for await (const t of threads) {
console.log(`Thread ID: ${t.id} created at: ${t.createdAt}`);
}
// Create a message
const message = await client.messages.create(thread.id, "user", "I need to solve the equation `3x + 11 = 14`. Can you help me?");
console.log(`Created message, message ID : ${message.id}`);
// Create and poll a run
console.log("Creating run...");
const run = await client.runs.createAndPoll(thread.id, agent.id, {
pollingOptions: {
intervalInMs: 2000,
},
onResponse: (response): void => {
const parsedBody =
typeof response.parsedBody === "object" && response.parsedBody !== null
? response.parsedBody
: null;
const status = parsedBody && "status" in parsedBody ? parsedBody.status : "unknown";
console.log(`Received response with status: ${status}`);
},
});
console.log(`Run finished with status: ${run.status}`);
const messagesIterator = client.messages.list(thread.id);
console.log("\n\n========================================================");
console.log("=================== CONVERSATION RESULTS ===================");
console.log("========================================================\n");
// Collect all messages first
const messages = [];
for await (const m of messagesIterator) {
messages.push(m);
}
// Reverse the order of messages (or sort by timestamp if available)
messages.reverse();
// Display messages in the new order
for (const m of messages) {
if (m.role === "user") {
console.log(`\n❓ USER QUESTION: ${
Array.isArray(m.content) && m.content[0]?.type === "text" && 'text' in m.content[0]
? m.content[0].text.value
: JSON.stringify(m.content)
}`);
} else if (m.role === "assistant") {
console.log("\n🤖 ASSISTANT'S ANSWER:");
console.log("--------------------------------------------------");
// Extract and print the text content in a more readable format
if (m.content && Array.isArray(m.content)) {
for (const content of m.content) {
if (content.type === "text" && 'text' in content) {
console.log(content.text?.value);
} else {
console.log(content);
}
}
} else {
console.log(JSON.stringify(m.content, null, 2));
}
console.log("--------------------------------------------------\n");
}
}
console.log("\n========================================================");
console.log("====================== END OF RESULTS ======================");
console.log("========================================================\n");
// Clean up
await client.threads.delete(thread.id);
await client.deleteAgent(agent.id);
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Kör koden med .npx tsx -r dotenv/config index.ts Den här koden besvarar frågan I need to solve the equation '3x + 11 = 14'. Can you help me?. Svaren är inte deterministiska, dina utdata ser ut ungefär som nedanstående utdata:
Created agent, agent ID : asst_X4yDNWrdWKb8LN0SQ6xlzhWk
Created thread, thread ID : thread_TxqZcHL2BqkNWl9dFzBYMIU6
Threads for agent asst_X4yDNWrdWKb8LN0SQ6xlzhWk:
...
Created message, message ID : msg_R0zDsXdc2UbfsNXvS1zeS6hk
Creating run...
Received response with status: queued
Received response with status: in_progress
Received response with status: completed
Run finished with status: completed
========================================================
=================== CONVERSATION RESULTS ===================
========================================================
❓ USER QUESTION: I need to solve the equation `3x + 11 = 14`. Can you help me?
🤖 ASSISTANT'S ANSWER:
--------------------------------------------------
Certainly! Let's solve the equation step by step:
We have:
3x + 11 = 14
### Step 1: Eliminate the constant (+11) on the left-hand side.
Subtract 11 from both sides:
3x + 11 - 11 = 14 - 11
This simplifies to:
3x = 3
We have:
3x + 11 = 14
### Step 1: Eliminate the constant (+11) on the left-hand side.
Subtract 11 from both sides:
3x + 11 - 11 = 14 - 11
This simplifies to:
3x = 3
### Step 2: Solve for x.
Divide both sides by 3:
3x / 3 = 3 / 3
This simplifies to:
x = 1
### Final Answer:
x = 1
--------------------------------------------------
========================================================
====================== END OF RESULTS ======================
========================================================
Fullständig exempelkod tillgänglig.
| Referensdokumentation | Prover | Källkod | för bibliotekPaket (Maven) |
Prerequisites
- 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
Skapa först ett nytt Java-konsolprojekt. Du behöver följande beroenden för att köra koden:
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-agents-persistent</artifactId>
<version>1.0.0-beta.2</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.17.0-beta.1</version>
</dependency>
</dependencies>
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>
Important
Från och med maj 2025 använder Azure AI Agent Service en slutpunkt för Foundry-projekt i stället för anslutningssträngen som tidigare användes för hubbbaserade projekt. Om du använder ett hubbbaserat projekt kan du inte använda de aktuella versionerna av SDK och REST API. Mer information finns i SDK-användning med hubbbaserade projekt.
Du hittar slutpunkten i översikten för projektet i Azure AI Foundry-portalen under Bibliotek>Azure AI Foundry.
Ange den här slutpunkten i en miljövariabel med namnet PROJECT_ENDPOINT.
Du behöver också modellens implementeringsnamn. Du hittar den i Modeller + slutpunkter i den vänstra navigeringsmenyn.
Spara namnet på modelldistributionsnamnet som en miljövariabel med namnet MODEL_DEPLOYMENT_NAME.
Kodexempel
package com.example.agents;
import com.azure.ai.agents.persistent.MessagesClient;
import com.azure.ai.agents.persistent.PersistentAgentsAdministrationClient;
import com.azure.ai.agents.persistent.PersistentAgentsClient;
import com.azure.ai.agents.persistent.PersistentAgentsClientBuilder;
import com.azure.ai.agents.persistent.RunsClient;
import com.azure.ai.agents.persistent.ThreadsClient;
import com.azure.ai.agents.persistent.models.CodeInterpreterToolDefinition;
import com.azure.ai.agents.persistent.models.CreateAgentOptions;
import com.azure.ai.agents.persistent.models.CreateRunOptions;
import com.azure.ai.agents.persistent.models.MessageImageFileContent;
import com.azure.ai.agents.persistent.models.MessageRole;
import com.azure.ai.agents.persistent.models.MessageTextContent;
import com.azure.ai.agents.persistent.models.PersistentAgent;
import com.azure.ai.agents.persistent.models.PersistentAgentThread;
import com.azure.ai.agents.persistent.models.RunStatus;
import com.azure.ai.agents.persistent.models.ThreadMessage;
import com.azure.ai.agents.persistent.models.ThreadRun;
import com.azure.ai.agents.persistent.models.MessageContent;
import com.azure.core.http.rest.PagedIterable;
import com.azure.identity.DefaultAzureCredentialBuilder;
import java.util.Arrays;
public class AgentSample {
public static void main(String[] args) {
// variables for authenticating requests to the agent service
String projectEndpoint = System.getenv("PROJECT_ENDPOINT");
String modelName = System.getenv("MODEL_DEPLOYMENT_NAME");
// initialize clients to manage various aspects of agent runtime
PersistentAgentsClientBuilder clientBuilder = new PersistentAgentsClientBuilder()
.endpoint(projectEndpoint)
.credential(new DefaultAzureCredentialBuilder().build());
PersistentAgentsClient agentsClient = clientBuilder.buildClient();
PersistentAgentsAdministrationClient administrationClient = agentsClient.getPersistentAgentsAdministrationClient();
ThreadsClient threadsClient = agentsClient.getThreadsClient();
MessagesClient messagesClient = agentsClient.getMessagesClient();
RunsClient runsClient = agentsClient.getRunsClient();
String agentName = "my-agent"; // the name of the agent
CreateAgentOptions createAgentOptions = new CreateAgentOptions(modelName)
.setName(agentName)
.setInstructions("You are a helpful agent") // system insturctions
.setTools(Arrays.asList(new CodeInterpreterToolDefinition()));
PersistentAgent agent = administrationClient.createAgent(createAgentOptions);
PersistentAgentThread thread = threadsClient.createThread();
ThreadMessage createdMessage = messagesClient.createMessage(
thread.getId(),
MessageRole.USER,
"I need to solve the equation `3x + 11 = 14`. Can you help me?"); // The message to the agent
try {
//run the agent
CreateRunOptions createRunOptions = new CreateRunOptions(thread.getId(), agent.getId())
.setAdditionalInstructions("");
ThreadRun threadRun = runsClient.createRun(createRunOptions);
// wait for the run to complete before printing the message
waitForRunCompletion(thread.getId(), threadRun, runsClient);
printRunMessages(messagesClient, thread.getId());
} catch (InterruptedException e) {
throw new RuntimeException(e);
} finally {
//cleanup - uncomment these lines if you want to delete the agent
//threadsClient.deleteThread(thread.getId());
//administrationClient.deleteAgent(agent.getId());
}
}
// A helper function to print messages from the agent
public static void printRunMessages(MessagesClient messagesClient, String threadId) {
PagedIterable<ThreadMessage> runMessages = messagesClient.listMessages(threadId);
for (ThreadMessage message : runMessages) {
System.out.print(String.format("%1$s - %2$s : ", message.getCreatedAt(), message.getRole()));
for (MessageContent contentItem : message.getContent()) {
if (contentItem instanceof MessageTextContent) {
System.out.print((((MessageTextContent) contentItem).getText().getValue()));
} else if (contentItem instanceof MessageImageFileContent) {
String imageFileId = (((MessageImageFileContent) contentItem).getImageFile().getFileId());
System.out.print("Image from ID: " + imageFileId);
}
System.out.println();
}
}
}
// a helper function to wait until a run has completed running
public static void waitForRunCompletion(String threadId, ThreadRun threadRun, RunsClient runsClient)
throws InterruptedException {
do {
Thread.sleep(500);
threadRun = runsClient.getRun(threadId, threadRun.getId());
}
while (
threadRun.getStatus() == RunStatus.QUEUED
|| threadRun.getStatus() == RunStatus.IN_PROGRESS
|| threadRun.getStatus() == RunStatus.REQUIRES_ACTION);
if (threadRun.getStatus() == RunStatus.FAILED) {
System.out.println(threadRun.getLastError().getMessage());
}
}
}
Prerequisites
- 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
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 projektets slutpunkt:
https://<your_ai_service_name>.services.ai.azure.com/api/projects/<your_project_name>
Slutpunkten ser till exempel 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.
Note
- För
api-versionparametern är2025-05-01GA API-versionen och den senaste förhandsversionen av API:et är2025-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
Note
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"
Nästa steg
Lär dig mer om de verktyg som du kan använda för att utöka agenternas funktioner, till exempel åtkomst till webben, tillhandahålla grundinformation med mera.