重要
你需要參加 Frontier 預覽計畫 ,才能搶 先取得 Microsoft Agent 365 的使用權。 Frontier 直接連結你與 Microsoft 最新的 AI 創新。 Frontier 預覽受限於您現有的客戶協議預覽條款。 由於這些功能仍在開發中,其可用性與功能可能會隨時間改變。
在 Agents 遊樂場中透過本機方式測試您的 Agent 本指南涵蓋如何設定開發環境、設定認證,以及使用 Agents Playground 測試工具驗證代理程式的功能。
一旦代理程式在本地運作,你可以 部署並發布 ,讓它在 Microsoft 365 應用程式如 Teams 中進行測試。
先決條件
在開始之前,請先確定您具備下列必要條件:
Python 必要條件
- 您偏好的文字編輯器或程式碼編輯器。 推薦使用 Visual Studio Code
-
Agents Playground: 使用以下方法之一安裝 Agents Playground :
- Windows:
winget install agentsplayground - npm:
npm install -g @microsoft/m365agentsplayground
- Windows:
- A365 CLI:代理程式部署與管理所必需。 安裝 Agent 365 CLI
-
LLM API 存取權:根據代理的設定或偏好的模型提供者選擇合適的服務:
- OpenAI API 金鑰: 取得您的 OpenAI API 金鑰
- Azure OpenAI: 建立並部署 Azure OpenAI 資源 以取得您的 API 金鑰與端點
語言特定的先修條件
- Python 3.11+: 可從 python.org 或 Microsoft 商店下載
-
uv 套件管理器: 使用 uv 安裝
pip install uv - 確認安裝:
配置代理測試環境
本節涵蓋設定環境變數、驗證開發環境,以及準備 Agent 365 驅動的代理進行測試。
設定您的代理測試環境遵循序列式工作流程:
設定您的環境 - 建立或更新您的環境設定檔
LLM 設定 - 取得 API 金鑰並設定 OpenAI 或 Azure OpenAI 設定
設定認證 - 設定代理認證
環境變數參考 - 設定所需的環境變數:
- 驗證變數
- 端點設定
- 可觀察變數
- 代理應用程式伺服器設定
完成這些步驟後,你就可以開始在 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:環境變數
透過配置以下必要的環境變數完成您的環境設定:
- 認證變數 - 代理認證所需的設定
- MCP 端點設定 - 指定 Agent 365 平台端點
- 可觀察變數 - 啟用日誌與分散式追蹤
- 代理應用程式伺服器設定 - 設定代理伺服器運行的埠口
驗證變數
設定代理認證所需的認證處理程式設定,以確保代理認證正常運作。
將 新增至您的 檔案:
# 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 中的自訂活動來測試通知情境。 這讓你能在部署到生產環境前,驗證代理的通知處理方式。
在測試通知活動前,請確保你具備:
- 在你的
toolingManifest.json. 深入了解 工具 - 啟用您的客服人員 通知 了解如何設定通知
通知需要正確的工具設定和通知設定才能正常運作。 你可以利用自訂活動功能測試電子郵件通知或 Word 留言等情境。
要傳送自訂活動:
- 啟動您的經紀人與經紀人遊樂場
- 在 Agents Playground 中,導覽到 模擬活動>自訂活動
- 從活動中複製(
conversationId每次重啟 Agents Playground 時,對話 ID 都會改變) - 貼上你的自訂活動 JSON,並更新
personal-chat-id欄位,顯示你複製的對話 ID。 參考電子郵件通知範例 - 選取新增活動。
- 在聊天對話和日誌面板中查看結果
電子郵件通知
這模擬發送給客服人員的電子郵件。 將佔位符值替換成你的實際代理人資料:
{
"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
- Microsoft Agent 365 SDK - C# /.NET 倉庫
- Microsoft Agent 365 SDK - Python repository
- Microsoft Agent 365 SDK - Node.js/TypeScript 倉庫
- Microsoft Agent 365 SDK 範例倉庫
更多支援
- 檢視 Microsoft Agent 365 SDK 倉庫中的 範例程式碼與文件
- 透過相關倉庫的 GitHub Issues 提交問題
後續步驟
現在你已經成功在本地測試了代理程式,現在就可以部署到 Azure 並發佈到 Microsoft 365:
- 部署與發布代理程式:學習如何將代理部署至 Azure Web App,並發佈至 Microsoft 管理中心,讓您的組織能在 Microsoft 365 中發現並聘用。