構建AI Agent必學的四種設計模式,一文了解
鑒于我所在的公司正積極布局語音虛擬助手領域[1],我覺得有必要掌握相關的基礎知識和了解當前發展狀況。
在本文中,我們將一同探討 AI agents 設計中普遍采用的一些設計模式。
1.Reflection Pattern
該設計模式要求 Agents 能夠分析和提升自身性能。Agents 通過自我評估來精細化其輸出和決策流程。
Source: Author
這是一個比較簡單的設計模式,只需少量的代碼即可實現。
圖片
在以下場景中,reflection 設計模式的表現要優于一般的大語言模型(LLM):
- 代碼優化
- 對話回復
請查看下圖,您將觀察到語言模型是如何在對話回復和代碼優化示例中逐步完善其輸出的。
Source: SELF-REFINE: Iterative Refinement with Sel
2.Tool Use Pattern
Source: Author
該模式的工作流程如下:
- 功能描述:為 LLM 提供一套詳盡的工具說明,包括各工具的功能及必要的參數。
- 工具選擇:根據當前面臨的任務,LLM 將決定調用哪個工具。
- 函數調用:LLM 生成特定的字符串來激活所選工具,通常需遵循一定的格式規范(如 JSON)。
- 執行過程:在后續處理階段,系統會識別這些函數調用,執行相應的操作,并將結果反饋給 LLM。
- 整合輸出:LLM 將工具的執行結果融入其最終反饋中。
如果你一直關注技術動態,并使用過 GPT,那你可能已經意識到,它在處理某些任務時已經能夠自動完成這些步驟了。
當 LLMs 能夠訪問成百上千的工具時,它們的能力將得到極大的擴展。
比如,Gorilla[2] 使得 LLMs 能夠通過調用 API 來使用工具。面對自然語言查詢,Gorilla 能夠找到在語義和語法上都恰當的 API 進行調用。
借助 Gorilla,我們可以執行超過 1,600 種(且數量不斷增長)的機器學習 API 調用。
他們提供的命令行界面(CLI)讓我們能夠以自然語言完成各項任務。例如,我們可以
$ 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
3.Planning Pattern
該模式的工作流程如下:
- 任務拆解:LLM 扮演控制器的角色,將一項任務拆分為多個細小、易于處理的子任務。
- 針對每個子任務,選取合適的特定模型來執行。
- 這些特定模型完成子任務后,將結果反饋給控制器 LLM,由其整合并生成最終模型響應。
Source: Author
HuggingGPT 就是一個運用了 planning pattern 的實例。它將大語言模型(LLMs)與 Hugging Face[3] 平臺上豐富的模型生態系統相連接。
4.Multi-Agent Collaboration
Source: Author
該模式的工作流程如下:
- 特定角色智能體:每個智能體都有其特定職責,比如擔任軟件工程師、產品經理或設計師等角色。
- 任務細分:將復雜任務拆分為更小的子任務,這些子任務可以由不同的智能體分別處理。
- 信息交流與行動協調:智能體之間通過互動交流信息,并協調各自行動,共同推進項目目標的實現。
- 分布式解決問題:系統通過集合多個智能體的智慧和能力,來解決單個智能體難以應對的復雜問題。
目前,由于技術尚未成熟,現實世界中多智能體系統的應用并不廣泛。一個我所了解的例子是 ChatDev[4],這是一家由虛擬角色組成的軟件公司,包括 CEO、CTO 以及工程師等職位。
Andrew Ng 將“Planning”和“Multi-Agent Collaboration”模式劃分為難以預測的類型:
與“Planning”設計模式一樣,我發現“Multi-Agent Collaboration”的輸出質量很難預測,尤其是當智能體可以自由互動并且擁有多樣的工具時。相比之下,更為成熟的“Reflection”和“Tool Use”模式則顯得更為穩定可靠?!?Andrew Ng
Andrew 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