Microsoft 365 Agents SDK 是一個用於建立對話式代理的開發框架。 對話代理是一種能接收使用者訊息、處理並回應的軟體。 可以把它想像成在使用者發送訊息(無論是在 Teams、網站、Slack 或其他地方)與你所構建的回應該訊息的邏輯之間的中介層。
SDK 處理訊息在不同表面接收與傳送的機制,讓開發者能專注於代理實際的功能,而非低階通訊協定。
支援的語言
代理程式 SDK 支援:
- 使用 .NET 8.0 SDK 的 C#
- 使用 Node.js 版本 18 及以上的 JavaScript
- 使用 3.9 至 3.11 版本的 Python
代理 SDK 解決的三個問題
你的經紀人需要在多個地方工作。 使用者並非都透過同一個管道溝通。 有些人使用 Microsoft Teams,有些人使用 Microsoft Copilot,有些人使用公司網站,還有些人使用非 Microsoft 的工具,如 Slack 或 Facebook Messenger。 沒有框架,開發者必須為每個表面撰寫獨立的整合程式碼,每個表面都有自己的訊息格式、認證方案和連線協定。
SDK 提供通道抽象層。 你只寫一次代理邏輯,SDK 會將進出訊息轉換成每個通道預期的格式。 新增一個通道不需要重寫代理人的核心行為。
你不想被鎖定在單一 AI 服務裡。 哪種AI服務為代理提供支持的選擇,包括Azure AI Foundry、OpenAI、語意核心或其他完全不同的服務,隨著技術環境的演變和不同使用情境的出現經常會改變。 內建特定 AI 供應商的代理框架,迫使開發者在該選擇改變時重寫大量程式碼。
SDK 設計上是 AI 無關的。 它提供接收訊息、管理狀態及路由事件的支架,但不假設回應的產生方式。 開發者會插入他們偏好的 AI 服務或編排函式庫。 SDK 不會妨礙你做出這個選擇。
處理對話狀態真的很難。 對話並非無狀態化。 使用者可能會提出後續問題、提及兩回合前說過的內容,或是放棄對話,稍後再繼續。 管理這些上下文,包括追蹤發生了什麼、存放在哪裡,以及訊息在訊息間的流動,從零開始建立既繁瑣又容易出錯。
SDK 提供內建的狀態與儲存管理功能。 它引入了回合(對話中的單一單元工作)的概念,並能追蹤各回合的狀態,無需開發者自行布線持久化層。 這意味著更少樣板程式碼,以及更少的對話流程邏輯錯誤。
它如何結合在一起
SDK 的核心在於,當訊息抵達時,會做三件事:
接收來自任何發送訊息的管道(Teams、網路聊天、Slack 等),並將其正規化成一種通用格式,稱為
Activity。將活動路由到代理程式碼中的適當處理者。 例如,訊息活動觸發一個處理器,使用者加入對話又觸發另一個處理器。
會將回應透過同一頻道回傳,將你的回應轉換回該頻道預期的格式。
開發者會為他們關心的活動類型撰寫處理程序。 SDK 負責其他所有事務,包括認證、訊息格式轉換及通道連接。
代理 SDK 不具備的特色
Agents SDK 不是 AI 模型、編排引擎或無程式碼建構器。 Agents SDK 並不決定代理軟體要說些什麼。 開發者所整合到代理中的 AI 服務或商業邏輯負責這些元素。 Agents SDK 是一個框架,可以在跨通道的情況下可靠地將訊息傳送到該邏輯並從中接收訊息,同時保持對話狀態的完整性。