Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
[Este tópico faz parte da documentação de pré-lançamento e está sujeito a alterações.]
O Power Apps no Microsoft 365 Copilot permite que os usuários interajam com seu aplicativo controlado por modelos diretamente do Copilot. Quando um usuário fala com o agente, ele pode exibir os dados do aplicativo como interface do usuário interativa, uma grade para navegar em registros ou um formulário para exibição, edição ou criação deles, tudo sem sair da experiência do Copilot. Além disso, você pode adicionar ferramentas MCP personalizadas e interface do usuário interativa ao agente declarativo do aplicativo. Essa funcionalidade é obtida por meio de aplicativos MCP , que é uma extensão para MCP que permite que os servidores MCP forneçam interfaces de usuário interativas aos hosts. O recurso funciona gerando um servidor MCP e um agente declarativo do seu aplicativo.
Importante
- Esta é uma funcionalidade de pré-visualização.
- Os recursos de versão preliminar não foram criados para uso em ambientes de produção e podem ter funcionalidade restrita. Esses recursos estão disponíveis antes de um lançamento oficial para que os clientes possam obter acesso antecipado e fornecer comentários.
Pré-requisitos
- Um aplicativo controlado por modelos. Atualmente, esse recurso só está disponível com aplicativos controlados por modelos.
- licença do Microsoft 365 Copilot. Necessário para o criador que está implantando o agente e para os usuários finais que interagem com ele.
- Permissão para carregar aplicativos personalizados no Microsoft Teams. Talvez o administrador do Microsoft 365 precise habilitar isso. Verifique as configurações de administrador do Teams se a opção de upload não estiver visível.
Configurar o Power Apps pelo Copilot
Vá para o Power Apps, selecione o ambiente desejado e, em seguida, abra o aplicativo controlado por modelo desejado.
Selecione o ícone mcp do aplicativo na barra de navegação esquerda e selecione Configurar MCP. Essa ação configura o servidor MCP para o aplicativo, que fornece ferramentas MCP para conversas do Copilot. Esta é uma etapa única e pode levar alguns segundos para ser concluída.
Salvar e Publicar o aplicativo.
Selecione Baixar pacote do aplicativo para baixar o agente declarativo gerado pelo MCP do aplicativo. Esse pacote contém a definição do agente, as ferramentas internas para registro e gerenciamento de dados, juntamente com a configuração necessária para implantar a experiência do seu aplicativo no Copilot do Microsoft 365.
Carregue o arquivo compactado com um nome semelhante a declarative-agent-app name.zip para Microsoft Teams ou Microsoft 365 Agents:
- Carregue para uso pessoal como um aplicativo personalizado no Teams. Mais informações Carregue seu aplicativo no Teams
- Microsoft 365 Agents: publicar o pacote para uma equipe ou grupo do Centro de administração do Microsoft 365. Mais informações: Agentes de publicação
Agora você pode fazer perguntas sobre as tabelas no aplicativo desse agente declarativo. As ferramentas embutidas podem mostrar uma grade interativa para as consultas do conjunto de dados.
Além disso, formulários inteligentes podem ser usados para criar, exibir e editar registros no contexto do Microsoft 365 Copilot.
Note
Você pode personalizar o agente declarativo incluído no pacote do aplicativo a seu critério. Para reduzir a possibilidade de comportamento inesperado ao usar agentes de IA, tenha cuidado ao personalizar o código do agente declarativo. Mais informações: Agentes Declarativos para o Microsoft 365 Copilot.
Criar ferramentas personalizadas
Além das ferramentas internas disponíveis no agente declarativo do aplicativo, sua funcionalidade pode ser estendida incorporando ferramentas personalizadas e widgets. Um designer com base no construtor de prompts pode ser usado para integrar ferramentas MCP personalizadas e componentes interativos de IU no agente declarativo do aplicativo. Por exemplo, no aplicativo Zava Airlines, uma ferramenta personalizada pode ser adicionada para exibir o mapa de voo ao lado da linha do tempo de voo como um gráfico de Gantt em uma exibição lado a lado.
Importante
- Se você encontrar a mensagem de erro ao criar uma ferramenta personalizada: "Esse recurso foi desabilitado", indica que a configuração de ambiente de prompts de IA não está habilitada. Para obter mais informações, consulte a configuração do ambiente de prompts de IA.
- Ferramentas personalizadas e UX baseiam-se na extensibilidade do Microsoft 365 Copilot para agentes declarativos. Mais informações: Funcionalidades compatíveis e extensibilidade do Microsoft 365 Copilot
Selecione Criar ferramenta personalizada na seção Ferramentas da guia MCP do Aplicativo .
Forneça um nome e uma descrição claros e descritivos para a ferramenta, pois o Microsoft 365 Copilot usa essas informações para determinar quando invocá-la.
Adicione as instruções para gerar dados para a ferramenta que usa como padrão o formato JSON. Você poderá alterá-lo para texto se a ferramenta não tiver a experiência de usuário associada a ela. As instruções podem incluir consultas para registros específicos da tabela no aplicativo ou pode ser um parâmetro de entrada para a ferramenta a ser usada no encadeamento de ferramentas. Experimente e escolha o modelo de IA de prompt correto.
Criar uma ferramenta personalizada para visualizar dados de voo
Selecione Testar para verificar e validar a saída da ferramenta e, em seguida, selecione Avançar. Agora você pode criar e colar HTML personalizado opcional específico para essa ferramenta. Esse HTML pode ser criado usando a
/generate-mcp-apps-ui skillou sua própria ferramenta de desenvolvimento. Clique em Salvar.
Baixe o zip do pacote do aplicativo atualizado e carregue a versão mais recente para o Microsoft Teams ou agentes do Microsoft 365.
Invoque a ferramenta emitindo a consulta relevante no agente do aplicativo para ver a interface do usuário personalizada em ação.
Note
Você pode executar o comando '-developer on' para o Microsoft 365 Copilot para ver as informações de depuração do agente e as ferramentas invocadas. Para solucionar problemas comuns, consulte Solucionar problemas de aplicativos MCP no Microsoft 365 Copilot
Encadeamento dinâmico de ferramentas
O encadeamento de ferramentas em agentes declarativos do Power Apps usa o orquestrador do Microsoft 365 Copilot para raciocinar sobre a intenção do usuário e invocar dinamicamente várias ações (ferramentas) alimentadas por MCP na sequência para concluir uma tarefa. O Orquestrador seleciona, parametriza e executa a combinação certa de ações de aplicativo MCP com base em descrições de contexto e função, habilitando fluxos de trabalho de ponta a ponta em Power Apps e sistemas empresariais. Veja como criar uma ferramenta com entrada parametrizada.
Selecione Criar ferramenta personalizada na seção Ferramentas da guia MCP do Aplicativo .
Forneça um nome e uma descrição claros e descritivos para a ferramenta, pois o Microsoft 365 Copilot usa essas informações para determinar quando invocá-la.
Neste exemplo, usamos um visualizador de gráfico Sankey. Primeiro, defina o esquema de entrada JSON necessário para gerar um gráfico Sankey. Em seguida, crie um prompt para a ferramenta visualizador de gráfico Sankey. A ferramenta expõe um parâmetro de entrada chamado
SankeyDiagramVisualizationInputData. Esse parâmetro é interpretado pela ferramenta e transformado na estrutura JSON esperada pelo visualizador. Escolha um nome de parâmetro de entrada claro e descritivo para que o LLM possa identificar e invocar a ferramenta corretamente.Agora você pode criar e colar HTML personalizado específico para essa ferramenta. Esse HTML pode ser criado usando a
/generate-mcp-apps-ui skillou sua própria ferramenta de desenvolvimento. Clique em Salvar.Baixe o zip do pacote do aplicativo atualizado e carregue a versão mais recente no Microsoft Teams ou no Microsoft 365 Agents.
O Copilot agora pode usar consultas de linguagem natural para buscar os dados e passá-los para a ferramenta de visualização. Por exemplo, você pode usar uma consulta complexa para obter dinamicamente entradas dos dados da tabela "problemas" e visualizá-las usando a ferramenta Visualizador de Gráfico Sankey.
Você pode refinar ainda mais o gráfico de Sankey continuando a conversa.
Exemplo de tela inteira
Neste exemplo, um botão expandir será renderizado somente se o host der suporte ao modo de tela inteira.
function renderExpandButton(app) {
const ctx = app.getHostContext();
// Don't render the button if the host doesn't support fullscreen
if (!ctx?.availableDisplayModes?.includes('fullscreen')) {
return null;
}
const btn = document.createElement('button');
btn.addEventListener('click', async () => {
const result = await app.requestDisplayMode({ mode: 'fullscreen' });
// Always use result.mode — the host may grant a different mode than requested
console.log('Granted mode:', result.mode);
});
return btn;
}
A mesma proteção se aplica a qualquer capacidade de host. Verifique getHostContext() antes do uso:
const ctx = app.getHostContext();
// Theme
if (ctx?.theme) applyTheme(ctx.theme);
// Current display mode
if (ctx?.displayMode === 'fullscreen') { /* adjust layout */ }
// Available modes
if (ctx?.availableDisplayModes?.includes('inline')) { /* show collapse option */ }
Reaja às alterações de funcionalidade em tempo de execução através de onhostcontextchanged — o contexto do host pode ser atualizado após connect():
app.onhostcontextchanged = (ctx) => {
if (ctx.theme) applyTheme(ctx.theme);
if (ctx.displayMode) updateLayout(ctx.displayMode);
};
Usando o modo de tela inteira com resultados da ferramenta
Um padrão comum é alternar para a tela inteira automaticamente quando o widget recebe dados, dando ao conteúdo mais espaço para renderizar.
app.ontoolresult = async (result) => {
const data = result.structuredContent;
if (!data) return;
// Expand to fullscreen when data arrives, if the host supports it
const ctx = app.getHostContext();
if (ctx?.availableDisplayModes?.includes('fullscreen') && currentMode !== 'fullscreen') {
const granted = await app.requestDisplayMode({ mode: 'fullscreen' });
currentMode = granted.mode;
document.body.classList.toggle('mode-fullscreen', currentMode === 'fullscreen');
}
renderData(data);
};
Você também pode permitir que o usuário decida – renderize primeiro no modo atual e, em seguida, ofereça o botão expandir:
app.ontoolresult = (result) => {
const data = result.structuredContent;
if (!data) return;
renderData(data); // render in whatever mode is active
updateExpandBtn(); // show the expand button now that there is content
};
Artigos relacionados
Gerar widgets de aplicativo MCP com ferramentas de geração de código de IA