Microsoft 365 Agents SDK (.NET)
Создание агентов Microsoft 365 с помощью .NET
Создание многоканальных агентов для Microsoft 365 требует понимания модели хостинга Microsoft.Agents SDK, паттернов аутентификации и архитектуры маршрутизации. Этот навык предоставляет готовые к продакшену примеры кода для хостинга на ASP.NET Core, аутентификации через MSAL и интеграции с Copilot Studio.
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“Microsoft 365 Agents SDK (.NET)”。 Создайте подкласс AgentApplication с обработчиком сообщений, который повторяет ввод пользователя
预期结果:
Генерирует класс C#, наследующий AgentApplication, с конструктором, регистрирующим OnActivity(ActivityTypes.Message, OnMessageAsync), и методом OnMessageAsync, который вызывает turnContext.SendActivityAsync с повторённым текстом.
正在使用“Microsoft 365 Agents SDK (.NET)”。 Сгенерируйте appsettings.json с конфигурацией TokenValidation и ServiceConnection
预期结果:
Создаёт JSON-конфигурацию с секцией TokenValidation, содержащей Enabled, массив Audiences, TenantId, и секцией Connections с AuthType, ClientId, ClientSecret, AuthorityEndpoint и Scopes для api.botframework.com.
正在使用“Microsoft 365 Agents SDK (.NET)”。 Покажите, как добавить авторизацию к endpoint /api/messages в продакшене
预期结果:
Показывает обёртывание POST-маршрута с помощью if (!app.Environment.IsDevelopment()) { incomingRoute.RequireAuthorization(); } для принудительной аутентификации вне среды разработки.
安全审计
安全Documentation-only skill with no executable code. Contains C# code examples and configuration templates for Microsoft 365 Agents SDK. No scripts, network operations, file system access, or external commands detected. Static analysis correctly identified this as a prompt-only skill with zero security risk.
质量评分
你能构建什么
Создание бота Teams с аутентификацией
Генерация готового к продакшену бота ASP.NET Core, который аутентифицирует пользователей через MSAL и отвечает на сообщения в каналах Microsoft Teams.
Интеграция с Copilot Studio
Создание консольного или веб-приложения, которое подключается напрямую к Copilot Studio с использованием паттерна клиента direct-to-engine с делегированными токенами.
Реализация обработки ошибок агента
Добавление комплексной обработки ошибок и управления состоянием к подклассам AgentApplication с правильной очисткой и потоками завершения разговора.
试试这些提示
Сгенерируйте минимальный API-хост ASP.NET Core для бота Microsoft.Agents SDK. Включите AddAgentApplicationOptions, AddAgent для класса MyAgent, MemoryStorage, AddAgentAspNetAuthentication и POST /api/messages endpoint с IAgentHttpAdapter.
Создайте подкласс AgentApplication под названием SupportAgent с OnConversationUpdate для приветственных сообщений, OnActivity для ActivityTypes.Message, маршрутизируемым к методу обработчика, и OnTurnError для обработки исключений с очисткой состояния.
Создайте DelegatingHandler под названием AddTokenHandler, который получает токены с использованием PublicClientApplication с AcquireTokenSilent и fallback к AcquireTokenInteractive. Включите внедрение заголовка Bearer и использование CopilotClient.ScopeFromSettings.
Сгенерируйте консольное приложение HostApplicationBuilder, которое регистрирует CopilotClient с AddHttpClient, пользовательский DelegatingHandler для токенов и использует StartConversationAsync и AskQuestionAsync для взаимодействия с Copilot Studio.
最佳实践
- Используйте базовые классы AgentApplication для централизации логики маршрутизации, обработчиков событий и обработки ошибок в одном месте вместо распределения по middleware.
- Замените MemoryStorage на персистентное хранилище, такое как BlobStorage или CosmosDbStorage, для продакшен-развёртываний, чтобы поддерживать состояние разговора после перезапусков сервера.
- Включите TokenValidation в appsettings.json и примените RequireAuthorization к endpoint /api/messages для предотвращения несанкционированного доступа к вашему агенту.
避免
- Хранение ClientSecret или других учётных данных непосредственно в коде вместо использования поставщиков конфигурации, таких как Azure Key Vault, переменных окружения или управляемого удостоверения.
- Создание новых экземпляров HttpClient для каждого запроса вместо использования IHttpClientFactory для регистрации и эффективного повторного использования HTTP-соединений.
- Синхронная блокировка асинхронных вызовов с использованием .Result или .Wait() вместо правильной команды async методов SDK с передачей CancellationToken.