跳到主要內容

AI 202 · 模組 3

ReAct:Reasoning + Acting

Agent 為什麼不能只想完再做,而需要一邊推理、一邊行動、一邊觀察?

開始第一節
已完成 0 / 6
同步我的進度加入梯次後,進度可跨裝置保存,講師也能看到

資訊

加入後,你已完成的模組編號會連同「學員代碼」傳送給講師,講師可以看到你的進度。請使用講師提供的代碼,不要輸入姓名、公司機密或其他個資。進度資料與該梯次的其他資料一起保存。

學習目標

  • 說明 ReAct 如何交替進行 Reasoning、Action 與 Observation
  • 描述迴圈:Goal、Reason、Choose Action、Act、Observe、Update State、Reason Again
  • 區分 Reasoning step、Action step、Observation、State update 與 Next-step decision
  • 說明與 AI 201 的關係:哪個工具是安全的,相對於何時以及為什麼選擇它
  • 辨識早期錯誤如何在迴圈中傳播,以及證據如何限制它
  • 用模擬資料為自己的使用案例追蹤一個 ReAct 迴圈

問題與需求

8 分鐘

先全部想完再做,行不通

在模組 2,Agent 建立了 Candidate Plan。但 Plan 是在 Agent 還沒看到全部情況之前寫的。真實的情況會回應:某個來源是空的、某個數字對不上、某個頁面說了出乎意料的內容。本模組的核心問題是:Agent 為什麼不能只想完再做,而需要一邊推理、一邊行動、一邊觀察?

工作情境(模擬)

一位助理被要求找出實驗室預約為何下降。它想了很久,一次寫出完整的 12 步 Plan。結果第 3 步依賴的資料檔,上學期的部分是空的。第 4 到 12 步全都建立在那份檔案上,整份 Plan 必須丟掉。如果助理先執行第 3 步、看了結果之後才決定第 4 步,就能立刻發現問題。

  • 只推理不行動,是對一個還沒看過的世界做猜測
  • 只行動不推理,是一連串沒有理由的動作
  • Observation 是讓推理與現實保持連結的證據
  • 交替進行,讓每個結果都能影響下一個決定

注意

一條聽起來很有把握的推理鏈不是證據。Agent 應該相信它觀察到的,勝過它假設的;人也應該能讀懂 Trace,看出每一步為什麼這樣做。

重點: Reasoning 告訴 Agent 該試什麼;Action 與 Observation 告訴它推理對不對。

核心概念

10 分鐘

ReAct 迴圈

ReAct 是一種讓 Agent 交替進行 Reasoning 與 Acting 的模式,並用每次 Observation 決定接下來要推理什麼。它是一種反覆決策的方式,也是許多 Agent 設計底層的基本迴圈。

ReAct 迴圈
  1. Goal:Agent 想達成的結果
  2. Reason:目前的 State 代表什麼?最好的下一步是什麼?
  3. Choose Action:從可用的 Action 中選一個合適的
  4. Act / Use Tool:執行該 Action
  5. Observe Result:讀取回傳的內容
  6. Update State:記錄現在已知與已完成的事
  7. Reason Again:帶著新的 State 回到 Reason

文字說明:迴圈從 Goal 開始。Agent 對 State 進行 Reasoning 並選擇 Action。它執行(通常是使用工具),然後觀察結果,用所學更新 State,再次 Reasoning。迴圈持續到達成 Goal,或遇到模組 1 的 Stop Condition。

迴圈的一輪(模擬)
部分看起來像什麼
Reasoning「預約下降了,但我不知道是哪間實驗室。應該先依實驗室檢視預約。」
Action打開預約表並依實驗室分組
Observation實驗室 C 下降 40%;其他持平
State update已知:下降只在實驗室 C。未知:原因
Next-step decision檢查實驗室 C 是否有關閉或時間表變動
自我檢測

ReAct 交替進行 Reasoning 與 Acting 的主要原因是什麼?

ReAct 交替進行 Reasoning 與 Acting 的主要原因是什麼?

重點: ReAct:Reason、Act、Observe、Update State、Reason Again,直到達成 Goal 或遇到 Stop Condition。

10 分鐘

一個步驟的五個部分:哪個是哪個?

要閱讀或撰寫 ReAct Trace,你必須分得清五件事。它們很容易混在一起,而混在一起會掩蓋錯誤。

ReAct 步驟的五個部分
部分它回答的問題範例(模擬)
Reasoning step情況代表什麼?該做什麼?「下降可能只在某一間實驗室,所以依實驗室分組。」
Action stepAgent 實際做了什麼?把預約表依實驗室分組
ObservationEnvironment 回傳了什麼?實驗室 C 下降 40%,其他持平
State updateAgent 現在知道什麼、做過什麼?下降定位在實驗室 C;原因未知;已用 1 個 Action
Next-step decision有了新的 State,接下來是什麼?檢查實驗室 C 的時間表;若無法取得,詢問人
  • Reasoning step 是思考;在採取 Action 之前,它不會改變世界上的任何事
  • Observation 不是 Agent 選的;它是 Environment 回傳的任何內容
  • State update 只應記錄觀察到或做過的事,而不是期望的事
  • Next-step decision 應該由 State 推導出來,而不是習慣性地重複上一步

薄弱的 Trace

  • Reasoning 與結果混在同一個句子裡
  • State 從未被寫下來
  • 出現下一步,卻與所見沒有連結

可讀的 Trace

  • 每個部分都有標示且分開
  • 每次 Observation 之後都更新 State
  • 每個下一步都由 State 推導,人可以檢查
自我檢測

Trace 中有一行寫著:「工具回傳錯誤,所以這筆紀錄不存在。」哪個部分被混在一起了?

Trace 中有一行寫著:「工具回傳錯誤,所以這筆紀錄不存在。」哪個部分被混在一起了?

重點: 把 Reasoning、Action、Observation、State update 與 Next-step decision 分開,每一步才能被檢查。

10 分鐘

選擇 Action,以及 AI 201 的位置

許多 ReAct 的 Action 會使用工具。這裡有兩個不同的問題,分屬兩門不同的課程。

AI 201 問的是

  • Agent 可以安全地使用什麼工具?
  • 它可以用什麼權限存取哪些資料?
  • 哪些 Action 需要人確認?

AI 202 問的是

  • Agent 何時、為什麼應該選擇那個工具?
  • 目前的 State 中有什麼證據指向它?
  • Expected Outcome 是什麼?失敗了怎麼辦?

本課程不教工具如何建置或連接。它假設安全的工具已如 AI 201 所述設定好,並專注在使用工具的決定。

以證據驅動的工具選擇(模擬)
State 中的情況合理的 Action原因
需要一個存放在表格中的數字讀取該表格需要的證據就在那裡,而且讀取可以還原
兩個來源互相矛盾找第三個來源,或詢問人默默選一個會掩蓋衝突
下一個 Action 會把資料送到團隊外停止並請求核准不可還原且對外,所以由人決定
需要的工具無法使用說明狀況,選擇其他做法或升級給人不要編造結果

資訊

Human–AI–Human:安全的工具是一種許可,不是一項指示。Agent 每次使用都應有理由,理由應該在 Trace 中看得到,而有實際影響的 Action 應由人確認。
自我檢測

哪一個陳述最能區分 AI 201 與 AI 202?

哪一個陳述最能區分 AI 201 與 AI 202?

重點: AI 201 讓工具可以安全使用;AI 202 根據目前 State 中的證據,決定何時與為什麼使用它。

錯誤傳播

10 分鐘

迴圈中的錯誤傳播

因為每一輪都建立在上一輪的 State 上,迴圈早期的錯誤會擴散。對 Observation 的錯誤解讀會變成錯誤的 State,影響下一個 Reasoning,再影響下一個 Action。這就是錯誤傳播。

一個早期錯誤如何擴散
  1. Observation 被誤讀:一個空檔案被當成「沒有預約」
  2. State 被錯誤更新:「上學期沒有預約」
  3. Reasoning 建立在其上:「所以下降是全面的,去找停用的原因」
  4. Action 跟著 Reasoning:搜尋停用公告
  5. 錯誤的方向持續下去,後面的步驟看起來都與它一致

文字說明:五個階段排成一條鏈。被誤讀的 Observation 產生錯誤的 State;錯誤的 State 產生錯誤的 Reasoning;接著導致錯誤的 Action;Agent 因為之後每一步都與早期的錯誤一致,就很有把握地往錯的方向繼續。

限制錯誤傳播的方法
習慣看起來像什麼
把 Observation 與結論分開先寫下回傳了什麼,再說它代表什麼
檢查出乎意料的結果空的或極端的結果會觸發再看一次,而不是直接下結論
證據優先於假設若 State 中有未驗證的假設,就標示為未驗證
為迴圈設上限步數上限,以及重複錯誤之後的 Stop Condition
在關鍵處讓人介入結果矛盾或下一個 Action 有實際影響時升級給人

資訊

正式的 Evaluation、Verification 與 Reflection 會在後續模組涵蓋。可靠復原的基礎架構屬於其他課程(AI 301 與 AI 302)。這裡的目標只是讀懂 Trace,並看出錯誤是在哪裡進來的。
自我檢測

Agent 讀到一個空的結果,立刻斷定沒有資料,並據此規劃。哪一個習慣最有幫助?

Agent 讀到一個空的結果,立刻斷定沒有資料,並據此規劃。哪一個習慣最有幫助?

重點: 早期的誤讀會擴散到之後每一步。把 Observation 與結論分開,並檢查出乎意料的結果。

實作與應用

12 分鐘

實作:Trace a ReAct Loop

活動 3 要你追蹤一個 ReAct 迴圈。先做範例,再對你自己的使用案例做。請勿在此練習中輸入真實的公司機密、客戶個人資料或任何未經授權的敏感資訊。

示範範例(模擬)。Goal:解釋這學期實驗室預約為何下降
輪次Reasoning stepActionObservationState updateNext-step decision
1不知道下降發生在哪裡;依實驗室分組把預約表依實驗室分組實驗室 C 下降 40%;其他持平下降在實驗室 C;原因未知檢查實驗室 C 的時間表
2關閉或時間表變動可能解釋這件事打開實驗室 C 的時間表兩週標示為「維修中」維修與下降重疊;尚未確認是全部原因與上學期比較
3需要基準來判斷兩週是否能解釋 40%打開實驗室 C 上學期的預約上學期沒有維修;下降相當於兩週流失的預約維修解釋了大部分的下降撰寫說明,並請人確認維修日期
  1. 確認目前的 Goal
    用一句話寫出你使用案例的 Goal,以及你起始的 State。
  2. 寫下 Reasoning 決定並選擇 Action
    寫下你為什麼要做下一件事,然後從可用的 Action 中指出一個。
  3. 檢視 Observation 並更新 State
    如實寫下回傳的內容,再寫下現在已知與尚未知道的事。
  4. 決定下一步
    從新的 State 選擇下一個 Action。至少重複三輪,並註明人應該在哪裡確認。
  • Reasoning step:在該 State 下為什麼這樣做
  • Action step:Agent 做了什麼
  • Observation:回傳了什麼,不加更動
  • State update:現在已知與已完成的事
  • Next-step decision:由新的 State 推導出的下一步

資訊

成果:ReAct Trace,至少三輪的表格,標示五個部分。它會成為你的 Agent Planning & Reasoning Canvas 的一部分。
自我檢測

在你的 Trace 中,哪一項應該放在 Observation 欄?

在你的 Trace 中,哪一項應該放在 Observation 欄?

重點: Human–AI–Human:人定義目標與限制,Agent 一步一步推理與行動並留下可見的 Trace,人審查 Trace 並負責。

接下來做什麼?