JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

推理、行動、記憶:ReAct 迴圈、規劃與記憶

把思考與行動交織起來(ReAct)、把大目標拆成計畫、在回合之間帶著知識走——這三項技能讓代理不只是個工具呼叫器。

ReAct:交織的思考與行動

早期會用工具的代理,不是只會推理就是只會行動,兩者都做好的很少。ReAct 提示 (ReAct prompting)(Reason + Act 的縮寫,即推理+行動)用一個明確的循環把兩者交織起來解決此事:模型寫下一個思考 (Thought)、採取一個行動 (Action)、讀取回傳的觀察 (Observation),再寫下一個思考——重複直到完成。推理讓行動更聰明,而觀察讓推理保持誠實。這就是第 1 篇那個觀察—思考—行動迴圈,被攤在紙面上看得見。

一图看懂 ReAct 循环:智能体先推理,再用工具行动,然后观察结果,接着再次推理。

一个循环图,展示大语言模型智能体在推理、行动、观察之间不断循环。

Goal: "What is the population of the capital of the country that won the 2022 World Cup?"

Thought:      I need the 2022 World Cup winner first.
Action:       search("2022 FIFA World Cup winner")
Observation:  Argentina.
Thought:      Capital of Argentina is Buenos Aires. Now its population.
Action:       search("population of Buenos Aires")
Observation:  ~3.1 million (city proper).
Thought:      I have the answer.
Action:       finish("About 3.1 million — Buenos Aires, capital of Argentina.")
一段 ReAct 軌跡:每個思考導向一個行動;每個觀察餵養下一個思考。

這條看得見的鏈不只關乎準確度。當代理出錯時,那些思考行會告訴你它為何選了每個 工具 (tool)——把 工具選擇 (tool selection) 的錯誤從謎團變成讀得懂的臭蟲。

規劃:把模糊目標化為有序步驟

ReAct 一次只決定一步,敏捷但短視。對於像「安排一趟三天的研究旅程」這樣的目標,逐步反應有亂走的風險。代理規劃 (agent planning) 加入了遠見:模型先草擬一組有序的子目標,再去執行,並在現實反撲時修訂計畫。先規劃再行動給了結構;ReAct 給了適應力。強大的代理會把兩者揉在一起——計畫當骨架,每根骨頭上的 ReAct 迴圈當肌肉。

  1. 把目標分解成夠小的子目標,小到每個都能對應到幾次工具呼叫。
  2. 依相依性排序——什麼必須在什麼之前被知道或被完成。
  3. 用一個 ReAct 迴圈執行第一個子目標,再拿結果對照計畫檢查。
  4. 當某個觀察推翻了一項假設時就重新規劃——計畫是個假說,不是合約。

記憶:在迴圈之間帶著知識走

一個長任務會撐爆模型的 上下文視窗 (context window)——你不可能把每個思考、行動與觀察永遠留在提示裡。代理記憶 (agent memory) 就是代理在那個限制下仍能跨回合保有知識的方法。常見的分法:短期記憶是坐在上下文視窗裡的近期迴圈歷史;長期記憶住在模型之外——在檔案、資料庫或向量儲存裡——代理在需要時把相關片段讀回來。

好的記憶,正是「會學習的代理」與「每個迴圈都重問同一個問題的金魚」之間的分野。實用的模式:把舊回合摘要成一段精簡的進行中筆記、把重要發現寫到代理會反覆讀的暫存板 (scratchpad)、把可重複使用的事實存進長期記憶並建好索引供日後取回。沒有這些,任何冗長任務上的 自主任務執行 (autonomous task execution) 都會散架。

把外部记忆当作检索:智能体把发现写入存储,需要时只取回相关的笔记。

一个检索增强生成流程,把存储的笔记重新送入模型的提示词。

把它們組合起來

ReAct、規劃與記憶並非彼此競爭的技術——它們是同一個代理的三種時間尺度。規劃作用在整個目標的尺度(子目標的骨架)。ReAct 作用在單一步驟的尺度(思考 → 行動 → 觀察)。記憶橫跨兩者,把每一步學到的東西往前帶,好讓計畫能用真實的知識來修訂。一個有能力的 代理 (agent) 會同時運行這三者:上面一份計畫、一個 ReAct 迴圈執行每一塊、而記憶把結果串起來。

看它們在一個真實工作上如何咬合——「總結本季三家對手的產品發布」。規劃把它拆成三個研究子目標外加一個綜合步驟。每個子目標跑一個 ReAct 迴圈(選 (select) 一個搜尋 工具 (tool)、讀取、修正、重複)。記憶把每份摘要存起來,好讓最後的綜合步驟手邊就有全部三份、不必重做研究。抽掉任何一股,任務就會散開。