OpenAI官方开源多智能体框架「Swarm」,并不是我想要的多智能体框架PI

news/2024/10/13 14:01:00

今天早上,OpenAI实施团队的 @shyamal在Github上开源了Swarm这个OpenAI官方的多智能体框架。不得不说,OpenAI官方下场,获得的社区影响就是不一样,在微信群、朋友圈里已经出现大量的解析文章。

image

这个多智能体框架确实已经把多智能体的关键,说的很透彻了,Swarm 里面定义了两个核心「Agents」「Handoffs」,多智能体的核心是在这个Handoffs上面。简单看了下examples 之后我觉得这个多智能体框架并不够好,恰巧的是,我对云原生技术很熟,借用一下云原生的发展历程,给这个[Swarn]框架做个简要点评:从云原生容器发展的历史来看,相当于docker swarm 和 k8s, 我们需要的智能体框架应该是k8s 这样的一个框架,如果你是一位云原生技术熟悉的同学很容易就知道我在说什么了。

单Agent这块,简单封装提示词和使用函数调用就可以完成业务,OpenAI就一个 /api/chatcompletions 接口就帮我们搞定了,市场上大量的Agent 产品都停留在单Agent 上,但是「Handoffs」这块,Swarm的确做的非常优雅了。

swarm_diagram

个人观点认为他的设计还没有我们的多智能体框架好用,OpenAI的[Swarm]是docker swarm,我们的多智能体框架就是k8s,我需要的是像k8s编排容器那样编排智能体,我们刚刚在9月26日对外发布了多智能体的工业设计产品,详见:智用研究院AI Agent Foundry赋能的首个多Agent驱动的工业设计平台圆满发布:milou加速器。

多智能体的核心难题其是不同智能体之间的通信问题。怎麼传递信息,传哪些信息,这些都很重要。多个智能体协作,也只需要在必要的时候被调用起来就可以了。看我们智能体协作图:

image

当我们多智能体应用接收到用户的请求,借用Semantic kernel的设计理念叫实现“目标导向”的AI应用,这意味着它能够帮助确定目标,然后寻找实现这些目标的方法和步骤。在“目标导向”的方法中,首先需要确定目标,然后通过规划器(Planner)将目标分解为一系列需要执行的任务。这些任务可以逐个执行,以实现最终目标。这个过程对于人类来说是很自然的,但对于机器来说则相对复杂。借助LLM AI的力量,我们可以更轻松地实现这一过程。

这个接收到用户请求的智能体我们叫做路由智能体,他负责路由到具体执行任务的任务智能体。我们的智能体框架的Planner 也是类似于OpenAI的Swarm的「Handoffs」处理了交接的逻辑,我们的Planner 要比Handoffs处理的更完美。OpenAI的Swarm 目前还处于实验阶段,期望他发展成为k8s 这样的一个多智能体编排框架:

image

这个框架是python写的,大家觉得用python 写多智能体应用是好选择吗? 我个人认为做应用开发,Python并不是好选择,Python之所以用的多,是因为这一波人工智能的主导者是算法工程师,他们习惯用的编程语言是Python罢了,随着复杂场景的人工智能应用需求的增加,控制权逐步要回归到应用开发者的手中,对于复杂度高、需要长期维护的应用系统还是需要用c# 、java等业务系统开发类的编程语言来主导。

image

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

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

相关文章

【Azure Cloud Service】使用RESTAPI更新Cloud Service(Extended Support) 中所配置的证书Hq

问题描述 当根据Cloud Service (Extended Support) 文档更新证书 ( https://docs.azure.cn/zh-cn/cloud-services-extended-support/certificates-and-key-vault )时,如果遇见旧的证书(如中间证书,根证书)信息保存在Key Vault Secret中,而更新的时候,只能从Key Vault证书中…

Nuxt.js 应用中的 close 事件钩子详解

title: Nuxt.js 应用中的 close 事件钩子详解 date: 2024/10/13 updated: 2024/10/13 author: cmdragon excerpt: close 钩子是 Nuxt.js 中一个重要的生命周期事件,它在 Nuxt 实例正常关闭时被调用。当 Nuxt 应用的生命周期即将结束时,这一钩子会被触发,让开发者能够执行一…

高级语言程序设计课程第三次作业

班级链接:https://edu.cnblogs.com/campus/fzu 高级语言程序设计课程第三次个人作业:https://edu.cnblogs.com/campus/fzu/2024C/homework/13284 学号:102400204 姓名:刘嘉奕不理解为什么要将int width=strlen(name)放在下面使用才能运行%*d用于限制输出中占位宽度忘记加&am…

互联网的路由选择协议

分层次的路由选择协议 由于以下两个原因,互联网选择分层次的路由选择协议互联网的规模十分庞大,如果让每个路由器都直到所有网络应该怎样到达,处理起来的时间和资源开销太大 许多单位不愿意让外界了解自己单位的网络布局细节和采用的路由选择协议,同时还希望连接到互联网上…

008. vue组件的嵌套

页面层级# 1. main.ts 引入 App.文件 import { createApp } from vue import ./style.css import App from ./简答组件的使用/App.vuecreateApp(App).mount(#app)#2. 定义 Footer.vue <script setup lang="ts"> </script><template><div>这…

IBM服务器亮黄灯不进系统维修数据恢复

当IBM服务器亮黄灯且无法进入系统时,这通常表明服务器存在某种错误或异常状态,需要进行维修和数据恢复。以下是一些建议的解决步骤: 一、初步诊断与检查 查看错误信息: 登录服务器的管理界面或使用命令行界面,查看服务器的详细信息和警报日志。 注意查看错误代码和描述,以…

Leetcode 1203. 项目管理

1.题目基本信息 1.1.题目描述 有 n 个项目,每个项目或者不属于任何小组,或者属于 m 个小组之一。group[i] 表示第 i 个项目所属的小组,如果第 i 个项目不属于任何小组,则 group[i] 等于 -1。项目和小组都是从零开始编号的。可能存在小组不负责任何项目,即没有任何项目属于…

实验2 c语言分支与循环基础应用编程1

task1:问题1 随机数求余后结果为1,生成0397到0476中的随机数 问题2 随机数求余后结果为0,生成0001到0021中的随机数 问题3 随机生成5个不同的学号 task2: 实验3: task4:1 #include <stdio.h>2 int main()3 {4 double x,sum,max,min;5 sum = 0;6 max = 0;7…