mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
* Add missing README.md * Address bugbash comments * Address bugbash issues and suggestions
51 lines
2.6 KiB
C#
51 lines
2.6 KiB
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
|
|
// This sample shows how to create and use AI agents with Azure Foundry Agents as the backend.
|
|
|
|
using Azure.AI.Projects;
|
|
using Azure.AI.Projects.OpenAI;
|
|
using Azure.Identity;
|
|
using Microsoft.Agents.AI;
|
|
using Microsoft.Extensions.AI;
|
|
|
|
string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set.");
|
|
string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini";
|
|
|
|
const string JokerInstructionsV1 = "You are good at telling jokes.";
|
|
const string JokerInstructionsV2 = "You are extremely hilarious at telling jokes.";
|
|
const string JokerName = "JokerAgent";
|
|
|
|
// Get a client to create/retrieve/delete server side agents with Azure Foundry Agents.
|
|
AIProjectClient aiProjectClient = new(new Uri(endpoint), new AzureCliCredential());
|
|
|
|
// Define the agent you want to create. (Prompt Agent in this case)
|
|
AgentVersionCreationOptions options = new(new PromptAgentDefinition(model: deploymentName) { Instructions = JokerInstructionsV1 });
|
|
|
|
// Azure.AI.Agents SDK creates and manages agent by name and versions.
|
|
// You can create a server side agent version with the Azure.AI.Agents SDK client below.
|
|
AgentVersion agentVersion = aiProjectClient.Agents.CreateAgentVersion(agentName: JokerName, options);
|
|
|
|
// Note:
|
|
// agentVersion.Id = "<agentName>:<versionNumber>",
|
|
// agentVersion.Version = <versionNumber>,
|
|
// agentVersion.Name = <agentName>
|
|
|
|
// You can retrieve an AIAgent for an already created server side agent version.
|
|
AIAgent jokerAgentV1 = aiProjectClient.GetAIAgent(agentVersion);
|
|
|
|
// You can also create another AIAgent version (V2) by providing the same name with a different definition/instruction.
|
|
AIAgent jokerAgentV2 = aiProjectClient.CreateAIAgent(name: JokerName, model: deploymentName, instructions: JokerInstructionsV2);
|
|
|
|
// You can also get the AIAgent latest version by just providing its name.
|
|
AIAgent jokerAgentLatest = aiProjectClient.GetAIAgent(name: JokerName);
|
|
AgentVersion latestVersion = jokerAgentLatest.GetService<AgentVersion>()!;
|
|
|
|
// The AIAgent version can be accessed via the GetService method.
|
|
Console.WriteLine($"Latest agent version id: {latestVersion.Id}");
|
|
|
|
// Once you have the AIAgent, you can invoke it like any other AIAgent.
|
|
Console.WriteLine(await jokerAgentLatest.RunAsync("Tell me a joke about a pirate."));
|
|
|
|
// Cleanup by agent name removes both agent versions created (jokerAgentV1 + jokerAgentV2).
|
|
await aiProjectClient.Agents.DeleteAgentAsync(jokerAgentV1.Name);
|