Autogen智能体实战-Autogen框架介绍

文章目录

  • 一,Autogen简介
  • 二,Autogen原理
    • 1,Autogen原理图解
    • 2,拆解Autogen是如何完成绘制特斯拉股票趋势图的

这篇文章介绍一个开源的Agent框架-微软的Autogen。

一,Autogen简介

  • 官网:https://microsoft.github.io/autogen/
  • git:http://github.com/microsoft/autogen
  • discord:https://discord.com/invite/pAbnFJrkgZ

GPTs这么强大,不是挺好吗?为什么要开源的智能体Autogen框架呢?那

GPTs背靠OpenAI,的确非常强悍,但是也有弊端,弊端就在于它完全依赖于ChatGPT,而对于ChatGPT,我们只能在应用层调用其API,无法在大模型层面做一些个性化的调整,比如想让大模型在回答问题的过程中调用本地的应用。

GPTs做不到,但是Autogen框架可以做到。

Autogen可以对接商业化模型,如OpenAI;也可以对接开源的模型,比如说本地部署的KoDrama、WitherCoder、DeepSeek、通义千问。

Autogen可以简单理解为是一个GPTs的一个本地化平替。

Autogen提供一个可视化的UI界面Autogen Studio,提供模型配置、能力配置、工作流配置等能力。通过这些能力,可以实现类似GPTs的功能。

二,Autogen原理

1,Autogen原理图解

接下来,先通过官网的一个例子来理解Autogen的设计架构以及工作原理。

下图是官网提供的一个Autogen智能体架构图。

在这里插入图片描述

如上图左侧,Autogen框架默认提供两个agent:

  • 一个用户代理,User Proxy Agent
  • 一个助理代理,Assistant Agent

工作流程描述如下:

  • 用户提出一个需求
  • 用户代理接收到需求后,发给助理
  • 助理接收到需求后,进行总体规划设计,将这个需求拆解为多个步骤,规定每个步骤需要执行的任务
  • 助理将规划整体返回给用户代理
  • 用户代理按照规划按步骤执行,执行的过程中,可以持续、多次与助理进行沟通,调整任务的具体内容

2,拆解Autogen是如何完成绘制特斯拉股票趋势图的

以上图中的业务场景为例,用户要求绘制特斯拉最近一年的股票价格的变化趋势图。

在这里插入图片描述

助理对这个需求进行拆解,之后的交互过程如下:

  • 助理告知用户代理第一个步骤是执行一段代码
  • 用户代理执行助理提供的代码
  • 用户代理将执行的过程中出现错误的错误反馈给助理
  • 助理给出解决方案,提供一个脚本
  • 用户代理执行这个脚本后,重新执行代码,成功画出趋势图
  • 用户代理对结果进行反馈,需要对结果进行调整,要求绘制百分比趋势图
  • 助理接收到反馈后,调整任务内容,给出新的代码
  • 用户代理执行新的代码,绘制出满足要求的趋势图

这就是Autogen的工作原理,两个agent协同工作, 完成用户需求。

这是最简单的场景,只涉及两个智能体的交互,实际上Autogen框架支持多智能体间的复杂交互。

相当于可以创建一个公司,这个公司的工作不是由具体的物理世界的人完成的,而是由多个具有不同能力的智能体完成的,每个智能体就像是一个人一样,他们之间也可以像人一样相互写作,完成一个个复杂的任务。

后续将介绍多智能体的交换案例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43239.shtml

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

相关文章

前端页面操作防抖函数封装及应用

1、使用背景 函数防抖其实是作为一名前端同学必备的技能了,之前一直偷懒都借用页面loading或者按钮loading来实现。最近在开发微信小程序,过多的loading会带来不好的体验,同时在跳转页面的时候,不好用loading来防抖。所以就会出现…

【Unity】RPG2D龙城纷争(九)战斗系统之角色移动

更新日期:2024年7月8日。 项目源码:第五章发布(正式开始游戏逻辑的章节) 索引 简介一、角色战斗状态二、角色移动1.角色起飞(移动前)2.角色降落(移动后)3.生成移动路径4.角色移动三、整合简介 之前的章节做了这么多准备工作,现在终于要进入我们最为核心的战斗系统的编…

在idea中查看某个接口的所有实现类图

一、选中某个接口右键 ---> Diagrams ---> show Diagrams,然后就会进入一个新的 tab 页; 二、然后在出来的图上选中某个接口右键 ---> show Implementations,就会显示选中接口的所有实现类列表; 三、最后 ctrl A 全部选…

Defender Cloud Apps部署方案

目录 Defender Cloud Apps是什么? Defender Cloud Apps:保护您的云应用程序免受威胁 1. 全面的云应用发现与评估 2. 实时的用户活动监控 3. 深度的数据保护 4. 合规性管理与报告 5. 统一的安全管理 Defender Cloud Apps主要功能 1. 可见性和洞察 2. 数据保…

uniapp父页面调用子页面 组件方法记录

文章目录 导文如何点击父页面,触发子页面函数先写一个子页面的基础内容父元素 如何点击父页面,修改子页面的值先写一个子页面的基础内容父元素 导文 如何点击父页面,触发子页面函数? 如何点击父页面,修改子页面的值&am…

英区PayPal账号3分钟绑定WISE英镑的银行收款账户

正文开始,我们先登录英区PayPal账号后 有很多银行给我们选择,但是没有WISE的选项,所以我们手动输入“WISE”,然后如下图所示点击“Enter Your Bank Detailds”输入银行详细信息按钮。 然后输入我们的WISE英镑账户的收款银行信息&a…

Advanced Electronic Materials:磁性智能皮肤作为人机界面

近年来,电子可穿戴设备的普及率迅速上升,柔性可穿戴设备因其高生物相容性、功能性、适应性和低成本而在人机界面上引起了极大的关注。柔性磁性智能皮肤是这一快速发展的柔性可穿戴电子领域的一部分,为人类感知发展开辟了一条新的道路。磁感是…

SpringCloud第一篇Docker基础

文章目录 一、常见命令二、数据卷三、数据挂载四、自定义镜像五、网络 一、常见命令 Docker最常见的命令就是操作镜像、容器的命令,详见官方文档: https://docs.docker.com/ 需求: 在DockerHub中搜索Nginx镜像,查看镜像的名称 …

k8s集群如kubeadm init和kube-flannel.yam问题

查看k8s中角色内容kubectl get all (显示pod和server以及delment) 删除应用资源选择删除先删除部署查看部署和pod没了服务还在,但资源和功能以及删除,删除服务kubectl delete 服务名(部署名),get pods 获取默认空间的容…

A133 Android10 root修改

1.前言 客户应用需求root相关的权限,我们需要修改系统的权限才可以满足客户需求 2.修改方法 frameworks层:注释掉 diff --git a/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp b/frameworks/base/core/jni/com_android_internal_os_…

从资金到未来:技术融资如何重塑IT顾问在AI与网络安全的角色?

一方面是人工智能 (AI) 和机器学习 (ML) 的双引擎,另一方面是网络安全和数据泄露威胁中不断变化的威胁形势,IT 格局正在经历翻天覆地的变化。这场数字革命对 IT 顾问来说既是挑战也是机遇,但要成…

三级_网络技术_09_IP地址规划技术

1.某企业产品部的IP地址块为211.168.15.192/26,市场部的为211.168.15.160/27,财务部的为211.168.15.128/27,这三个地址块经聚合后的地址为()。 211.168.15.0/25 211.168.15.0/26 211.168.15.128/25 211.168.15.128/26 2.若某大学分配给计…

低代码开发在金融系统中的应用研究

低代码开发在金融系统中的实施策略 在金融行业,系统的稳定性、安全性以及数据的完整性是至关重要的考虑要素。因此,低代码开发策略在金融系统中的应用必须遵循一系列精细且严格的实施准则。 明确且精准的业务需求分析是基础。金融系统的复杂性意味着在开…

解决计算机中mfc140u.dll没有被指定在windows上运行

在打开电脑软件时候出现mfc140u.dll丢失或找不到mfc140u.dll怎么办?遇到这个问题相当困扰,mfc140u.dll到底是什么?为什么会出现这个情况,相信很多人都不知道,今天我给大家详细介绍一下mfc140u.dll是什么,为…

【C++修行之道】string类的使用

目录 一.C语言中的字符串 二、标准库中的string类 (了解) 2.1 string类(了解) 2.2 帮助文档阅读 三、 string类的常用接口说明 3.1 string类对象的常见构造 3.2 string类对象的容量操作 3.3 string类对象的访问及遍历操作 字符串类的简单实现 3.4 string类对象的修改…

【论文阅读笔记】ASPS: Augmented Segment Anything Model for Polyp Segmentation

1.论文介绍 ASPS: Augmented Segment Anything Model for Polyp Segmentation ASPS:用于息肉分割的扩展SAM模型 2024年 arxiv Paper Code 2.摘要 息肉分割在结直肠癌诊断中起着至关重要的作用。最近,Segment Anything Model(SAM)的出现利用其在大规模…

视频压缩软件哪个压缩最小,视频用什么软件压缩最小

在数字媒体时代,视频内容的生产与分享已成为生活常态。但随之而来的问题就是,大视频文件占用过多存储空间,上传和分享也变得不便。本文将为你揭示如何将视频压缩到最小,同时保持画质清晰。让我们一起探索吧! 下载并文件…

剪辑抽帧技巧有哪些 剪辑抽帧怎么做视频 剪辑抽帧补帧怎么操作 剪辑抽帧有什么用 视频剪辑哪个软件好用在哪里学

打破视频节奏,让作品告别平庸。抽帧剪辑可以改变视频叙事节奏,人为制造冲突、转折、卡顿的效果。这种剪辑方式,不仅可以推进剧情发展,还能吸引观众的注意力,有效防止观影疲劳。有关剪辑抽帧技巧有哪些,剪辑…

python中 is 的意义和用法

在Python中,is 是一个关键字,用于比较两个对象的身份(即它们是否是同一个对象)。如果两个对象是同一个对象,is 将返回 True;否则返回 False。这与比较两个对象的值是否相等的 操作符不同。 基本用法 a …

JavaScript——continue语句

目录 任务描述 相关知识 continue语句 编程要求 任务描述 本关任务:计算数组中所有正数或者所有负数的和。 相关知识 上一实训介绍了关键字break的使用,continue是一个和break含义十分接近的关键字,本关将详细剖析continue的用法。 co…