Aktivere appen og egendefinerte verktøy i Microsoft 365 Copilot

[Dette emnet inneholder dokumentasjon for forhåndsversjonen, og kan bli endret.]

Power Apps i Microsoft 365 Copilot lar brukere samhandle med den modelldrevne appen direkte fra Copilot. Når en bruker snakker med agenten, kan den vise appens data som interaktive brukergrensesnitt, et rutenett for å bla gjennom poster eller et skjema for visning, redigering eller oppretting av dem, uten å forlate Copilot-opplevelsen. I tillegg kan du legge til egendefinerte MCP-verktøy og interaktivt brukergrensesnitt i appens deklarative agent. Denne funksjonaliteten oppnås via MCP-apper som er en utvidelse til MCP som gjør det mulig for MCP-servere å levere interaktive brukergrensesnitt til verter. Funksjonen fungerer ved å generere en MCP-server og deklarativ agent fra appen.

Important

  • Dette er en forhåndsvisningsfunksjon.
  • Forhåndsversjonsfunksjonene er ikke ment for produksjonsbruk og kan ha begrenset funksjonalitet. Disse funksjonene er tilgjengelige før en offisiell utgivelse, slik at kunder kan få tidlig tilgang og gi tilbakemeldinger.

Forutsetninger

  • En modelldrevet app. Denne funksjonen er for øyeblikket bare tilgjengelig med modelldrevne apper.
  • Microsoft 365 Copilot-lisens. Obligatorisk for at både oppretteren distribuerer agenten og sluttbrukerne som samhandler med den.
  • Tillatelse til å laste opp egendefinerte apper i Microsoft Teams. Microsoft 365-administratoren må kanskje aktivere dette. Kontroller administratorinnstillingene for Teams hvis opplastingsalternativet ikke er synlig.

Konfigurere Power Apps i Copilot

  1. Gå til Power Apps, velg miljøet du vil bruke, og åpne deretter den ønskede modelldrevne appen.

  2. Velg App MCP-ikonet i venstre navigasjonsfelt, og velg deretter Konfigurer MCP. Denne handlingen konfigurerer MCP-serveren for appen, som inneholder MCP-verktøy for Copilot-samtaler. Dette er et engangstrinn og kan ta noen sekunder å fullføre.

    Konfigurer app-MCP for modelldrevet app

  3. Lagre og Publiser appen.

  4. Velg Last ned app-pakken for å laste ned deklarativ agent generert av appens MCP. Denne pakken inneholder agentdefinisjonen, innebygde verktøy for post og data sammen med konfigurasjonen som kreves for å distribuere appens opplevelse til Microsoft 365 copilot.

    Knappen Last ned apppakke fra den modelldrevne apputformingen

  5. Last opp den komprimerte filen som er navngitt omtrent som declarative-agent-app name.zip i Microsoft Teams eller Microsoft 365-agenter:

    • Teams: Last opp for personlig bruk som en egendefinert app i Teams. Mer informasjon Last opp appen i Teams
    • Microsoft 365 Agents: Publiser pakken for et team eller en gruppe fra administrasjonssenteret for Microsoft 365. Mer informasjon: Publiseringsagenter

Nå kan du stille spørsmål om tabellene i appen fra denne deklarative agenten. Innebygde verktøy kan vise et interaktivt rutenett for datasettspørringene.

Eksempel på visning av flyreiser som returneres fra den deklartive agenten

Intelligente skjemaer kan i tillegg brukes til å opprette, vise og redigere poster i Microsoft 365 Copilot-konteksten.

Eksempel på oppretting av en ny post fra e-post via deklarativ agent

Bemerkning

Du kan tilpasse den deklarative agenten som er inkludert i apppakken etter eget skjønn. Hvis du vil redusere muligheten for uventet atferd når du bruker AI-agenter, må du være forsiktig når du tilpasser deklarativ agentkode. Mer informasjon: Deklarative agenter for Microsoft 365 Copilot.

Opprett egendefinerte verktøy

I tillegg til de innebygde verktøyene som er tilgjengelige i appens deklarative agent, kan funksjonaliteten utvides ved å innlemme egendefinerte verktøy og kontrollprogrammer. En ledeverktøybasert designer kan brukes til å integrere egendefinerte MCP-verktøy og interaktive grensesnittkomponenter i appens deklarative agent. Et egendefinert verktøy kan for eksempel legges til i Zava Airlines-appen for å vise flykartet ved siden av flytidslinjen som et Gantt-diagram i en side-ved-side-visning.

Important

  1. Velg Opprett egendefinert verktøy under Verktøy-delen av App MCP-fanen .

  2. Angi et klart, beskrivende navn og en beskrivelse for verktøyet, da Microsoft 365 Copilot bruker denne informasjonen til å avgjøre når det skal aktiveres.

  3. Legg til instruksjonene for utdata for verktøyet som standard i JSON-format. Du kan endre den til tekst hvis verktøyet ikke er tilknyttet UX. Instruksjoner kan omfatte spørringer for bestemte poster i tabellen i appen, eller det kan være en inndataparameter for verktøyet som skal brukes i verktøykjedering. Pass på å eksperimentere og velge den riktige ledetekstmodellen for kunstig intelligens.

    Opprette et egendefinert verktøy for å vise flydata

  4. Velg Test for å kontrollere og validere verktøyets utdata, og velg deretter Neste. Nå kan du opprette og lime inn valgfri egendefinert HTML som er spesifikk for dette verktøyet. Denne HTML-koden kan opprettes ved hjelp av /generate-mcp-apps-ui skill eller ditt eget utviklingsverktøy. Velg Lagre.

    Eksempel på utdata for egendefinert verktøy JSON

  5. Last ned den oppdaterte apppakken zip og last opp den nyeste versjonen til Microsoft Teams eller Microsoft 365-agenter.

  6. Aktiver verktøyet ved å utstede den relevante spørringen i appagenten for å se det egendefinerte brukergrensesnittet i aksjon.

    Egendefinert brukergrensesnitt opprettet som viser flytider

Bemerkning

Du kan utstede kommandoen Utvikler på til Microsoft 365 Copilot for å se feilsøkingsinformasjon for agent og verktøy aktivert. Hvis du vil feilsøke vanlige problemer, kan du se Troubleshoot MCP-apper i Microsoft 365 Copilot

Dynamisk verktøykjedering

Verktøykjedering i Power Apps-deklarative agenter bruker Microsoft 365 Copilot Orchestrator til å resonnere over brukerintensjon og dynamisk aktivere flere MCP-drevne handlinger (verktøy) i rekkefølge for å fullføre en oppgave. Orchestratoren velger, parameteriserer og utfører den riktige kombinasjonen av MCP-apphandlinger basert på kontekst- og funksjonsbeskrivelser, slik at du kan aktivere ende-til-ende-arbeidsflyter på tvers av Power Apps og bedriftssystemer. Slik oppretter du et verktøy med parameteriserte inndata.

  1. Velg Opprett egendefinert verktøy under Verktøy-delen av App MCP-fanen .

  2. Angi et klart, beskrivende navn og en beskrivelse for verktøyet, da Microsoft 365 Copilot bruker denne informasjonen til å avgjøre når det skal aktiveres.

  3. I dette eksemplet bruker vi en Sankey-diagramvisualiserer. Først definerer du JSON-inndataskjemaet som kreves for å generere et Sankey-diagram. Deretter oppretter du en ledetekst for sankeydiagramvisualisererverktøyet. Verktøyet viser en inndataparameter med navnet SankeyDiagramVisualizationInputData. Denne parameteren tolkes av verktøyet og transformeres til JSON-strukturen som forventes av visualisereren. Velg et klart og beskrivende inndataparameternavn, slik at LLM kan identifisere og aktivere verktøyet på riktig måte.

    Egendefinert verktøy med verktøykjedering

  4. Nå kan du opprette og lime inn egendefinert HTML-kode som er spesifikk for dette verktøyet. Denne HTML-koden kan opprettes ved hjelp av /generate-mcp-apps-ui skill eller ditt eget utviklingsverktøy. Velg Lagre.

  5. Last ned den oppdaterte apppakken zip og last opp den nyeste versjonen til Microsoft Teams eller Microsoft 365 Agents.

  6. Copilot kan nå bruke naturlige språkspørringer til å hente dataene og sende dem til verktøyet for visualisering. Du kan for eksempel bruke en kompleks spørring til dynamisk å hente inndata fra tabelldataene for problemer og visualisere dem ved hjelp av sankeydiagramvisualisererverktøyet.

    Sankey diagramvisualiserer som viser problemer med tabelldata.

  7. Du kan forbedre Sankey-diagrammet ytterligere ved å fortsette samtalen.

    Sankey-diagramvisualiserer som viser tilleggsinformasjon fra samtalen.

Eksempel på fullskjerm

I dette eksemplet gjengis en utvidelsesknapp bare hvis verten støtter fullskjermmodus.

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

Den samme sikkerhetsmekanismen gjelder for enhver vertskapabilitet. Kontroller getHostContext() før bruk:

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

Reagere på funksjonsendringer ved kjøring via onhostcontextchanged – vertskonteksten kan oppdateres etter connect():

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

Bruke fullskjermmodus med verktøyresultater

Et vanlig mønster er å bytte til fullskjerm automatisk når kontrollprogrammet mottar data, noe som gir innholdet mer plass å gjengi.

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

Du kan også la brukeren bestemme – gjengis til gjeldende modus først, og deretter tilby utvid-knappen:

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

Generer kontrollprogrammer for MCP-apper med verktøy for generering av AI-kode

Vanlige spørsmål om Power Apps i agenter