所有入門單元免費開放 · 課程內容持續更新中

Agent 是什麼:模型+工具+迴圈

Agent 聽起來很神秘,拆開來其實只有三樣東西:會做決定的模型、能真正動手的工具、以及把兩者串起來反覆執行的迴圈。這堂課先把觀念建立起來。

第 11.1 堂約 11 分鐘

在上一個單元「LLM API」裡,你學會了用程式呼叫模型:送出訊息、拿回文字、甚至拿回結構化的 JSON。不過到目前為止,模型都只是說,從來沒有做。

你可能用過 Claude Code 這類工具:你說「幫我整理這個資料夾」,它會自己列出檔案、讀內容、建資料夾、搬檔案,一步一步完成。這種會自己動手、多步驟完成任務的程式,就叫做 Agent(代理程式)。

這個單元的目標,是讓你不靠任何框架,自己寫出一個 Agent。寫過一次,你就會知道那些工具和框架在背後幫你做了什麼。

模型為什麼需要工具

模型就像一位很聰明、但被關在房間裡的助理。它懂很多,也很會推理,但它:

  • 看不到你電腦裡的檔案;
  • 不知道今天的天氣、股價或最新消息;
  • 沒辦法真的寄信、搬檔案、寫入資料庫。

工具就是你從門縫遞進去的「遙控器」。你告訴模型:「這裡有一個 read_file 工具,給它檔名就能讀到內容。」模型想看檔案時,會回答「請幫我用 read_file 讀 notes.txt」,然後由你的程式真的去讀,再把內容交回給它。

這點非常重要:模型從頭到尾都沒有碰到你的電腦,所有動作都是你的程式執行的。這也表示,安全與權限完全在你的掌控之中,第五堂課會專門討論。

迴圈:一步接一步

只有工具還不夠。很多任務沒辦法一步完成:要整理資料夾,得先看裡面有什麼,再決定怎麼分類,再一個個搬過去。

所以我們需要一個迴圈:

Agent 迴圈:使用者給任務,模型決定要用哪個工具,程式執行工具並把結果交回模型,反覆進行,直到模型不再需要工具並回報結果

模型是大腦、工具是手腳,迴圈讓它們一直合作到任務完成。

用白話寫出來,整個流程是這樣:

把任務交給模型
重複以下步驟:
    模型回應
    如果模型說「我要用某個工具」:
        程式執行那個工具
        把結果交回給模型
    否則:
        模型已經完成,印出最後的回答,結束

就這麼簡單。第三堂課你會把這段白話寫成真正可以執行的 Python 程式,不到一百行。

Agent、工作流程、單次呼叫怎麼選

不是所有事情都需要 Agent。Agent 比較慢、比較貴,也比較難預測,因為下一步由模型決定。先問自己:步驟是不是事先就能寫死?

類型 誰決定步驟 適合的例子
單次呼叫 只有一步 摘要一篇文章、把訂單轉成 JSON
工作流程 你的程式寫死順序 每天抓資料 → 摘要 → 寄出報告
Agent 模型邊做邊決定 「幫我找出這個專案為什麼跑不起來」

上一個單元做的訂單抽取就是單次呼叫,用 Agent 反而大材小用。當任務需要探索、步驟事先無法確定、而且做錯了能發現並修正時,Agent 才真正派得上用場。

那框架在做什麼?

市面上有很多 Agent 框架,各家 SDK 也提供了幫你跑迴圈的工具,例如 Anthropic SDK 裡的 tool runner。它們本質上都在做上面那段白話流程,再加上一些方便的功能。

這個單元會先帶你手寫,因為:

  • 出問題時,你看得懂發生了什麼;
  • 你能自己決定在哪裡加上確認、限制和記錄;
  • 之後換任何框架、任何供應商(OpenAI、Google 也有類似的工具呼叫功能),觀念都一樣。

這個單元的路線

  1. 這堂:理解 Agent 是什麼。
  2. 定義工具:寫一份模型看得懂的工具說明書。
  3. Agent 迴圈:把白話流程寫成程式。
  4. 上下文與記憶:對話太長時怎麼辦。
  5. 安全護欄:怎麼避免 Agent 做出危險的事。
  6. 行動練習:做一個真的能用的檔案整理 Agent。
可以這樣問 AI

我正在學 AI Agent 的原理。請用生活中的例子(例如請助理幫忙訂餐廳),解釋「模型、工具、迴圈」三者各自扮演什麼角色,並舉出一個適合用 Agent、一個不適合用 Agent 的工作。

行動練習
  1. 打開你用過的 AI 工具(例如 Claude Code 或 ChatGPT),請它完成一個需要好幾步的任務,觀察它在畫面上顯示的每個工具呼叫。
  2. 把觀察到的過程,照上面的白話流程寫下來:它用了哪些工具、每一步拿到什麼結果、什麼時候決定結束。
  3. 列出你工作或生活中三件重複性的事,判斷各自適合「單次呼叫」、「工作流程」還是「Agent」,並寫下理由。

讀完了嗎?

標記完成後,單元與專案的進度會自動更新(只存在這台裝置的瀏覽器)。

卡住了?讓 AI 當你的家教複製這段提問範本,貼到 Claude 或其他 AI 工具,再補上你卡住的地方。

留言與討論

卡關了、有心得,或發現內容需要更新?都歡迎留言。留言使用 GitHub 帳號登入。

留言區即將開放。現在可以先到 GitHub 討論區 發問,或看看 交流頁 的其他管道。