// 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; } }