Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Note
Ez a dokumentum a Microsoft Foundry (klasszikus) portálra hivatkozik.
🔍Az új portállal kapcsolatos információkért tekintse meg a Microsoft Foundry (új) dokumentációját.
Note
Ez a rövid útmutató az ügynökök korábbi verziójához készült. Az API új verziójának használatához tekintse meg a Microsoft Foundry rövid útmutatóját .
A Foundry Agent Service lehetővé teszi az igényeinek megfelelő AI-ügynökök létrehozását egyéni utasításokon keresztül, fejlett eszközökkel, például kódértelmezővel és egyéni függvényekkel kiegészítve.
Prerequisites
- Azure-előfizetés – Hozzon létre egyet ingyenesen.
- Győződjön meg arról, hogy a fiókot és projektet létrehozó személy rendelkezik azure AI-fióktulajdonosi szerepkörrel az előfizetés hatókörében, amely megadja a projekt létrehozásához szükséges engedélyeket
- Másik lehetőségként, ha a Közreműködő vagy a Cognitive Services közreműködői szerepköre az előfizetés szintjén van, lehetővé teszi a projekt létrehozását
- A projekt létrehozása után győződjön meg arról, hogy a projekten belül az ügynököt létrehozó személy az Azure AI-felhasználói szerepkörrel rendelkezik a projekt szintjén
Important
A Microsoft Foundry portál jelenleg csak az alapszintű ügynökbeállítást támogatja. Ha szabványos ügynökbeállítást szeretne végrehajtani, további információkért tekintse meg a Környezet beállítása című cikket.
Foundry-fiók és -projekt létrehozása az Foundry portálon
Ha fiókot és projektet szeretne létrehozni a Foundryben, kövesse az alábbi lépéseket:
Nyissa meg a Foundryt. Ha projektben van, a kezdőlapra való ugráshoz válassza a lap bal felső részén található Foundry lehetőséget.
Használja az ügyfélszolgálati munkatárs gyors indulási folyamatát a leggyorsabb élmény érdekében. Kattintson az Ügynök létrehozása elemre.
Adjon meg a projekt nevét. Ha testre szeretné szabni az alapértelmezett értékeket, válassza a Speciális beállítások lehetőséget.
Válassza a Create gombot.
Várjon, amíg az erőforrások rendelkezésre állnak.
- Létrejön egy fiók és projekt (a fiók gyermekerőforrása).
- A gpt-4o modell automatikusan üzembe lesz helyezve
- Létrejön egy alapértelmezett ügynök
A befejezés után közvetlenül az ügynökök játszóterére jut, és elkezdheti létrehozni az ügynököket. Az ügynöknek útmutatást adhat arról, mit és hogyan kell végrehajtani. Például: "Ön egy hasznos ügynök, aki válaszolhat a földrajzi helyzetre vonatkozó kérdésekre." Ezután elkezdhet csevegni az ügynökével.
Note
Ha az ügynökök konfigurálásakor vagy létrehozásakor engedélyhiba jelenik meg, győződjön meg arról, hogy rendelkezik az Azure AI-felhasználóval a projektben.
| Referenciadokumentáció | Példák | Kódtár forráskód | Csomag (NuGet) |
Prerequisites
- Egy beállított ügynökkörnyezet
- Rendelje hozzá az Azure AI-felhasználóiRBAC-szerepkört minden olyan csapattaghoz, akinek ügynököket kell létrehoznia vagy szerkesztenie az SDK vagy az Agent Playground használatával
- Ezt a szerepkört a projekt hatókörében kell hozzárendelni
- Minimálisan szükséges engedélyek: ügynökök/*/olvasás, ügynökök/*/művelet, ügynökök/*/törlés
Ügynök konfigurálása és futtatása
Hozzon létre egy .NET-konzolprojektet.
dotnet new console
Telepítse a .NET-csomagot a projektbe. Ha például a .NET CLI-t használja, futtassa a következő parancsot.
dotnet add package Azure.AI.Agents.Persistent
dotnet add package Azure.Identity
Ezután az API-kérések hitelesítéséhez és a program futtatásához használja az az login parancsot az Azure-előfizetésbe való bejelentkezéshez.
az login
Ügynök létrehozásához és futtatásához használja az alábbi kódot. A kód futtatásához le kell kérnie a projekt végpontját. Ennek a karaktersornak a formátuma:
https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>
Important
2025 májusától kezdődően az Azure AI Agent Service a korábban központi projektekhez használt kapcsolati sztring helyett egy Foundry-projektek végpontját használja. Ha központalapú projektet használ, nem fogja tudni használni az SDK és a REST API aktuális verzióit. További információ: SDK-használat központalapú projektekkel.
A végpontot a projekt áttekintésében , a Microsoft Foundry portálon, a Libraries>Foundry alatt találja.
Állítsa be ezt a végpontot egy környezeti változóban, amelynek neve ProjectEndpoint.
Szüksége lesz a modell üzembe helyezésének nevére is. A bal oldali navigációs menü Modellek + Végpontok területén található.
Mentse a modell üzembehelyezési nevének nevét egy környezeti változó neveként.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);
| Referenciadokumentáció | Példák | Könyvtár forráskódja | Csomag (PyPi) |
Prerequisites
- Egy beállított ügynökkörnyezet
- Rendelje hozzá az Azure AI-felhasználóiRBAC-szerepkört minden olyan csapattaghoz, akinek ügynököket kell létrehoznia vagy szerkesztenie az SDK vagy az Agent Playground használatával
- Ezt a szerepkört a projekt hatókörében kell hozzárendelni
- Minimálisan szükséges engedélyek: ügynökök/*/olvasás, ügynökök/*/művelet, ügynökök/*/törlés
Ügynök konfigurálása és futtatása
Futtassa az alábbi parancsokat a Python-csomagok telepítéséhez.
pip install azure-ai-projects
pip install azure-identity
Ezután az API-kérések hitelesítéséhez és a program futtatásához használja az az login parancsot az Azure-előfizetésbe való bejelentkezéshez.
az login
Ügynök létrehozásához és futtatásához használja az alábbi kódot. A kód futtatásához le kell kérnie a projekt végpontját. Ennek a karaktersornak a formátuma:
https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>
Important
2025 májusától kezdődően az Azure AI Agent Service a korábban központi projektekhez használt kapcsolati sztring helyett egy Foundry-projektek végpontját használja. Ha központalapú projektet használ, nem fogja tudni használni az SDK és a REST API aktuális verzióit. További információ: SDK-használat központalapú projektekkel.
A végpontot a projekt áttekintésében , a Microsoft Foundry portálon, a Libraries>Foundry alatt találja.
Állítsa be ezt a végpontot a következő nevű PROJECT_ENDPOINTkörnyezeti változóként: .
Szüksége lesz a modell üzembe helyezésének nevére is. A bal oldali navigációs menü Modellek + Végpontok területén található.
Mentse a modell üzembehelyezési nevének nevét egy környezeti változó neveként.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")
| Referenciadokumentáció | Minták | Könyvtárforráskód | Csomag (npm) |
Prerequisites
- Egy beállított ügynökkörnyezet
- Rendelje hozzá az Azure AI-felhasználóiRBAC-szerepkört minden olyan csapattaghoz, akinek ügynököket kell létrehoznia vagy szerkesztenie az SDK vagy az Agent Playground használatával
- Ezt a szerepkört a projekt hatókörében kell hozzárendelni
- Minimálisan szükséges engedélyek: ügynökök/*/olvasás, ügynökök/*/művelet, ügynökök/*/törlés
Ügynök konfigurálása és futtatása
A kód legfontosabb objektumai a következők:
Először inicializáljon egy új TypeScript-projektet a következő futtatásával:
npm init -y
npm pkg set type="module"
Futtassa az alábbi parancsokat a szükséges npm-csomagok telepítéséhez.
npm install @azure/ai-agents @azure/identity
npm install @types/node typescript --save-dev
Ezután az API-kérések hitelesítéséhez és a program futtatásához használja az az login parancsot az Azure-előfizetésbe való bejelentkezéshez.
az login
A matematikai kérdés I need to solve the equation '3x + 11 = 14'. Can you help me?megválaszolásához használja az alábbi kódot. A kód futtatásához le kell kérnie a projekt végpontját. Ennek a karaktersornak a formátuma:
https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>
A végpontot a projekt áttekintésében , a Microsoft Foundry portálon, a Libraries>Foundry alatt találja.
Állítsa be ezt a végpontot egy PROJECT_ENDPOINT fájlban, mint .env nevű környezeti változót.
Szüksége lesz a modell üzembe helyezésének nevére is. A bal oldali navigációs menü Modellek + Végpontok területén található.
Mentse a modell üzembehelyezési nevének nevét egy környezeti változó neveként.MODEL_DEPLOYMENT_NAME
Important
- Ez a gyorsindító kód környezeti változókat használ az érzékeny konfigurációhoz. Soha ne adja hozzá a
.envfájlt a verziókövető rendszerbe, és győződjön meg róla, hogy a.envszerepel a.gitignorefájlban. - Ne feledje: Ha véletlenül bizalmas információkat követ el, tekintse a hitelesítő adatokat veszélyeztetettnek, és azonnal cserélje le őket.
Hozzon létre egy tsconfig.json fájlt a következő tartalommal:
{
"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,
}
}
Ezután hozzon létre egy index.ts fájlt, és illessze be a következő kódba:
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);
});
Futtassa a kódot a következővel: npx tsx -r dotenv/config index.ts. Ez a kód választ ad a kérdésre I need to solve the equation '3x + 11 = 14'. Can you help me?. A válaszok nem determinisztikusak, a kimenet az alábbi kimenethez hasonlóan fog kinézni:
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 ======================
========================================================
Teljes mintaforráskód érhető el.
| Referenciadokumentáció | Minták | Kódtár forráskódja | Csomag (Maven) |
Prerequisites
- Egy beállított ügynökkörnyezet
- Rendelje hozzá az Azure AI-felhasználóiRBAC-szerepkört minden olyan csapattaghoz, akinek ügynököket kell létrehoznia vagy szerkesztenie az SDK vagy az Agent Playground használatával
- Ezt a szerepkört a projekt hatókörében kell hozzárendelni
- Minimálisan szükséges engedélyek: ügynökök/*/olvasás, ügynökök/*/művelet, ügynökök/*/törlés
Ügynök konfigurálása és futtatása
Először hozzon létre egy új Java-konzolprojektet. A kód futtatásához a következő függőségekre lesz szüksége:
<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>
Ezután az API-kérések hitelesítéséhez és a program futtatásához használja az az login parancsot az Azure-előfizetésbe való bejelentkezéshez.
az login
Ügynök létrehozásához és futtatásához használja az alábbi kódot. A kód futtatásához le kell kérnie a projekt végpontját. Ennek a karaktersornak a formátuma:
https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>
Important
2025 májusától kezdődően az Azure AI Agent Service a korábban központi projektekhez használt kapcsolati sztring helyett egy Foundry-projektek végpontját használja. Ha központalapú projektet használ, nem fogja tudni használni az SDK és a REST API aktuális verzióit. További információ: SDK-használat központalapú projektekkel.
A végpontot a projekt áttekintésében , a Microsoft Foundry portálon, a Libraries>Foundry alatt találja.
Állítsa be ezt a végpontot egy környezeti változóban, amelynek neve PROJECT_ENDPOINT.
Szüksége lesz a modell üzembe helyezésének nevére is. A bal oldali navigációs menü Modellek + Végpontok területén található.
Mentse a modell üzembehelyezési nevének nevét egy környezeti változó neveként.MODEL_DEPLOYMENT_NAME
Kódrészlet
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
- Egy beállított ügynökkörnyezet
- Rendelje hozzá az Azure AI-felhasználóiRBAC-szerepkört minden olyan csapattaghoz, akinek ügynököket kell létrehoznia vagy szerkesztenie az SDK vagy az Agent Playground használatával
- Ezt a szerepkört a projekt hatókörében kell hozzárendelni
- Minimálisan szükséges engedélyek: ügynökök/*/olvasás, ügynökök/*/művelet, ügynökök/*/törlés
Ügynök konfigurálása és futtatása
Az API-kérések hitelesítéséhez használja az az login parancsot az Azure-előfizetésbe való bejelentkezéshez.
az login
Ezután be kell szereznie az Entra ID-jogkivonatot, hogy engedélyként szolgáljon az API-hívásokhoz. A tokent szerezze be a CLI parancs segítségével:
az account get-access-token --resource 'https://ai.azure.com' | jq -r .accessToken | tr -d '"'
Állítsa be a hozzáférési tokent egy AGENT_TOKEN nevű környezeti változóként.
A REST API-hívások Foundry Agent Service szolgáltatásba való sikeres indításához a projekt végpontját kell használnia:
https://<your_ai_service_name>.services.ai.azure.com/api/projects/<your_project_name>
A végpont például a következőképpen fog kinézni:
https://exampleaiservice.services.ai.azure.com/api/projects/project
Állítsa be ezt a végpontot a következő nevű AZURE_AI_FOUNDRY_PROJECT_ENDPOINTkörnyezeti változóként: .
Note
- Paraméter esetén
api-versiona GA API verziója és2025-05-01a legújabb előzetes API-verzió.2025-05-15-previewAz előzetes verziójú API-t kell használnia az előzetes verzióban lévő eszközökhöz. - Fontolja meg az API-verzió környezeti változóvá tételét, például
$API_VERSION.
Ügynök létrehozása
Note
Az Azure AI Agents Service-ben a model paraméterhez modelltelepítési név szükséges. Ha a modell központi telepítési neve eltér az alapul szolgáló modell nevéétől, akkor a kódot a következőre "model": "{your-custom-model-deployment-name}"kell módosítania: .
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"
}'
Szál létrehozása
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 ''
Felhasználói kérdés hozzáadása a szálhoz
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?"
}'
A szál futtatása
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",
}'
A folyamat állapotának lekérése
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"
Az ügynök válaszának lekérése
curl --request GET \
--url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/threads/thread_abc123/messages?api-version=2025-05-01 \
-H "Authorization: Bearer $AGENT_TOKEN"
Következő lépések
Megismerheti az ügynökök képességeinek bővítéséhez használható eszközöket , például a webes hozzáférést, a földi információk biztosítását és egyebeket.