共用方式為


使用 Microsoft Agent 365 SDK 的測試代理

重要

你需要參加 Frontier 預覽計畫 ,才能搶 先取得 Microsoft Agent 365 的使用權。 Frontier 直接連結你與 Microsoft 最新的 AI 創新。 Frontier 預覽受限於您現有的客戶協議預覽條款。 由於這些功能仍在開發中,其可用性與功能可能會隨時間改變。

在 Agents 遊樂場中透過本機方式測試您的 Agent 本指南涵蓋如何設定開發環境、設定認證,以及使用 Agents Playground 測試工具驗證代理程式的功能。

一旦代理程式在本地運作,你可以 部署並發布 ,讓它在 Microsoft 365 應用程式如 Teams 中進行測試。

先決條件

在開始之前,請先確定您具備下列必要條件:

Python 必要條件

語言特定的先修條件

  • Python 3.11+可從 python.org 或 Microsoft 商店下載
  • uv 套件管理器使用 uv 安裝 pip install uv
  • 確認安裝:

配置代理測試環境

本節涵蓋設定環境變數、驗證開發環境,以及準備 Agent 365 驅動的代理進行測試。

設定您的代理測試環境遵循序列式工作流程:

  1. 設定您的環境 - 建立或更新您的環境設定檔

  2. LLM 設定 - 取得 API 金鑰並設定 OpenAI 或 Azure OpenAI 設定

  3. 設定認證 - 設定代理認證

  4. 環境變數參考 - 設定所需的環境變數:

    1. 驗證變數
    2. 端點設定
    3. 可觀察變數
    4. 代理應用程式伺服器設定

完成這些步驟後,你就可以開始在 Agents Playground 測試你的代理人了。

步驟 1:設定環境

設定組態檔

cp .env.template .env

注意

請參閱 Microsoft Agent 365 SDK 範例 ,以找到顯示必要欄位的設定範本。

步驟 2:組態

為本地測試設定 OpenAI 或 Azure OpenAI 設定。 將從前置條件取得的 API 金鑰和服務端點,連同模型參數一起加入你的設定檔。

將 新增至您的 檔案:

# Replace with your actual OpenAI API key
OPENAI_API_KEY=

# Azure OpenAI Configuration
AZURE_OPENAI_API_KEY=
AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_DEPLOYMENT=
AZURE_OPENAI_API_VERSION=

Python LLM 環境變數

變數 Description 必要 範例
OPENAI_API_KEY OpenAI 服務的 API 金鑰 針對 OpenAI: sk-proj-...
AZURE_OPENAI_API_KEY Azure OpenAI 服務 API 金鑰 針對 Azure OpenAI: a1b2c3d4e5f6...
AZURE_OPENAI_ENDPOINT Azure OpenAI 服務端點 針對 Azure OpenAI: https://your-resource.openai.azure.com/
AZURE_OPENAI_DEPLOYMENT :Azure OpenAI 部署名稱 針對 Azure OpenAI: gpt-4
AZURE_OPENAI_API_VERSION API version for Azure OpenAI 針對 Azure OpenAI: 2024-02-15-preview

步驟 3:設定代理身份驗證的認證值

使用 A365 CLI a365 config display 指令來取得你的代理藍圖憑證。

a365 config display -g

此指令顯示您的代理藍圖設定。 設定下列值:

Value Description
agentBlueprintId 你經紀人的客戶編號
agentBlueprintClientSecret 你經紀人的客戶秘密
tenantId 您的 Microsoft Entra 租用戶識別碼

使用這些值來配置代理中的代理認證:

將以下設定加入你的 .env 檔案,將佔位符值替換成你的真實憑證:

USE_AGENTIC_AUTH=true
CONNECTIONS__SERVICE_CONNECTION__SETTINGS__CLIENTID=<agentBlueprintId>
CONNECTIONS__SERVICE_CONNECTION__SETTINGS__CLIENTSECRET=<agentBlueprintClientSecret>
CONNECTIONS__SERVICE_CONNECTION__SETTINGS__TENANTID=<your-tenant-id>
變數 Description 必要 範例
USE_AGENTIC_AUTH 啟用代理認證模式 true
CONNECTIONS__SERVICE_CONNECTION__SETTINGS__CLIENTID 代理人藍圖客戶 ID 來自 a365 config display -g 12345678-1234-1234-1234-123456789abc
CONNECTIONS__SERVICE_CONNECTION__SETTINGS__CLIENTSECRET 代理藍圖客戶端秘密來自 a365 config display -g abc~123...
CONNECTIONS__SERVICE_CONNECTION__SETTINGS__TENANTID Microsoft Entra 租用戶識別碼 adfa4542-3e1e-46f5-9c70-3df0b15b3f6c

注意

對於 .NET,也 USE_AGENTIC_AUTH=true 確保在 中設定 launchSettings.json (見 步驟 4:環境變數參考

步驟 2:環境變數

透過配置以下必要的環境變數完成您的環境設定:

驗證變數

設定代理認證所需的認證處理程式設定,以確保代理認證正常運作。

將 新增至您的 檔案:

# Agentic Authentication Settings
AGENTAPPLICATION__USERAUTHORIZATION__HANDLERS__AGENTIC__SETTINGS__TYPE=AgenticUserAuthorization
AGENTAPPLICATION__USERAUTHORIZATION__HANDLERS__AGENTIC__SETTINGS__SCOPES=https://graph.microsoft.com/.default
AGENTAPPLICATION__USERAUTHORIZATION__HANDLERS__AGENTIC__SETTINGS__ALTERNATEBLUEPRINTCONNECTIONNAME=service_connection

# Connection Mapping
CONNECTIONSMAP_0_SERVICEURL=*
CONNECTIONSMAP_0_CONNECTION=SERVICE_CONNECTION
變數 Description 必要
AGENTAPPLICATION__USERAUTHORIZATION__HANDLERS__AGENTIC__SETTINGS__TYPE 驗證處理常式
AGENTAPPLICATION__USERAUTHORIZATION__HANDLERS__AGENTIC__SETTINGS__SCOPES Microsoft Graph 的認證範圍
AGENTAPPLICATION__USERAUTHORIZATION__HANDLERS__AGENTIC__SETTINGS__ALTERNATEBLUEPRINTCONNECTIONNAME 替代藍圖連接名稱
CONNECTIONSMAP_0_SERVICEURL 連線映射的服務 URL 模式
CONNECTIONSMAP_0_CONNECTION 映射的連接名稱

IIS 端點設定

MCP(模型情境協定)端點設定是為了指定您的代理應該連接到哪個 Agent 365 平台端點。 當你產生定義代理工具伺服器的工具清單時,必須指定 MCP 平台端點。 此端點決定 MCP 工具伺服器連接的環境(預生產、測試或生產環境),以實現 Microsoft 365 整合能力。

將 新增至您的 檔案:

# MCP Server Configuration
MCP_PLATFORM_ENDPOINT=<MCP endpoint>
變數 Description 必要 預設 範例
MCP_PLATFORM_ENDPOINT MCP 平台端點網址(預製、測試或正式生產) 針對生產端點:

重要提示:若 MCP_PLATFORM_ENDPOINT 未指定,則預設為生產端點。

可觀察變數

設定這些必要變數,以啟用你的代理程式日誌與分散式追蹤功能。 了解更多關於可觀察性特徵與最佳實務的資訊

注意

所有語言的可觀察性配置都是相同的。

變數 Description Default 範例
ENABLE_A365_OBSERVABILITY 啟用/停用可觀察性 false true
ENABLE_A365_OBSERVABILITY_EXPORTER 匯出追蹤至可觀察性服務 false true
OBSERVABILITY_SERVICE_NAME 追蹤服務名稱 專員名稱 my-agent-service
OBSERVABILITY_SERVICE_NAMESPACE 服務命名空間。 agent365-samples my-company-agents

代理應用程式伺服器設定

設定你的代理應用程式伺服器執行的埠口。 這是可選的,適用於 Python 和 JavaScript 代理程式。

將 新增至您的 檔案:

# Server Configuration
PORT=3978
變數 Description 必要 預設 範例
PORT 代理伺服器運行的埠號 3978 3978

安裝相依並啟動代理應用程式伺服器

環境設定完成後,你需要安裝所需的相依性,並在本地啟動代理應用程式伺服器進行測試。

安裝相依性

uv pip install -e .

此指令讀取 PyPI pyproject.toml 中定義的套件相依關係,並安裝它們。 從零開始建立代理應用程式時,你需要建立 pyproject.toml 一個檔案來定義你的相依關係。 樣本庫中的樣本代理已經定義了這些套件。 你可以根據需要新增或更新它們。

啟動應用程式伺服器

python <main.py>

將你的主要 Python 檔案名稱替換<main.py>為包含代理應用程式入口點的名稱(例如 start_with_generic_host.py、 、 app.pymain.py或 )。

或者用紫外線:

uv run python <main.py>

您的代理伺服器現在應該已經運行中,並準備好接收來自代理 Playground 或 Microsoft 365 應用程式的請求。

在代理程式遊樂場中測試您的代理程式。

Agents Playground 是一款本地測試工具,能模擬 Microsoft 365 環境,且不需完整的租戶設定。 這是驗證代理邏輯和工具調用最快的方法。 欲了解更多資訊,請參閱 「與代理人測試遊樂場」。

開啟一個新終端機(Windows 上的 PowerShell)並啟動 Agents Playground:

agentsplayground

這會開啟一個帶有 Agents Playground 介面的網頁瀏覽器。 該工具會顯示一個聊天介面,你可以在那裡向你的經紀人發送訊息。

基本測試

首先確認你的代理人是否正確設定。 將訊息傳送至佇列

What can you do?

客服應該根據你的系統提示和功能回覆設定中的指令。 確認 為

  • 你的代理人運作正常
  • 代理可以處理訊息並回應
  • Agents Playground 與您的代理人之間的通訊正常運作

測試工具調用

在配置 MCP 工具伺服器 toolingManifest.json (請參見 Tooling 以取得設定說明)後,並用以下範例測試工具調用:

首先,確認有哪些工具可用:

List all tools I have access to

接著測試特定工具的調用:

郵件工具

Send email to your-email@example.com with subject "Test" and message "Hello from my agent"

預期回應:代理使用郵件 MCP 伺服器發送電子郵件並確認訊息已發送。

日曆工具

List my calendar events for today

預期回應:客服人員會取得並顯示您當天的行事曆事件。

SharePoint 工具

List all SharePoint sites I have access to

預期回應:客服人員查詢 SharePoint,並回傳你能存取的網站清單。

你可以在以下頁面查看工具調用:

  • 聊天視窗 ——看到客服人員的回應和任何工具呼叫
  • 日誌面板 - 請參閱詳細活動資訊,包括工具參數與回應

與通知活動的測試

在本地開發期間,你可以透過模擬 Agents Playground 中的自訂活動來測試通知情境。 這讓你能在部署到生產環境前,驗證代理的通知處理方式。

在測試通知活動前,請確保你具備:

通知需要正確的工具設定和通知設定才能正常運作。 你可以利用自訂活動功能測試電子郵件通知或 Word 留言等情境。

要傳送自訂活動:

  1. 啟動您的經紀人與經紀人遊樂場
  2. 在 Agents Playground 中,導覽到 模擬活動>自訂活動
  3. 從活動中複製( conversationId 每次重啟 Agents Playground 時,對話 ID 都會改變)
  4. 貼上你的自訂活動 JSON,並更新 personal-chat-id 欄位,顯示你複製的對話 ID。 參考電子郵件通知範例
  5. 選取新增活動
  6. 在聊天對話和日誌面板中查看結果

電子郵件通知

這模擬發送給客服人員的電子郵件。 將佔位符值替換成你的實際代理人資料:

{
  "type": "message",
  "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "timestamp": "2025-09-24T17:40:19+00:00",
  "serviceUrl": "http://localhost:56150/_connector",
  "channelId": "agents",
  "name": "emailNotification",
  "from": {
    "id": "manager@contoso.com",
    "name": "Agent Manager",
    "role": "user"
  },
  "recipient": {
    "id": "agent@contoso.com",
    "name": "Agent",
    "agenticUserId": "<your-agentic-user-id>",
    "agenticAppId": "<your-agent-app-id>",
    "tenantId": "<your-tenant-id>"
  },
  "conversation": {
    "conversationType": "personal",
    "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "id": "personal-chat-id"
  },
  "membersAdded": [],
  "membersRemoved": [],
  "reactionsAdded": [],
  "reactionsRemoved": [],
  "locale": "en-US",
  "attachments": [],
  "entities": [
    {
      "id": "email",
      "type": "productInfo"
    },
    {
      "type": "clientInfo",
      "locale": "en-US",
      "timezone": null
    },
    {
      "type": "emailNotification",
      "id": "bbbbbbbb-1111-2222-3333-cccccccccccc",
      "conversationId": "personal-chat-id",
      "htmlBody": "<body dir=\"ltr\">\n<div class=\"elementToProof\" style=\"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);\">\nYour email message content here</div>\n\n\n</body>"
    }
  ],
  "channelData": {
    "tenant": {
      "id": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
    }
  },
  "listenFor": [],
  "textHighlights": []
}

查看可觀察性日誌

在本地開發期間要查看可觀察性日誌,請以可觀察性程式碼(可觀測性範例請參見可觀察性)來安裝代理,並依照可觀察性變數描述配置環境變數。 設定完成後,即時追蹤會出現在控制台中,顯示:

  • 代理調用追蹤
  • 執行詳情
  • LLM 推論呼叫
  • 輸入與輸出訊息
  • 權杖使用
  • 回應時間
  • 錯誤資訊

這些日誌有助於你除錯問題、了解代理行為並優化效能。

疑難排解​​

本節提供您在本地測試代理人時可能遇到的常見問題解決方案。

連接與環境問題

這些問題涉及網路連線、埠衝突以及環境設定問題,可能阻礙你的代理程式正常通訊。

Agents Playground 連線問題

症狀:Agents Playground 無法連接您的代理人

方案

  • 確認你的代理伺服器是否在運作
  • 請確認您的代理與代理遊樂場之間的埠號是否相符
  • 確保沒有防火牆規則阻止對 Blob 容器的存取。
  • 試著重啟代理和代理遊玩場

過時的特工遊樂場版本

症狀:Agents Playground 出現意外錯誤或缺少功能

解決方案:卸載並重新安裝 Agents Playground:

winget uninstall agentsplayground
winget install agentsplayground

港口衝突

症狀:錯誤提示埠口已在使用中

解決方案:

  • 停止你代理人的其他任何情況
  • 將您的變更儲存在設定中。
  • 關閉使用該埠的程序:
# Windows PowerShell
Get-Process -Id (Get-NetTCPConnection -LocalPort <port>).OwningProcess | Stop-Process

無法新增 DeveloperMCPServer

症狀:嘗試在 VS Code 中新增 DeveloperMCPServer 時出現錯誤

解決方法:關閉並重新開啟 Visual Studio Code,然後再嘗試新增伺服器。

驗證問題

這些問題發生在你的代理程式無法正確驗證 Microsoft 365 服務,或憑證過期或設定錯誤時。

持有人代幣已過期

症狀:認證錯誤或401未授權回應

解決方案:持有者代幣約在1小時後到期。 取得一個新的代幣並更新你的設定。

Python 中的代理認證錯誤

症狀:錯誤取得代理實例令牌

解決方法:確認 ALT_BLUEPRINT_NAME 你的 .env設定:

# Change from:
AGENTAPPLICATION__USERAUTHORIZATION__HANDLERS__AGENTIC__SETTINGS__ALT_BLUEPRINT_NAME=ServiceConnection

# To:
AGENTAPPLICATION__USERAUTHORIZATION__HANDLERS__AGENTIC__SETTINGS__ALT_BLUEPRINT_NAME=SERVICE_CONNECTION

已知問題與通知

這些問題涉及工具調用、MCP 伺服器互動及通知傳遞的問題。

未收到電子郵件

症狀:客服提示已發送郵件,但你沒有收到

方案

  • ✅ 檢查您的垃圾郵件資料夾。
  • 電子郵件送達可能會延遲幾分鐘——最多可等5分鐘
  • 請確認收件人的電子郵件地址是否正確
  • 請檢查客服人員的日誌,檢查郵件發送時是否有錯誤

文字留言回覆無法運作

已知問題:通知服務目前無法直接回應 Word 留言。 這項功能正在開發中。

取得說明

如果你遇到本故障排除部分未涵蓋的問題,請參考以下資源:

Microsoft Agent 365 SDK repositories

更多支援

後續步驟

現在你已經成功在本地測試了代理程式,現在就可以部署到 Azure 並發佈到 Microsoft 365:

  • 部署與發布代理程式:學習如何將代理部署至 Azure Web App,並發佈至 Microsoft 管理中心,讓您的組織能在 Microsoft 365 中發現並聘用。