構(gòu)建AI Agent必學(xué)的4種設(shè)計(jì)模式,一文了解 原創(chuàng)
編者按: 在構(gòu)建 AI 助手和智能體時,應(yīng)該采用怎樣的設(shè)計(jì)模式才能讓它們更加高效、可靠?
我們今天為大家?guī)淼倪@篇文章詳細(xì)介紹了四種設(shè)計(jì)模式的特點(diǎn)和應(yīng)用場景:Reflection Pattern 通過自我評估來優(yōu)化輸出和決策;Tool Use Pattern 讓 AI 能夠調(diào)用和整合外部工具;Planning Pattern 將復(fù)雜任務(wù)分解為可管理的子任務(wù);以及 Multi-Agent Collaboration Pattern 實(shí)現(xiàn)多個 AI Agent 之間的協(xié)作。
作者引用了 Andrew Ng 的觀點(diǎn),指出雖然后兩種模式富有前景,但目前的不確定性較高,而 Reflection 和 Tool Use 模式則已經(jīng)相對成熟可靠。
作者 | Lorenz Hofmann-Wellenhof
編譯 | 岳揚(yáng)
生成于 flux-dev,提示詞為(為我生成一幅水彩畫圖像,背景為米色,上面有手寫的紅色文字:“4 AI agent patterns”)
鑒于我所在的公司正積極布局語音虛擬助手領(lǐng)域[1],我覺得有必要掌握相關(guān)的基礎(chǔ)知識和了解當(dāng)前發(fā)展?fàn)顩r。
在本文中,我們將一同探討 AI agents 設(shè)計(jì)中普遍采用的一些設(shè)計(jì)模式。
01 Reflection Pattern
該設(shè)計(jì)模式要求 Agents 能夠分析和提升自身性能。Agents 通過自我評估來精細(xì)化其輸出和決策流程。
Source: Author
這是一個比較簡單的設(shè)計(jì)模式,只需少量的代碼即可實(shí)現(xiàn)。
在以下場景中,reflection 設(shè)計(jì)模式的表現(xiàn)要優(yōu)于一般的大語言模型(LLM):
- 代碼優(yōu)化
- 對話回復(fù)
請查看下圖,您將觀察到語言模型是如何在對話回復(fù)和代碼優(yōu)化示例中逐步完善其輸出的。
Source: SELF-REFINE: Iterative Refinement with Self-Feedback
02 Tool Use Pattern
Source: Author
該模式的工作流程如下:
- 功能描述:為 LLM 提供一套詳盡的工具說明,包括各工具的功能及必要的參數(shù)。
- 工具選擇:根據(jù)當(dāng)前面臨的任務(wù),LLM 將決定調(diào)用哪個工具。
- 函數(shù)調(diào)用:LLM 生成特定的字符串來激活所選工具,通常需遵循一定的格式規(guī)范(如 JSON)。
- 執(zhí)行過程:在后續(xù)處理階段,系統(tǒng)會識別這些函數(shù)調(diào)用,執(zhí)行相應(yīng)的操作,并將結(jié)果反饋給 LLM。
- 整合輸出:LLM 將工具的執(zhí)行結(jié)果融入其最終反饋中。
如果你一直關(guān)注技術(shù)動態(tài),并使用過 GPT,那你可能已經(jīng)意識到,它在處理某些任務(wù)時已經(jīng)能夠自動完成這些步驟了。
當(dāng) LLMs 能夠訪問成百上千的工具時,它們的能力將得到極大的擴(kuò)展。
比如,Gorilla[2] 使得 LLMs 能夠通過調(diào)用 API 來使用工具。面對自然語言查詢,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
然后它就會顯示 CLI 命令:
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 100 | head -n 1 > test.txt
03 Planning Pattern
該模式的工作流程如下:
- 任務(wù)拆解:LLM 扮演控制器的角色,將一項(xiàng)任務(wù)拆分為多個細(xì)小、易于處理的子任務(wù)。
- 針對每個子任務(wù),選取合適的特定模型來執(zhí)行。
- 這些特定模型完成子任務(wù)后,將結(jié)果反饋給控制器 LLM,由其整合并生成最終模型響應(yīng)。
Source: Author
HuggingGPT 就是一個運(yùn)用了 planning pattern 的實(shí)例。它將大語言模型(LLMs)與 Hugging Face[3] 平臺上豐富的模型生態(tài)系統(tǒng)相連接。
04 Multi-Agent Collaboration
Source: Author
該模式的工作流程如下:
- 特定角色智能體:每個智能體都有其特定職責(zé),比如擔(dān)任軟件工程師、產(chǎn)品經(jīng)理或設(shè)計(jì)師等角色。
- 任務(wù)細(xì)分:將復(fù)雜任務(wù)拆分為更小的子任務(wù),這些子任務(wù)可以由不同的智能體分別處理。
- 信息交流與行動協(xié)調(diào):智能體之間通過互動交流信息,并協(xié)調(diào)各自行動,共同推進(jìn)項(xiàng)目目標(biāo)的實(shí)現(xiàn)。
- 分布式解決問題:系統(tǒng)通過集合多個智能體的智慧和能力,來解決單個智能體難以應(yīng)對的復(fù)雜問題。
目前,由于技術(shù)尚未成熟,現(xiàn)實(shí)世界中多智能體系統(tǒng)的應(yīng)用并不廣泛。一個我所了解的例子是 ChatDev[4],這是一家由虛擬角色組成的軟件公司,包括 CEO、CTO 以及工程師等職位。
Andrew Ng 將“Planning”和“Multi-Agent Collaboration”模式劃分為難以預(yù)測的類型:
與“Planning”設(shè)計(jì)模式一樣,我發(fā)現(xiàn)“Multi-Agent Collaboration”的輸出質(zhì)量很難預(yù)測,尤其是當(dāng)智能體可以自由互動并且擁有多樣的工具時。相比之下,更為成熟的“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
END
本期互動內(nèi)容 ??
? 在文章提到的四種模式中,你最看好哪一種?為什么?
??文中鏈接??
[2]??https://gorilla.cs.berkeley.edu/??
[3]??https://hugginggpt.space/??
[4]??https://github.com/OpenBMB/ChatDev??
原文鏈接:
??https://lorenzhw.substack.com/p/4-ai-agent-patterns-you-should-know??
