華為AI-agent新作:使用自然語言生成工作流

論文標題

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.pswp.cn/web/75049.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75049.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75049.shtml

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

相關文章

關于軟件bug描述

軟件缺陷(Defect),常常又被叫做Bug。 所謂軟件缺陷,即為計算機軟件或程序中存在的某種破壞正常運行能力的問題、錯誤,或者隱藏的功能缺陷。缺陷的存在會導致軟件產品在某種程度上不能滿足用戶的需要。IEEE729-1983對缺…

【元表 vs 元方法】

元表 vs 元方法 —— 就像“魔法書”和“咒語”的關系 1. 元表(Metatable):魔法書 是什么? 元表是一本**“規則說明書”**,它本身是一個普通的 Lua 表,但可以綁定到其他表上,用來定義這個表應該…

Spring Boot 通過全局配置去除字符串類型參數的前后空格

1、問題 避免前端輸入的字符串參數兩端包含空格,通過統一處理的方式,trim掉空格 2、實現方式 /*** 去除字符串類型參數的前后空格* author yanlei* since 2022-06-14*/ Configuration AutoConfigureAfter(WebMvcAutoConfiguration.class) public clas…

C語言核心知識點整理:結構體對齊、預處理、文件操作與Makefile

目錄 結構體的字節對齊預處理指令詳解文件操作基礎Makefile自動化構建總結 1. 結構體的字節對齊 字節對齊原理 內存對齊:CPU訪問內存時,對齊的地址能提高效率。操作系統要求變量按類型大小對齊。對齊規則: 每個成員的起始地址必須是min(成…

VBA+BOS單據+插件,解決計劃任務跟蹤的問題之二:導入ERP

第二步,就是要將拆分好的任務導入ERP了 1、將建一個BOS單據叫“任務池”,大概是這樣的 然后在拆分工具中進行導數據,點擊“數據導出準備”,跳轉到“導入ERP”界面,然后點“獲取數據”,將拆分好的數據轉過來…

使用uglifyjs對靜態引入的js文件進行壓縮

前言 因為有時候js文件沒有npm包,或者需要修改,只能引入靜態的js,那么這個時候就可以對js進行壓縮了。我其實想通過vite、webpack等插件進行壓縮的,可是他都不能定位到public目錄下面的文件,所以我只能自己壓縮了。編…

藍橋杯 web 水果拼盤 (css3)

做題步驟: 看結構:html 、css 、f12 分析: f12 查看元素,你會發現水果的高度剛好和拼盤的高度一樣,每一種水果的盤子剛好把頁面填滿了,所以咱們就只要讓元素豎著排列,加上是豎著,排不下的換行…

差分音頻轉單端音頻單電源方案

TI LMV321介紹 TI的LMV321是單通道的低壓軌到軌輸出運算放大器,適用于需要低工作壓、節省空間和低成本的應用。 其中,芯片設計中的軌到軌輸出(Rail-to-Rail Output) 是指通過特定的電路設計,使芯片(如運算…

Pandas 庫

Pandas 是一個開源的數據分析和數據處理庫,它是基于 Python 編程語言的。 Pandas 提供了易于使用的數據結構和數據分析工具,特別適用于處理結構化數據,如表格型數據 Pandas 是數據科學和分析領域中常用的工具之一,它使得用戶能夠…

Vue 3 的<Teleport>功能與用法

Vue 3 的 <Teleport> 功能與用法 1. 基本用法 <Teleport> 是 Vue 3 的一個內置組件&#xff0c;允許將組件的內容渲染到 DOM 中的任意位置&#xff0c;而不改變其邏輯結構。以下是基本用法&#xff1a; 定義目標 DOM 元素&#xff1a;<div id"teleport-…

MySQL隨機獲取記錄之方法(The Method of Randomly Obtaining Records in MySQL)

MySQL中如何隨機獲取一條記錄 隨機獲取一條記錄是在數據庫查詢中常見的需求&#xff0c;特別在需要展示隨機內容或者隨機推薦的場景下。在 MySQL 中&#xff0c;有多種方法可以實現隨機獲取一條記錄&#xff0c;每種方法都有其適用的情況和性能特點。在本文中&#xff0c;我們將…

synchronized鎖升級詳解

synchronized鎖升級詳解 synchronized是Java中實現線程同步的關鍵字&#xff0c;它在JVM內部實現了鎖的升級機制&#xff0c;從偏向鎖到輕量級鎖再到重量級鎖&#xff0c;這種優化是為了減少鎖操作帶來的性能開銷。 1. 鎖的四種狀態 Java對象頭中的Mark Word會記錄鎖的狀態&…

C++函數如何返回多個參數

在編程中&#xff0c;我們經常會遇到需要函數返回多個值的場景。雖然 C 函數不能直接返回多個參數&#xff0c;但通過一些間接的方法&#xff0c;我們可以輕松實現這一需求。本文將詳細介紹幾種常見的實現方式&#xff0c;并分析它們的優缺點和適用場景。 1. 引言 在 C 中&…

最新版PhpStorm超詳細圖文安裝教程,帶補丁包(2025最新版保姆級教程)

目錄 前言 一、PhpStorm最新版下載 二、PhpStorm安裝 三、PhpStorm補丁 四、運行PhpStorm 前言 PhpStorm 是 JetBrains 公司推出的 專業 PHP 集成開發環境&#xff08;IDE&#xff09;&#xff0c;專為提升 PHP 開發效率設計。其核心功能包括智能代碼補全、實時語法錯誤檢…

【雜談】Godot4.4導出到Android平臺(正式導出)

學博而后可約&#xff0c;事歷而后知要。 目錄 一、準備二、Gradle構建三、配置Java SDK四、配置Android SDK五、配置密鑰 一、準備 本文在前文【雜談】Godot4.4導出到安卓平臺&#xff08;調試導出&#xff09;的基礎上&#xff0c;進行正式導出。調試導出并不是真正的編譯導…

隔行換色總結

功能效果展示&#xff1a; 第一種思路&#xff1a; 使用數組&#xff0c;將數組的內容渲染到頁面上&#xff0c;序號也就是將數組的下標輸出到第一個td上&#xff0c;將數組的內容輸出到第二個td上&#xff0c;&#xff08;使用拼接字符串&#xff09; 具體操作&#xff1a; …

使用文本翻譯API打破語言障礙

一、引言 在當今全球化的商業環境中&#xff0c;企業面臨著前所未有的語言挑戰。無論是出口商品、引進技術&#xff0c;還是與國際客戶進行交流&#xff0c;語言障礙始終是一個亟待解決的問題。文本翻譯API作為一款高效、穩定的工具&#xff0c;支持多種語言的翻譯&#xff0c…

【unity游戲開發入門到精通——動畫篇】Animator2D序列幀動畫

考慮到每個人基礎可能不一樣&#xff0c;且并不是所有人都有同時做2D、3D開發的需求&#xff0c;所以我把 【零基礎入門unity游戲開發】 分為成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】&#xff1a;主要講解C#的基礎語法&#xff0c;包括變量、數據類型、運算符、…

深入解析 Jenkins Agent 的 .jnlp 啟動文件

&#x1f9e9; 深入解析 Jenkins Agent 的 .jnlp 啟動文件 在 Jenkins 中&#xff0c;通過 JNLP&#xff08;Java Network Launch Protocol&#xff09;方式連接 Agent 是一種常見且靈活的方式。你可能曾見過類似這樣的命令&#xff1a; java -jar agent.jar -jnlpUrl file:/…

定積分__

practice makes perfect 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 若被積函數在積分區間上是可積的&#xff0c;那么變限積分函數在這個區…