摘要:随着人工智能应用从单纯的聊天机器人向更复杂的自动化流程演进,代理(Agents)技术正成为实现业务流程自动化的关键。这些代理将大型语言模型(LLMs)视为灵活的编排层,能够动态解析用户意图,并为调用现有 API 构建有效负载。
随着人工智能应用从单纯的聊天机器人向更复杂的自动化流程演进,代理(Agents)技术正成为实现业务流程自动化的关键。这些代理将大型语言模型(LLMs)视为灵活的编排层,能够动态解析用户意图,并为调用现有 API 构建有效负载。
微软 .NET 生态中的企业级 AI
微软持续在其开发平台中集成 AI 工具,从 Semantic Kernel 中的代理开发框架,到应用程序中日益丰富的模型协同协议(Model Cooperative Protocol, MCP)功能。这些工具使开发者能够构建与 Azure AI Foundry 等服务深度集成的人工智能应用。
单个代理已具备强大能力,但将它们组合成网络时,其效用将呈指数级增长——尤其是在构建融合 LLMs 与其他机器学习技术的专业化工具时。使用代理来编排其他代理,从服务目录中进行选择,为面向服务的架构(SOA)模型提供了现代化的替代方案。代理及其构建的 MCP 服务器,正成为一种新型的接口描述语言(IDL)。
A2A:以任务为中心的代理间通信协议
构建协作式代理网络需要统一的标准,以实现任意代理间的通信、能力描述以及数据交换。这正是 Google 开发的 Agent-to-Agent (A2A) 协议的用武之地。A2A 设计用于支持任何形式的数据和长时间运行的任务。
与以用户为中心的聊天机器人不同,代理(以及 A2A 协议)是以任务为中心的。在 A2A 模型中:
发起请求的客户端代理:利用其对一组远程代理能力的了解,将任务分解。任务分配:将子任务分发给最适合处理的远程代理。异步处理与聚合:对于耗时任务,远程代理会返回任务状态或进度通知。客户端代理负责收集各子任务结果,最终组装成面向用户或调用应用的响应。A2A 正式登陆 .NET
微软近期发布了 .NET A2A SDK 的早期预览版。该 SDK 支持 A2A 交互的双方:
SDK 核心功能预览(V1):
代理能力发现(Agent Discovery)直接消息传递(Direct Messaging)基于任务的交互(Task-Based Interactions)流式数据处理(Streaming Data Handling)支持快速交互、长工作流和实时操作。.NET A2A SDK 现状:
开发模式:在 GitHub 上公开开发。分发:通过 NuGet 包分发。许可证:Apache 2.0 (企业友好)。重要提示:当前处于预览阶段,SDK 和 A2A 协议本身都可能发生变化(A2A 协议本身于 2025 年 4 月初才发布)。快速上手 .NET A2A
入门门槛很低:
环境:需要 .NET 8.0+ 及你喜欢的 .NET IDE。安装:通过 .NET CLI 安装 A2A 核心包和 A2A.AspNetCore 集成包。示例:官方示例代码覆盖了客户端、服务器端以及与 Semantic Kernel 的集成场景。集成策略:
包装现有代理:为已有代理添加 A2A 包装层,负责接收 A2A 消息并将其转换为代理内部格式。原生集成新代理:使用 A2A SDK 直接在新(或重构的)代理代码中实现 A2A 接口。这是新开发的首选方式,能确保代理上线即具备 A2A 互操作性。核心概念:代理卡(Agent Card)
A2A 协议的核心是 Agent Card。它是一个 JSON 文档,用于标准化描述代理的能力及其交互方式。它是服务发现的关键:
发布方式:直接通过已知 URL 提供,或发布到注册中心(Registry)。注册中心:可以是公开或私有的,便于区分内部代理网络和外部互联网访问。内容要求:不包含机密信息。需实施访问控制(如 OAuth)。格式特点:混合了机器可读和人类可读的内容(确保基本可解释性)。最关键部分:skills 数组,详细列出代理提供的技能(功能),包括:示例提示(Example Prompts)输入/输出数据类型(Input/Output Types)接口描述:指定客户端代理应如何调用此代理(支持的协议如 REST, gRPC)以及对应的接口 URL (Endpoint)。.NET A2A SDK 的优势:
代码驱动:大部分 Agent Card 内容可通过代码定义和生成,确保接口描述与代理实现同步更新。内置对象模型:SDK 提供 AgentCard 对象,方便客户端解析远程代理的卡片信息并定位端点。简化测试:代码化定义便于编写集成测试。代理间通信模式
.NET A2A SDK 支持灵活的通信方式:
ASP.NET Core 深度集成
A2A.AspNetCore 包是 SDK 的一大亮点:
测试与验证:A2A 检查器 (Inspector)
项目提供了 A2A Inspector (一个 Python 工具) 用于:
总结与展望
虽然 .NET A2A SDK 和 A2A 协议本身仍在快速发展中,但当前的预览版已为探索代理间协作提供了坚实的基础。它与 ASP.NET Core 的 MCP 工具共享设计理念,两者可协同工作甚至包装相同的模型后端。
微软正大力投入 .NET 生态的 AI 工具链,.NET A2A SDK 是其快速交付给开发者用于实验和原型开发的又一力作。
为何值得关注?
对于计划构建基于任务的、涉及长时间运行事务或复杂编排的代理应用,A2A 和 .NET SDK 是一个极佳的起点。其核心价值在于:
标准化互操作:打破代理间的壁垒。异步与状态管理:优雅处理耗时任务,保持用户和系统知情。利用 LLM 上下文:将现代 AI 能力有效整合进长期业务流程。A2A 协议及其 .NET 实现,有望引领我们超越功能有限的传统聊天机器人,开启真正智能化、自动化业务流程的新篇章。
来源:AI中国一点号