你有沒有用過 ChatGPT 查即時資訊,結果它講得很像真的但其實是編的?
這是因為傳統的語言模型只會「想」,不會「做」,它沒辦法真的去查資料、打API、或驗證自己說的對不對。
你可以把它想成一個先回答「用途是什麼」的入口,抓住生活場景後,再看技術細節會更容易。
容易混淆
ReAct vs 思維鏈(CoT)vs 傳統 AI Agent
思維鏈(CoT):只有推理,模型一步步想但不會執行任何行動,無法取得外部資訊。
傳統 AI Agent:只有行動,按照預設規則執行任務,沒有中間推理過程。
ReAct:推理和行動交替進行,每次行動後觀察結果,再決定下一步怎麼推理。
最關鍵的區別:CoT 只動腦不動手,傳統 Agent 只動手不動腦,ReAct 邊動腦邊動手。
記住這句就好
想一步、做一步、看結果、再想下一步。
實際案例
複雜問題查詢:Before / After
Before:你問 ChatGPT「2024 年奧運馬拉松金牌得主的出生地人口有多少?」,模型必須一口氣回答,但它的訓練資料可能沒有最新結果,於是開始編造一個聽起來合理的答案。
After:用 ReAct 框架,模型的處理過程變成:(1)推理:我需要先查 2024 奧運馬拉松金牌是誰(2)行動:搜尋「2024 Olympic marathon gold medal」(3)觀察:搜尋結果顯示是 Tamirat Tola(4)推理:然後我需要查他的出生地(5)行動:搜尋「Tamirat Tola birthplace」(6)觀察:出生於 Ambo, Ethiopia(7)推理:最後查 Ambo 的人口(8)行動:搜尋 Ambo Ethiopia population(9)觀察:約 10 萬人(10)輸出最終答案。每一步都有真實資料支撐,不需要猜測。
客服自動化
一家電商的客服機器人收到「我的退款怎麼還沒到?」的問題。傳統做法是用關鍵字比對回覆罐頭訊息。ReAct 框架下,機器人會:推理(需要查這位客戶的退款狀態)→ 行動(呼叫訂單系統 API 查詢)→ 觀察(退款已於 3 天前發起,銀行處理中)→ 推理(應該告知客戶預計到帳時間)→ 輸出:「您的退款已在 4/26 發起,一般銀行需要 3-5 個工作天,預計 5/1 前到帳。」
算法與應用
定義
ReAct(Reasoning + Acting)是一種讓語言模型交替進行推理和行動的框架,由 Yao et al. 在 2022 年提出。模型在每一步生成「思考」(Thought)、「行動」(Action)、和「觀察」(Observation),形成一個迭代循環直到得出最終答案。
核心運作循環
步驟 做什麼 範例 Thought(思考) 模型分析目前狀態,決定下一步策略 「我需要先查這個人的出生地」 Action(行動) 呼叫外部工具:搜尋引擎、API、資料庫 Search["Tamirat Tola birthplace"] Observation(觀察) 接收行動返回的結果 結果:Born in Ambo, Ethiopia 這三步不斷循環,直到模型判斷已經有足夠資訊可以回答問題。
主要應用領域
領域 應用方式 問答系統 多步驟查詢、需要即時資訊的問題 智能助理 幫用戶完成跨系統的操作任務 程式除錯 推理可能的 bug 原因,執行測試,觀察結果 資料分析 逐步查詢資料庫,根據結果調整分析方向
情境判斷
Q1(直覺題): 你想讓 AI 回答「台灣目前的 GDP 是多少?」這種需要即時資料的問題。用純語言模型還是 ReAct 框架?
→ ReAct。純語言模型的知識有截止日期,無法取得最新數據。ReAct 可以在推理過程中搜尋最新資料,用真實數字回答。
Q2(判斷題): 你要做一個翻譯工具,輸入英文句子、輸出中文翻譯。需要用 ReAct 框架嗎?
→ 通常不需要。翻譯是單步任務,不需要外部工具或多步推理,語言模型本身就能完成。ReAct 的價值在於需要「邊想邊查」的多步驟任務,如果任務本身不需要外部資訊或工具呼叫,加入 ReAct 反而增加延遲和複雜度。
常見問題
ReAct 框架只能搭配大型語言模型嗎?
原始論文是基於 LLM 設計的,因為推理和行動的生成都依賴語言理解能力。但概念上,「推理-行動-觀察」的迭代循環可以套用到其他類型的 AI 系統,只是目前最成熟的實作都是搭配 LLM。
ReAct 能完全消除 AI 幻覺嗎?
不能完全消除,但能大幅降低。當模型可以透過搜尋或 API 取得真實資料時,事實性錯誤會減少。但如果搜尋結果本身就不準確,或模型在推理過程中做出錯誤判斷,幻覺仍然可能發生。
LangChain 跟 ReAct 是什麼關係?
LangChain 是一個開發框架,它實作了 ReAct 作為其中一種 Agent 策略。你可以用 LangChain 快速建立一個 ReAct Agent,但 LangChain 也支援其他策略如 Plan-and-Execute。ReAct 是概念,LangChain 是工具。