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