Włącz aplikację i narzędzia niestandardowe w Microsoft Copilot

[Ten temat pochodzi ze wstępnej wersji dokumentacji i może ulec zmianie.]

Power Apps w usłudze Microsoft Copilot umożliwia użytkownikom interakcję z aplikacją opartą na modelu bezpośrednio z Copilot. Gdy użytkownik rozmawia z agentem, może zaprezentować dane aplikacji jako interaktywny interfejs użytkownika, siatkę do przeglądania rekordów i formularz do wyświetlania, edytowania lub tworzenia, wszystko bez opuszczania środowiska Copilot. Ponadto możesz dodać niestandardowe narzędzia MCP i interakcyjny interfejs użytkownika do agenta deklaratywnego aplikacji. Ta funkcja jest osiągana za pośrednictwem aplikacji MCP , które jest rozszerzeniem MCP, które umożliwia serwerom MCP dostarczanie interaktywnych interfejsów użytkownika do hostów. Funkcja działa przez wygenerowanie serwera MCP i agenta deklaratywnego z aplikacji.

Ważna

  • Jest to funkcja w wersji zapoznawczej.
  • Funkcje w wersji zapoznawczej nie są przeznaczone do użytku w środowiskach produkcyjnych i mogą mieć ograniczoną funkcjonalność. Te funkcje są udostępniane przed oficjalnym wydaniem, dzięki czemu klienci mogą szybciej uzyskać do nich dostęp i przekazać opinie na ich temat.

Wymagania wstępne

  • Aplikacja oparta na modelu. Obecnie ta funkcja jest dostępna tylko w przypadku aplikacji opartych na modelu.
  • Licencja platformy Microsoft 365 Copilot. Wymagane zarówno dla twórcy wdrażającego agenta, jak i użytkowników końcowych korzystających z niego.
  • Uprawnienie do przesyłania aplikacji niestandardowych w usłudze Microsoft Teams. Może być konieczne włączenie tego ustawienia przez administratora platformy Microsoft 365. Sprawdź ustawienia administratora usługi Teams, jeśli opcja przekazywania nie jest widoczna.

Konfigurowanie usługi Power Apps w aplikacji Copilot

  1. Przejdź do usługi Power Apps, wybierz odpowiednie środowisko, a następnie otwórz żądaną aplikację opartą na modelu.

  2. Wybierz ikonę MCP aplikacji na lewym pasku nawigacyjnym, a następnie wybierz pozycję Skonfiguruj mcp. Ta akcja powoduje skonfigurowanie serwera MCP dla aplikacji, który udostępnia narzędzia MCP do konwersacji Copilot. Jest to jednorazowy krok i może potrwać kilka sekund.

    Konfigurowanie aplikacji MCP dla aplikacji opartej na modelu

  3. Zapisz i opublikuj aplikację.

  4. Wybierz Pobierz pakiet aplikacji, aby pobrać agenta deklaratywnego wygenerowanego przez MCP aplikacji. Ten pakiet zawiera definicję agenta, wbudowane narzędzia dla rekordów i danych wraz z konfiguracją wymaganą do wdrożenia środowiska aplikacji w Microsoft Copilot.

    Przycisk Pobierz pakiet aplikacji z projektanta aplikacji opartej na modelu

  5. Przekaż skompresowany plik o nazwie podobnej do declarative-agent-app name.zip do usługi Microsoft Teams lub agentów platformy Microsoft 365:

Teraz możesz zadawać pytania dotyczące tabel w aplikacji przez tego agenta deklaratywnego. Wbudowane narzędzia mogą wyświetlać interaktywną siatkę zapytań dotyczących zestawów danych.

Przykład wyświetlania lotów zwróconych z agenta deklaratywnego agenta

Ponadto inteligentne formularze mogą służyć do tworzenia, wyświetlania i edytowania rekordów w kontekście Microsoft Copilot.

Przykład tworzenia nowego rekordu z poczty e-mail za pośrednictwem agenta deklaratywnego

Note

Możesz dostosować agenta deklaratywnego zawartego w pakiecie aplikacji według własnego uznania. Aby zmniejszyć możliwość nieoczekiwanego zachowania podczas korzystania z agentów sztucznej inteligencji, należy zachować ostrożność podczas dostosowywania kodu agenta deklaratywnego. Więcej informacji: Deklaratywni agenci dla Microsoft Copilot.

Tworzenie narzędzi niestandardowych

Oprócz wbudowanych narzędzi dostępnych w agencie deklaratywnym aplikacji jego funkcjonalność można rozszerzyć, włączając niestandardowe narzędzia i widżety. Projektant oparty na konstruktorze poleceń może służyć do integrowania niestandardowych narzędzi MCP i interakcyjnych składników interfejsu użytkownika z agentem deklaratywnym aplikacji. Na przykład w aplikacji Zava Airlines można dodać niestandardowe narzędzie, aby wyświetlić mapę lotu wraz z harmonogramem lotu jako wykres Gantta w widoku obok siebie.

Ważna

  1. Wybierz pozycję Utwórz narzędzie niestandardowe w sekcji Narzędzia na karcie App MCP.

  2. Podaj wyraźną, opisową nazwę i opis narzędzia, ponieważ Microsoft Copilot używa tych informacji do określenia, kiedy należy wywołać narzędzie.

  3. Dodaj instrukcje do danych wyjściowych narzędzia, które domyślnie ma format JSON. Możesz zmienić to na tekst, jeśli narzędzie nie ma związanego z nim środowiska użytkownika. Instrukcje mogą zawierać zapytania dotyczące określonych rekordów tabeli w aplikacji lub może być parametrem wejściowym narzędzia do użycia w łańcuchu narzędzi. Pamiętaj, aby poeksperymentować i wybrać odpowiedni model sztucznej inteligencji typu "prompt".

    Tworzenie niestandardowego narzędzia do wyświetlania danych lotu

  4. Wybierz pozycję Testuj , aby sprawdzić i zweryfikować dane wyjściowe narzędzia, a następnie wybierz pozycję Dalej. Teraz możesz utworzyć i wkleić opcjonalny niestandardowy kod HTML specyficzny dla tego narzędzia. Ten kod HTML można utworzyć przy użyciu /generate-mcp-apps-ui skill lub własnego narzędzia programistycznego. Wybierz Zapisz.

    Przykładowe dane wyjściowe JSON przykładowego narzędzia niestandardowego

  5. Pobierz zaktualizowany plik zip pakietu aplikacji i przekaż najnowszą wersję do agentów usługi Microsoft Teams lub Platformy Microsoft 365.

  6. Wywołaj narzędzie, wydając odpowiednie zapytanie w agencie aplikacji, aby zobaczyć niestandardowy interfejs użytkownika w akcji.

    Utworzony niestandardowy interfejs użytkownika przedstawiający czasy lotu

Note

Możesz wydać polecenie „-developer on”, aby Microsoft Copilot wyświetlił informacje debugowania agenta i wywołane narzędzia. Aby rozwiązać typowe problemy, zobacz Rozwiązywanie problemów z aplikacjami MCP w Microsoft Copilot

Dynamiczne łączenie narzędzi

Łańcuch narzędzi w agentach deklaratywnych Power Apps używa orkiestratora Microsoft Copilot do analizowania intencji użytkownika i dynamicznego wywoływania wielu akcji (narzędzi) opartych na MCP w sekwencji w celu ukończenia zadania. Orkiestrator wybiera, parametryzuje i wykonuje właściwą kombinację akcji aplikacji MCP na podstawie kontekstu i opisów funkcji, umożliwiając kompleksowe przepływy pracy w usługach Power Apps i systemach przedsiębiorstwa. Poniżej przedstawiono sposób tworzenia narzędzia z sparametryzowanymi danymi wejściowymi.

  1. Wybierz pozycję Utwórz narzędzie niestandardowe w sekcji Narzędzia na karcie App MCP.

  2. Podaj wyraźną, opisową nazwę i opis narzędzia, ponieważ Microsoft Copilot używa tych informacji do określenia, kiedy należy go wywołać.

  3. W tym przykładzie używamy wizualizatora wykresów Sankey. Najpierw zdefiniuj schemat wejściowy JSON wymagany do wygenerowania wykresu Sankey. Następnie utwórz polecenie dla narzędzia do wizualizacji wykresów Sankey. Narzędzie uwidacznia parametr wejściowy o nazwie SankeyDiagramVisualizationInputData. Ten parametr jest interpretowany przez narzędzie i przekształcany w strukturę JSON oczekiwaną przez wizualizator. Wybierz wyraźną i opisową nazwę parametru wejściowego, aby program LLM mógł poprawnie zidentyfikować i wywołać narzędzie.

    Narzędzie niestandardowe z łańcuchem narzędzi

  4. Teraz możesz utworzyć i wkleić niestandardowy kod HTML specyficzny dla tego narzędzia. Ten kod HTML można utworzyć przy użyciu /generate-mcp-apps-ui skill lub własnego narzędzia programistycznego. Wybierz Zapisz.

  5. Pobierz zaktualizowany plik zip pakietu aplikacji i przekaż najnowszą wersję do usługi Microsoft Teams lub Agentów platformy Microsoft 365.

  6. Copilot może teraz używać zapytań języka naturalnego do pobierania danych i przekazywania ich do narzędzia do wizualizacji. Na przykład można użyć złożonego zapytania, aby dynamicznie pobierać dane wejściowe z danych tabeli "problemy" i wizualizować je przy użyciu narzędzia Sankey Chart Visualizer.

    Wizualizator wykresu Sankey wyświetlający dane tabeli problemów.

  7. Możesz dodatkowo uściślić wykres Sankey, kontynuując konwersację.

    Wizualizator wykresów Sankey wyświetlający dodatkowe informacje z konwersacji.

Przykład przedstawiający pełny ekran

W tym przykładzie przycisk rozwijania jest renderowany tylko wtedy, gdy host obsługuje tryb pełnoekranowy.

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;
}

Ta sama ochrona ma zastosowanie do dowolnej możliwości hosta. Sprawdź getHostContext() przed użyciem:

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 */ }

Reagowanie na zmiany możliwości w czasie wykonywania za pośrednictwem onhostcontextchanged — kontekst hosta może aktualizować się po connect():

app.onhostcontextchanged = (ctx) => {
  if (ctx.theme) applyTheme(ctx.theme);
  if (ctx.displayMode) updateLayout(ctx.displayMode);
};

Korzystanie z trybu pełnoekranowego z wynikami narzędzia

Typowy wzorzec polega na automatycznym przełączeniu się na pełny ekran po odebraniu danych przez widżet, co daje więcej miejsca na renderowanie zawartości.

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);
};

Pozwól również użytkownikowi zadecydować — najpierw renderuj w aktualnym trybie, a następnie zaproponuj przycisk rozszerz.

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
};

Generowanie widżetów aplikacji MCP za pomocą narzędzi do generowania kodu sztucznej inteligencji

Często zadawane pytania dotyczące usługi Power Apps w agentach