using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Agents.AI; namespace Service.AgentFramework; /// /// Agent Framework 依赖注入扩展 /// public static class AgentFrameworkExtensions { /// /// 注册 Agent Framework 相关服务 /// public static IServiceCollection AddAgentFramework(this IServiceCollection services) { // 注册 Tool Registry (Singleton - 无状态,全局共享) services.AddSingleton(); // 注册 Tools (Scoped - 因为依赖 Scoped Repository) services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); // 注册 Agents (Scoped - 因为依赖 Scoped Tools) services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); // 注册 Service Facade (Scoped - 避免生命周期冲突) services.AddSingleton(); return services; } /// /// 初始化 Agent 框架的 Tools /// 在应用启动时调用此方法 /// public static void InitializeAgentTools( this IServiceProvider serviceProvider) { var toolRegistry = serviceProvider.GetRequiredService(); var logger = serviceProvider.GetRequiredService>(); logger.LogInformation("开始初始化 Agent Tools..."); // 这里可以注册更多的 Tool // 目前大部分 Tool 被整合到了工具类中,后续可根据需要扩展 logger.LogInformation("Agent Tools 初始化完成"); } }