本文為該課程的第二章(智能體綜述及多智能體框架介紹)筆記)。
前面文章已經(jīng)介紹過我理解的 AI Agent 的概念。
智能體就是像人一樣,能理解現(xiàn)實(shí)中的事務(wù),有記憶,會思考,會總結(jié),會學(xué)習(xí),像人一樣會規(guī)劃,會決策,會使用各種工具來完成某項任務(wù)。
多智能體,就像一個團(tuán)隊,大了說像我們現(xiàn)在生活的社會,每個智能體有自己的職能和領(lǐng)域,人與人之間通過協(xié)作,能完成更加復(fù)雜和龐大的目標(biāo)。
再看這張經(jīng)典的圖:
現(xiàn)在看來,中間的Agent應(yīng)該換為LLM更為合適,而整張圖才能叫做Agent。也就是說:Agent是上圖中所有能力的集合,以LLM為大腦,來決定完成任務(wù)所需的步驟,規(guī)劃執(zhí)行該使用哪些工具,該得到什么結(jié)果。再輔以記憶能力,讓整個過程像人一樣能夠自主決策,自主行動以自主達(dá)到目的。
項目地址:https://github.com/yoheinakajima/babyagi/blob/main/README.md
其運(yùn)行流程如下:
(1)從任務(wù)列表中提取第一個任務(wù)
(2)將任務(wù)發(fā)送到執(zhí)行代理(Execution Agent),該Agent使用LLM根據(jù)上下文完成任務(wù)。
(3)豐富結(jié)果并將其存儲在向量數(shù)據(jù)庫中
(4)創(chuàng)建新任務(wù),并根據(jù)上一任務(wù)的目標(biāo)和結(jié)果重新確定任務(wù)列表的優(yōu)先級。
(5)重復(fù)以上步驟
其中涉及四個Agent,其中前三個Agent都利用了大模型的能力來進(jìn)行任務(wù)規(guī)劃和總結(jié):
Execution Agent 接收目標(biāo)和任務(wù),調(diào)用大模型 LLM來生成任務(wù)結(jié)果。
Task Creation Agent 使用大模型LLM 根據(jù)目標(biāo)和前一個任務(wù)的結(jié)果創(chuàng)建新任務(wù)。它的輸入是:目標(biāo),前一個任務(wù)的結(jié)果,任務(wù)描述和當(dāng)前任務(wù)列表。
Prioritization Agent 使用大模型LLM對任務(wù)列表進(jìn)行重新排序。它接受一個參數(shù):當(dāng)前任務(wù)的 ID
Context Agent 使用向量存儲和檢索任務(wù)結(jié)果以獲取上下文。
運(yùn)行起來后的過程可以參考這篇文章:babyagi: 人工智能任務(wù)管理系統(tǒng) https://juejin.cn/post/7218815501433946173
對市面上多智能體框架了解的不多,目前為止,只用過 MetaGPT、AutoGPT,聽過AutoGen。想了解更多的,可以參考這篇文章 基于大語言模型的AI Agents—Part 3(https://www.breezedeus.com/article/ai-agent-part3),里面總結(jié)比較了常見的多智能體框架:
AutoGPT更多的是依賴大模型去進(jìn)行規(guī)劃和行動,個人感覺有點(diǎn)過于依賴大模型的能力了。而目前而言,大模型的能力還遠(yuǎn)沒有達(dá)到能自主規(guī)劃和決策行動的地步,這使得AutoGPT的執(zhí)行結(jié)果非常地不可控,很難達(dá)到自己想要的效果。并且其是單智能體,能完成的工作相對比較簡單。接口也不太好用。
MetaGPT更多的是依賴事先定義好的SOP(標(biāo)準(zhǔn)作業(yè)流程),這使得任務(wù)的執(zhí)行過程變得相對可控,最大限度的保證任務(wù)的正確執(zhí)行。并且可以是多智能體,能執(zhí)行的任務(wù)相對復(fù)雜。接口封裝也比較清晰。尤其是Team、Role和Action三個抽象,真的將Agent抽象為人??偨Y(jié)起來,MetaGPT的工作流程就像:SOP是制訂了一條標(biāo)準(zhǔn)化的流水線,然后Role是分布在流水線各個位置的打工人,大家各司其職,合作共贏。
Agent因為涉及到多個步驟,而且大模型的能力并沒有我們想象地那么強(qiáng),如果不加限制,很容易陷入死循環(huán)… 這將是你財富的直接損失… 所以一定要謹(jǐn)慎。正如 BabyAGI里的警告: