「回答」與「做事」之間的鴻溝
如果你叫一個純聊天機器人 (chatbot)「幫我訂下週五飛東京最便宜的機票」,它頂多只能描述你可以怎麼訂。它沒有辦法打開網站、比價或按下按鈕。它產生文字,然後停下。大型語言模型代理 (LLM agent) 補上了這個鴻溝:它是一個被放進迴圈裡的語言模型,可以對世界採取行動——呼叫搜尋 API、執行程式碼、點擊連結——觀察結果,再決定下一步。
這個轉變細微卻巨大。聊天模型做的是文字進 → 文字出。代理做的是目標進 → 一連串改變世界的行動,直到目標達成。同一個底層模型,現在驅動的是一個流程。我們把模型獨力把一個多步驟任務做到完成的能力,稱為 自主任務執行 (autonomous task execution)。
自回归生成示意图:提示词送入模型,模型每次生成一个词元,并不断把生成的词元追加回输入。
代理迴圈:觀察、思考、行動
不管框架多花俏,每個代理都跑著同一個心跳。模型看著當前情境,推理該做什麼,發出一個行動,環境執行該行動並回傳結果,然後迴圈重複。這一來一回就是代理的 回饋迴圈 (feedback loop)——模型從不盲飛,因為每個行動都回傳一個觀察,為下一個決策提供依據。
- 觀察 (Observe)——讀取目標,加上目前蒐集到的一切(最新的工具輸出、剛載入的頁面、剛拋出的錯誤)。
- 思考 (Think)——對情境進行推理,選出下一步;模型通常會在做出決定前先把推理寫出來。
- 行動 (Act)——發出一個具體行動:呼叫工具、執行查詢,或宣告任務完成並交回答案。
- 迴圈 (Loop)——環境回傳新的觀察,循環重新開始,直到達成目標或觸發停止條件。
循环示意图,展示大语言模型智能体的推理、行动、观察三个阶段相互反馈。
代理需要的三項材料
一個有能力的代理立在三隻腳上。工具給它雙手——讓它能做文字以外的事;我們稱之為 工具使用 (tool use),而在當下選對工具就是 工具選擇 (tool selection)。規劃給它遠見——把模糊的目標拆成有序的子步驟,這就是 代理規劃 (agent planning)。記憶給它連續性——在許多迴圈回合之間記住事實、結果與先前的決策,這就是 代理記憶 (agent memory)。
拿走工具,代理就只能自言自語。拿走規劃,它就會在一個個行動之間亂闖、毫無策略。拿走記憶,它就會忘掉兩步前學到的東西、一再重複。接下來四篇指南會依序把每隻腳建起來;這篇只是先把整張圖植進你腦中。
第一個具體的軌跡
下面是一個簡短任務作為迴圈軌跡實際長什麼樣子。注意模型從不猜天氣——它採取行動去查清楚,把結果讀回來後才回答。
Goal: "Should I bring an umbrella to my 3pm meeting in Taipei?"
Think: I don't know today's Taipei forecast. I should look it up.
Act: get_weather(city="Taipei", when="today 15:00")
Observe: { temp_c: 27, rain_chance: 0.8, condition: "showers" }
Think: 80% chance of showers at 3pm. That's high. I can answer now.
Act: finish("Yes — bring an umbrella; ~80% chance of showers at 3pm.")