// Copyright (c) Microsoft. All rights reserved. using System; using System.Collections.Generic; using Azure.AI.Projects; using Azure.AI.Projects.Agents; using Microsoft.Extensions.Configuration; using Shared.Foundry; using Shared.IntegrationTests; namespace Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.Agents; internal sealed class VisionAgentProvider(IConfiguration configuration) : AgentProvider(configuration) { protected override async IAsyncEnumerable CreateAgentsAsync(Uri foundryEndpoint) { AIProjectClient aiProjectClient = new(foundryEndpoint, TestAzureCliCredentials.CreateAzureCliCredential()); yield return await aiProjectClient.CreateAgentAsync( agentName: "VisionAgent", agentDefinition: this.DefineVisionAgent(), agentDescription: "Use computer vision to describe an image or document."); } private DeclarativeAgentDefinition DefineVisionAgent() => new(this.GetSetting(TestSettings.AzureAIModelDeploymentName)) { Instructions = """ Describe the image or document contained in the user request, if any; otherwise, suggest that the user provide an image or document. """, }; }