微软补上了 C# 这一环
微软在 9 月 25 日以 MIT 许可在 NuGet 上发布了 AG-UI 的 .NET SDK,共 5 个包,让 C# 开发者原生支持智能体与前端应用之间的事件式通信协议。AG-UI 定义的是交互事件,而不是渲染这些事件的 UI 组件,因此它天然跨语言:此前已有 TypeScript 和 Python 实现,这次补齐 .NET。微软同时表示,Microsoft Agent Framework 的 AG-UI 支持已经建立在这套新 SDK 之上。
SDK 是双向的:AGUI.Server 把智能体暴露成 AG-UI 端点,AGUI.Client 让 .NET 应用通过 HTTP 消费 AG-UI 端点。协议涵盖运行生命周期、文本流式输出、工具调用、状态同步、活动、子智能体、特殊函数和草稿事件等八类事件。
智能体的输出可能是增量到达的。用户需要看到智能体在做什么,并对有后果的动作拥有控制权。Agentic UI 就是为这类体验准备的构建块。
五步搭起一个 Agentic UI
第一步,安装 .NET 11 RC1 SDK。第二步,加入实验性包:dotnet add package Microsoft.AspNetCore.Components.AI --prerelease。第三步,用最省事的入口 ChatPage,它自带消息列表、输入框、流式状态和重试行为,接收一个 UIAgent 参数。第四步,把 UIAgent 包在 Microsoft.Extensions.AI 的 IChatClient 外面,它会消费流式的 ChatResponseUpdate,并把内容映射成可观察的 ContentBlock 实例。第五步,如果要接远程智能体,改用稳定的 AG-UI .NET SDK 提供的 AGUIChatClient,它同样实现 IChatClient,会把 AG-UI 事件翻译成 Microsoft.Extensions.AI 的响应更新。
要不要现在上手
ContentBlock 是面向 UI 的交互片段表示,带有身份、角色、生命周期状态和变更通知,流式数据到达时组件能自动重渲染。包里已经内置了会话内容、工具调用、审批和前端动作四种块,也可以注册处理器把其他模型内容映射成自定义块类型。需要自定义布局时,用 AgentBoundary、MessageList、MessageInput 和 BlockRenderer 这几个低层组件自己拼,其中 AgentBoundary 负责创建交互上下文。
需要注意两点:Blazor AI 组件目前是实验性的,需要预览版包;当前预览中的 MessageInput 只聚焦文本,要传图片、文件或音频得自己写输入组件,再调用 AgentContext.SendMessageAsync,而采集、转写与模型特有的媒体处理仍属于应用自身职责。如果团队已经在用传统 REST 或 WebSocket 手工做智能体编排,这套东西值得先在旁路项目验证一遍,它能省掉的正是最容易出错的那部分状态同步代码。