该技能是使用 Microsoft Agent Framework 开发 .NET 智能体应用的入口,面向构建、修改、审查、评估、集成和托管 .NET(C#)应用的任务。其核心思路是:选择能保留所需行为的最小框架模式,只加载相关参考材料,并以当前 API 进行验证,而非依赖记忆中预览期的语法。
工作流程:先检查现有解决方案,包括目标框架、SDK 版本、包管理方式(集中包管理或按项目管理)以及已安装的 Microsoft.Agents.AI.* 包及版本;再从构建路径表中选出最简单的匹配路径;仅在设计问题会实质影响实现时才解决设计疑点;只阅读所选路径对应的链接参考;实现最小的连贯变更,并运行覆盖该变更的最窄验证。
核心抽象:聊天客户端是 Microsoft.Extensions.AI.IChatClient,负责向模型提供方发送消息和选项并返回聊天响应或流式更新;Agent Framework 复用 Microsoft.Extensions.AI 的 ChatMessage、AIFunction、ChatOptions 等类型。智能体派生自 AIAgent,提供 RunAsync 和 RunStreamingAsync;ChatClientAgent 是标准实现,包装 IChatClient 并附带指令、工具、上下文提供程序、聊天历史提供程序和会话处理,提供程序包通常通过 AsAIAgent 扩展方法创建。Harness 智能体是 Microsoft.Agents.AI.Harness 中的 HarnessAgent,在 ChatClientAgent 之上包裹一组有明确取向的上下文提供程序和装饰器,本身仍是 AIAgent。工作流(Microsoft.Agents.AI.Workflows)在执行器和智能体之间协调显式执行路径,AgentWorkflowBuilder 提供顺序、并发、交接、群聊和 Magentic 等标准模式,需要时可将工作流暴露为 AIAgent。
界面选项:DevUI(Microsoft.Agents.AI.DevUI)是本地开发、测试和调试工具,明确不得作为生产应用宿主运行或部署;AG-UI 是面向应用的协议集成,使用 Microsoft.Agents.AI.Hosting.AGUI.AspNetCore 连接兼容前端,适用于流式 UI 事件、工具交互、共享状态、中断或恢复行为。
构建路径选择:纯智能体适用于一个模型驱动的执行者即可掌控任务,且工具、会话、上下文和中间件足够的情况;Harness 智能体适用于需要待办、模式、记忆、审批、技能、可选文件访问、后台智能体、shell、压缩或重复执行的操作循环;工作流或编排适用于显式阶段、路由、并行、多参与者、检查点、人工输入或中间输出对正确性至关重要的场景;声明式定义适用于以 YAML 作为受支持智能体或工作流的唯一事实来源;评估适用于关注预期输出、工具调用、失败运行或质量回归;可观测性适用于用追踪、日志和指标诊断或监控运行时行为;可扩展性适用于需要自定义聊天客户端、智能体、上下文提供程序、历史提供程序或中间件;集成适用于选择或连接提供程序、协议、记忆存储、工具服务、UI 或平台扩展;托管与部署适用于需要进程宿主、协议端点、身份契约或部署形态。
默认约定:面向当前受支持的 .NET 版本,包多目标支持当前和近期 LTS 版本,部分还支持 .NET Standard 2.0 和 .NET Framework 4.7.2,若非项目固定则优先最新支持的 SDK;只添加应用所需的窄范围包,例如 Microsoft.Agents.AI 加一个提供程序包,而非全部包;各包成熟度不同,有正式版、-preview 或 -alpha,依赖前应检查当前状态,仅在必要时允许预发布版本;标记为 [Experimental] 的 API 会显示诊断 ID(如 MAAI001),只有在确认功能可能变化后才刻意在相关代码范围内抑制。Agent Framework 不代为读取配置,端点、模型和密钥需通过 IConfiguration、用户机密或环境变量读取并显式传给客户端;优先使用 DefaultAzureCredential 等令牌凭据而非 API 密钥,绝不硬编码机密;DefaultAzureCredential 会探测多个凭据源,在生产中增加延迟和风险,托管身份已知时应使用特定凭据。
当前文档查询:稳定决策和常见模式使用本地指导;提供程序矩阵、包成熟度、托管工具、部署细节或不熟悉的 API 应在生成代码前查阅当前来源。参考页刻意描述选择规则、不变量和不明显的陷阱;签名和选项细节应查阅 XML 文档或 API 参考页;端到端流程使用 Learn 或维护中的示例。支持 MCP 的编码智能体可配置 Microsoft Learn MCP Server(Streamable HTTP):https://learn.microsoft.com/api/mcp,该端点供 MCP 客户端使用,直接在浏览器打开会返回错误。可用 microsoft_docs_search 搜索、microsoft_docs_fetch 获取页面、microsoft_code_sample_search 查找当前实现示例;MCP 不可用且已安装受信任的 mslearn CLI 时,可使用等价命令 mslearn search、mslearn fetch、mslearn code-search。不要在编码会话中获取并执行未固定版本的 CLI 包,应通过官方 Microsoft Learn MCP/CLI 安装方式有意安装或更新。