智能體是什么?全面深度了解AI智能體(AI Agents)
智能體是什么?
智能體的英文是Agent,AI業(yè)界對(duì)智能體提出了各種定義。2025年智能體被定義為:一種解決通用問(wèn)題的工作流。從軟件工程的角度看來(lái),智能體是一種基于大語(yǔ)言模型的,具備規(guī)劃思考能力、記憶能力、使用工具函數(shù)的能力,能自主完成給定任務(wù)流程的計(jì)算機(jī)機(jī)器人。

如圖1所示,在基于LLM的智能體中,LLM的充當(dāng)著智能體的“大腦”的角色,同時(shí)還有3個(gè)關(guān)鍵部分:
- 規(guī)劃(Planning)?: 智能體會(huì)把大型任務(wù)分解為子任務(wù),并規(guī)劃執(zhí)行任務(wù)的流程;智能體會(huì)對(duì)任務(wù)執(zhí)行的過(guò)程進(jìn)行思考和反思,從而決定是繼續(xù)執(zhí)行任務(wù),或判斷任務(wù)完結(jié)并終止運(yùn)行。
- 記憶(Memory): 短期記憶,是指在執(zhí)行任務(wù)的過(guò)程中的上下文,會(huì)在子任務(wù)的執(zhí)行過(guò)程產(chǎn)生和暫存,在任務(wù)完結(jié)后被清空。長(zhǎng)期記憶是長(zhǎng)時(shí)間保留的信息,一般是指外部知識(shí)庫(kù),通常用向量數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)和檢索。
- 工具使用(Tool use)?為智能體配備工具API,比如:計(jì)算器、搜索工具、代碼執(zhí)行器、數(shù)據(jù)庫(kù)查詢工具等。有了這些工具API,智能體就可以是物理世界交互,解決實(shí)際的問(wèn)題。
大語(yǔ)言模型 vs 人類
大語(yǔ)言模型很強(qiáng)大,就像人類的大腦一樣擁有思考的能力。如果人類只有大腦,沒有四肢,沒有工具,是沒辦法與世界互動(dòng)的。如果我們能給大模型配備上四肢和工具呢?大模型是不是就會(huì)打破次元壁,從數(shù)字世界走向現(xiàn)實(shí)世界,與現(xiàn)實(shí)世界實(shí)現(xiàn)夢(mèng)幻聯(lián)動(dòng)呢?
大語(yǔ)言模型(后文將用LLM指代)可以接受輸入,可以分析&推理、可以輸出文字\代碼\媒體。然而,其無(wú)法像人類一樣,擁有規(guī)劃思考能力、運(yùn)用各種工具與物理世界互動(dòng),以及擁有人類的記憶能力。
- LLM:接受輸入、思考、輸出
- 人類:LLM(接受輸入、思考、輸出)+?記憶?+?工具?+?規(guī)劃
如果我們給LLM配備上:與物理世界互動(dòng)的工具、記憶能力、規(guī)劃思考能力。LLM 是否就可以像人類一樣,能夠自主思考并規(guī)劃完成任務(wù)的過(guò)程,能檢索記憶,能使用各種工具提高效率,最終完成某個(gè)任務(wù)。
智能體能做什么?
相信看到這里,我們已經(jīng)對(duì)智能體有了基本的認(rèn)知。如果你還覺得智能體這個(gè)概念有點(diǎn)抽象,沒關(guān)系,現(xiàn)在我們來(lái)點(diǎn)好玩的,一起來(lái)看看智能體能玩出什么花樣?
智能體之調(diào)研員
調(diào)研員智能體,可以根據(jù)用戶的調(diào)研問(wèn)題,從搜索引擎上搜索資料并總結(jié),然后生成調(diào)研報(bào)告。 這里使用MetaGPT框架中的調(diào)研員?示例來(lái)展示一個(gè)智能體的實(shí)際作用及其構(gòu)成。
運(yùn)行一下試試
- 輸入調(diào)研課題:調(diào)研特斯拉FSD和華為ADS這兩個(gè)自動(dòng)駕駛系統(tǒng)
~ python3 -m metagpt.roles.researcher "特斯拉FSD vs 華為ADS"
- 智能體執(zhí)行調(diào)研



- 輸出調(diào)研報(bào)告
metaGPT生成并保存了調(diào)研報(bào)告
文件:特斯拉FSD vs 華為ADS.md

拆解調(diào)研員
調(diào)研員智能體構(gòu)成
回到前文所說(shuō)的,如果僅有LLM這個(gè)大腦,是無(wú)法完成整個(gè)調(diào)研流程的。在調(diào)研員智能體中,為L(zhǎng)LM大腦配備了規(guī)劃、工具、記憶的能力,使得他能獨(dú)立完成調(diào)研任務(wù),下面列出其基本構(gòu)成,構(gòu)成分三部分:角色、工具、記憶。在角色中,會(huì)注冊(cè)各種工具,定義思考規(guī)劃的方式,以及本身具備的短期記憶能力。
類型 | 名稱 | 說(shuō)明 |
---|---|---|
角色 | Researcher | 調(diào)研員智能體,從網(wǎng)絡(luò)進(jìn)行搜索并總結(jié)報(bào)告。通過(guò)LLM提示工程(Prompt Engineering),讓LLM以調(diào)研員的角色去規(guī)劃和拆分任務(wù),使用提供的工具,完成調(diào)研過(guò)程,生成調(diào)研報(bào)告。在定義角色時(shí),會(huì)為其注冊(cè)下面列出的各項(xiàng)工具 |
工具 | CollectLinks | 問(wèn)題拆解,從搜索引擎進(jìn)行搜索,并獲取Url地址列表。該工具基于LLM提示工程和搜索引擎實(shí)現(xiàn),其功能如下:(1)將問(wèn)題拆分成多個(gè)適合搜索的子問(wèn)題(基于LLM提示工程)。(2)通過(guò)搜索引擎搜索子問(wèn)題。(3)篩選出與調(diào)研問(wèn)題有關(guān)的Url,并根據(jù)網(wǎng)站可靠性對(duì)url列表進(jìn)行排序(基于LLM提示工程) |
工具 | WebBrowseAndSummarize | 瀏覽網(wǎng)頁(yè)并總結(jié)網(wǎng)頁(yè)內(nèi)容。由兩個(gè)工具組成:瀏覽網(wǎng)頁(yè)和總結(jié)網(wǎng)絡(luò)內(nèi)容。(1)瀏覽網(wǎng)頁(yè)是通過(guò)封裝的 WebBrowserEngine 工具訪問(wèn)搜索引擎實(shí)現(xiàn)的。(2)總結(jié)搜索結(jié)果是通過(guò)LLM提示工程實(shí)現(xiàn)。 |
工具 | ConductResearch | 生成調(diào)研報(bào)告?;贚LM提示工程的工具,該工具會(huì)整合 WebBrowseAndSummarize 的輸出給到LLM,讓LLM生成調(diào)研報(bào)告 |
記憶 | short-term memory | 短期記憶能力,metaGPT框架封裝了短期記憶的能力,用于在任務(wù)執(zhí)行周期內(nèi)保存和檢索上下文記憶,如CollectLinks 和 WebBrowseAndSummarize 等工具的執(zhí)行結(jié)果 |
圖解調(diào)研員智能體

智能體的關(guān)鍵構(gòu)成

智能體 如上圖所示,在基于LLM的智能體中,LLM的充當(dāng)著智能體的“大腦”的角色,同時(shí)還有3個(gè)關(guān)鍵部分:規(guī)劃(Planning)、記憶(Memory)、工具使用(Tool use)
規(guī)劃(Planing)
規(guī)劃,可以為理解觀察和思考。如果用人類來(lái)類比,當(dāng)我們接到一個(gè)任務(wù),我們的思維模式可能會(huì)像下面這樣:
- 我們首先會(huì)思考怎么完成這個(gè)任務(wù)。
- 然后我們會(huì)審視手頭上所擁有的工具,以及如何使用這些工具高效地達(dá)成目的。
- 我們會(huì)把任務(wù)拆分成子任務(wù)(就像我們會(huì)使用TAPD做任務(wù)拆分)。
- 在執(zhí)行任務(wù)的時(shí)候,我們會(huì)對(duì)執(zhí)行過(guò)程進(jìn)行反思和完善,吸取教訓(xùn)以完善未來(lái)的步驟
- 執(zhí)行過(guò)程中思考任務(wù)何時(shí)可以終止
這是人類的規(guī)劃能力,我們希望智能體也擁有這樣的思維模式,因此可以通過(guò)LLM提示工程,為智能體賦予這樣的思維模式。在智能體中,最重要的是讓LLM具備這以下兩個(gè)能力:
子任務(wù)分解
通過(guò)LLM使得智能體可以把大型任務(wù)分解為更小的、更可控的子任務(wù),從而能夠有效完成復(fù)雜的任務(wù)。
思維鏈(Chain of Thoughts, CoT)
思維鏈已經(jīng)是一種比較標(biāo)準(zhǔn)的提示技術(shù),能顯著提升LLM完成復(fù)雜任務(wù)的效果。當(dāng)我們對(duì)LLM這樣要求「think step by step」,會(huì)發(fā)現(xiàn)LLM會(huì)把問(wèn)題分解成多個(gè)步驟,一步一步思考和解決,能使得輸出的結(jié)果更加準(zhǔn)確。這是一種線性的思維方式。
思維鏈的prompt可以像是如下這樣(這里只是一個(gè)極簡(jiǎn)的prompt,實(shí)際會(huì)按需進(jìn)行prompt調(diào)優(yōu)):
template="Answer the question: Q: {question}? Let's think step by step:"
思維樹(Tree-of-thought, ToT)
對(duì)CoT的進(jìn)一步擴(kuò)展,在思維鏈的每一步,推理出多個(gè)分支,拓?fù)湔归_成一棵思維樹。使用啟發(fā)式方法評(píng)估每個(gè)推理分支對(duì)問(wèn)題解決的貢獻(xiàn)。選擇搜索算法,使用廣度優(yōu)先搜索(BFS)或深度優(yōu)先搜索(DFS)等算法來(lái)探索思維樹,并進(jìn)行前瞻和回溯

反思和完善
智能體在執(zhí)行任務(wù)過(guò)程中,通過(guò)LLM對(duì)完成的子任務(wù)進(jìn)行反思,從錯(cuò)誤中吸取教訓(xùn),并完善未來(lái)的步驟,提高任務(wù)完成的質(zhì)量。同時(shí)反思任務(wù)是否已經(jīng)完成,并終止任務(wù)。
ReAct
(剛接觸到這個(gè)單詞時(shí),腦子里冒出來(lái)的是 「React是由Facebook開源的一個(gè)進(jìn)行創(chuàng)建用戶界面的一款JavaScript庫(kù)….」,打住,我們好像走錯(cuò)片場(chǎng)了,此React非彼ReAct ?﹏? )
ReAct(Yao et al. 2023) ,《ReAct: Synergizing Reasoning and Acting in Language Models》 這篇論文提出一種用于增強(qiáng)大型語(yǔ)言模型的方法,它通過(guò)結(jié)合推理(Reasoning)和行動(dòng)(Acting)來(lái)增強(qiáng)推理和決策的效果。
- 推理(Reasoning):?LLM基于「已有的知識(shí)」或「行動(dòng)(Acting)后獲取的知識(shí)」,推導(dǎo)出結(jié)論的過(guò)程。
- 行動(dòng)(Acting):?LLM根據(jù)實(shí)際情況,使用工具獲取知識(shí),或完成子任務(wù)得到階段性的信息。
為什么結(jié)合推理和行動(dòng),就會(huì)有效增強(qiáng)LLM完成任務(wù)的能力?這個(gè)問(wèn)題其實(shí)很好回答,我們用上面的「調(diào)研員智能體」舉例,我提出了問(wèn)題:「特斯拉FSD 對(duì)比華為ADS」,下面列出幾種不同規(guī)劃模式的推演:
- 僅推理(Reasoning Only):LLM僅僅基于已有的知識(shí)進(jìn)行推理,生成答案回答這個(gè)問(wèn)題。很顯然,如果LLM本身不具備這些知識(shí),可能會(huì)出現(xiàn)幻覺,胡亂回答一通。
- 僅行動(dòng)(Acting Only): 大模型不加以推理,僅使用工具(比如搜索引擎)搜索這個(gè)問(wèn)題,得出來(lái)的將會(huì)是海量的資料,不能直接回到這個(gè)問(wèn)題。
- 推理+行動(dòng)(Reasoning and Acting): LLM 首先會(huì)基于已有的知識(shí),并審視擁有的工具。當(dāng)發(fā)現(xiàn)已有的知識(shí)不足以回答這個(gè)問(wèn)題,則會(huì)調(diào)用工具,比如:搜索工具、生成報(bào)告等,然后得到新的信息,基于新的信息重復(fù)進(jìn)行推理和行動(dòng),直到完成這個(gè)任務(wù)。其推理和行動(dòng)的步驟會(huì)是如下這樣:
推理1:當(dāng)前知識(shí)不足以回答這個(gè)問(wèn)題,要回答該問(wèn)題,需要知道什么是「特斯拉FSD 」和「華為ADS」
行動(dòng)1:使用搜索工具搜索「特斯拉FSD 」和「華為ADS」的資料
觀察1:總結(jié)行動(dòng)1的內(nèi)容
推理2:基于行動(dòng)1和觀察1的信息,得知這是關(guān)于兩個(gè)自動(dòng)駕駛提供商的方案對(duì)比,基于已有的信息,現(xiàn)在需要生成報(bào)告
行動(dòng)2:使用生成報(bào)告的工具,生成調(diào)研報(bào)告
觀察2:任務(wù)完成

通過(guò)巧妙的promt提示設(shè)計(jì),使得LLM重復(fù)地執(zhí)行推理和行動(dòng),最終完成任務(wù)。ReAct的prompt模版的大致思路為:
Thought(思考): ...
Action(行動(dòng)): ...
Observation(觀察): ...
Thought(思考): ...
Action(行動(dòng)): ...
Observation(觀察): ...
...(Repeated many times(重復(fù)多次))
記憶(Memory)
記憶是什么?當(dāng)我們?cè)谒伎歼@個(gè)問(wèn)題,其實(shí)人類的大腦已經(jīng)在使用記憶。記憶是大腦存儲(chǔ)、保留和回憶信息的能力。記憶可以分為不同的類型:
- 短期記憶(或工作記憶):這是一種持續(xù)時(shí)間較短的記憶,能夠暫時(shí)存儲(chǔ)和處理有限數(shù)量的信息。例如,記住一個(gè)電話號(hào)碼直到撥打完畢。
- 長(zhǎng)期記憶:這是一種持續(xù)時(shí)間較長(zhǎng)的記憶,可以存儲(chǔ)大量信息,從幾分鐘到一生。長(zhǎng)期記憶可以進(jìn)一步分為顯性記憶和隱性記憶。顯性記憶,可以有意識(shí)地回憶和表達(dá)的信息,顯性記憶又可以分為情景記憶(個(gè)人經(jīng)歷的具體事件)和語(yǔ)義記憶(一般知識(shí)和概念)。隱性記憶,這種記憶通常是無(wú)意識(shí)的,涉及技能和習(xí)慣,如騎自行車或打字。
仿照人類的記憶機(jī)制,智能體實(shí)現(xiàn)了兩種記憶機(jī)制:
- 短期記憶:在當(dāng)前任務(wù)執(zhí)行過(guò)程中所產(chǎn)生的信息,比如某個(gè)工具或某個(gè)子任務(wù)執(zhí)行的結(jié)果,會(huì)寫入短期記憶中。記憶在當(dāng)前任務(wù)過(guò)程中產(chǎn)生和暫存,在任務(wù)完結(jié)后被清空。
- 長(zhǎng)期記憶:長(zhǎng)期記憶是長(zhǎng)時(shí)間保留的信息。一般是指外部知識(shí)庫(kù),通常用向量數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)和檢索。
工具使用(Tool use)
LLM是數(shù)字世界中的程序,想要與現(xiàn)實(shí)世界互動(dòng)、獲取未知的知識(shí),或是計(jì)算某個(gè)復(fù)雜的公式等,都離不開不工具。所以我們需要為智能體配備各種工具以及賦予它使用工具的能力。
工具是什么?它可以是錘子、螺絲刀,也可以是函數(shù)(function)、軟件開發(fā)工具包(sdk)。工具是人類智慧的具象化,擴(kuò)展我們的能力,提升工作效率。在智能體中,工具就是函數(shù)(Function),工具使用就是調(diào)用函數(shù)(Call Function)。
在LLM 中實(shí)現(xiàn)函數(shù)調(diào)用,使用到LLM的這個(gè)能力:
Function Calling
Function Calling 是一種實(shí)現(xiàn)大型語(yǔ)言模型連接外部工具的機(jī)制。通過(guò)API調(diào)用LLM時(shí),調(diào)用方可以描述函數(shù),包括函數(shù)的功能描述、請(qǐng)求參數(shù)說(shuō)明、響應(yīng)參數(shù)說(shuō)明,讓LLM根據(jù)用戶的輸入,合適地選擇調(diào)用哪個(gè)函數(shù),同時(shí)理解用戶的自然語(yǔ)言,并轉(zhuǎn)換為調(diào)用函數(shù)的請(qǐng)求參數(shù)(通過(guò)JSON格式返回)。調(diào)用方使用LLM返回的函數(shù)名稱和參數(shù),調(diào)用函數(shù)并得到響應(yīng)。最后,如果需求,把函數(shù)的響應(yīng)傳給LLM,讓LLM組織成自然語(yǔ)言回復(fù)用戶。
function calling 具體工作流程如下圖所示:

不同LLM的API接口協(xié)議會(huì)有所不同,下文將以OpenAI的API協(xié)議為例,說(shuō)明如何實(shí)現(xiàn)Function Calling
函數(shù)描述
我們可以按照智能體的需要來(lái)實(shí)現(xiàn)函數(shù),比如前文的「調(diào)研員」智能體,為其實(shí)現(xiàn)了這些函數(shù):WebBrowseAndSummarize:瀏覽網(wǎng)頁(yè)并總結(jié)網(wǎng)頁(yè)內(nèi)容;ConductResearch:生成調(diào)研報(bào)告等。如果是一個(gè)智能家居的智能體,可能會(huì)需要這些函數(shù):開關(guān)燈、開光空調(diào)、獲取環(huán)境信息等。函數(shù)的實(shí)現(xiàn)在這里不展開贅述,一個(gè)函數(shù)可以自行編碼實(shí)現(xiàn),也可以通過(guò)調(diào)用外部API實(shí)現(xiàn)。
假設(shè)你的函數(shù)已經(jīng)被實(shí)現(xiàn),我們需要向LLM描述這個(gè)函數(shù),函數(shù)描述的必備要素:
- 函數(shù)名
- 函數(shù)的功能描述
- 函數(shù)的請(qǐng)求參數(shù)說(shuō)明
- 函數(shù)的相應(yīng)參數(shù)說(shuō)明(可選)
「查詢最近天氣」的函數(shù)描述:
tools = [
{
"type": "function",
"function": {
"name": "get_n_day_weather_forecast",
"description": "獲取最近n天的天氣預(yù)報(bào)",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "城市或鎮(zhèn)區(qū) 如:深圳市南山區(qū)",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "要使用的溫度單位,攝氏度 or 華氏度",
},
"num_days": {
"type": "integer",
"description": "預(yù)測(cè)天數(shù)",
}
},
"required": ["location", "format", "num_days"]
},
}
}
]
調(diào)用LLM獲得函數(shù)的請(qǐng)求參數(shù)
Function Calling 是通過(guò)請(qǐng)求LLM的chat API 實(shí)現(xiàn)的,在支持Function Calling 模型的 chat API 參數(shù)中,會(huì)有一個(gè)functions參數(shù) (或tools,不同LLM的參數(shù)會(huì)有所不同) ,通過(guò)傳入這個(gè)參數(shù),大模型則會(huì)知道擁有哪些參數(shù)可供使用。并且會(huì)根據(jù)用戶的輸入,推理出應(yīng)該調(diào)用哪些函數(shù),并將自然語(yǔ)言轉(zhuǎn)成函數(shù)的請(qǐng)求參數(shù),返回給請(qǐng)求方。下面以 OpenAI 的SDK 舉例:
from openai import OpenAI
def chat_completion_request(messages, tools=None, tool_choice=None, model="gpt-3.5-turbo"):
try:
response = client.chat.completions.create(
model=model,
messages=messages,
tools=tools,
tool_choice=tool_choice,
)
return response
except Exception as e:
print("Unable to generate ChatCompletion response")
print(f"Exception: {e}")
return e
if __name__ == "__main__":
messages = []
messages.append({"role": "system", "content": "不要假設(shè)將哪些值輸入到函數(shù)中。如果用戶請(qǐng)求不明確,請(qǐng)要求澄清"})
messages.append({"role": "user", "content": "未來(lái)5天深圳南山區(qū)的天氣怎么樣"})
chat_response = chat_completion_request(
messages, tools=tools
)
tool_calls = chat_response.choices[0].message.tool_calls
print("===回復(fù)===")
print(tool_calls)
LLM 將會(huì)返回get_n_day_weather_forecast
函數(shù)的調(diào)用參數(shù):
===回復(fù)===
[ChatCompletionMessageToolCall(id='call_7qGdyUEWp34ihubinIUCTXyH', function=Function(arguments='{"location":"深圳市南山區(qū)","format":"celsius","num_days":5}', name='get_n_day_weather_forecast'), type='function')]
// 格式化看看:chat_response.choices[0].message.tool_calls:
[
{
"id": "call_7qGdyUEWp34ihubinIUCTXyH",
"function": {
"arguments": {
"location": "深圳市南山區(qū)",
"format": "celsius",
"num_days": 5
},
"name": "get_n_day_weather_forecast"
},
"type": "function"
}
]
調(diào)用函數(shù)
調(diào)用方獲得LLM返回的函數(shù)調(diào)用信息(函數(shù)名稱和調(diào)用參數(shù))后,自行調(diào)用函數(shù),并得到函數(shù)執(zhí)行的響應(yīng)。如果有需要,還可以把函數(shù)執(zhí)行的響應(yīng)追加到chat API 的對(duì)話中傳給LLM,讓LLM組織成自然語(yǔ)言回復(fù)用戶。
# 執(zhí)行函數(shù)
for tool_call in tool_calls:
function = tool_call.function.name
arguments_list = json.loads(tool_call.function.arguments)
function_to_call = globals().get(function)
result = function_to_call(**arguments_list)
print("===" + function + "===")
print(result)
# 把函數(shù)調(diào)用結(jié)果加入到對(duì)話歷史中
messages.append(
{
"tool_call_id": tool_call.id, # 用于標(biāo)識(shí)函數(shù)調(diào)用的 ID
"role": "user",
"name": function,
"content": "函數(shù)執(zhí)行結(jié)果為:" + str(result)
}
)
# 函數(shù)執(zhí)行結(jié)果傳給LLM,組織成自然語(yǔ)言回復(fù)用戶
chat_response = chat_completion_request(
messages, tools=tools
)
print("===回復(fù)===")
print(chat_response.choices[0].message.content)
執(zhí)行結(jié)果:
===get_n_day_weather_forecast===
[{'date': '2023-04-01', 'location': '深圳市南山區(qū)', 'temperature': '20°C', 'description': '晴朗'}, {'date': '2023-04-02', 'location': '深圳市南山區(qū)', 'temperature': '21°C', 'description': '多云'}, {'date': '2023-04-03', 'location': '深圳市南山區(qū)', 'temperature': '22°C', 'description': '晴朗'}, {'date': '2023-04-04', 'location': '深圳市南山區(qū)', 'temperature': '23°C', 'description': '多云'}, {'date': '2023-04-05', 'location': '深圳市南山區(qū)', 'temperature': '24°C', 'description': '晴朗'}]
===回復(fù)===
未來(lái)5天深圳南山區(qū)的天氣情況如下:
- 4月1日:晴朗,溫度20°C
- 4月2日:多云,溫度21°C
- 4月3日:晴朗,溫度22°C
- 4月4日:多云,溫度23°C
- 4月5日:晴朗,溫度24°C
請(qǐng)注意天氣預(yù)報(bào)僅供參考,實(shí)際情況可能會(huì)有所變化。
智能體的開發(fā)框架
現(xiàn)在(2024年5月)如果你想要開發(fā)一個(gè)AI智能體,已經(jīng)比大模型爆發(fā)的初期方便太多了,隨著AI應(yīng)用需求的持續(xù)火熱,智能體框架層出不窮。智能體開發(fā)框架,會(huì)抽象和封裝那些被高頻使用的模塊,如記憶能力、規(guī)劃能力、RAG能力、大模型調(diào)用等。使用智能體框架,可讓幫助你快速搭建智能體。
根據(jù)?awesome-ai-agents?的整理,無(wú)論是開源的還是閉源的,智能體應(yīng)用框架在各個(gè)領(lǐng)域,比如自定義智能體、編碼、研究、數(shù)據(jù)分析、多智能體等等,都有比較有代表性的產(chǎn)品可供選擇。

上文曾使用到MetaGPT,MetaGPT 是一個(gè)多智能體框架,多智能體框架可以幫你開發(fā)一個(gè)由多個(gè)不同職責(zé)的智能體組合起來(lái)的多智能體。舉個(gè)例子,如果我們想開發(fā)一個(gè)多智能體軟件團(tuán)隊(duì),該軟件團(tuán)隊(duì)可以根據(jù)用戶需求交付代碼,其內(nèi)部會(huì)通過(guò)測(cè)試代碼、評(píng)審代碼來(lái)提升代碼質(zhì)量。該多智能體將包含:開發(fā)(coder)、測(cè)試(tester)、評(píng)審人(reviewer)這三個(gè)不同職責(zé)的智能體,他們各司其職,互相協(xié)作完成任務(wù)。下圖的左側(cè)是多智能體的協(xié)作流程,右側(cè)是單智能體的工作流程。

展望
隨著大模型的百花齊放,LLM 會(huì)支持更長(zhǎng)的上下文、更大的參數(shù)規(guī)模,其推理能力也會(huì)愈發(fā)強(qiáng)大。因此,基于大模型搭建的智能體(AI Agent)的能力邊界也在不斷突破。 通過(guò)智能體技術(shù),我們可以創(chuàng)建各種各樣的AI應(yīng)用,比如:Copilot、DB-GPT等等,一些AI應(yīng)用已經(jīng)成為工作生活中不可缺少的存在。相信AI應(yīng)用的將會(huì)快速全面地重構(gòu)我們?cè)?jīng)習(xí)以為常的軟件形態(tài)和交互方式,以及提升人類的生產(chǎn)效率。