人工智慧

AI Agent 運作原理:拆解「想、做、看、修正」迴圈

多數人開車導航時都遇過同一個狀況,明明設好了目的地,中途一個彎轉錯,導航沒有當機,也沒有堅持照原路線硬開,而是在幾秒內重新算出一條新路線,繼續往目的地走。這個「發現走錯、重新計算、再往前走」的過程幾乎是不知不覺完成的,你很少會特別注意到它正在運作。

AI Agent 做的事情,骨子裡其實很像這套導航邏輯。它不是丟一句話進去、吐一個答案就結束的單次生成,而是內部反覆跑一輪又一輪「想、做、看、修正」,直到把交辦的任務真正走完為止。這一整套機制,就是 AI Agent 運作原理的核心,不管面對的是規劃一趟行程、整理一批資料,還是回覆一封信,靠的都是同一套會自己繞回去修正方向的迴圈,而不是一次到位、寫死答案的問答機。看懂這個迴圈,之後才看得懂 Agent 遇到狀況為什麼會換一個做法,而不是卡住不動。

先從這個迴圈為什麼會存在、它跟一般語言模型的差別在哪裡講起,再一步一步拆開它實際怎麼運作。

AI Agent 怎麼決定下一步要做什麼?

這個迴圈在業界有個正式名字,叫做「推理與行動的迴圈(Reasoning and Acting,業界簡稱 ReAct)」。這個名字說的正是,AI Agent 不是使用者丟一句話、模型吐一個答案就結束的單次生成,而是內部可能反覆跑好幾輪「想、做、看」,才收斂出最終的結果。

這個迴圈由三個環節反覆組成:模型先在內部形成一段思考(Thought),接著把思考轉成一個具體行動(Action)去呼叫工具,工具執行完之後再把結果回傳給模型當作一次觀察(Observation),模型讀懂這個觀察,才決定下一輪要不要繼續、要換哪一種做法。一般的語言模型一次生成完就結束,提示丟進去、答案吐出來,中間沒有機會真正碰到外部世界;裝上這套迴圈之後,模型才能反覆跟外部世界打交道,而不只是跟使用者的提問對話。

AI Agent 運作原理的核心是想、做、看三拍不斷繞回的迴圈,不像一般語言模型只做一次生成
AI Agent 的核心是「想 → 做 → 看」不斷繞回的迴圈,一般語言模型則是提示進、答案出的單次生成。

因為每一輪都是模型自己看著上一輪的觀察結果,決定接下來要不要繼續、要做什麼,任務需要三步就三步,需要十步就十步,不必事先把步驟數寫死;這也是為什麼同一個 Agent 面對難易不同的任務,實際跑的輪數會不一樣。沒有這套迴圈,AI 頂多只是把問題丟進去、把答案吐出來的問答機;裝上這套迴圈之後,它才真正掌握了 AI Agent 運作原理裡最關鍵的能力,自己動手把一件事處理完,而不只是回答一個問題。只是這套迴圈聽起來很簡單,很多人卻把它跟另一種東西搞混,也就是寫死步驟的自動化流程。

AI Agent 不是寫死的自動化流程,而是自己決定下一步的迴圈

很多人一聽到 Agent,直覺反應是「就是包了一層 AI 外殼的自動化腳本」,步驟排得再多,好像也只是一支比較長的流程圖。這個直覺剛好抓錯了重點。

真正把 Agent 和傳統自動化流程分開的,不是步驟數量,而是下一步由誰決定。固定工作流程(workflow)的每一步,都是人事先寫好的判斷式,遇到 A 條件就走左邊分支、遇到 B 條件就走右邊分支,整條路徑在系統跑之前就已經定案。Agent 的迴圈不是這樣運作:模型看到當下這一輪的觀察結果之後,自己判斷下一步要做什麼、要不要換一種做法,路徑是邊跑邊決定出來的。

固定流程的路徑在執行前就由人寫死,AI Agent 則由模型看觀察結果邊跑邊決定下一步
固定流程的每一步都是人事先寫死的分支,AI Agent 則是模型邊跑邊決定路徑——差別不在步驟多寡,而在下一步由誰決定。

Anthropic 的工程部落格在拆解這兩種架構時,把 workflows 定義成「LLM 與工具沿著預先寫好的程式路徑運作」的系統,把 agents 定義成「模型動態主導自己的流程與工具使用方式」的系統——差別就落在主導權在誰手上這一句話。

同一個目標,Agent 每次實際走的路徑可能不完全一樣。同一句「幫我整理這份報告」,這一次可能先抓資料再排版,下一次可能先發現資料不齊全,回頭去找資料再排版,因為每一輪的判斷都取決於它剛剛看到了什麼,不是照著一張寫死的流程圖走。這也是為什麼「步驟很多」不等於「這是一個 Agent」,就算流程圖畫了二十個框,只要每一步的分支條件都是人事先寫定的,它終究是一套固定流程,只是比較複雜的固定流程而已。

至於什麼時候該用寫死的固定流程,什麼時候才需要讓模型自己決定路徑,答案跟任務的可預期程度有關。步驟順序可以事先講清楚的任務,固定流程通常更穩定、更好除錯;需要模型邊做邊判斷、路徑沒辦法完全預先寫死的任務,才輪到這種迴圈式的 Agent 上場。

這個迴圈實際上怎麼一步步跑?

把前面兩節談的框架,落到實際運作的細節上看,可以拆解成五個會在迴圈裡反覆出現的環節。以下先用通用、抽象的說法,逐一講清楚每個環節在做什麼、為什麼需要它;下一節再用一個訂機票的任務,把這五個環節串成一次完整的敘事。

AI Agent 一輪迴圈的五個環節:翻譯目標、規劃思考、呼叫工具、讀懂觀察、修正再出發
翻譯目標只在開頭做一次,之後就在規劃、呼叫工具、讀觀察、修正之間反覆繞,直到達標或碰終止條件。

步驟一:模型先把模糊的目標,翻譯成清楚的任務

使用者丟給 Agent 的目標,通常是一句模糊的自然語言,像「幫我訂機票」這種說法本身沒有帶任何具體參數。迴圈的第一步,就是模型要把這句話翻譯成一個可以執行的具體任務,從語句裡辨識出目的地、時間、預算這類關鍵參數,並確認「怎樣才算達成」的條件是什麼。

OpenAI 的技術文件在說明工具呼叫機制時提到,模型收到一句像「巴黎的天氣如何」這樣的提示,會先判斷這句話需不需要呼叫工具,再產生對應的函式名稱與參數值,這其實就是把模糊語句轉成具體任務的過程。這一步沒做好,後面整輪規劃都會建立在錯的前提上,目的地認錯、日期抓錯,後面幾輪再怎麼仔細做也是白費工夫。

這一步的解析做得夠不夠仔細,會直接決定後面幾輪的方向對不對,是很多任務出錯的起點,卻常常被忽略。

步驟二:模型想清楚該怎麼做,排出行動的先後順序

目標翻譯清楚之後,模型不會馬上動手,而是先在內部產生一段思考(Thought),推演現在的狀況、目標是什麼、該動用哪些工具、先後順序怎麼排。Hugging Face 在拆解這套機制時,把這一步定義成「模型決定下一步該做什麼」的環節。

Google Research 在介紹 ReAct 這套框架時也指出,推理軌跡(reasoning trace)本身並不會影響外部環境,它只是更新模型自己內部的判斷依據;換句話說,這段思考更像是說給自己聽的草稿,替下一步的實際行動鋪路,還沒有真正碰到外面的世界。

這也是為什麼同一個目標,Agent 有時候會先想過一輪才動手,而不是收到指令馬上呼叫工具,思考先行,才能減少亂槍打鳥式的嘗試。

步驟三:模型呼叫工具,真正碰到外部世界

想清楚之後,模型才會真正動手,產生一個結構化的行動(Action),呼叫某個外部工具,並帶入需要的參數,像是呼叫查詢航班的工具,帶入出發日期與目的地城市。

OpenAI 的技術文件把這整段流程拆成幾個階段:應用程式先把可用的工具清單交給模型,模型判斷要呼叫哪一個工具、帶哪些參數,接著由應用程式實際執行這個呼叫,執行結果再送回模型,模型才根據這個結果決定下一步,或者產生最終回應。

前面的思考都只是模型自己內部的推演,這一步才是它唯一真正碰到外部系統的地方。查詢的資料庫是真的、呼叫的介面是真的,結果也不是模型憑空想像出來的。

步驟四:模型看懂工具回傳的結果,不是靠自己想像

工具執行完之後,會回傳一個觀察(Observation),模型必須把這個真實的回傳結果重新讀進自己的推理脈絡裡,而不是憑空認定這件事「應該」已經成功。這一步是整個迴圈可不可靠的關鍵。

Google Research 在介紹 ReAct 時特別點出,行動(action)帶來的是外部環境真實的回饋,推理軌跡本身卻不會;實驗也發現,懂得參照這種真實回饋的推理過程,比起單純憑內部知識推論,更不容易編出不存在的內容。

換句話說,每一輪都要對照真實世界回傳的結果,迴圈才不會愈走愈偏、愈算愈離譜。這也是 Agent 跟只靠自己腦補流程跑完的單純問答機,最根本的差別。

步驟五:結果不如預期,模型修正計畫再出發

如果觀察到的結果不符合預期,像是查到的航班已經賣完,或者價格超出預算,模型不會就地卡住,而是把這個新資訊納入下一輪思考,重新規劃或換一個做法,再呼叫一次工具。這一步,正是迴圈真正繞回去、重新出發的地方,也是它跟寫死腳本最大的不同。

Hugging Face 對這套機制的說明就提到,只要觀察顯示錯誤或資訊不完整,Agent 就可以重新進入迴圈,修正自己原本的做法。

這個迴圈也不會無止盡繞下去。Anthropic 的工程部落格指出,執行過程中要不斷從環境取得真實的進度回饋來評估任務走到哪裡,直到拿到滿足目標的結果,或碰到預先設好的終止條件,像是重試次數的上限,才會結束,並把最終答案交回使用者。

訂一張機票,AI Agent 怎麼把五個步驟走完整趟?

把這五個環節攤開來看可能有點抽象,實際串起來是什麼樣子?假設使用者跟 Agent 說:「幫我訂下週三從台北飛東京的來回機票,預算兩萬元以內。」

模型先把這句話翻譯成具體任務:出發地台北、目的地東京、去程鎖定下週三、要含回程、預算上限兩萬元,這幾個參數一確定,後面才有東西可以查。

接著它會在內部想一輪,該先查去程時刻還是先比價、直飛跟轉機要不要都看,排出一個先後順序。

想清楚後,它呼叫查詢航班報價的工具,帶入日期、艙等這些參數,實際去查有哪些班機、要多少錢。

查詢結果回來,模型讀到的觀察並不理想,下週三符合條件的直飛航班,不是已經客滿,就是含稅要價超出預算兩成。這個結果不如預期,模型不會就這樣回報使用者訂不到,而是進入下一輪。

它把「原班機客滿、預算超支」這個新資訊納入思考,換一個做法,改查隔一天出發、或改看有轉機的航班,再呼叫一次同一個查詢工具。這一次觀察到有一班轉機航班,總價落在預算內,滿足了原本設下的條件,迴圈才真正停下來,把訂位結果與航班資訊整理好回報給使用者。

迴圈停在這裡,是因為它已經拿到滿足使用者條件的結果;若翻遍所有選項都超出預算,迴圈也會在碰到重試次數上限這類終止條件時停下,誠實回報找不到符合條件的航班,而不是無止盡查下去。

訂機票任務中 AI Agent 第一輪查不到符合預算的航班,修正條件後第二輪查到轉機航班才停
訂機票時首選直飛客滿又超預算,Agent 帶著新資訊改查轉機航班,第二輪找到符合預算的結果才讓迴圈停下。

AI Agent 看起來像在思考,實際上靠的不是哪一步特別聰明,而是這一整輪「想、做、看、修正」的迴圈不斷繞圈子換來的結果。它不需要一次就想對,只要每一輪都願意照現實調整方向就夠了。

這正是 AI Agent 運作原理最核心的一層。看懂這個迴圈,才看得懂 Agent 遇到狀況時為什麼會換一個做法,而不是卡在原地不動。之後要評估一個 Agent 做得好不好,該看的從來不是它每一步夠不夠聰明,而是這個迴圈本身有沒有被設計得夠可靠。

常見問答

本區問答由 AI 依文章內容自動整理,僅供快速參考,正式內容仍以全文為準。

AI Agent 跑不同任務時,為什麼輪數會不一樣?

因為每一輪迴圈都是由模型根據上一輪的觀察結果,自己決定接下來要不要繼續、要做什麼。任務需要三步就三步,需要十步就十步,不必事先把步驟數寫死。所以面對難易不同的任務,實際跑的輪數自然不一樣。

AI Agent 跟寫死的自動化流程差在哪裡?

差別不在步驟數量,而在下一步由誰決定。固定工作流程的每一步,是事先由人寫好的判斷式:遇到什麼條件就走哪個分支,路徑在開始跑之前就定案。Agent 的迴圈則是模型看到當下的觀察結果後,自己判斷下一步要做什麼,路徑是邊跑邊決定的。

AI Agent 收到模糊指令後,第一步要做什麼?

第一步,是把使用者一句模糊的自然語言指令,翻譯成一個可以執行的具體任務。模型會從語句裡辨識出目的地、時間、預算這類關鍵參數,並確認怎樣才算達成目標,讓後面每一輪的規劃都能建立在正確的前提上。

AI Agent 為什麼要讀懂工具回傳的觀察結果?

因為工具執行完會回傳真實的觀察結果,模型必須把它重新讀進推理脈絡,而不是憑空認定任務已經成功。懂得參照這種真實回饋的推理,比單純靠內部知識推論,更不容易編出不存在的內容,迴圈也才不會愈走愈偏。

AI Agent 的迴圈什麼時候才會停下來?

迴圈會在拿到滿足使用者目標的結果時停下,把最終答案整理好回報。如果一直達不到條件,也會在碰到重試次數上限這類預先設好的終止條件時停下,誠實回報找不到符合條件的結果,而不會無止盡查下去。

資料來源
  1. Building Effective Agents — Anthropic
  2. Function calling — OpenAI
  3. Understanding AI Agents through the Thought-Action-Observation Cycle — Hugging Face
  4. Observation: Integrating Feedback to Reflect and Adapt — Hugging Face
  5. ReAct: Synergizing Reasoning and Acting in Language Models — Google Research