// TEMPLATE: AgentBootstrap.cs
// PURPOSE: Extension method to register ModelRegistry + a default agent in DI.
// READS STANDARDS: ai-agents-setup, ai-agents-providers-model-registry
// PLACEHOLDERS:
// {{PROJECT_NAMESPACE}} — root namespace of the project
// {{DEFAULT_AGENT_NAME}} — first agent name (e.g., "DefaultAssistant")
// {{DEFAULT_INSTRUCTIONS}} — system prompt for default agent (1 line)
// LAST-VERIFIED: 2026-05-19 (MAF 1.0 GA)
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
using Microsoft.Extensions.DependencyInjection;
namespace {{PROJECT_NAMESPACE}}.AI;
public static class AgentBootstrap
{
///
/// Register ModelRegistry (singleton) and the default agent.
/// Additional agents register themselves via builder.AddAIAgent("Name", ...).
///
public static WebApplicationBuilder AddMafAgents(this WebApplicationBuilder builder)
{
// Single source of truth for model selection
builder.Services.AddSingleton();
// Default agent — uses the default alias from model-registry.json
builder.Services.AddKeyedSingleton("{{DEFAULT_AGENT_NAME}}", (sp, _) =>
{
var registry = sp.GetRequiredService();
var chatClient = registry.GetChatClient(registry.DefaultAlias);
return chatClient.AsAIAgent(
instructions: "{{DEFAULT_INSTRUCTIONS}}",
name: "{{DEFAULT_AGENT_NAME}}");
});
return builder;
}
}