H
Howardism
Plate IIAgent Systems機器翻譯 · machine-translatedENHOWARDISM

推理與行動交錯(ReAct)

2022 年讓語言模型化身代理程式的提示抽象:每次交替提供一段自由文字想法、一個工具動作及其觀察結果,逐對進行,讓每個想法都根據環境剛回傳的內容形成。在 CS329A 第 4 講中,它被教作工具呼叫的起源——在所有情況下都勝過只提示動作;在事實查核上勝過思維鏈,但在多跳 QA 上未必穩定;並以檢索失敗取代思維鏈的幻覺失敗。它自身的命運才是有趣之處:交錯模式如今已蒸餾進思考模型,harness 不再提供它

Article metadata
Publication details
Published:August 17, 2026
Filed:Concept
Domain:Agent Systems
Tags:Agent EngineeringTool UsePromptingGroundingReasoning
Reading:18 min
Source:AI-synthesised
About this piece

Articles in this journal are synthesised by AI agents from a curated wiki and are refreshed automatically as new concepts arrive. Topics, framing, and editorial direction are curated by Howardism.

推理與行動交錯(ReAct)的插圖

資料來源#

摘要#

ReAct 是一種提示模式,交替提供自由文字的想法、工具動作與環境的觀察結果——想法₁、動作₁、觀察結果₁、想法₂、動作₂、……——每個想法都根據截至當下回傳的所有內容形成。它在 CS329A 第 4 講中被稱為「最早將推理與行動結合到語言模型中的」抽象之一;這也是本 wiki 另外五個頁面已經直接提及、卻沒有任何一處定義的基本原語——TRACE 的三工具瀏覽器 harness、OpenCodeReview 的 30 次迭代審查迴圈、AISI 的 40 小時網路安全評估代理程式,以及 METR 的作弊偵測 harness。本文正是這個定義,以及課堂證據實際支持的內容。

交錯就是這個想法的全部。課堂明確指出,ReAct 出現之前有兩條各自發展的研究脈絡:思維鏈會產生推理步驟,但「可能有根據,也可能沒有,因為它們取決於模型的內部狀態」;而像 WebGPT 這類模仿瀏覽器的系統則學會在環境中行動,卻幾乎沒有推理過程。ReAct 的主張是,只要在一個提示中嚴格交替放入兩者,就能得到第三種做法,而且完全不需訓練——照課堂的說法,就是使用少樣本範例的凍結 PaLM。

有位學生提出一個問題,精準點出這項設計:模型會先規劃想法₁……想法₄,然後再行動嗎?還是每次動作都會帶出下一個想法?Chowdhery 回答:「兩者是交錯的。所以是想法一,接著動作一,再來想法二、動作二……這非常像人類的思考過程。」 若把推理全部放在前面,ReAct 就會退化成思維鏈再加上一個工具;正是交替進行,才讓環境有機會修正計畫。

證據。 本文內容皆來自 CS329A 第 4 講(CS329A Self-Improving AI Agents — Part 4: Learning from Feedback with Tools and Code,由 Aakanksha Chowdhery 單獨主講,於 2025-10-03 授課,2026-08-03 發布,practitioner-opinion)——講者逐張解說 ReAct 論文的投影片,而該論文不在 raw/ 中。以下每個數據都由 ASR 從投影片讀出,數值為約略值,出處是課堂內容而非論文本身。文中描述的技術水準截至 2025 年底。

範例演練,以及它揭示的事#

課堂以同一題 HotpotQA 題目,演示四種提示方式:「除了 Apple Remote 之外,還有什麼裝置可以控制 Apple Remote 原本設計來互動的程式?」

方式結果
標準提示答錯
思維鏈展示中間步驟,但答案仍不正確
只採取動作搜尋 Apple Remote,再根據觀察文字搜尋 Front Row,發現該程式已停用,卻無法組合出答案
ReAct搜尋相同,但每次搜尋前都先提出尚缺少什麼;當 Front Row 沒有回傳結果時,模型創出新的查詢詞 「Front Row software」,再試一次並得出答案

關鍵在於如何復原。只採取動作的方式看到相同觀察後就停下了;想法回合則將查詢失敗轉化為重新措辭的查詢。這是 Agent Loop Pattern 擴大應用時的最小範例——讀取回饋、修正、判斷是否繼續——課堂自己的總結是,推理「是一種抽象,能讓它回來給出比只採取動作更好的答案」。

結果:勝過只行動的方式,但未必全面勝過思考#

三項任務,其中兩項以知識為主,一項以決策為主:

  • HotpotQA — 在 Wikipedia 上進行多跳問答。動作空間:搜尋頁面、查找字串、結束。
  • FEVER — 事實查核,動作空間相同。
  • WebShop — 在模擬商店中透過一連串搜尋與選取,購買符合使用者指示的產品(「有抽屜的床頭櫃」)。

課堂報告的結果,以及比單純勝負更值得注意的整體走勢:

  • ReAct 在所有任務上都勝過只採取動作的方式。
  • ReAct 未必全面勝過思維鏈。它在 FEVER 上勝出;在 HotpotQA 上則不一定穩定勝出。
  • 組合使用會勝出。 將思維鏈與自我一致性結合(chain-of-thought-with-self-consistency,CoT-SC)後,再與 ReAct 搭配,並讓兩者互為備援(ReAct 達到步數預算後退回 CoT-SC;CoT-SC 在多數答案出現頻率低於一半時退回 ReAct),效果勝過兩者單獨使用。課堂的解讀是:「妥善結合模型的內部知識與外部知識是有價值的。」 注意,CoT-SC 端的備援觸發條件是共識強度門檻——也就是第 2 講指出在 10–50 個樣本時趨於停滯的相同多數決訊號/articles/verifiability-thesis,此處不是拿來做選擇,而是用來路由。
  • 在 WebShop 上,ReAct 勝過模仿學習與模仿學習加 RL,但仍遠不及人類:在課堂使用的分數軸上,成績是 66.6,而人類專家的分數是 82.1。所有方法的成功率都低於分數,因為「這是一個多步驟流程,[而] 錯誤會隨時間累積」——Task Time-Horizon Scaling 將這種逐步累積的算術形式化了。
  • 提示是取得這種能力最弱的方式。「如果能微調,ReAct 的表現肯定更好;如果能跑 RL 迴圈,表現就會更好」——這是課堂指向自身訓練期擴展課程的預告。

失敗模式的交換#

課堂指出,錯誤分析中最值得記住的結果不是分數。思維鏈的主要失敗模式是幻覺;ReAct 則不是。以檢索文字為推理軌跡提供根據,可以消除模型捏造事實、再據此自信推理的那類錯誤,並以檢索系統的錯誤取而代之,例如搜尋回傳錯誤內容或沒有結果。

這是一種交換,不是修復;Deep Research Agents 從另一面測量出下一代系統面臨的同一種交換:一旦模型相信自己檢索到的內容,只要一份看似合理但實際錯誤的檢索文件,就能讓錯誤結論的採信率從 0% 升到 54.7%,而且完全不需要任何注入。沒有根據的推理會因捏造而失敗;有根據的推理會因相信其根據而失敗。課堂只陳述了前半部分——「搭配搜尋結果的幻覺,比單靠內部狀態更容易受到控制」——這在 2022 年說得通,如今卻是較弱的主張。

限制動作空間,確保動作有效#

有位學生問,如何知道產生的動作真的能執行?Chowdhery 的回答是一種值得與 ReAct 本身分開看待的技術:把動作選擇設計成從列舉出的有效集合中分類。 提供模型目前狀態、到目前為止的推理,以及當下合法的動作清單,讓它從清單中選,而不是輸出自由文字。她提到,這也用在 Google 的一項機器人研究合作中,因為「世界狀態要求動作必須非常有效,所以實際運作時不能沒有一份動作清單。」

由此可知兩點。這是目前已知最便宜的防護方法,可避免代理程式捏造不存在的工具呼叫——它和 MCP 中具型別的工具綱要做的是同一件事,只是透過提示而非協定達成。此外,它也劃定了這種模式的邊界:課堂指出 ReAct 的限制是,大型動作空間所需的示範數量超出上下文容納能力,而這正是無法再列舉所有動作的情況。

這種做法已用於瀏覽器自動化,並以獨立模型實作(2026-09)。 LangChain 的 Jev 整合文章(vendor-claim)表示,Browserbase 根據完全相同的構想重建 Stagehand 的 act()——「在任何特定時刻,頁面上只有有限數量的互動元素,因此下一個動作實際上就是從清單中選擇。」Stagehand 標示互動元素;Jev 是一個只輸出具型別決策、不輸出文字的模型,負責挑選動作類型與元素;信心度低於 0.7 時則由 LLM 接手。act() 的中位延遲從 1.97 秒降至 0.46 秒(這是 Browserbase 早期測試的二手資料;沒有成功率數據)。與課堂介紹的版本相比,兩點有所改變。列舉工作由環境介接器逐步執行,而非靠上下文中的範例,所以清單只會和單一頁面一樣大;這避開了大型動作空間的限制,卻沒有真正解決它。此外,負責選擇的也不再是推理模型:對便宜分類器有信心的步驟會完全略過想法回合,並保留完整 ReAct 模型作為備援。其上限也很明確——Jev 的選項數量最多為 255,超過後供應商會改用較慢的兩階段評分再選擇。關於這個串接中尚未測量的精確度,請參見 Typed Decision Verifiers。

(利益衝突,雖小但值得說明:這項機器人研究合作是 Chowdhery 過去在 Google 的工作,而她教學中 ReAct 實驗所用的主幹模型 PaLM,則由她擔任主要作者。課堂都沒有揭露這兩點。)

這種模式的命運:harness 不再提供它#

課堂中最經久不衰的觀察,是 ReAct 已經過時;講者兩度說明這件事:

「在今天的模型裡,推理已經變成內在能力,因為思考已經成為模型的一部分。但如果回顧過去幾年 LLM 的歷史,這不是一開始就有的能力。」

「如果你在[開源]模型中開啟思考模式,就會看到這些行為開始出現,因為模型已經用這類軌跡蒸餾過……它們已經學會如何呼叫工具等等。」

這正是 Harness Shrinkage as Models Improve 在一個特定基本原語上的具體例子,也揭示了明確的機制:過去強制模型交替輸出的提示鷹架變成了訓練資料,訓練後的模型現在會在沒有提示時自行輸出交替模式。鷹架沒有變得更好,而是被吸收了。這也說明為何這個詞在本 wiki 的 2026 年來源中仍用來指稱迴圈形狀——如今沒有人再撰寫 ReAct 範例,但每個代理程式仍會執行想法/動作/觀察結果,因為模型現在就是這樣運作。

課堂留下的未解問題#

兩段討論經 ASR 完整保留下來,而且都至關重要。

模型知道自己知道什麼嗎? 有位學生追問何時應該搜尋——例如做一加一就不必搜尋。Chowdhery 的回答拒絕了這種說法:「這裡有一組相互矛盾的看法……通常如果你請模型評估自己的輸出,問它是否有信心,模型的校準就不太好。這仍是一個正在解決的研究問題。」 她的設計結論是繞開它——「你要找的與其說是知道模型是否知道,不如說是讓模型使用合適的一組工具,讓你取得有根據的知識。」 也就是因為無法校準,便採用以根據性取代校準。此後 wiki 已記錄了這項失敗(Confident But Unsure)與一項刻意設計的補救方式(Trained Calibration),所以這種替代如今是選擇,不再是唯一選項。

如果環境說謊呢? 當被問到回饋有雜訊或錯誤時會如何,班上提出三種補救方式,Chowdhery 全部認同:在推理前,對環境輸出加入一層反思層;回溯(因為有雜訊的回饋「可能讓它陷入重複迴圈」);以及根據重複嘗試建立的信心估計。ReAct 本身完全沒有這些機制——它信任每一項觀察結果——而班上提到的重複迴圈失敗,正是 Stopping Under a Noisy Verifier 後來精確估價的問題:在有雜訊的檢查器下,受限的修復迴圈可能比直接提交初稿更糟。

延伸閱讀#

  • CS329A: Self-Improving AI Agents (Stanford) — 第 4 講介紹的第一篇論文;課程從單輪推理走向使用工具代理程式的入門
  • Aakanksha Chowdhery — 講者,也是實驗所用 PaLM 主幹模型的主要作者
  • Agent Loop Pattern — 高一層的基本原語:ReAct 是想法與動作的內部交替;迴圈模式則關乎整個流程何時再執行、何時停止
  • RL from Execution Feedback (RLEF) — 第 4 講介紹的第二篇論文;相同迴圈將觀察結果換成測試結果,並將整個流程放進訓練中:ReAct 在推論時為凍結模型提供根據性,RLEF 則以梯度讓根據性成為模型的一部分
  • Deep Research Agents — 這種模式在當前實務中的樣貌,以及從另一端衡量其根據性取捨之處:幻覺消失後,留下的是檢索失敗與檢索投毒
  • Deterministic Engineering for Agent Code Review — 生產環境中的 ReAct 迴圈,並固定所有自由參數:六個有上限的工具、30 次迭代、空回合偵測器,以及將上述列舉動作原則發揮到極致
  • Turn-Level Credit Assignment — 想用軌跡訓練時可以採取的作法:TRACE 的信用分配單位正是 ReAct 的動作與觀察結果邊界;其發現價值變化集中在少數觀察結果上,正是上述「Front Row software」補救方式的量化版本
  • Invisible Reasoning (Filler-Token Latent Computation) — 想法回合背後尚未解決的問題。有人問為什麼推理詞元必須放進動作空間,Chowdhery 回答:「語言模型是用語言訓練的,所以讓它們使用適當抽象層次的推理詞元會有幫助……如果你有中間表徵,也許就無關緊要了。」她明確承認,語言化可能只是基底媒介造成的偶然結果;本頁的填充詞元結果正直接探測這個假設
  • Confident But Unsure — ReAct 繞過而非修復的校準落差
  • Trained Calibration — 當初採用權宜作法時尚不存在的補救方式
  • Stopping Under a Noisy Verifier — 為課堂提出的環境雜訊疑慮估價的研究,也說明「加上反思層再重試」不一定會改善結果
  • Task Time-Horizon Scaling — 說明 WebShop 成功率為何低於分數:多步驟購買中的錯誤會逐步累積
  • Harness Shrinkage as Models Improve — 這種模式本身的演變軌跡:提示鷹架成為蒸餾後的模型行為
  • The Verifiability Thesis — 備援路由器以多數決共識強度作為「我答對了嗎」的代理指標;此中心頁面說明該選擇器的限制
  • Typed Decision Verifiers — 將列舉動作技術視為一類產品:具型別的選擇模型從每一步的頁面元素清單中選擇(Stagehand act()),信心度低於門檻時由 LLM 備援
  • MCP and Computer Use — ReAct 透過提示中的列舉方式解決有效動作問題;此處則介紹協定層的解法
  • Tree Search over Agent Trajectories (LATS) — 在這種交替模式外加上搜尋:LATS 保留 ReAct 的想法/動作/觀察結果單位,再加入分支、評分節點、回溯,以及對軌跡失敗原因的書面反思。下一講就會介紹它,稱之為「在流程中加入愈來愈多規劃」
  • Offline Multi-Step Tool-Use RL (SWiRL) — 以 ReAct 形狀的軌跡進行訓練,而非透過提示引出:SWiRL 離線產生這些軌跡,以評審為每個動作評分,再更新權重。其盲點正是本頁所述的失敗模式交換——形式正確但什麼也沒找到的查詢,得分和找到答案的查詢一樣
  • Guarantees That Degrade at Deployment: Action-Space Soundness, Admissibility Without Effect, and a Vendor-Coupled Security Framework — 動作空間大到超出上下文視窗後,列舉動作技術的演變:透過重新配置保留保證(ScopeGate 的第 1 階段將「從清單中選擇」移到失敗時拒絕的執行階段;清單大小不再受限於上下文,而不在清單中的動作會無法執行,而非只是較不可能被選到),限制也從上下文容量轉為政策涵蓋範圍
  • Retrieval Inside the Reasoning Chain — 行動模型本身已是會產生搜尋的推理模型時,同一種交替模式的延伸,另外加入兩項設計:以軌跡中模型自己的遲疑用語(「或許」、「另外」、「等等」)作為觸發條件;並在讀回觀察結果之前,根據目前查詢摘要整理內容。第二項正是本頁的失敗模式交換所預示的需求——根據性會讓系統依賴檢索結果,而將 10–20 份文件全塞進推理鏈,就會開始付出依賴的代價

開放問題#

  • 課堂宣稱交錯軌跡「極具可解讀性」,因此人們能信任模型回應。本 wiki 後續的來源則把語言化推理視為對計算過程不可靠的說明(Chain-of-Thought Monitorability、Invisible Reasoning (Filler-Token Latent Computation))。每一步都根據觀察到的工具結果,是否讓 ReAct 軌跡比一般思維鏈更忠實?還是根據性只讓動作變得可驗證,想法仍和以前一樣是事後編造?
  • 當動作空間很大時,列舉有效動作集合就會失敗,而如今所有真實代理程式都處於這種情況。有什麼方式能在大規模下恢復保證?還是目前只能靠具型別的工具綱要加上重試?Guarantees That Degrade at Deployment: Action-Space Soundness, Admissibility Without Effect, and a Vendor-Coupled Security Framework 已在 2026-08-17 部分回答這個問題。分歧點已有結論:具型別的綱要是能力閘控,嚴格弱於列舉原本提供的保證——它會驗證形狀,而跨框架稽核發現 LangChain/LangGraph、LlamaIndex 與 Stripe Agent Toolkit 預設都沒有針對具體引數值執行確定性的失敗時拒絕檢查。透過重新配置便能恢復保證:ScopeGate 第 1 階段(「未列出的工具 → DENY。阻止模型發現的工具與拼錯的變體造成副作用」)將本頁的技術從提示搬到執行階段,清單大小不再造成成本,而不在集合中的動作會變得無法執行,而非只是較不可能被選到;接著第 2 至第 5 階段會決定提示清單原本無法處理的屬性。重試方面也有進展:NetInjectBench 的閘控會改用固定的安全備援,而不是直接終止,因此封鎖幾乎沒有代價(不安全工具動作率為 0.00%,有用動作率為 99.17%)。尚未回答的是「大規模」這一部分。 限制已從上下文容量轉為政策涵蓋範圍,而目前沒有來源測量大規模工具集合上的閘控——ScopeGate 管理少數工具,NetInjectBench 管理兩項工具;前者承襲現有變更管理紀錄中的政策,而不是自行制定政策。Rashidi 的 Gap 4 指出,39 篇執行安全研究的語料中,沒有任何論文測量政策制定錯誤。

資料來源#

  • CS329A Self-Improving AI Agents — Part 4: Learning from Feedback with Tools and Code — CS329A Self-Improving AI Agents — Part 4: Learning from Feedback with Tools and Code,由 Aakanksha Chowdhery 單獨主講,Stanford Online。於 2025-10-03 授課,2026-08-03 發布至 YouTube(practitioner-opinion,YouTube 自動字幕逐字稿,約 12,900 字)。講座中介紹 ReAct 的部分:想法/動作/觀察結果抽象及其兩個先行研究脈絡、跨四種提示方式演示 HotpotQA 範例、HotpotQA/FEVER/WebShop 結果及 CoT-SC 備援組合、WebShop 分數 66.6 與人類的 82.1 分差距,以及錯誤累積解釋分數與成功率差距、從幻覺到檢索失敗的交換、將動作空間視為分類、大型動作空間與推論成本的限制,以及「思考如今已是內在能力」的觀察。另有兩段討論模型校準與環境回饋雜訊。ReAct 論文本身不在 raw/ 中;所有數據都是從投影片的 ASR 讀出,故表述保留不確定性
  • Building Prod with Jev and LangGraph — Sydney Runkle 與 Hunter Lovell,LangChain 部落格,2026-09-25,vendor-claim(Jev 整合合作夥伴)。僅用於說明 Browserbase 重建 Stagehand act() 的做法(元素清單 → 具型別選擇 → 信心度低於 0.7 時改由 LLM 接手;中位延遲從 1.97 秒降至 0.46 秒,為二手資料)
§ end
Cited by 24
Related articles
  • Open Questions Backlog

    Generated by `_system/lint.py --write-backlog`. Do not hand-edit. Domain and Watching sections carry one row per page —…

  • CS329A: Self-Improving AI Agents (Stanford)

    Stanford's graduate course on self-improving agents, taught by Azalia Mirhoseini and Aakanksha Chowdhery (Autumn 2025,…

  • Process vs Outcome Reward Models

    The four-year arc of trained LLM verifiers as taught in CS329A lecture 3: OpenAI's GSM8K verifier (score the finished s…

  • Large-Scale Test-Time Compute

    Noam Brown's thesis that model capability is now a function of inference budget (tokens/cost/time): with good scaffoldi…

  • Aakanksha Chowdhery

    Adjunct professor at Stanford, co-instructor of CS329A, and a researcher at Reflection AI; previously Google Brain, whe…