Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
[Este tópico é documentação de pré-lançamento e está sujeito a alterações.]
O Power Apps no Microsoft 365 Copilot permite aos utilizadores interagir diretamente com a sua aplicação orientada a modelos a partir do Copilot. Quando um utilizador fala com o agente, pode mostrar os dados da sua aplicação como uma interface interativa, uma grelha para navegação de registos ou um formulário para visualizar, editar ou criá-los, tudo isto sem sair da experiência Copilot. Além disso, pode adicionar ferramentas MCP personalizadas e uma interface interativa ao agente declarativo da aplicação. Esta funcionalidade é alcançada através de aplicações MCP , que são uma extensão do MCP que permite aos servidores MCP fornecer interfaces de utilizador interativas aos hosts. A funcionalidade funciona gerando um servidor MCP e um agente declarativo a partir da tua aplicação.
Importante
- Esta é uma funcionalidade de pré-visualização.
- As funcionalidades de pré-visualização não se destinam a uso em produção e poderão ter funcionalidades restritas. Esses recursos estão disponíveis antes de um lançamento oficial para que os clientes possam obter acesso antecipado e fornecer feedback.
Pré-requisitos
- Uma aplicação orientada a modelos. Atualmente, esta funcionalidade está disponível apenas com aplicações orientadas a modelos.
- Licença Microsoft 365 Copilot. É necessário tanto para o criador que implementa o agente como para os utilizadores finais que interagem com ele.
- Permissão para carregar aplicações personalizadas no Microsoft Teams. O administrador do Microsoft 365 pode precisar de ativar isto. Verifica as definições de administrador do Teams se a opção de upload não estiver visível.
Configurar Power Apps no Copilot
Vai ao Power Apps, seleciona o ambiente que queres e depois abre a aplicação orientada ao modelo desejada.
Seleciona o ícone App MCP na barra de navegação da esquerda e depois seleciona Configurar MCP. Esta ação configura o servidor MCP para a aplicação, que fornece ferramentas MCP para conversas no Copilot. Este é um passo único e pode demorar alguns segundos a completar.
Guarde e Publique a aplicação.
Selecione Download pacote de aplicação para descarregar o agente declarativo gerado pelo MCP da sua aplicação. Este pacote contém a definição do agente, ferramentas integradas para registo e dados, bem como a configuração necessária para implementar a experiência da sua aplicação no Microsoft 365 Copilot.
Carregue o ficheiro comprimido que tem um nome semelhante a declarative-agent-app name.zip para Agentes do Microsoft Teams ou do Microsoft 365:
- Teams: carregar para utilização pessoal como uma aplicação personalizada no Teams. Mais informações Carregue a sua aplicação no Teams
- Agentes Microsoft 365: Publique o pacote para uma equipa ou grupo a partir do centro de administração do Microsoft 365. Mais informações: Agentes de publicação
Agora pode colocar questões sobre as tabelas na aplicação através deste agente declarativo. As ferramentas integradas podem mostrar uma grelha interativa para as consultas ao conjunto de dados.
Exemplo de visualização de voos retornados pelo agente declarativo
Adicionalmente, formulários inteligentes podem ser usados para criar, visualizar e editar registos dentro do contexto do Microsoft 365 Copilot.
Note
Pode personalizar o agente declarativo incluído no pacote da aplicação a seu critério. Para reduzir a possibilidade de comportamentos inesperados ao usar agentes de IA, tenha cautela ao personalizar o código declarativo do agente. Mais informações: Agentes Declarativos para Microsoft 365 Copilot.
Criar ferramentas personalizadas
Para além das ferramentas integradas disponíveis no agente declarativo da aplicação, a sua funcionalidade pode ser alargada incorporando ferramentas e widgets personalizados. Um designer baseado em criador de prompts pode ser usado para integrar ferramentas MCP personalizadas e componentes interativos de interface no agente declarativo da aplicação. Por exemplo, na aplicação Zava Airlines, pode ser adicionada uma ferramenta personalizada para mostrar o mapa de voo juntamente com a linha temporal do voo como um mapa de Gantt numa vista lado a lado.
Importante
- Se encontrar a mensagem de erro ao criar uma ferramenta personalizada: "Esta funcionalidade foi desativada", indica que a configuração de ambiente que indica a IA não está ativada. Para mais informações, consulte a configuração de ambiente dos prompts de IA.
- Ferramentas personalizadas e UX baseiam-se na extensibilidade do Microsoft 365 Copilot para agentes declarativos. Mais informações: Extensibilidade e Capacidades Suportadas no Microsoft 365 Copilot
Selecione Criar ferramenta personalizada na secção Ferramentas do separador App MCP .
Forneça um nome claro e uma descrição descritiva para a ferramenta, pois o Microsoft 365 Copilot utiliza estas informações para determinar quando a invocar.
Adicione as instruções para a saída de dados da ferramenta, cujo formato por defeito é JSON. Pode alterá-lo para texto se a ferramenta não tiver uma experiência de utilizador associada. As instruções podem incluir consultas a registos específicos da tabela na aplicação ou podem ser um parâmetro de entrada da ferramenta a ser utilizado no encadeamento de ferramentas. Assegure-se de que experimenta e escolhe o modelo de IA de pedidos adequado.
Selecione Testar para verificar e validar a saída da ferramenta e depois selecione Próximo. Agora pode criar e colar HTML personalizado opcional específico para esta ferramenta. Este HTML pode ser criado usando a
/generate-mcp-apps-ui skillou a sua própria ferramenta de desenvolvimento. Selecione Guardar.
Descarregue o pacote da aplicação atualizado em zip e carregue a versão mais recente para o Microsoft Teams ou para os agentes do Microsoft 365.
Invoca a ferramenta emitindo a consulta relevante no agente da aplicação para veres a interface personalizada em ação.
Note
Pode emitir o comando '-developer on' para o Microsoft 365 Copilot para ver a informação de depuração dos agentes e as ferramentas invocadas. Para resolver problemas comuns, consulte Resolução de problemas das aplicações MCP no Microsoft 365 Copilot
Encadeamento dinâmico de ferramentas
O encadeamento de ferramentas nos agentes declarativos Power Apps utiliza o orquestrador Microsoft 365 Copilot para ponderar a intenção do utilizador e invocar dinamicamente múltiplas ações (ferramentas) alimentadas por MCP em sequência para completar uma tarefa. O orquestrador seleciona, parametriza e executa a combinação certa de ações da aplicação MCP com base no contexto e nas descrições de funções, permitindo fluxos de trabalho de ponta a ponta entre Power Apps e sistemas empresariais. Aqui está como criar uma ferramenta com entrada parametrizada.
Selecione Criar ferramenta personalizada na secção Ferramentas do separador App MCP .
Forneça um nome claro e uma descrição descritiva para a ferramenta, pois o Microsoft 365 Copilot utiliza estas informações para determinar quando a invocar.
Neste exemplo, usamos um visualizador de diagramas de Sankey. Primeiro, defina o esquema de entrada JSON necessário para gerar um diagrama de Sankey. De seguida, cria um prompt para a ferramenta visualizadora de gráficos de Sankey. A ferramenta expõe um parâmetro de entrada chamado
SankeyDiagramVisualizationInputData. Este parâmetro é interpretado pela ferramenta e transformado na estrutura JSON esperada pelo visualizador. Escolha um nome claro e descritivo do parâmetro de entrada para que o LLM possa identificar e invocar corretamente a ferramenta.Agora pode criar e colar HTML personalizado específico para esta ferramenta. Este HTML pode ser criado usando a
/generate-mcp-apps-ui skillou a sua própria ferramenta de desenvolvimento. Selecione Guardar.Descarregue o pacote de aplicação atualizado em zip e carregue a versão mais recente para o Microsoft Teams ou Microsoft 365 Agents.
O Copilot pode agora usar consultas em linguagem natural para obter os dados e passá-los para a ferramenta para visualização. Por exemplo, pode usar uma consulta complexa para obter dinamicamente entradas dos dados da tabela 'issues' e visualizá-las usando a ferramenta Sankey Chart Visualizer.
Pode refinar ainda mais o gráfico de Sankey continuando a conversa.
Exemplo em ecrã completo
Neste exemplo, um botão expandir é renderizado apenas se o host suportar o modo de ecrã completo.
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 aplica-se a qualquer capacidade do hospedeiro. Verifique getHostContext() antes de usar:
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 */ }
Reagir às alterações de capacidades 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);
};
Uso do modo de ecrã completo com resultados de ferramentas
Um padrão comum é mudar automaticamente para ecrã completo 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);
};
Também pode deixar o utilizador decidir — renderizar primeiro para o modo atual e depois oferecer 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 aplicação MCP com ferramentas de geração de código por IA