用代理程式自訂 Microsoft 365 Copilot

Power Apps 中的 Microsoft Copilot 讓使用者能與自訂代理人互動,擴展 Copilot 的功能。 透過客製化客服人員,您可以打造符合組織業務流程與數據的量身打造體驗。 欲了解更多資訊,請參閱在 Microsoft Copilot 中使用代理程式。

本文說明你可以在 Power Apps 中為 Microsoft Copilot 建立的代理類型,並協助你選擇最適合你情境的方法。

選擇代理人類型

下表比較了你可以建立的代理類型。

代理人類型 描述 常見使用案例
宣告式代理程式 使用低程式碼工具與範本構建,方便快速設定 Microsoft Copilot 常見情境。 自動化例行任務、回答常見問題,並提供引導式工作流程。
自訂引擎代理程式 採用客製化邏輯與整合,提供針對您業務量身打造的先進功能。 複雜的業務流程、客製化資料整合與專業自動化。
Copilot Studio 經紀人 系統由 Microsoft Copilot Studio 建置與管理,並整合至 Teams 與 Microsoft 365,提供對話式體驗。 互動式聊天機器人、團隊協作,以及 Microsoft 365 應用程式內的個人化支援。

為了找到最適合你組織的方案,請使用以下資源:

為模型驅動應用程式建立宣告式代理的一種方法是直接在應用程式中啟用 Microsoft 365 Copilot。 欲了解更多資訊,請參閱啟用您的 Microsoft 365 Copilot 應用程式。

你可以在 Power Apps 中建立專屬的應用程式代理模式,將預設代理與 Xrm.Copilot.* API 結合。 預設代理定義了為使用者開啟的量身打造的 Microsoft 365 Copilot 體驗,而 API 則建立應用程式與 Microsoft 365 Copilot 之間的雙向連結。

設定預設代理

如果您建置自訂代理程式,作為模型驅動應用程式的配套代理程式,您可以將其設為預設代理程式,如此一來,當應用程式和 Microsoft 365 Copilot 側邊窗格開啟時,系統便會自動載入該代理程式。 這會讓你的代理程式成為整體體驗的起點,也是打造你自己的代理程式模式的第一步。

當你設定預設代理人時:

  • 你的代理人會被選中,使用者不會有任何操作。
  • 用戶會直接進入你為應用程式設計的客製化體驗。
  • Microsoft 365 Copilot 一開放,應用程式專屬的工作流程與指引即可準備好。

預設代理對於以情境為導向的代理特別有用,這些代理能延伸應用程式的核心體驗,並作為你希望使用者擁有的 Microsoft 365 Copilot 應用程式專屬體驗的前門。

這張截圖顯示如何在你的模型驅動應用程式中設定 Microsoft 365 Copilot 的預設代理。

Xrm.Copilot API

Xrm.Copilot.*客戶端 API 讓開發者能直接將 Microsoft 365 Copilot 整合進模型驅動的應用程式體驗中。 透過這些 API,您的應用程式可以直接與 Microsoft 365 Copilot 側窗互動,並回應 Microsoft 365 Copilot 驅動的動作,從而創造更豐富、端對端的代理情境。

當你使用這些 API 搭配預設代理時,它們完成代理模式:你的代理程式是起點,應用程式可以向 Microsoft 365 Copilot 發送提示和上下文,而 Microsoft 365 Copilot 則能在應用程式內調用動作。

完整 API 表面,請參閱模型驅動應用程式中的 Xrm.Copilot(用戶端 API 參考)。

這些 API 讓你能:

  • 將提示發送至 Microsoft 365 Copilot。 用sendPromptToM365Copilot來從你的應用程式啟動 Microsoft 365 Copilot 互動。
  • 打開並控制 Microsoft 365 Copilot 側邊的面板。 用openM365CopilotPanel來確保 Microsoft 365 Copilot 窗格在需要時是可見的。
  • 將應用程式上下文傳給 Microsoft 365 Copilot。 使用 updateContext (預覽版) 從您的應用程式發送額外的資料錨定訊號。
  • 與經紀人合作。 使用 getCurrentAgent 來檢查目前啟用中的是哪個代理程式。
  • 在你的應用程式中處理 Microsoft 365 Copilot 的操作。 使用 addActionHandler 註冊自訂處理常式,以處理從 Microsoft 365 Copilot 回應傳送的動作。

這些 API 共同創造了應用程式介面與代理之間的真正雙向體驗,讓代理能推動 UI 更新、觸發工作流程或執行自訂商業邏輯。

使用 addActionHandler 處理 Microsoft 365 Copilot 的動作

當你的應用程式需要處理 Microsoft 365 Copilot 發出的結構化動作時,請使用 addActionHandler API。

當您建置動作承載時:

  • 設定type為 PowerApps 來鎖定 Power Apps 主機。
  • 將 action(例如 MyNamespace.MyMessage)設為你在 addActionHandler 中註冊的 actionId。
  • 使用 actionData 作為您的程式碼處理並傳遞給 Power Apps 主機的承載資料。

以下章節展示了兩種支援的情境。

調適型卡片

Microsoft 365 Copilot 的回應可包含帶有 Action.Submit 按鈕的自適性卡片,這些按鈕會將動作訊息傳送至 Power Apps 主機。

範例:

{
  "type": "AdaptiveCard",
  "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.5",
  "body": [
    {
      "type": "TextBlock",
      "text": "Click Go and I will send data to the host to process.",
      "wrap": true,
      "id": "txtSendMessage"
    },
    {
      "type": "ActionSet",
      "actions": [
        {
          "type": "Action.Submit",
          "title": "Go",
          "id": "btnGo",
          "data": {
            "type": "PowerApps",
            "action": "MyNamespace.MyMessage",
            "actionData": {
              "foo": "bar"
            }
          }
        }
      ]
    }
  ]
}

MCP 應用程式

Microsoft 365 Copilot 的回應可能包含會將動作訊息傳送至 Power Apps 主機的 HTML。

範例:

<Button
  appearance="outline"
  icon={<ArrowLeft24Regular />}
  onClick={() => {
    try {
      const message = {
        eventName: 'powerapps.copilot.chat.action',
        action: 'MyNamespace.MyMessage',
        actionData: {
          foo: 'bar'
        },
      };
      window.parent.parent.postMessage(message, '*');
    } catch (error) {
      // eslint-disable-next-line no-console
      console.error('Error posting HOST_ACTION message to parent window:', error);
    }
  }}
>
  Test
</Button>

Limitations

  • 你所撰寫的代理目前還無法利用應用程式內的使用者情境來調整他們的回應。
  • 設定預設代理時,代理的起始提示不會被渲染。