
微軟 .NET 團隊於官方部落格宣布,與 CopilotKit 合作為 AG-UI 協議貢獻一個 .NET SDK。該 SDK 位於 AG-UI 的官方儲存庫,與 TypeScript 及 Python SDK 並列,以 MIT 授權在 NuGet 發布;任何 .NET 服務現在都可以直接使用 AG-UI,而 Microsoft Agent Framework 的 AG-UI 支援亦已改為建基於這個 SDK。[1][2]
問題所在
文章指出,代理打破了傳統的請求—回應範式:它們長時間運行,工作時串流輸出 token,委派子代理,並在回應中途呼叫工具。若沒有共同協議,每個代理框架或服務都可以提供不同的串流格式,令應用開發者要自行解析資料塊,追蹤狀態,並把框架特定事件映射到使用者介面;這些樣板程式碼不僅要維護,亦可能隨事件格式改動而失效。[1]
AG-UI 的作用
AG-UI(Agent-User Interaction Protocol)標準化代理與面向使用者的應用程式之間的通訊。它以有型別的事件串流代理的生命週期,並分成多個類別;前端只需監聽 RUN_STARTED、TEXT_MESSAGE_CONTENT、STATE_DELTA 等事件,毋須理會是哪個框架產生。狀態事件令代理、應用與使用者保持同步,而事件如何顯示由客戶端決定,因此呈現介面可以是網頁應用,終端,手機應用,甚至 Slack 或 Teams 一類聊天平台。[1]
官方指出,.NET SDK 把這種能力帶到 C#:後端可以原生輸出這些事件,客戶端則可從任何受支援語言撰寫的代理消費事件。[1]
使用方式
SDK 支援雙向運作:AGUI.Server 把代理變成 AG-UI 端點,AGUI.Client 讓 .NET 應用程式消費端點,兩者建基於一組共通的 AG-UI 基本元件。[1]
安裝指令炾 dotnet add package AGUI.Server。官方指出,代理本身是一個 IChatClient,即 Microsoft.Extensions.AI 的標準聊天抽象;假設應用已定義一個回傳設定好的 IChatClient 的方法,便可註冊該客戶端與 AG-UI 序列化器,並以 MapPost("\/") 把 RunAgentInput 轉換成聊天請求內容,再串流回應。[1]
意義
對 .NET 生態而言,這意味代理與使用者介面之間的事件流不再需要自行定義格式:SDK 沿著 AG-UI 既有的 TypeScript 與 Python 路線,把同一套事件模型帶到 C#,並與 Microsoft Agent Framework 的代理堆疊接軌。[1]
參考資料
[1] .NET 官方部落格 — AG-UI Protocol now has a first-class .NET SDK
[2] AG-UI 官方儲存庫(含 .NET SDK)