Loading

Agent-Framework介绍与.NET环境搭建

Agent Framework介绍与.NET环境搭建

一、Microsoft Agent Framework概述

1.1 什么是Agent Framework?

Microsoft Agent Framework是一个支持Python和.NET的多语言AI Agent框架,用于构建、编排和部署AI智能体和多Agent工作流。

简单来说,它提供了一套完整的工具,让你能够:

  1. 创建AI智能体:快速构建能够理解自然语言、执行任务的AI助手
  2. 构建复杂工作流:通过图编排连接多个智能体和函数
  3. 集成现有系统:与你的.NET应用程序无缝集成
  4. 监控和调试:内置OpenTelemetry支持,方便生产环境监控

1.2 为什么选择Agent Framework?

市场上已经有不少AI Agent框架,比如AutoGen、LangChain等。那为什么还要选择Microsoft Agent Framework呢?

对于.NET开发者来说,主要有以下几个优势:

  1. 原生.NET支持:这是最大的优势!官方提供了完整的C# SDK,API设计与.NET生态完美融合
  2. 微软技术栈集成:与Azure OpenAI、Visual Studio、ASP.NET Core等微软技术栈无缝集成
  3. 企业级特性:内置企业级功能,如OpenTelemetry、容器化支持、安全特性等
  4. 多语言统一API:Python和.NET使用相同的API设计,团队协作更方便
  5. 官方支持:微软官方维护,更新及时,文档完善

1.3 与其他框架对比

为了让选择更清晰,这里简单对比几个主流框架:

特性 Microsoft Agent Framework AutoGen LangChain
.NET原生支持 ✅ 完整支持 ⚠️ 有限支持 ❌ 无
Python支持
工作流编排 ✅ 基于图 ⚠️ 有限
企业级特性 ⚠️
学习曲线 中等 较陡 较陡
社区活跃度 快速增长 活跃 非常活跃

如果你是.NET团队,或者主要使用微软技术栈,Agent Framework无疑是目前最好的选择。

二、环境要求与准备工作

2.1 硬件和软件要求

在开始之前,确保你的开发环境满足以下要求:

最低要求:

  • Windows 10/11 或 macOS 10.15+ 或 Linux(Ubuntu 20.04+)
  • 8GB RAM(推荐16GB)
  • 20GB可用磁盘空间

开发工具:

  • Visual Studio 2022 17.8+ 或 Visual Studio Code
  • .NET 10.0 SDK 或 .NET 9.0 SDK
  • Git(用于版本控制)

2.2 API密钥准备

Agent Framework支持多种LLM提供商,你需要至少准备一个:

选项1:OpenAI API(推荐新手)

  1. 访问 OpenAI平台
  2. 注册账号并创建API密钥
  3. 注意:需要绑定信用卡,有免费额度

选项2:Azure OpenAI(推荐企业用户)

  1. 需要有Azure订阅
  2. 在Azure门户中创建OpenAI资源
  3. 获取终结点和API密钥

选项3:本地模型(高级用户)

  1. 支持Ollama、LM Studio等本地模型
  2. 需要一定的技术基础

对于本教程,我们建议从OpenAI API开始,门槛最低。

三、.NET环境搭建实战

3.1 安装.NET SDK

如果你还没有安装.NET SDK,可以按以下步骤安装:

Windows用户:

# 检查当前.NET版本
dotnet --version

# 如果未安装,下载并安装.NET 10.0 SDK
# 从 https://dotnet.microsoft.com/download 下载安装包

验证安装:

dotnet --info

你应该能看到类似下面的输出:

.NET SDK:
 Version:           10.0.300
 Commit:            xxxxxxxx

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.22621
 OS Platform: Windows

3.2 创建项目

让我们从创建一个简单的控制台应用开始:

# 创建项目目录
mkdir AgentDemo && cd AgentDemo

# 创建控制台应用
dotnet new console -n AgentDemo

# 进入项目目录
cd AgentDemo

3.3 安装Agent Framework包

Agent Framework的主要包是 Microsoft.Agents.AI,目前还在预览阶段:

# 添加NuGet包
dotnet add package Microsoft.Agents.AI --prerelease

可选包(根据需求安装):

# 如果需要使用Azure OpenAI
dotnet add package Azure.AI.OpenAI

# 如果需要使用OpenAI官方SDK
dotnet add package OpenAI

# 如果需要JSON序列化(推荐)
dotnet add package System.Text.Json

3.4 配置项目文件

打开 AgentDemo.csproj 文件,确保包含以下配置:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Agents.AI" Version="1.0.0-rc.*" />
    <PackageReference Include="OpenAI" Version="2.0.0" />
  </ItemGroup>

</Project>

3.5 添加配置文件

创建 appsettings.json 文件来管理配置:

{
  "OpenAI": {
    "ApiKey": "你的OpenAI API密钥",
    "Model": "gpt-4o-mini"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Agents.AI": "Debug"
    }
  }
}

重要提醒

  • 不要将API密钥提交到GitHub等公开仓库
  • 建议使用环境变量或Azure Key Vault管理密钥
  • 可以将appsettings.json添加到.gitignore

3.6 创建配置类

为了更好管理配置,创建一个配置类:

// Config/OpenAIConfig.cs
namespace AgentDemo.Config;

public class OpenAIConfig
{
    public string ApiKey { get; set; } = string.Empty;
    public string Model { get; set; } = "gpt-4o-mini";
}

四、第一个Hello World程序

4.1 创建第一个智能体

让我们写一个最简单的Agent程序:

// Program.cs
using Microsoft.Agents.AI;
using OpenAI;
using AgentDemo.Config;

// 从配置文件中读取设置
var config = new OpenAIConfig
{
    ApiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") 
        ?? throw new InvalidOperationException("OPENAI_API_KEY环境变量未设置"),
    Model = "gpt-4o-mini"
};

// 创建OpenAI客户端
var openAIClient = new OpenAIClient(config.ApiKey);

// 创建智能体
var agent = openAIClient
    .GetResponsesClient(config.Model)
    .AsAIAgent(
        name: "HelloBot",
        instructions: "你是一个友好的助手,总是用热情的语气回答。"
    );

Console.WriteLine("智能体已创建!");
Console.WriteLine("名称: HelloBot");
Console.WriteLine("模型: " + config.Model);
Console.WriteLine();

4.2 运行与测试

创建完成后,运行程序:

# 设置环境变量(Windows)
set OPENAI_API_KEY=sk-你的API密钥

# 运行程序
dotnet run

如果一切正常,你应该能看到:

智能体已创建!
名称: HelloBot
模型: gpt-4o-mini

4.3 添加简单交互

让我们让智能体说点什么:

// 接上面的代码
try
{
    Console.Write("请输入问题(输入q退出): ");
    var question = Console.ReadLine();
    
    if (question?.ToLower() == "q")
        return;
        
    if (!string.IsNullOrWhiteSpace(question))
    {
        Console.WriteLine("正在思考...");
        
        // 运行智能体
        var response = await agent.RunAsync(question);
        
        Console.WriteLine();
        Console.WriteLine("回答: " + response);
    }
}
catch (Exception ex)
{
    Console.WriteLine($"错误: {ex.Message}");
    
    if (ex.InnerException != null)
    {
        Console.WriteLine($"内部错误: {ex.InnerException.Message}");
    }
}

五、常见问题与解决方案

5.1 安装问题

问题1:找不到Microsoft.Agents.AI包

错误 NU1101: 无法找到包 Microsoft.Agents.AI

解决方案:

  • 确保NuGet源包含 https://api.nuget.org/v3/index.json
  • 或者使用 --prerelease 参数
  • 或者检查包名是否正确

问题2:.NET版本不兼容

错误 NETSDK1045: 当前 .NET SDK 不支持目标框架 .NET 10.0

解决方案:

  • 升级到.NET 10.0 SDK或更高版本
  • 或者在项目文件中修改TargetFramework

5.2 API密钥问题

问题3:API密钥无效

OpenAI API 返回错误: 401 Unauthorized

解决方案:

  • 检查API密钥是否正确
  • 确认OpenAI账号有可用额度
  • 如果是Azure OpenAI,检查终结点和部署名称

问题4:API速率限制

错误: 请求过多,请稍后重试

解决方案:

  • 添加重试逻辑
  • 降低请求频率
  • 考虑升级API套餐

5.3 运行时问题

问题5:内存不足

System.OutOfMemoryException

解决方案:

  • 减少并发请求
  • 使用流式响应
  • 增加系统内存

问题6:网络问题

网络连接错误或超时

解决方案:

  • 检查网络连接
  • 增加超时时间
  • 考虑使用代理

六、下一步计划

现在我们已经成功搭建了Agent Framework的.NET开发环境。在下一篇文章中,我们将:

  1. 深入了解智能体的工作原理
  2. 创建更复杂的对话场景
  3. 学习如何处理多轮对话
  4. 探索智能体的记忆功能

如果你在搭建环境过程中遇到任何问题,欢迎在评论区留言讨论。我将尽力帮助解决。

七、完整代码示例

为了让你更容易上手,这里提供完整的项目代码:

项目结构

AgentDemo/
├── AgentDemo.csproj
├── Program.cs
├── appsettings.json
├── Config/
│   └── OpenAIConfig.cs
└── README.md

完整的Program.cs

using Microsoft.Agents.AI;
using OpenAI;

// 配置
var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY");
if (string.IsNullOrEmpty(apiKey))
{
    Console.WriteLine("请设置OPENAI_API_KEY环境变量");
    return;
}

// 创建智能体
var openAIClient = new OpenAIClient(apiKey);
var agent = openAIClient
    .GetResponsesClient("gpt-4o-mini")
    .AsAIAgent(
        name: "HelloBot",
        instructions: "你是一个友好的助手,总是用热情的语气回答。"
    );

Console.WriteLine("智能体已创建!");
Console.WriteLine("尝试问一些问题(输入q退出)");
Console.WriteLine();

while (true)
{
    Console.Write("你: ");
    var question = Console.ReadLine();
    
    if (question?.ToLower() == "q")
        break;
        
    if (string.IsNullOrWhiteSpace(question))
        continue;
        
    try
    {
        var response = await agent.RunAsync(question);
        Console.WriteLine($"助手: {response}");
        Console.WriteLine();
    }
    catch (Exception ex)
    {
        Console.WriteLine($"错误: {ex.Message}");
    }
}

Console.WriteLine("再见!");

八、总结

在这篇文章中,我们完成了:

  1. 了解Agent Framework的基本概念和优势
  2. 搭建.NET开发环境,包括SDK安装和项目创建
  3. 安装Agent Framework包并配置项目
  4. 创建第一个智能体并实现基础交互
  5. 解决常见问题,确保环境正常运行

作为.NET开发者,掌握Agent Framework将为你在AI时代带来重要优势。这个框架不仅技术先进,而且与.NET生态完美融合,是企业级AI应用开发的理想选择。

在接下来的文章中,我们将深入探索智能体的更多功能,包括工具集成、工作流编排等高级特性。敬请期待!


相关资源:

下期预告:《第一个智能体:从Hello World到实际对话》

posted @ 2026-03-12 17:48  饭勺oO  阅读(3461)  评论(0)    收藏  举报