华为AI-agent新作:使用自然语言生成工作流

news2025/7/14 6:45:19

论文标题

WorkTeam: Constructing Workflows from Natural Language with Multi-Agents

论文地址

https://arxiv.org/pdf/2503.22473

作者背景

华为,北京大学

动机

当下AI-agent产品百花齐放,尽管有ReAct、MCP等框架帮助大模型调用工具,可以初步实现【需求】->【任务规划】,但在实践中我们或多或少还是往会去编排工作流——单纯依靠大模型本身的任务理解与规划能力,难以生成满足复杂业务需要的执行计划;

在这里插入图片描述

于是本文设计了一种新的工作流生成框架,旨在提高大模型理解任务并调用工具的准确性

本文方法

本文提出WorkTeam框架,对原本由一个LLM规划器承担的职责进行了拆分:

一、监督agent

理解并拆分用户问题,生成解决问题的子步骤(高层计划),委派另外两个agent生成工具编排结果与可执行的工作流,并检查它们是否满足用户意图、步骤是否完整正确。如果发现问题,监督者可以要求返工,或者尝试其他解决思路​

二、协调agent

基于监督agent委派的子任务,生成工具编排结果。具体地,协调agent会规划调用两个工具:

组件筛选工具: 基于SentenceBERT嵌入模型,从组件库中检索出与当前指令最相关的一组候选组件
组件编排工具: 基于一个尺寸小一些的大模型,根据用户指令和筛选出来的候选组件,生成符合逻辑的组件调用序列

三、填充agent

专注于填充工具调用序列的参数,它也会调用两个工具:

模板查找工具: 根据编排流程中的每个组件,从工具库中提取该组件的参数说明以及一个空白参数模板​(列出了该组件所需参数和上默认值,目的是降低参数填充任务的复杂度)
参数填充工具: 根据模板查找的结果,利用LLM分析用户query和监督agent的指示,从中提取出所需要的具体信息并填入对应的参数模板,最终得到一个可执行的工作流

整个流程如下图所示:

在这里插入图片描述

这样的拆分看起来十分简单,但它其实抓住了当前单一大模型难以生成准确工作流的痛点。考虑我们在多agent系统中对大模型规划器的期望:

  1. 理解用户问题并规划解决思路;
  2. 理解工具并编排工具调用过程;
  3. 填充符合工具协议的参数;
  4. 处理不符合预期的结果

这些任务都有一定难度,并且在执行过程中一般会产生极长的上下文,揉在一起交给大模型的是一个难度很大的任务,于是导致实践中不得不像打补丁一样,添加各种人工书写的业务逻辑以解决大模型的纰漏。

这时候将上述职能拆分到多个agent中,便可以大大降低每个大模型处理任务的难度

实验结果

一、测试数据

由于目前没有公开可用的NL2Workflow基准数据集,作者构建了HW-NL2Workflow,包含3695个真实的企业工作流样本,用于训练和评估(也是此工作的贡献之一)

在这里插入图片描述

二、测试对象

实验组: 三个agent都基于Qwen2.5-72B-Instruct构建;组件编排工具和参数填充工具使用LLaMA3-8B-Instruct实现,并在上述数据集上进行了微调;组件过滤工具则使用了微调后的SentenceBERT
对照组: GPT-4o、Qwen2.5-72B-Instruct、Qwen2.5-7B-Instruct、LLaMA3-8B-Instruct(单规划器),以及一个针对NL2Workflow场景的RAG

三、测试指标

精确匹配率(EMR): 模型生成的整个工作流与参考答案完全一致的比例,包括组件的种类、顺序以及所有参数值都要匹配。这是一个严格的“全对”指标,只有工作流毫无差错地重现参考方案才算成功
流程编排准确率(AA): 只关注组件序列的正确性,忽略参数填充是否正确。如果模型选用了正确的组件并按正确顺序排列,即视为该样本在编排上是正确的,即使某些参数值有误也不影响此指标。该指标反映模型理解用户指令中逻辑步骤的能力。
参数填充准确率(PA): 评价参数层面的正确性。它统计生成的所有组件参数中,有多少比例的参数值与参考答案一致。计算方式为匹配的参数数量除以测试集中参数总数,不关心流程是否正确

四、测试结果

单Agent模型在复杂任务上表现不佳——即便是最强的GPT-4,其EMR也仅有18.1%,Qwen-72B为12.7%,而较小模型(Qwen-7B、LLaMA-8B)几乎完全失败;

检索增强的基线(引用现有工作的RAG-NL2Workflow方法)后,性能有所改善,而本文提出的WorkTeam效果大幅领先

在这里插入图片描述

总结

本文提出的workTeam方法,尽管有更大的计算开销(需要3个大尺寸LLM),但从效果上来看极大提升了LLM生成复杂工作流的准确性;

agent的拆分简单易实现,实际上就是对大模型规划器职责进行分治,不让一个LLM去负责多个高难度的长上下文任务

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

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

相关文章

MYSQL数据库语法补充

一,DQL基础查询 DQL(Data Query Language)数据查询语言,可以单表查询,也可以多表查询 语法: select 查询结果 from 表名 where 条件; 特点: 查询结果可以是:表中的字段…

在Windows搭建gRPC C++开发环境

一、环境构建 1. CMake Download CMake 2. Git Git for Windows 3. gRPC源码 git clone -b v1.48.0 https://github.com/grpc/grpc 进入源码目录 cd grpc 下载依赖库 git submodule update --init 二、使用CMake生成工程文件 三、使用vs2019编译grpc库文件 四、使用…

[Python] 企业内部应用接入钉钉登录,端内免登录+浏览器授权登录

[Python] 为企业网站应用接入钉钉鉴权,实现钉钉客户端内自动免登授权,浏览器中手动钉钉授权登录两种逻辑。 操作步骤 企业内部获得 开发者权限,没有的话先申请。 访问 钉钉开放平台-应用开发 创建一个 企业内部应用-钉钉应用。 打开应用…

用AbortController取消事件绑定

视频教程 React - 🤔 Abort Controller 到底是什么神仙玩意?看完这个视频你就明白了!💡_哔哩哔哩_bilibili AbortController的好处之一是事件绑定的函数已无需具名函数,匿名函数也可以被取消事件绑定了 //该代码2秒后点击失效…

this指针 和 类的继承

一、this指针 Human类的属性fishc与Human()构造器的参数fishc同名,但却是两个东西。使用this指针让构造器知道哪个是参数,哪个是属性。 this指针:指向当前的类生成的对象 this -> fishc fishc当前对象(…

无锡无人机驾驶证培训费用

无锡无人机驾驶证培训费用,随着科技的迅速发展,无人机在众多行业中发挥着举足轻重的作用。从影视制作到农业监测,再到物流运输与城市规划,无人机的应用场景不断扩展,因此越来越多的人开始意识到学习无人机驾驶技能的重…

我们如何思考AI创业投资

🎬 Verdure陌矣:个人主页 🎉 个人专栏: 《C/C》 | 《转载or娱乐》 🌾 种完麦子往南走, 感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持!❤️ 声明:本文作者转载,原文出自…

LabVIEW 中数字转字符串常用汇总

在 LabVIEW 编程环境里,数字与字符串之间的转换是一项极为基础且重要的操作,广泛应用于数据处理、显示、存储以及设备通信等多个方面。熟练掌握数字转字符串的方法和技巧,对编写高效、稳定的程序起着关键作用。接下来,我们将全面深…

蓝桥杯 C/C++ 组历届真题合集速刷(二)

一、0ASC - 蓝桥云课 &#xff08;单位换算&#xff09;算法代码&#xff1a; #include <iostream> using namespace std; int main() {printf("%d",L);return 0; } 二、0时间显示 - 蓝桥云课 &#xff08;单位换算&#xff09;算法代码&#xff1a; #inclu…

【接口自动化_数据格式与类型】

在HTTP接口的自动化测试中&#xff0c;请求的数据格式和内容类型是两个密切相关但又有所区别的概念。以下是它们的分类和详细说明&#xff1a; 一、数据格式 数据格式是指请求体&#xff08;Body&#xff09;中数据的组织方式&#xff0c;常见的数据格式有以下几种&#xff1…

网络带宽测速工具选择指南iperf3 nttcp tcpburn jperf使用详解

简介 本文主要介绍内网&#xff08;局域网&#xff09;与外网&#xff08;互联网&#xff09;的网络带宽测速工具下载地址、选择指南、参数对比、基本使用。 测速工具快速选择指南 测速工具下载地址 iperf 官网下载链接&#xff1a;iperf.fr/iperf-download.php该链接提供了不…

源代码保密解决方案

背景分析 随着各行各业业务数据信息化发展&#xff0c;各类产品研发及设计等行业&#xff0c;都有关乎自身发展的核心数据&#xff0c;包括业务数据、源代码保密数据、机密文档、用户数据等敏感信息&#xff0c;这些信息数据有以下共性&#xff1a; — 属于核心机密资料&…

PyCharm使用Flask启动项目后,如何修改文件,开启启动加载或是热启动,不用重启项目,直接生效。

PyCharm使用Flask启动项目后&#xff0c;每次修改完文件比如html、py文件都要重启项目才生效&#xff0c;在测试时很不方便&#xff0c;如何设置热启动&#xff0c;修改完文件后直接生效了&#xff1f; 解决方法 1、app.py文件&#xff0c;设置debugTrue。开启调试模式。 开…

SpringCloud微服务(一)Eureka+Nacos

一、认识 微服务技术对比&#xff1a; SpringCloud&#xff1a; 版本匹配&#xff1a; 二、服务拆分以及远程调用 消费者与提供者&#xff1a; Eureka&#xff1a; 搭建EurekaServer&#xff1a; Ribbon负载均衡&#xff1a; 实现原理&#xff1a; IRule&#xff1a;规则接口…

深度学习天崩开局

李沐大神的d2l包导入&#xff0c; 这玩意需要python311版本&#xff0c;我现在版本已经313了&#xff0c;作为一个天生要强的男人&#xff0c;我是坚决不向低版本低头的。 然后我就研究啊&#xff0c;各种翻资料啊&#xff0c;然后deepseek加豆包都翻烂了&#xff0c; 最终所…

【详细图文】在VScode中配置python开发环境

目录 一、下载安装VSCode 1、官网下载VSCode 2、安装VSCode 3、汉化vscode &#xff08;1&#xff09;已自动下载汉化版插件 &#xff08;2&#xff09;未自动下载汉化版插件 二、 下载安装Python 1、官网下载Python 2、安装Python &#xff08;1&#xff09;双击打开…

VR体验馆如何用小程序高效引流?3步打造线上预约+团购裂变系统

VR体验馆如何用小程序高效引流&#xff1f;3步打造线上预约团购裂变系统 一、线上预约的核心价值&#xff1a;优化体验&#xff0c;提升转化​​ ​​减少客户等待时间​​ 通过小程序预约功能&#xff0c;客户可提前选择体验时段&#xff0c;避免到店排队。数据显示&#…

使用 node.js 和 MongoDB 编写一个简单的增删改接口 demo

文章目录 前言一、环境准备二、项目结构三、环境变量四、连接数据库3.1. connect.js 文件 五、定义数据模型5.1. BannerModel.js 文件 六、实现 server 接口6.1. server.js 文件 七、服务文件7.1. app.js 文件 八、感谢 前言 Mongoose 是一个在 Node.js 环境中操作 MongoDB 数据…

【Redis】——最佳实践

目录 一.键值设计 1.如何优雅的设计key结构 2.拒绝BigKey 3.选择合适的数据结构 4.总结 二.批处理优化&#xff08;海量数据批处理&#xff09; 1.Pipeline 2.集群模式下的批处理 三.服务端优化 1.持久化配置 2.慢查询问题 1.记录慢查询 2.找到慢查询 3.集群最佳…

深度学习 Deep Learning 第20章 深度生成模型

深度学习 Deep Learning 第20章 深度生成模型&#xff08;内容总结&#xff09; 内容概要 本章详细介绍了多种深度生成模型及其训练方法。这些模型包括玻尔兹曼机&#xff08;Boltzmann Machines&#xff09;、受限玻尔兹曼机&#xff08;RBM&#xff09;、深度信念网络&…