planning-design__code_samples__07-dotnet-agent-framework
🎯 使用 GitHub 模型 (.NET) 进行规划和设计模式
📋 学习目标
本笔记本演示了使用 .NET 中的 Microsoft Agent Framework 和 GitHub 模型构建智能代理的企业级规划和设计模式。您将学习创建可以分解复杂问题、规划多步骤解决方案以及使用 .NET 企业功能执行复杂工作流程的代理。
⚙️ 先决条件和设置
开发环境:
- .NET 9.0 SDK 或更高版本
- Visual Studio 2022 或带有 C# 扩展的 VS Code
- GitHub 模型 API 访问
所需的依赖项:
1 | <PackageReference Include="Microsoft.Extensions.AI" Version="9.9.0" /> |
Environment Configuration (.env file):
1 | GITHUB_TOKEN=your_github_personal_access_token |
运行代码
本课程包括 .NET 单文件应用程序实现。运行它:
1 | # Make the file executable (Linux/macOS) |
或者使用 dotnet run 命令:
1 | dotnet run 07-dotnet-agent-framework.cs |
代码实现
完整的实现可以在 07-dotnet-agent-framework.cs 中找到,它演示了:
- 使用DotNetEnv加载环境配置
- 为 GitHub 模型配置 OpenAI 客户端
- 使用 JSON 序列化定义结构化数据模型(Plan 和 TravelPlan)
- 使用 JSON 模式创建具有结构化输出的 AI 代理
- 使用类型安全响应执行规划请求
关键概念
使用类型安全模型的结构化规划
代理使用 C# 类来定义规划输出的结构:
1 | public class Plan |
结构化输出的 JSON 模式
代理配置为返回与 TravelPlan 架构匹配的响应:
1 | ChatClientAgentOptions agentOptions = new(name: AGENT_NAME, instructions: AGENT_INSTRUCTIONS) |
规划代理说明
代理充当协调员,将任务委派给专门的子代理:
- FlightBooking:用于预订航班并提供航班信息
- HotelBooking:用于预订酒店并提供酒店信息
- CarRental:用于预订汽车并提供汽车租赁信息
- 活动预订:用于预订活动并提供活动信息
- DestinationInfo:用于提供有关目的地的信息
- DefaultAgent:用于处理一般请求
预期输出
当您通过旅行计划请求运行代理时,它将分析请求并生成结构化计划,其中将适当的任务分配给专业代理,格式为符合 TravelPlan 架构的 JSON。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!