初试 Microsoft Agent Framework


跟着 .NET 官方博客的博文 Introducing Microsoft Agent Framework (Preview): Making AI Agents Simple for Every Developer 中的示例代码基于 Microsoft Agent Framework 创建非常简单的写博文 Agent 与多 Agent 工作流初步体验一下。

先准备好访问 GitHub 模型市场 的 PAT(Personal Access Token)。

在 GitHub 的 Settings / Developer Settings 页面,点击 Personal access tokens / Fine-grained personal access tokens,进入 PAT 管理页面,点击 Generate new token 按钮,进入创建 token 的界面,输入 taken name,在最下面的 Permissions 部分添加 Models,点击 Generate token 生成 token 并保存。

接着,创建 .NET 控制台项目

dotnet new console -o HelloWorldAgents
cd HelloWorldAgents

添加 Microsoft Agent Framework 的 nuget 包

dotnet add package Microsoft.Agents.AI --prerelease

添加访问 github models 所需的 nuget 包

dotnet add package OpenAI
dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease
dotnet add package Microsoft.Extensions.AI

然后,基于 Agent Framework 的核心抽象类 AIAgent 与聊天智能体实现类 ChatClientAgent 实现一个简单的写博文 agent,代码如下:

IChatClient chatClient =
    new ChatClient(
            "gpt-4o-mini",
            new ApiKeyCredential(Environment.GetEnvironmentVariable("GITHUB_TOKEN")!),
            new OpenAIClientOptions { Endpoint = new Uri("https://models.github.ai/inference") })
        .AsIChatClient();

AIAgent writer = new ChatClientAgent(
    chatClient,
    new ChatClientAgentOptions
    {
        Name = "博主",
        Instructions = "文字简练,浅显易懂"
    });

AgentRunResponse response = await writer.RunAsync("写一篇简短的博文介绍一下什么是Agentic AI");

Console.WriteLine(response.Text);

用之前创建的 PAT 设置 GITHUB_TOKEN 环境,并运行控制台程序

export GITHUB_TOKEN=github_pat_*****
dotnet run

运行结果如下

### 什么是Agentic AI?

Agentic AI(自主智能体)是指具有一定自主性的人工智能系统,能够独立地进行决策和行动。这种AI不仅仅执行预设的任务,还能够根据环境变化和自身学习进行调整。

#### 核心特征:

1. **自主决策**:Agentic AI能够在复杂环境中,基于当前信息和目标,做出自己的决策,而不是单纯依赖人类指令。

2. **自我学习**:通过不断吸收新的数据,Agentic AI可以优化其决策过程,提升解决问题的能力。

3. **适应性强**:这种AI可以根据不同情境或任务自动调整策略,处理各种未知或变化的情况。

#### 应用场景:

- **自动驾驶**:能够在各种道路和交通条件下自行决定行驶路线。
- **智能助理**:更好地理解用户需求,提供个性化建议。
- **机器人**:在复杂环境中(如灾后救援)独立行动,寻找受困者。

### 总结

Agentic AI代表着智能技术的未来,它将改变我们与机器的互动方式,推动更智能化和自动化的世界。随着技术的不断进步,我们期待看到这种AI在更多领域的应用。

基于 Microsoft.Agents.AI.Workflows 创建多 agent 工作流

添加所需的 nuget 包

dotnet add package Microsoft.Agents.AI.Workflows --prerelease

创建 writer agent 与 editor agent 并组成一个简单的 sequential 工作流,代码如下:

IChatClient chatClient =
    new ChatClient(
            "gpt-4o-mini",
            new ApiKeyCredential(Environment.GetEnvironmentVariable("GITHUB_TOKEN")!),
            new OpenAIClientOptions { Endpoint = new Uri("https://models.github.ai/inference") })
        .AsIChatClient();

AIAgent writer = new ChatClientAgent(
    chatClient,
    new ChatClientAgentOptions
    {
        Name = "博主",
        Instructions = "简明扼要并写上博主名称"
    });

AIAgent editor = new ChatClientAgent(
    chatClient,
    new ChatClientAgentOptions
    {
        Name = "编辑",
        Instructions = "写评语并加上编辑名称"
    });

Workflow workflow =
    AgentWorkflowBuilder
        .BuildSequential(writer, editor);

AIAgent workflowAgent = await workflow.AsAgentAsync();

AgentRunResponse workflowResponse =
    await workflowAgent.RunAsync("用一句话介绍什么是Agentic AI");

Console.WriteLine(workflowResponse.Text);

运行这个控制台程序,输出如下

Agentic AI是指能够自主执行任务、做出决策并与环境互动的人工智能系统。——博主AI小助手
这句话简洁明了地概括了Agentic AI的核心特征,非常准确。——编辑AI小助手