關(guān)于智能體開(kāi)發(fā)范式之——ReAct(Reasoning and Acting)到底是什么? 原創(chuàng)
“ ReAct思考和行動(dòng),既是一種方法論,也是一種范式,更是一種提示詞模板,還是一種Agent智能體的開(kāi)發(fā)方式?!?/strong>
目前基于大模型構(gòu)建上層應(yīng)用,其中很大的一個(gè)問(wèn)題就是大模型的能力不足,特別是在復(fù)雜場(chǎng)景下的邏輯思維能力,明顯存在嚴(yán)重的缺陷;而且由于安全性問(wèn)題,大模型整體運(yùn)行過(guò)程是一個(gè)黑盒模型,我們并不知道其內(nèi)部到底是怎么運(yùn)作的。
因此,這時(shí)就需要一種方式讓大模型給出具體的思考和行動(dòng)過(guò)程,一是為了弄明白大模型是怎么思考的,二是為了讓大模型能夠處理更復(fù)雜的邏輯問(wèn)題。
Reasoning And Acting思考和行動(dòng)
人工智能技術(shù)的發(fā)展是為了讓機(jī)器取代人類(lèi),使人類(lèi)從繁重的生產(chǎn)任務(wù)中脫離出來(lái);因此人工智能技術(shù)不僅僅只是用來(lái)生成一些文字,圖片;最重要的是讓大模型真的能夠像人類(lèi)一樣干活,使用各種工具去處理各種復(fù)雜的事情。
但大模型是一個(gè)沒(méi)有物理實(shí)體的程序,怎么才能讓大模型去接觸現(xiàn)實(shí)世界呢?
因此這時(shí)Agent智能體就產(chǎn)生了,智能體的作用就是讓大模型能夠使用外部工具和現(xiàn)實(shí)世界進(jìn)行接觸,而這也是為什么說(shuō)Agent智能體是通往通用人工智能(AGI)的橋梁。
雖然說(shuō)目前大模型可以通過(guò)Function call和MCP等方式來(lái)使用外部工具;但有一個(gè)問(wèn)題就是,大模型在處理復(fù)雜問(wèn)題時(shí)能力有限,因?yàn)樗鼰o(wú)法做到像人類(lèi)一樣,把一個(gè)復(fù)雜的任務(wù)通過(guò)拆分形成多個(gè)簡(jiǎn)單的子任務(wù)。
所以,這時(shí)就需要一種方式來(lái)讓大模型像人類(lèi)一樣進(jìn)行思考和行動(dòng),而這時(shí)就有人提出了一個(gè)方法論——Reasoning And Acting思考和行動(dòng);簡(jiǎn)稱(chēng)——ReAct。
可能很多人都聽(tīng)說(shuō)過(guò)這個(gè)詞,但我相信很多人八成都沒(méi)弄明白這個(gè)詞到底是怎么回事;雖然有文檔解釋ReAct的理念,但我想很多人應(yīng)該都看不明白,包括作者自己。
在前面的文章中提過(guò),大模型應(yīng)用的核心就是把大模型當(dāng)做一個(gè)人,而不是一個(gè)無(wú)所不能的神;而不同的大模型就類(lèi)似于不同的人,有些擅長(zhǎng)創(chuàng)作類(lèi),比如AIGC,有些擅長(zhǎng)邏輯推理比如說(shuō)GPT4和DeepSeek-R1等。
因此,把大模型類(lèi)比于人類(lèi),就可以更好地理解大模型應(yīng)用的本質(zhì);那么人類(lèi)在面對(duì)復(fù)雜問(wèn)題時(shí)都是怎么處理的?
首先,就是要分析問(wèn)題,然后拆解問(wèn)題,最后一步一步的解決問(wèn)題,而且在解決問(wèn)題的過(guò)程中還要不斷的思考,總結(jié)和調(diào)整方向和策略。
因此,仿造人類(lèi)解決復(fù)雜問(wèn)題的過(guò)程,就提出了大模型的ReAct范式;其原理就類(lèi)似于人類(lèi)解決復(fù)雜問(wèn)題的過(guò)程。
ReAct范式主要包括以下幾個(gè)方面,以提示詞模板為例:
Question: 用戶問(wèn)題
thought: 大模型思考過(guò)程
action: 調(diào)用工具執(zhí)行
observation: 觀察總結(jié)
final answer: 最終答案
這玩意看起來(lái)好像很好理解,但實(shí)際用的時(shí)候發(fā)現(xiàn)好像又沒(méi)那么簡(jiǎn)單;原因就在于我們沒(méi)搞明白大模型為什么會(huì)按照這種要求去做。
其實(shí),我們換個(gè)角度就很好理解這個(gè)問(wèn)題了;這玩意就類(lèi)似于一個(gè)模板,比如我寫(xiě)文章,寫(xiě)論文需要有一些模板格式;而這就相當(dāng)于我們的論文模板,只不過(guò)這個(gè)模板是思考和行動(dòng)的過(guò)程。
這就類(lèi)似于,領(lǐng)導(dǎo)給下屬分配一個(gè)任務(wù),讓下屬去處理;但由于這個(gè)下屬能力不足,害怕出錯(cuò),所以領(lǐng)導(dǎo)就交給他一個(gè)方法論,把問(wèn)題,思考過(guò)程,行動(dòng)過(guò)程,以及總結(jié)的過(guò)程都按照以上方式記錄下來(lái),這樣就能避免主觀犯錯(cuò)。
OK,這里弄明白了ReAct模式的提示詞方式,那ReAct應(yīng)用于Agent智能體的開(kāi)發(fā)應(yīng)該怎么辦呢?
畢竟智能體是LLM+Prompt+Tools的集合,怎么才能讓智能體按照這種思考方式來(lái)處理問(wèn)題呢?并且,當(dāng)其中某個(gè)環(huán)節(jié)執(zhí)行失敗時(shí),智能體能夠及時(shí)總結(jié)和調(diào)整找到其它的解決方案。
并且智能體還需要在失敗和用戶反饋中,不斷的優(yōu)化其執(zhí)行方案和結(jié)果;那ReAct智能體的執(zhí)行過(guò)程是什么樣的?
根據(jù)提示詞的這個(gè)過(guò)程,大模型在接受到用戶請(qǐng)求(question)之后(也就是提示詞,提示詞中包括用戶的問(wèn)題,以及一些條件和約束等);大模型拿到問(wèn)題之后,就會(huì)進(jìn)行思考分析(thought),然后根據(jù)思考結(jié)果判斷是依靠自身能力解決,還是需要調(diào)用外部工具解決,這一步就是行動(dòng)(action)。
而大模型在思考完成并調(diào)用工具行動(dòng)之后,會(huì)拿到一個(gè)結(jié)果;但這個(gè)結(jié)果可能并不是對(duì)的,或者只是中間某一步的結(jié)果;因此,大模型還需要觀察(observation)工具執(zhí)行的結(jié)果,是否拿到正確結(jié)果,也就是是否符合用戶的問(wèn)題,以及執(zhí)行過(guò)程中是否出現(xiàn)錯(cuò)誤或異常等。
Question: 用戶問(wèn)題
thought: 大模型思考過(guò)程
action: 調(diào)用工具執(zhí)行
observation: 觀察總結(jié)
final answer: 最終答案
當(dāng),工具執(zhí)行出現(xiàn)異?;驔](méi)有拿到正確結(jié)果之前,智能體需要自己能夠解決問(wèn)題找到新的解決方案,或者是繼續(xù)之后后面的步驟,拿到最終的結(jié)果(final answer)。
本文轉(zhuǎn)載自??AI探索時(shí)代?? 作者:DFires
