mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
c79f886dc3
* dotnet: refresh Foundry sample guidance Carry forward the still-relevant sample guidance and Foundry-specific documentation fixes from the old stacked sample migration work, adapted to the current repo layout and policy. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: rename Foundry sample env vars Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: remove persistent provider sample Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: drop SAMPLE_GUIDELINES.md from this PR Defer the guidelines doc and its cross-link to a follow-on PR to avoid broken-link failures in CI. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: add DefaultAzureCredential warning to remaining samples Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * dotnet: address PR review feedback Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
55 lines
1.9 KiB
C#
55 lines
1.9 KiB
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
|
|
using System.ComponentModel;
|
|
using Azure.Identity;
|
|
using Microsoft.Agents.AI;
|
|
using Microsoft.Agents.AI.Hosting;
|
|
using Microsoft.Extensions.AI;
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
|
|
builder.AddServiceDefaults();
|
|
|
|
builder.AddAzureChatCompletionsClient(connectionName: "foundry",
|
|
configureSettings: settings =>
|
|
{
|
|
// WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production.
|
|
// In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid
|
|
// latency issues, unintended credential probing, and potential security risks from fallback mechanisms.
|
|
settings.TokenCredential = new DefaultAzureCredential();
|
|
settings.EnableSensitiveTelemetryData = builder.Environment.IsDevelopment();
|
|
})
|
|
.AddChatClient("gpt41");
|
|
|
|
builder.AddAIAgent("editor", (sp, key) =>
|
|
{
|
|
var chatClient = sp.GetRequiredService<IChatClient>();
|
|
return new ChatClientAgent(
|
|
chatClient,
|
|
name: key,
|
|
instructions: "You edit short stories to improve grammar and style, ensuring the stories are less than 300 words. Once finished editing, you select a title and format the story for publishing.",
|
|
tools: [AIFunctionFactory.Create(FormatStory)]
|
|
);
|
|
});
|
|
|
|
// Register services for OpenAI responses and conversations
|
|
builder.Services.AddOpenAIResponses();
|
|
builder.Services.AddOpenAIConversations();
|
|
|
|
var app = builder.Build();
|
|
|
|
// Map OpenAI API endpoints — DevUI aggregator routes requests here
|
|
app.MapOpenAIResponses();
|
|
app.MapOpenAIConversations();
|
|
|
|
app.MapDefaultEndpoints();
|
|
|
|
app.Run();
|
|
|
|
[Description("Formats the story for publication, revealing its title.")]
|
|
static string FormatStory(string title, string story) => $"""
|
|
**Title**: {title}
|
|
|
|
{story}
|
|
""";
|