Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Note
Tento dokument se týká portálu Microsoft Foundry (Classic).
🔍Informace o novém portálu najdete v dokumentaci k Microsoft Foundry (nové).
Note
Tento rychlý úvod je určený pro starší verzi agentů. Informace o použití nové verze rozhraní API najdete v rychlém startu pro Microsoft Foundry .
Služba Foundry Agent service umožňuje vytvářet agenty umělé inteligence přizpůsobené vašim potřebám prostřednictvím vlastních pokynů a rozšířená o pokročilé nástroje, jako je interpret kódu a vlastní funkce.
Prerequisites
- Předplatné Azure – Vytvořte si ho zdarma.
- Ujistěte se, že jednotlivec, který vytváří účet a projekt, má v oboru předplatného roli Vlastník účtu Azure AI , která udělí potřebná oprávnění k vytvoření projektu.
- Další možností je, že role Přispěvatel nebo Přispěvatel služeb Cognitive Services na úrovni předplatného umožní vytvoření projektu.
- Po vytvoření projektu se ujistěte, že jednotlivec, který v rámci projektu vytváří agenta, má roli uživatele Azure AI na úrovni projektu.
Important
Portál Microsoft Foundry v současnosti podporuje pouze základní nastavení agenta. Pokud chcete provést standardní instalaci agenta, přečtěte si článek o nastavení prostředí , kde najdete další informace.
Vytvoření účtu Foundry a projektu na portálu Foundry
Pokud chcete vytvořit účet a projekt v Foundry, postupujte takto:
Přejděte do Foundry. Pokud jste v projektu, vyberte Foundry v levém horním rohu stránky a přejděte na domovskou stránku.
Chcete-li co nejrychleji začít, použijte proces vytvoření agenta. Klikněte na Vytvořit agenta.
Zadejte název projektu. Pokud chcete přizpůsobit výchozí hodnoty, vyberte Upřesnit možnosti.
Vyberte Vytvořit.
Počkejte, než se vaše prostředky zřídí.
- Účet a projekt (podřízený zdroj vašeho účtu) budou vytvořeny.
- Model gpt-4o se nasadí automaticky.
- Vytvoří se výchozí agent.
cs-CZ: Jakmile dokončíte, dostanete se přímo do prostředí pro agenty a můžete začít vytvářet agenty. Agentovi můžete dát pokyny k tomu, co dělat a jak to udělat. Například: "Jste užitečný agent, který může odpovídat na otázky týkající se zeměpisné oblasti." Pak můžete začít chatovat s vaším agentem.
Note
Pokud při pokusu o konfiguraci nebo vytvoření agentů dochází k chybě oprávnění, ujistěte se, že máte v projektu uživatele Azure AI .
| Referenční dokumentace | Vzorky | Zdrojový kód | knihovnyBalíček (NuGet) |
Prerequisites
- Nastavení prostředí agenta
- Přiřaďte roli RBACuživatele Azure AI každému členovi týmu, který potřebuje vytvářet nebo upravovat agenty pomocí sady SDK nebo Agent Playground.
- Tato role musí být přiřazena v oboru projektu.
- Minimální požadovaná oprávnění: agents/*/read, agents/*/action, agents/*/delete
Nakonfigurujte a spusťte agenta
Vytvořte projekt konzoly .NET.
dotnet new console
Nainstalujte balíček .NET do svého projektu. Pokud například používáte rozhraní příkazového řádku .NET, spusťte následující příkaz.
dotnet add package Azure.AI.Agents.Persistent
dotnet add package Azure.Identity
Dále, k ověření vašich API požadavků a spuštění programu, použijte příkaz az login pro přihlášení k vašemu Azure předplatnému.
az login
Použijte následující kód pro vytvoření a spuštění agenta. Pokud chcete tento kód spustit, budete muset získat koncový bod pro váš projekt. Tento řetězec je ve formátu:
https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>
Important
Od května 2025 používá služba agenta Azure AI koncový bod pro projekty Foundry místo připojovacího řetězce, který se dříve používal pro projekty založené na centrech. Pokud používáte projekt založený na centru, nebudete moct používat aktuální verze sady SDK a rozhraní REST API. Další informace najdete v tématu Využití sady SDK s projekty založenými na centrech.
Koncový bod najdete v přehledu projektu na portálu Microsoft Foundry v části Knihovny>Foundry.
Nastavte tento koncový bod v proměnné prostředí a pojmenujte ho ProjectEndpoint.
Potřebujete také název nasazení modelu. Najdete ho v levé navigační nabídce v modelech a koncových bodech .
Uložte jméno nasazení modelu jako proměnnou prostředí pojmenovanou 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);
| Referenční dokumentace | Vzorky | Zdrojový kód | knihovnyBalíček (PyPi) |
Prerequisites
- Nastavení prostředí agenta
- Přiřaďte roli RBACuživatele Azure AI každému členovi týmu, který potřebuje vytvářet nebo upravovat agenty pomocí sady SDK nebo Agent Playground.
- Tato role musí být přiřazena v oboru projektu.
- Minimální požadovaná oprávnění: agents/*/read, agents/*/action, agents/*/delete
Nakonfigurujte a spusťte agenta
Spusťte následující příkazy k instalaci balíčků Python.
pip install azure-ai-projects
pip install azure-identity
Dále, k ověření vašich API požadavků a spuštění programu, použijte příkaz az login pro přihlášení k vašemu Azure předplatnému.
az login
Použijte následující kód pro vytvoření a spuštění agenta. Pokud chcete tento kód spustit, budete muset získat koncový bod pro váš projekt. Tento řetězec je ve formátu:
https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>
Important
Od května 2025 používá služba agenta Azure AI koncový bod pro projekty Foundry místo připojovacího řetězce, který se dříve používal pro projekty založené na centrech. Pokud používáte projekt založený na centru, nebudete moct používat aktuální verze sady SDK a rozhraní REST API. Další informace najdete v tématu Využití sady SDK s projekty založenými na centrech.
Koncový bod najdete v přehledu projektu na portálu Microsoft Foundry v části Knihovny>Foundry.
Nastavte tento koncový bod jako proměnnou prostředí pojmenovanou PROJECT_ENDPOINT.
Potřebujete také název nasazení modelu. Najdete ho v levé navigační nabídce v modelech a koncových bodech .
Uložte jméno nasazení modelu jako proměnnou prostředí pojmenovanou 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 instance
project_client = AIProjectClient(
endpoint=os.getenv("PROJECT_ENDPOINT"),
credential=DefaultAzureCredential(),
# Use Azure Default Credential for authentication
)
with project_client:
code_interpreter = CodeInterpreterTool()
agent = project_client.agents.create_agent(
model=os.getenv("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
tool_resources=code_interpreter.resources, # Attach tool resources
)
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}")
question = """Draw a graph for a line with a slope of 4
and y-intercept of 9 and provide the file to me?"""
# Add a message to the thread
message = project_client.agents.messages.create(
thread_id=thread.id,
role="user", # Role of the message sender
content=question, # 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)
print(f"Messages: {messages}")
for message in messages:
print(f"Role: {message.role}, Content: {message.content}")
for this_content in message.content:
print(f"Content Type: {this_content.type}, Content Data: {this_content}")
if this_content.text.annotations:
for annotation in this_content.text.annotations:
print(f"Annotation Type: {annotation.type}, Text: {annotation.text}")
print(f"Start Index: {annotation.start_index}")
print(f"End Index: {annotation.end_index}")
print(f"File ID: {annotation.file_path.file_id}")
# Save every image file in the message
file_id = annotation.file_path.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")
| Referenční dokumentace | Vzorky | Zdrojový kód | knihovnyBalíček (npm) |
Prerequisites
- Nastavení prostředí agenta
- Přiřaďte roli RBACuživatele Azure AI každému členovi týmu, který potřebuje vytvářet nebo upravovat agenty pomocí sady SDK nebo Agent Playground.
- Tato role musí být přiřazena v oboru projektu.
- Minimální požadovaná oprávnění: agents/*/read, agents/*/action, agents/*/delete
Nakonfigurujte a spusťte agenta
Klíčové objekty v tomto kódu zahrnují:
Nejprve inicializujete nový projekt TypeScript spuštěním příkazu:
npm init -y
npm pkg set type="module"
Spusťte následující příkazy k instalaci požadovaných balíčků npm.
npm install @azure/ai-agents @azure/identity
npm install @types/node typescript --save-dev
Dále, k ověření vašich API požadavků a spuštění programu, použijte příkaz az login pro přihlášení k vašemu Azure předplatnému.
az login
Pomocí následujícího kódu odpovězte na matematickou otázku I need to solve the equation '3x + 11 = 14'. Can you help me?. Abyste mohli tento kód spustit, budete muset získat koncový bod pro váš projekt. Tento řetězec je ve formátu:
https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>
Koncový bod najdete v přehledu projektu na portálu Microsoft Foundry v části Knihovny>Foundry.
Tento koncový bod nastavte jako proměnnou prostředí pojmenovanou PROJECT_ENDPOINT.env v souboru.
Potřebujete také název nasazení modelu. Najdete ho v levé navigační nabídce v modelech a koncových bodech .
Uložte jméno nasazení modelu jako proměnnou prostředí pojmenovanou MODEL_DEPLOYMENT_NAME.
Important
- Tento úvodní kód používá proměnné prostředí pro citlivou konfiguraci. Nikdy nepřidávejte soubor
.envdo verzování tím, že zajistíte, že.envje uveden ve vašem souboru.gitignore. - Pamatujte: Pokud omylem nasdílíte citlivé informace, považujte tyto přihlašovací údaje za kompromitované a okamžitě je změňte.
Vytvořte soubor tsconfig.json s následujícím obsahem:
{
"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,
}
}
Dále vytvořte index.ts soubor a vložte následující kód:
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);
});
Spusťte kód pomocí npx tsx -r dotenv/config index.ts. Tento kód odpoví na otázku I need to solve the equation '3x + 11 = 14'. Can you help me?. Odpovědi nejsou deterministické, výstup bude vypadat podobně jako v následujícím výstupu:
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 ======================
========================================================
K dispozici je úplný ukázkový zdrojový kód .
| Referenční dokumentace | Vzorky | Zdrojový kód | knihovnyBalíček (Maven) |
Prerequisites
- Nastavení prostředí agenta
- Přiřaďte roli RBACuživatele Azure AI každému členovi týmu, který potřebuje vytvářet nebo upravovat agenty pomocí sady SDK nebo Agent Playground.
- Tato role musí být přiřazena v oboru projektu.
- Minimální požadovaná oprávnění: agents/*/read, agents/*/action, agents/*/delete
Nakonfigurujte a spusťte agenta
Nejprve vytvořte nový projekt konzoly Java. Ke spuštění kódu budete potřebovat následující závislosti:
<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>
Dále, k ověření vašich API požadavků a spuštění programu, použijte příkaz az login pro přihlášení k vašemu Azure předplatnému.
az login
Použijte následující kód pro vytvoření a spuštění agenta. Abyste mohli tento kód spustit, budete muset získat koncový bod pro váš projekt. Tento řetězec je ve formátu:
https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>
Important
Od května 2025 používá služba agenta Azure AI koncový bod pro projekty Foundry místo připojovacího řetězce, který se dříve používal pro projekty založené na centrech. Pokud používáte projekt založený na centru, nebudete moct používat aktuální verze sady SDK a rozhraní REST API. Další informace najdete v tématu Využití sady SDK s projekty založenými na centrech.
Koncový bod najdete v přehledu projektu na portálu Microsoft Foundry v části Knihovny>Foundry.
Nastavte tento koncový bod v proměnné prostředí a pojmenujte ho PROJECT_ENDPOINT.
Potřebujete také název nasazení modelu. Najdete ho v levé navigační nabídce v modelech a koncových bodech .
Uložte jméno nasazení modelu jako proměnnou prostředí pojmenovanou MODEL_DEPLOYMENT_NAME.
Příklad kódu
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
- Nastavení prostředí agenta
- Přiřaďte roli RBACuživatele Azure AI každému členovi týmu, který potřebuje vytvářet nebo upravovat agenty pomocí sady SDK nebo Agent Playground.
- Tato role musí být přiřazena v oboru projektu.
- Minimální požadovaná oprávnění: agents/*/read, agents/*/action, agents/*/delete
Nakonfigurujte a spusťte agenta
Aby vaše požadavky na API byly ověřeny, použijte příkaz az login k přihlášení do vašeho předplatného Azure.
az login
Dále budete muset načíst token Entra ID, který použijete jako autorizaci pro volání API. Získejte token pomocí příkazové řádky:
az account get-access-token --resource 'https://ai.azure.com' | jq -r .accessToken | tr -d '"'
Nastavte přístupový token jako proměnnou prostředí s názvem AGENT_TOKEN.
Pokud chcete úspěšně provést volání rozhraní REST API do služby Foundry Agent Service, budete muset použít koncový bod projektu:
https://<your_ai_service_name>.services.ai.azure.com/api/projects/<your_project_name>
Například koncový bod bude vypadat nějak takto:
https://exampleaiservice.services.ai.azure.com/api/projects/project
Nastavte tento koncový bod jako proměnnou prostředí pojmenovanou AZURE_AI_FOUNDRY_PROJECT_ENDPOINT.
Note
- Pro
api-versionparametr je verze2025-05-01rozhraní API GA a nejnovější verze rozhraní API Preview je2025-05-15-preview. Pro nástroje, které jsou ve verzi Preview, musíte použít rozhraní API ve verzi Preview. - Zvažte vytvoření verze rozhraní API jako proměnnou prostředí, například
$API_VERSION.
Vytvořit agenta
Note
Ve službě Azure AI Agents vyžaduje parametr model název nasazení modelu. Pokud se název nasazení modelu liší od názvu základního modelu, upravte kód na "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"
}'
Vytvořit vlákno
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 ''
Přidejte dotaz uživatele do vlákna
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?"
}'
Spustit vlákno
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",
}'
Zjistit stav běhu
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"
Načtěte odpověď agenta
curl --request GET \
--url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/threads/thread_abc123/messages?api-version=2025-05-01 \
-H "Authorization: Bearer $AGENT_TOKEN"
Další kroky
Seznamte se s nástroji , které můžete použít k rozšíření možností agentů, jako je přístup k webu, poskytování informací o uzemnění a další.