極客說|Azure AI Agent Service 結合 AutoGen/Semantic Kernel 構建多智能體解決?案

作者:盧建暉 -?微軟高級云技術布道師

?「極客說」 是一檔專注 AI 時代開發者分享的專欄,我們邀請來自微軟以及技術社區專家,帶來最前沿的技術干貨與實踐經驗。在這里,您將看到深度教程、最佳實踐和創新解決方案。關注「極客說」,與行業頂尖專家一起探索科技的無限可能!

在 Microsoft Ignite 2024 上,微軟發布了 Azure AI Agent Service,我們可以在 Azure AI Foundry 上通過 Azure AI Foundry SDK 及 Azure AI Agent Service 的 UI 直接構建基于智能業務的 AI Agent。

與 Azure AI Assistant API 相比,Azure AI Agent Service 可以讓我們擁有更靈活的模型,如可以直接調? Llama 3、Mistral 以及 Cohere 等開源?模型,有更好的企業功能接入(Microsoft Fabric、Microsoft SharePoint、Azure AI Search、Microsoft Bing 等),更強的企業安全機制以及數據存儲?式。

目前 Azure AI Agent Service 處于 Public Preview 階段,開發者可以通過 Azure AI Foundry SDK,使用 Python 或者 C# 快速構建基于 Azure AI Agent Service 的智能體;企業則基于業務擁有不同的 AI Agents。

那在?作流中應該如何組合這些 AI Agents 呢?我們就需要通過 AutoGen 或者 Semantic Kernel 對這三個 AI Agents 進?編排。

在 Azure AI Foundry SDK 創建 AI Agent 的技巧


建議使用以下模板在 Azure AI Foundry 中創建項?:

https://portal.azure.com/#create/Microsoft.Template

注意

1. 目前 Azure AI Agent Service 處于 Public Preview 階段,所以我們需要在特定區域和模型中使?。

當然你也可以使? Azure AI Foundry model catalog 中的:

  • Llama 3.1-70B-instruct

  • Mistral-large-2407

  • Cohere command R+

2. Azure AI Foundry SDK 現在?持 Python / C# 的版本

安 裝 Python 的 Azure AI Foundry SDK

pip install azure-ai-projects
pip install azure-identity

安 裝 .NET 的 Azure AI Foundry SDK

dotnet add package Azure.AI.Projects --version 1.0.0-beta.1

如果你希望了解如何結合 Azure AI Foundry SDK 創建 AI Agent ,建議參考:

https://learn.microsoft.com/en-us/azure/ai-services/agents/quickstarticon-default.png?t=O83Ahttps://learn.microsoft.com/en-us/azure/ai-services/agents/quickstart

下?介紹?個場景,如?個 Blog 創作場景,我們可以圍繞該創作場景定義三個 AI Agent Service 服務:內容搜集的 Agent、編寫技能的 Agent、以及保存內容功能的 Agent,然后通過 AutoGen / Semantic Kernel 對 AI?Agent 進?編排。

Azure AI Agent Service 定義單智能體


Azure AI Agent Service 更多是對特定智能任務的單 Agent 進?定義,比如你可以定義?個數據挖掘的智能體,也可以定義?個鏈接 Azure Function 的智能體,更可以利? Function Calling 接入第三?郵件發送服務的智能體等。如上述場景談及的智能體我們可以這樣定義:

🔍 內容搜集的 Agent

內容搜集的 Agent 主要通過搜索引擎來搜索 Blog 提綱的內容,從?為 Blog 添加更詳細的內容。Azure AI Agent Service 提供了 Grounding with Bing 服務進行擴展,你可以非常簡單地接入 Bing?搜索中。

具體實現:

  • Python

    https://github.com/kinfey/MultiAIAgent/blob/main/03.AzureAIAgentWithAutoGen01.ipynbicon-default.png?t=O83Ahttps://github.com/kinfey/MultiAIAgent/blob/main/03.AzureAIAgentWithAutoGen01.ipynb

  • C#

    https://github.com/kinfey/MultiAIAgent/blob/main/08.AzureAIAgentWithSK01.ipynbicon-default.png?t=O83Ahttps://github.com/kinfey/MultiAIAgent/blob/main/08.AzureAIAgentWithSK01.ipynb

📖編寫技能的 Agent

編寫技能的 Agent 可以直接通過?LLM 完成編寫的內容。

🛠 保存內容功能的 Agent

保存內容功能的 Agent 通過 Azure AI Agent Service 的 code-interpreter 完成內容保存?作。

具體實現:

  • Python

    https://github.com/kinfey/MultiAIAgent/blob/main/01.AzureAIAgentCode.ipynbicon-default.png?t=O83Ahttps://github.com/kinfey/MultiAIAgent/blob/main/01.AzureAIAgentCode.ipynb

  • C#

    https://github.com/kinfey/MultiAIAgent/blob/main/05.AzureAIAgentCodedotNET.ipynbicon-default.png?t=O83Ahttps://github.com/kinfey/MultiAIAgent/blob/main/05.AzureAIAgentCodedotNET.ipynb

利? AutoGen / Semantic Kernel 編排多智能體


在企業場景中,我們擁有不同的單智能體,可以協助我們完成不同的工作,同時,基于不同任務又可以組合不同的智能體來完成相關?作。如需要發送 Blog,我們可以將上述的三個智能體進?組合來完成任務。AutoGen / Semantic Kernel 都支持智能體的編排?作,我們可以利? AutoGen 中的 Function Calling / Semantic Kerenl Plugin 進行 Azure AI?Agent Service 的綁定來完成上述三個智能體的編排?作。

以下是具體架構:

AutoGen 的編排?式

示例:

https://github.com/kinfey/MultiAIAgent/blob/main/04.AzureAIAgentWithAutoGen02.ipynbicon-default.png?t=O83Ahttps://github.com/kinfey/MultiAIAgent/blob/main/04.AzureAIAgentWithAutoGen02.ipynb

Semantic Kernel 的編排?式

通過編排多智能體,我們可以非常輕松地完成不同需要的?作流,這?是兩個不同的指令,都可以完成博客的編寫?作。

示例:

https://github.com/kinfey/MultiAIAgent/blob/main/09.AzureAIAgentWithSK02.ipynbicon-default.png?t=O83Ahttps://github.com/kinfey/MultiAIAgent/blob/main/09.AzureAIAgentWithSK02.ipynb

多智能體的結合可以幫助我們快速地完成不同的任務。隨著 LLM / SLM 能?的增強,也會在企業業務功能上有更好的融合。AI Agent as a Service 將會到來,結合多智能體幫助企業更輕松地構建和部署智能 AI 代理,更快邁進真正的?AI 時代。

相關資源

了解 Azure AI Agent Service?icon-default.png?t=O83Ahttps://learn.microsoft.com/en-us/azure/ai-services/agents/

學習 Microsoft AutoGen?icon-default.png?t=O83Ahttps://microsoft.github.io/autogen/dev/

學習 Microsoft Semantic Kernel?icon-default.png?t=O83Ahttps://github.com/microsoft/semantic-kernel

資料推薦


智能 GitHub Copilot 副駕駛? 提示和技巧icon-default.png?t=O83Ahttps://info.microsoft.com/GC-DevOps-CNTNT-FY25-08Aug-23-Smart-GitHub-Copilot-Tips-and-Tricks-SRGCM12801_LP01-Registration---Form-in-Body.html

Azure OpenAI 生成式人工智能白皮書icon-default.png?t=O83Ahttps://info.microsoft.com/GC-AzureAI-CNTNT-FY25-08Aug-21-Azure-OpenAI-Generative-Artificial-Intelligence-White-Paper-SRGCM12789_LP01-Registration---Form-in-Body.html

利用 AI 和 DevOps 重新定義開發人員體驗icon-default.png?t=O83Ahttps://info.microsoft.com/ww-landing-redefining-the-developer-experience.html?lcid=ZH-CN

SAP on Microsoft Cloudicon-default.png?t=O83Ahttps://info.microsoft.com/GC-SAP-CNTNT-FY25-08Aug-27-SAP-on-Microsoft-Cloud-SRGCM12804_LP01-Registration---Form-in-Body.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65954.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65954.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65954.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【集成學習】Boosting算法詳解

文章目錄 1. 集成學習概述2. Boosting算法詳解3. Gradient Boosting算法詳解3.1 基本思想3.2 公式推導 4. Python實現 1. 集成學習概述 集成學習(Ensemble Learning)是一種通過結合多個模型的預測結果來提高整體預測性能的技術。相比于單個模型&#xf…

小米vela系統(基于開源nuttx內核)——如何使用信號量進行PV操作

如何使用信號量進行PV操作 前言信號量1. 信號量簡介2. NuttX中信號量的創建與使用2.1 Nuttx信號量的初始化和銷毀2.2 信號量的等待和發布 3. 信號量的實際應用:下載任務示例3.1 實際代碼3.2 代碼說明3.3 執行說明 4. 信號量的優勢與應用場景5. 常見應用場景&#xf…

CMake學習筆記(2)

1. 嵌套的CMake 如果項目很大,或者項目中有很多的源碼目錄,在通過CMake管理項目的時候如果只使用一個CMakeLists.txt,那么這個文件相對會比較復雜,有一種化繁為簡的方式就是給每個源碼目錄都添加一個CMakeLists.txt文件&#xff…

旅游網站設計與實現

文末附有完整項目代碼 在當今數字化時代,旅游網站成為人們獲取旅游信息的重要途徑。本文將詳細介紹旅游網站的設計與實現,讓你輕松了解其中的技術奧秘! 一、項目背景 隨著社會經濟的發展,人們對精神消費愈發重視,旅游…

【C++】size_t究竟是什么?全面解析與深入拓展

博客主頁: [小????????] 本文專欄: C 文章目錄 💯前言💯一、什么是size_t?為什么需要size_t? 💯二、size_t的特性與用途1. size_t是無符號類型示例: 2. size_t的跨平臺適應性示例對…

【物流管理系統 - IDEAJavaSwingMySQL】基于Java實現的物流管理系統導入IDEA教程

有問題請留言或私信 步驟 下載項目源碼:項目源碼 解壓項目源碼到本地 打開IDEA 左上角:文件 → 新建 → 來自現有源代碼的項目 找到解壓在本地的項目源代碼文件,點擊確定,根據圖示步驟繼續導入項目 查看項目目錄&#xff…

ssh2-sftp-client和ssh2配合使用js腳本快速部署項目到服務器

有時候因為服務器不能實現github或者gitlab的自動部署服務,所以就需要使用腳本來實現自動部署,可以省時省力,一勞永逸。這里就使用ssh2-sftp-client和ssh2來實現,即便是需要sudo權限,也是可以的。 1.先將本地打包后的…

深度解析Linux中的調試器gdb/cgdb的使用

Linux下我們編譯好的代碼,無法直接調試 gcc/g默認的工作模式是realse模式 程序要調試的話,必須是debug模式,也就是說編譯的時候要加-g選項 gdb攜帶調試信息的exe 我們現在在文件夾里面創建一個文件lesson11 里面創建一個累加的代碼&…

【Maui】動態菜單實現(綁定數據視圖)

前言 .NET 多平臺應用 UI (.NET MAUI) 是一個跨平臺框架,用于使用 C# 和 XAML 創建本機移動和桌面應用。 使用 .NET MAUI,可從單個共享代碼庫開發可在 Android、iOS、macOS 和 Windows 上運行的應用。 .NET MAUI 是一款開放源代碼應用,是 X…

Bash語言的語法糖

Bash語言的語法糖 引言 在現代編程語言中,“語法糖”是一個非常常見的術語,它指的是那些使代碼更加易讀、易寫的語法特性。盡管這些特性并不改變語言的功能,但它們能顯著提升開發者的編程體驗。在眾多編程語言中,Bash&#xff0…

linux---Nginx詳細教程(包含安裝,網站部署)

Nginx是一個高性能的HTTP和反向代理服務器,也可以用作郵件代理服務器,其以占有內存少、并發能力強、穩定性高、豐富的功能集、低系統資源消耗而聞名。以下是對Nginx的詳細教程: 一、Nginx簡介 Nginx由俄羅斯人開發,第一個公開版…

RNN之:LSTM 長短期記憶模型-結構-理論詳解-及實戰(Matlab向)

0.前言 遞歸!循環神經網絡Recurrent Neural Network 循環神經網絡(又稱遞歸神經網絡,Recurrent Neural Network,RNN)。是一種用于處理序列數據的神經網絡結構,具有記憶功能,能夠捕捉序列中的時…

泛目錄和泛站有什么差別

啥是 SEO 泛目錄? 咱先來說說 SEO 泛目錄是啥。想象一下,你有一個巨大的圖書館,里面的書架上擺滿了各種各樣的書,每一本書都代表著一個網頁。而 SEO 泛目錄呢,就像是一個超級圖書管理員,它的任務就是把這些…

初識@ffmpeg/ffmpeg庫

前言 FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,并且能夠利用它們來創建一個新的流媒體格式的自由軟件項目,它被廣泛應用在視頻處理、音頻處理以及直播領域。其中,@ffmpeg/ffmpeg 是一個將 FFmpeg 編譯為 WebAssembly(WASM)的庫,可支持幾乎所有的音視頻格式。 安裝…

【圖像去噪】論文復現:反向擴散中加入MAP將擴散模型從高斯去噪推廣到真實去噪!DiffusionVI的Pytorch源碼復現,跑通源碼,梳理理論,單卡可執行!

請先看【專欄介紹文章】:【圖像去噪(Image Denoising)】關于【圖像去噪】專欄的相關說明,包含適配人群、專欄簡介、專欄亮點、閱讀方法、定價理由、品質承諾、關于更新、去噪概述、文章目錄、資料匯總、問題匯總(更新中) 完整代碼和訓練好的模型權重文件下載鏈接見本文底…

Windows 藍牙驅動開發-簡介

藍牙(英語:Bluetooth)是一種無線通信技術標準,用來讓固定與移動設備,在短距離間交換資料,以形成個人局域網(PAN)。其使用短波特高頻(UHF)無線電波,經由2.4至2.485 GHz的ISM頻段來進行通信。1994年由電信商愛立信(Erics…

【Vue】全局/局部組件使用流程(Vue2為例)

全局組件和局部組件區別 如何使用 全局組件:全局注冊后,可以在任意頁面中直接使用。局部組件:在頁面中需要先導入子組件路徑,注冊組件才能使用。 適用場景 全局組件:適用于高頻使用的組件,如導航欄、業…

【Pytorch實用教程】PyTorch 中如何輸出模型參數:全面指南

文章目錄 PyTorch 中如何輸出模型參數:全面指南1. 為什么需要輸出模型參數?2. PyTorch 中輸出模型參數的方法2.1 使用 `model.parameters()` 輸出所有參數2.2 使用 `model.named_parameters()` 輸出參數名稱和值2.3 使用 `model.state_dict()` 輸出模型的參數字典2.4 輸出特定…

vscode vue 自動格式化

vscode vue 自動格式化 安裝Prettier和Vetur插件 選擇設置,并且轉到編輯文件。增加如下內容。 {"editor.formatOnSave": true,"editor.defaultFormatter": "esbenp.prettier-vscode","[vue]": {"editor.defaultFor…

1、docker概念和基本使用命令

docker概念 微服務:不再是以完整的物理機為基礎的服務軟件,而是借助于宿主機的性能。以小量的形式,單獨部署的應用。 docker:是一個開源的應用容器引擎,基于go語言開發的,使用時apache2.0的協議。docker是…