10-03-01 — Publicação no M365 Copilot, Teams, Outlook
TL;DR
Publicar um agente no ecossistema Microsoft significa registrá-lo no Azure Bot Service, criar um Teams App Package (manifest + ícones) e distribuir via Teams Admin Center. Para M365 Copilot, o agente precisa ser um declarative agent registrado no Microsoft 365 Admin Center. O processo leva cerca de 2 horas da primeira vez; depois, deploys são automatizáveis via CI/CD.
Visão geral do pipeline de publicação
flowchart LR
A[Copilot Studio
ou SDK] --> B[Azure Bot Service
Registro] B --> C[Teams App Package
.zip manifest] C --> D{Canal alvo} D -->|Teams| E[Teams Admin Center
Aprovação IT] D -->|M365 Copilot| F[Microsoft 365 Admin
Center] D -->|Outlook| G[Outlook Add-in
Registry] E & F & G --> H[Usuários recebem o agente]
ou SDK] --> B[Azure Bot Service
Registro] B --> C[Teams App Package
.zip manifest] C --> D{Canal alvo} D -->|Teams| E[Teams Admin Center
Aprovação IT] D -->|M365 Copilot| F[Microsoft 365 Admin
Center] D -->|Outlook| G[Outlook Add-in
Registry] E & F & G --> H[Usuários recebem o agente]
1. Registrar no Azure Bot Service
Todo agente custom engine precisa de um registro no Azure Bot Service. Isso gera o MicrosoftAppId e configura os canais.
// azure-bot-registration.json (ARM template simplificado)
{
"type": "Microsoft.BotService/botServices",
"name": "impar-hr-agent",
"location": "global",
"sku": { "name": "F0" }, // Free tier
"properties": {
"displayName": "Assistente RH Impar",
"endpoint": "https://hr-agent.impar.com.br/api/messages",
"msaAppId": "{MicrosoftAppId}",
"msaAppTenantId": "{TenantId}",
"msaAppType": "MultiTenant" // ou SingleTenant para agentes internos
}
}
2. Teams App Package
// manifest.json (Teams App Package)
{
"$schema": "https://developer.microsoft.com/json-schemas/teams/v1.18/MicrosoftTeams.schema.json",
"manifestVersion": "1.18",
"version": "1.0.0",
"id": "{guid-único}",
"packageName": "com.impar.hr-agent",
"developer": {
"name": "Impar",
"websiteUrl": "https://impar.com.br",
"privacyUrl": "https://impar.com.br/privacy",
"termsOfUseUrl": "https://impar.com.br/terms"
},
"name": { "short": "Assistente RH", "full": "Assistente de RH - Impar" },
"description": {
"short": "Tire dúvidas de RH com IA",
"full": "Assistente powered by Azure OpenAI para responder dúvidas sobre políticas de RH da Impar"
},
"bots": [
{
"botId": "{MicrosoftAppId}",
"scopes": ["personal", "team", "groupChat"],
"supportsFiles": false,
"isNotificationOnly": false
}
],
"permissions": ["identity", "messageTeamMembers"],
"validDomains": ["hr-agent.impar.com.br"]
}
3. Distribuição via Teams Admin Center
| Método | Quem faz | Alcance |
|---|---|---|
| Upload direto (.zip) | Usuário | Só ele mesmo |
| Upload para org store | Teams Admin | Organização toda |
| Pre-install via policy | Teams Admin | Grupos específicos |
| Teams App Store (público) | Microsoft revisão | Qualquer organização |
Pre-pinning para adoção: No Teams Admin Center, você pode configurar o agente para aparecer pré-instalado e fixado na barra lateral para todos os usuários de um grupo. Isso aumenta drasticamente a adoção — não precisa que cada usuário instale manualmente.
Publicação no M365 Copilot
Para declarative agents aparecerem no M365 Copilot (o "chat do Copilot"), o processo é diferente:
- Criar o declarative agent no Copilot Studio
- Publicar para a organização no Copilot Studio
- No Microsoft 365 Admin Center → Settings → Integrated apps → aprovar o agente
- Os usuários com licença M365 Copilot verão o agente na lista do Copilot
Licenciamento: Para o agente aparecer no M365 Copilot, os usuários precisam ter licença Microsoft 365 Copilot (US$30/usuário/mês adicionais ao M365 E3/E5). Agentes no Teams não requerem essa licença.
CI/CD para deploy de agentes
// GitHub Actions — deploy do agente .NET + atualização do Teams App
name: Deploy Agent
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build .NET
run: dotnet publish -c Release -o ./output
- name: Deploy to Azure App Service
uses: azure/webapps-deploy@v3
with:
app-name: hr-agent-impar
publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }}
package: ./output
- name: Update Teams App
run: |
# Atualiza versão no manifest.json
# Faz zip e submete via Teams Admin API
npx @microsoft/teamsfx-cli package
Como isso se conecta
- 10-03-02 — Connectors e Power Platform integration são parte do app package
- 10-02-01 — O Azure Bot Service registra o endpoint do M365 Agents SDK
- Módulo 12 — Após publicar, observabilidade via App Insights começa imediatamente