Agent 是什麼:模型+工具+迴圈
Agent 聽起來很神秘,拆開來其實只有三樣東西:會做決定的模型、能真正動手的工具、以及把兩者串起來反覆執行的迴圈。這堂課先把觀念建立起來。
在上一個單元「LLM API」裡,你學會了用程式呼叫模型:送出訊息、拿回文字、甚至拿回結構化的 JSON。不過到目前為止,模型都只是說,從來沒有做。
你可能用過 Claude Code 這類工具:你說「幫我整理這個資料夾」,它會自己列出檔案、讀內容、建資料夾、搬檔案,一步一步完成。這種會自己動手、多步驟完成任務的程式,就叫做 Agent(代理程式)。
這個單元的目標,是讓你不靠任何框架,自己寫出一個 Agent。寫過一次,你就會知道那些工具和框架在背後幫你做了什麼。
模型為什麼需要工具
模型就像一位很聰明、但被關在房間裡的助理。它懂很多,也很會推理,但它:
- 看不到你電腦裡的檔案;
- 不知道今天的天氣、股價或最新消息;
- 沒辦法真的寄信、搬檔案、寫入資料庫。
工具就是你從門縫遞進去的「遙控器」。你告訴模型:「這裡有一個 read_file 工具,給它檔名就能讀到內容。」模型想看檔案時,會回答「請幫我用 read_file 讀 notes.txt」,然後由你的程式真的去讀,再把內容交回給它。
這點非常重要:模型從頭到尾都沒有碰到你的電腦,所有動作都是你的程式執行的。這也表示,安全與權限完全在你的掌控之中,第五堂課會專門討論。
迴圈:一步接一步
只有工具還不夠。很多任務沒辦法一步完成:要整理資料夾,得先看裡面有什麼,再決定怎麼分類,再一個個搬過去。
所以我們需要一個迴圈:
模型是大腦、工具是手腳,迴圈讓它們一直合作到任務完成。
用白話寫出來,整個流程是這樣:
把任務交給模型
重複以下步驟:
模型回應
如果模型說「我要用某個工具」:
程式執行那個工具
把結果交回給模型
否則:
模型已經完成,印出最後的回答,結束
就這麼簡單。第三堂課你會把這段白話寫成真正可以執行的 Python 程式,不到一百行。
Agent、工作流程、單次呼叫怎麼選
不是所有事情都需要 Agent。Agent 比較慢、比較貴,也比較難預測,因為下一步由模型決定。先問自己:步驟是不是事先就能寫死?
| 類型 | 誰決定步驟 | 適合的例子 |
|---|---|---|
| 單次呼叫 | 只有一步 | 摘要一篇文章、把訂單轉成 JSON |
| 工作流程 | 你的程式寫死順序 | 每天抓資料 → 摘要 → 寄出報告 |
| Agent | 模型邊做邊決定 | 「幫我找出這個專案為什麼跑不起來」 |
上一個單元做的訂單抽取就是單次呼叫,用 Agent 反而大材小用。當任務需要探索、步驟事先無法確定、而且做錯了能發現並修正時,Agent 才真正派得上用場。
那框架在做什麼?
市面上有很多 Agent 框架,各家 SDK 也提供了幫你跑迴圈的工具,例如 Anthropic SDK 裡的 tool runner。它們本質上都在做上面那段白話流程,再加上一些方便的功能。
這個單元會先帶你手寫,因為:
- 出問題時,你看得懂發生了什麼;
- 你能自己決定在哪裡加上確認、限制和記錄;
- 之後換任何框架、任何供應商(OpenAI、Google 也有類似的工具呼叫功能),觀念都一樣。
這個單元的路線
- 這堂:理解 Agent 是什麼。
- 定義工具:寫一份模型看得懂的工具說明書。
- Agent 迴圈:把白話流程寫成程式。
- 上下文與記憶:對話太長時怎麼辦。
- 安全護欄:怎麼避免 Agent 做出危險的事。
- 行動練習:做一個真的能用的檔案整理 Agent。
我正在學 AI Agent 的原理。請用生活中的例子(例如請助理幫忙訂餐廳),解釋「模型、工具、迴圈」三者各自扮演什麼角色,並舉出一個適合用 Agent、一個不適合用 Agent 的工作。
- 打開你用過的 AI 工具(例如 Claude Code 或 ChatGPT),請它完成一個需要好幾步的任務,觀察它在畫面上顯示的每個工具呼叫。
- 把觀察到的過程,照上面的白話流程寫下來:它用了哪些工具、每一步拿到什麼結果、什麼時候決定結束。
- 列出你工作或生活中三件重複性的事,判斷各自適合「單次呼叫」、「工作流程」還是「Agent」,並寫下理由。
讀完了嗎?
標記完成後,單元與專案的進度會自動更新(只存在這台裝置的瀏覽器)。
留言與討論
卡關了、有心得,或發現內容需要更新?都歡迎留言。留言使用 GitHub 帳號登入。