構(gòu)建AI Agent必學(xué)的四種設(shè)計(jì)模式,一文了解
鑒于我所在的公司正積極布局語音虛擬助手領(lǐng)域[1],我覺得有必要掌握相關(guān)的基礎(chǔ)知識(shí)和了解當(dāng)前發(fā)展?fàn)顩r。
在本文中,我們將一同探討 AI agents 設(shè)計(jì)中普遍采用的一些設(shè)計(jì)模式。
1.Reflection Pattern
該設(shè)計(jì)模式要求 Agents 能夠分析和提升自身性能。Agents 通過自我評(píng)估來精細(xì)化其輸出和決策流程。
Source: Author
這是一個(gè)比較簡單的設(shè)計(jì)模式,只需少量的代碼即可實(shí)現(xiàn)。
圖片
在以下場(chǎng)景中,reflection 設(shè)計(jì)模式的表現(xiàn)要優(yōu)于一般的大語言模型(LLM):
- 代碼優(yōu)化
- 對(duì)話回復(fù)
請(qǐng)查看下圖,您將觀察到語言模型是如何在對(duì)話回復(fù)和代碼優(yōu)化示例中逐步完善其輸出的。
Source: SELF-REFINE: Iterative Refinement with Sel
2.Tool Use Pattern
Source: Author
該模式的工作流程如下:
- 功能描述:為 LLM 提供一套詳盡的工具說明,包括各工具的功能及必要的參數(shù)。
- 工具選擇:根據(jù)當(dāng)前面臨的任務(wù),LLM 將決定調(diào)用哪個(gè)工具。
- 函數(shù)調(diào)用:LLM 生成特定的字符串來激活所選工具,通常需遵循一定的格式規(guī)范(如 JSON)。
- 執(zhí)行過程:在后續(xù)處理階段,系統(tǒng)會(huì)識(shí)別這些函數(shù)調(diào)用,執(zhí)行相應(yīng)的操作,并將結(jié)果反饋給 LLM。
- 整合輸出:LLM 將工具的執(zhí)行結(jié)果融入其最終反饋中。
如果你一直關(guān)注技術(shù)動(dòng)態(tài),并使用過 GPT,那你可能已經(jīng)意識(shí)到,它在處理某些任務(wù)時(shí)已經(jīng)能夠自動(dòng)完成這些步驟了。
當(dāng) LLMs 能夠訪問成百上千的工具時(shí),它們的能力將得到極大的擴(kuò)展。
比如,Gorilla[2] 使得 LLMs 能夠通過調(diào)用 API 來使用工具。面對(duì)自然語言查詢,Gorilla 能夠找到在語義和語法上都恰當(dāng)?shù)?API 進(jìn)行調(diào)用。
借助 Gorilla,我們可以執(zhí)行超過 1,600 種(且數(shù)量不斷增長)的機(jī)器學(xué)習(xí) API 調(diào)用。
他們提供的命令行界面(CLI)讓我們能夠以自然語言完成各項(xiàng)任務(wù)。例如,我們可以
$ gorilla generate 100 random characters into a file called test.txt
然后它就會(huì)顯示 CLI 命令:
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 100 | head -n 1 > test.txt
3.Planning Pattern
該模式的工作流程如下:
- 任務(wù)拆解:LLM 扮演控制器的角色,將一項(xiàng)任務(wù)拆分為多個(gè)細(xì)小、易于處理的子任務(wù)。
- 針對(duì)每個(gè)子任務(wù),選取合適的特定模型來執(zhí)行。
- 這些特定模型完成子任務(wù)后,將結(jié)果反饋給控制器 LLM,由其整合并生成最終模型響應(yīng)。
Source: Author
HuggingGPT 就是一個(gè)運(yùn)用了 planning pattern 的實(shí)例。它將大語言模型(LLMs)與 Hugging Face[3] 平臺(tái)上豐富的模型生態(tài)系統(tǒng)相連接。
4.Multi-Agent Collaboration
Source: Author
該模式的工作流程如下:
- 特定角色智能體:每個(gè)智能體都有其特定職責(zé),比如擔(dān)任軟件工程師、產(chǎn)品經(jīng)理或設(shè)計(jì)師等角色。
- 任務(wù)細(xì)分:將復(fù)雜任務(wù)拆分為更小的子任務(wù),這些子任務(wù)可以由不同的智能體分別處理。
- 信息交流與行動(dòng)協(xié)調(diào):智能體之間通過互動(dòng)交流信息,并協(xié)調(diào)各自行動(dòng),共同推進(jìn)項(xiàng)目目標(biāo)的實(shí)現(xiàn)。
- 分布式解決問題:系統(tǒng)通過集合多個(gè)智能體的智慧和能力,來解決單個(gè)智能體難以應(yīng)對(duì)的復(fù)雜問題。
目前,由于技術(shù)尚未成熟,現(xiàn)實(shí)世界中多智能體系統(tǒng)的應(yīng)用并不廣泛。一個(gè)我所了解的例子是 ChatDev[4],這是一家由虛擬角色組成的軟件公司,包括 CEO、CTO 以及工程師等職位。
Andrew Ng 將“Planning”和“Multi-Agent Collaboration”模式劃分為難以預(yù)測(cè)的類型:
與“Planning”設(shè)計(jì)模式一樣,我發(fā)現(xiàn)“Multi-Agent Collaboration”的輸出質(zhì)量很難預(yù)測(cè),尤其是當(dāng)智能體可以自由互動(dòng)并且擁有多樣的工具時(shí)。相比之下,更為成熟的“Reflection”和“Tool Use”模式則顯得更為穩(wěn)定可靠?!?Andrew Ng
Andrew Ng 的觀點(diǎn)提示我們,目前來看,前兩種模式更可能被現(xiàn)有的生產(chǎn)系統(tǒng)所采納。
Thanks for reading!
Hope you have enjoyed and learned new things from this blog!
About the authors
Lorenz Hofmann-Wellenhof
???? Software Engineer at Cresta ????. Born and raised in Austria ????, lived in NYC, Berlin & now Dubai ???? ?? Writing about tech & life experiences