跟着 .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小助手