ReAct(推理+行動)
又稱:ReAct 模式 · Reason and Act · 推理與行動 · thought action observation
讓模型在每次動手前先用文字講出想法(Thought),再提出動作(Action),拿到觀察結果(Observation)後進入下一輪。
你會在什麼時候遇到它
打開任何一個 Agent 的執行紀錄,你看到的就是這個格式。不認識它,你分不清哪段是模型的推理、哪段是程式塞回來的真實結果;更糟的是,你可能把那段流暢的「思考」當成它真實的決策過程 —— 它只是讀起來合理的文字,不是日誌。
打個比方
像實習生邊做邊報告:「我打算先查 A,因為 B」(想法)→ 真的去查(動作)→「查到的結果是 C」(觀察)→ 決定下一步。口頭報告讓你跟得上他,但你得記住:他說的是「聽起來的理由」,不一定是讓他真正這麼做的原因。
最小範例
Thought: 用戶要比較兩份合約的違約金條款,我先讀第一份
Action: read_file("contract_a.txt")
Observation: (程式回傳的檔案內容……)
Thought: 第 8 條講到違約金;接著讀第二份來對照
Action: read_file("contract_b.txt")注意 Thought 是模型生成的文字,Observation 是程式塞回來的真實結果 —— 兩者的可信度完全不同。觀察可能來自錯誤的來源,但想法永遠只是「說法」。
最常搞錯的地方
- 把 Thought 當成模型真實的內部過程。那是生成出來的、事後看來合理的敘述;模型沒有能力、也沒有義務保證它忠實記錄了自己為什麼這樣做。
- 以為寫了 Thought,動作就一定照著走。下一步可以和剛才的推理毫無關係,尤其在長上下文裡。要防這個,靠外部檢查,不是靠格式。