极客说|Azure AI Agent Service 结合 AutoGen/Semantic Kernel 构建多智能体解决⽅案

news2025/1/17 13:51:29

作者:卢建晖 - 微软高级云技术布道师

 「极客说」 是一档专注 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.coloradmin.cn/o/2278031.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sparkRDD教程之基本命令

作者:nchu可乐百香果 指导者:nchu-YoungDragon 1.前期准备 (1)从迅雷网盘上面下载这个项目,并且把scala,maven和java环境配置好 网盘链接: 分享文件:SparkRDD.zip 链接&#xf…

基于 Electron 应用的安全测试基础 — 提取和分析 .asar 文件

视频教程在我主页简介或专栏里 目录: 提取和分析 .asar 文件 4.1. .asar 文件提取工具 4.1.1. 为什么选择 NPX? 4.2. 提取过程 4.3. 提取 .asar 文件的重要性 4.3.1 关键词 4.3.2 执行关键词搜索 4.3.2.1 使用命令行工具“grep”进行关键词搜索 4.3.2…

C# 获取PDF文档中的字体信息(字体名、大小、颜色、样式等

在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响。然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文档。获取PDF中的字体信息可以解决这个问题,让我们能够更好地处理这些文件。…

Django框架:python web开发

1.环境搭建: (a)开发环境:pycharm (b)虚拟环境(可有可无,优点:使用虚拟环境可以把使用的包自动生成一个文件,其他人需要使用时可以直接选择导入包&#xff…

2024最新版JavaScript逆向爬虫教程-------基础篇之Chrome开发者工具学习

目录 一、打开Chrome DevTools的三种方式二、Elements元素面板三、Console控制台面板四、Sources面板五、Network面板六、Application面板七、逆向调试技巧 7.1 善用搜索7.2 查看请求调用堆栈7.3 XHR 请求断点7.4 Console 插桩7.5 堆内存函数调用7.6 复制Console面板输出 工…

联通用户管理系统(一)

#联通用户管理系统(一) 1.新建项目 如果你是windows的话,界面应该是如下的: 2.创建app python manage.py startapp app01一般情况下:我们是在pycharm的终端中运行上述指令,但是pychrm中为我们提供了工具…

【网络编程】基础知识

目录 网络发展史 局域网和广域网 局域网(LAN) 广域网(Wan) 光猫 路由器 网线 设备通信的要素 IP地址 基本概念 地址划分 特殊地址(后续编程使用) IP地址转换 字节序 网络模型 网络的体系结…

生产环境中常用的设计模式

生产环境中常用的设计模式 设计模式目的使用场景示例单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点- 日志记录器- 配置管理器工厂方法模式定义一个创建对象的接口,让子类决定实例化哪个类- 各种工厂类(如视频游戏工厂模式创…

C#读写ini配置文件保存设置参数

本示例使用设备:https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1b5P5rkA&ftt&id22173428704 [DllImport("kernel32", CharSet CharSet.Unicode)] public static extern uint GetPrivateProfileString(string lpAppName, stri…

C# .NetCore 使用 Flurl.Http 与 HttpClient 请求处理流式响应

AI对话接口采用流式返回&#xff1a; 1、使用Flurl处理返回的数据流 using Flurl; using Flurl.Http; [HttpPost] public async Task<string> GetLiushiChatLaw() { //1、请求参数&#xff0c;根据实际情况 YourModel request new YourModel();string allStr …

ResNet (Residual Network) - 残差网络:深度卷积神经网络的突破

一、引言 在计算机视觉领域&#xff0c;图像识别一直是一个核心且具有挑战性的任务。随着深度学习的发展&#xff0c;卷积神经网络&#xff08;CNN&#xff09;在图像识别方面取得了显著的成果。然而&#xff0c;随着网络深度的增加&#xff0c;出现了梯度消失或梯度爆炸等问题…

C#--在多线程中使用任务并行库(TPL)--15

目录 一.任务并行库的概念以及定义 二.主要特性 三.代码使用示例 1.最基础的Parallel.For使用方式 2.使用 ParallelOptions 来控制并行执行 3.Parallel.ForEach的使用(用于处理集合) 4.带有本地变量的并行循环(用于需要累加或统计的场景) 5.结合Task和Parallel的高级示…

python 寻找数据拐点

import numpy as np import cv2 from scipy.signal import find_peaks# 示例数据 y_data [365.63258786, 318.34824281, 258.28434505, 228.8913738, 190.87220447, 158.28434505, 129.53035144, 111.95846645, 111.95846645, 120.26517572, 140.71246006, 161.79872204, 180.…

论文笔记-arXiv2025-A survey about Cold Start Recommendation

论文笔记-arXiv2025-Cold-Start Recommendation towards the Era of Large Language Models: A Comprehensive Survey and Roadmap 面向大语言模型&#xff08;LLMs&#xff09;时代的冷启动推荐&#xff1a;全面调研与路线图1.引言2.前言3.内容特征3.1数据不完整学习3.1.1鲁棒…

设计模式03:行为型设计模式之策略模式的使用情景及其基础Demo

1.策略模式 好处&#xff1a;动态切换算法或行为场景&#xff1a;实现同一功能用到不同的算法时和简单工厂对比&#xff1a;简单工厂是通过参数创建对象&#xff0c;调用同一个方法&#xff08;实现细节不同&#xff09;&#xff1b;策略模式是上下文切换对象&#xff0c;调用…

飞机电气系统技术分析:数字样机技术引领创新

现代飞机正向着更安全、环保和经济的方向发展&#xff0c;飞机系统的设计日益复杂&#xff0c;对各子系统的性能和可靠性也提出了更高要求。作为飞机的重要组成部分&#xff0c;电气系统&#xff08;Electrical System&#xff0c;ES&#xff09;不仅负责为各类机载设备提供稳定…

(01)FreeRTOS移植到STM32

一、以STM32的裸机工程模板 任意模板即可 二、去官网上下载FreeRTOS V9.0.0 源码 在移植之前&#xff0c;我们首先要获取到 FreeRTOS 的官方的源码包。这里我们提供两个下载 链 接 &#xff0c; 一 个 是 官 网 &#xff1a; http://www.freertos.org/ &#xff0c; 另…

【Unity-Game4Automation PRO 插件】

Game4Automation PRO 插件 是一个用于 Unity 引擎 的工业自动化仿真工具&#xff0c;它提供了对工业自动化领域的仿真和虚拟调试支持&#xff0c;特别是在与工业机器人、生产线、PLC 系统的集成方面。该插件旨在将工业自动化的实时仿真与游戏开发的高质量 3D 可视化能力结合起来…

element select 绑定一个对象{}

背景&#xff1a; select组件的使用&#xff0c;适用广泛的基础单选 v-model 的值为当前被选中的 el-option 的 value 属性值。但是我们这里想绑定一个对象&#xff0c;一个el-option对应的对象。 <el-select v-model"state.form.modelA" …

mybatis延迟加载、缓存

目录 一、所需表 二、延迟加载 1.延迟加载概念 2.立即加载和延迟加载的应用场景 3.多对一延迟加载查询演示 (1)实体类 User Account (2)AccountMapper接口 (3)AccountMapper.xml (4)UserMapper接口 (5)UserMapper.xml (6)在总配置文件(mybatis-config.xml)中开启延…