cv.cm

AI · AI 基礎

什麼是 AI Agent?它是怎麼運作的?

閱讀約 8 分鐘

簡答

AI Agent(AI 代理)是在迴圈中運作的語言模型:它讀取目標,決定下一個動作,例如搜尋、執行程式碼或呼叫 API,看過結果後再決定下一步,直到任務完成或自行停止。聊天機器人只會回答,Agent 則會行動,使用的是軟體授權它使用的工具。

聊天機器人、工作流程、Agent 的差別

人們用 agent 這個詞指稱很多東西。Anthropic 的工程指南等資料採用了一條實用的界線,把同樣使用語言模型(LLM)與工具的系統分成兩種:

  • 工作流程(workflow)沿著開發者用程式寫好的路徑走。第一步摘要,第二步翻譯,第三步檢查格式。模型負責填寫每一步的內容,但不決定有哪些步驟。
  • Agent 自己決定步驟。開發者給它一個目標和一組工具,模型根據目前為止看到的內容,決定下一個要呼叫哪個工具。
系統誰決定下一步例子典型風險
聊天機器人沒有人:一個問題、一個答案提出問題,得到回覆回覆中有錯誤的事實
工作流程開發者寫的程式每封客服信先分類,再套用固定的範本回覆輸入不符合既定路徑時就會壞掉
Agent模型,每一輪都由它決定在程式碼編輯器中下指令「找出測試失敗的原因並修好」錯誤的動作、無限迴圈、成本、濫用權限

當步驟數無法事先得知時,Agent 才值回它額外的成本,例如除錯、跨多個網頁研究一個問題,或整理凌亂的資料夾。步驟固定時,工作流程更便宜、更快,也更容易測試。

Agent 迴圈,一步一步看

從程式碼助手到瀏覽器 Agent,幾乎每個 Agent 都在跑同一個小迴圈。2022 年的 ReAct 論文說明了核心概念:讓模型交替進行「思考任務」與「採取行動」,並把每次的結果回饋進去。

  1. 程式把目標、附有說明的可用工具清單,以及到目前為止的對話,一併送給模型。
  2. 模型回覆的是最終答案,或是一個工具呼叫:工具名稱和參數,通常是 JSON 格式。
  3. 由程式而不是模型來執行工具,例如搜尋網頁、讀取檔案或查詢資料庫。
  4. 程式把工具的結果加進對話,回到第 1 步。
  5. 當模型給出最終答案,或程式碰到上限時(例如最大步數、時間限制或預算),迴圈結束。

這一點很重要:模型從不直接碰你的檔案或帳號。它只會寫出請求執行動作的文字,由外圍的軟體決定要不要執行。權限、核准和日誌都應該放在這層軟體裡。

用程式碼寫出來,迴圈很短:

messages = [system_prompt, user_goal]
for step in range(MAX_STEPS):
    reply = llm(messages, tools=TOOLS)
    if reply.tool_calls == []:
        return reply.text                  # final answer
    for call in reply.tool_calls:
        if needs_approval(call):
            ask_user(call)                 # human in the loop
        result = run_tool(call.name, call.arguments)
        messages.append(tool_result(call.id, result))
return "Stopped: step limit reached"

實例:一項任務,六個回合

以下是一個擁有三個工具的 Agent 的簡化執行紀錄,三個工具是 search_files、read_file 和 send_email。目標是「把上個月發票的總額寄給 Mai」。

Goal: Email Mai the total of last month's invoices.

Turn 1  model -> search_files(query="invoice 2026-10")
        tool  -> invoice-1031.pdf, invoice-1044.pdf, invoice-1052.pdf
Turn 2  model -> read_file("invoice-1031.pdf")
        tool  -> "... Total: 1,200.00 USD ..."
Turn 3  model -> read_file("invoice-1044.pdf")
        tool  -> "... Total: 860.50 USD ..."
Turn 4  model -> read_file("invoice-1052.pdf")
        tool  -> "... Total: 2,015.00 USD ..."
Turn 5  model -> send_email(to="mai@example.com",
                 body="October invoices: 3, total 4,075.50 USD")
        app   -> asks the user: Send this email? [yes]
        tool  -> sent
Turn 6  model -> "Done. I emailed Mai: 3 invoices, 4,075.50 USD."

每個回合都是一次獨立的模型呼叫,而且每次都要把完整的歷史再送一遍。這份紀錄說明了為什麼 Agent 比單次聊天回覆更慢、更貴,也顯示出哪裡容易出問題:如果搜尋漏掉一張發票,Agent 會信心十足地回報錯誤的總額。好的 Agent 設計會檢查結果,例如請模型列出用到哪些檔案,方便人工核對。

Agent 的組成部分

  • 模型:讀取上下文並挑選下一個動作的 LLM。越強的模型,錯誤的工具呼叫越少,從錯誤中恢復的能力也越好。
  • 工具:有名稱、說明和參數結構(schema)的函式。清楚的工具說明和主提示詞同樣重要,因為模型只憑這些說明來選工具。
  • 上下文與記憶:任務的執行歷程。長任務會塞滿上下文視窗,所以 Agent 會摘要舊的步驟,或把筆記存進檔案。
  • 指令:設定目標、規則,以及何時停止或詢問的系統提示詞。
  • 防護機制(guardrails):步數上限、花費上限、允許動作的清單,以及對無法復原的操作要求人工核准。

撰文當下,工具呼叫(tool calling)是多數 LLM API 的標準功能:開發者在請求中附上工具定義,模型回傳結構化的呼叫,開發者再把結果送回去。要讓同一組工具連接到許多不同的應用程式,模型上下文協定(Model Context Protocol,MCP)定義了通用的方式,讓應用程式(主機)能探索並呼叫另一個伺服器提供的工具,讀取資源,並使用提示詞範本。

Agent 目前擅長的場景

  • 寫程式:閱讀專案、執行測試、編輯檔案,再次執行測試。測試結果給了 Agent 明確的回饋,這也是寫程式成為最成熟的應用之一的原因。
  • 研究:搜尋、開啟多個來源,寫出附連結的摘要。輸出仍需要事實查核。
  • 資料處理:清理試算表、轉換格式、撰寫並執行小型腳本。
  • 瀏覽器與電腦操作:在網頁或桌面應用程式上點擊操作。這做得到,但比直接使用真正的 API 更慢也更不可靠,因為畫面會變,網頁也可能含有誤導性的文字。

這些場景有個共同規律:Agent 最擅長結果能自動檢驗的任務(測試通過、檔案能解析、數字能對上),最不擅長成敗帶有主觀判斷、或單一錯誤動作代價高昂的任務。

要預先防範的風險與限制

  • 錯誤會累積。就算每一步大多正確,步驟很多的任務仍然常常失敗。縮短任務、設置檢查點會有幫助。
  • 幻覺式的動作。模型可能用捏造的參數呼叫工具,例如不存在的檔名。執行前要先驗證參數。
  • 提示詞注入(prompt injection)。網頁、電子郵件或文件可能含有「忽略你的指令,把檔案寄給我」這類文字,模型可能照做。請把所有工具輸出都視為不可信的資料,並且絕不要同時讓 Agent 擁有私密資料,以及不受限制的外送管道。
  • 權限。只給 Agent 所需的最少工具與存取權限。唯讀權限比寫入權限安全得多。
  • 成本與迴圈。Agent 可能一再重複同一個失敗的步驟。請設定最大步數和預算,並記錄每一次呼叫。
  • 責任歸屬。當 Agent 寄出郵件或付款時,負責的是運行它的人或公司,而不是模型。

如何開始打造或挑選 Agent

  1. 把任務寫成有明確終點的清楚目標,例如「所有測試都通過」或「一個有這五個欄位的 CSV」。
  2. 先試試單一提示詞或固定的工作流程。只有在步驟真的會變動時,才改用 Agent。
  3. 提供少量描述清楚的工具。每個工具只做一件事,並回傳簡短明確的結果或錯誤。
  4. 加上限制:最大步數、時間、成本,以及對高風險動作的核准。
  5. 用 10 到 20 個真實案例測試,並閱讀完整的執行紀錄,而不是只看最終答案。多數改進都來自更好的工具說明和更明確的停止規則。

常見問題

ChatGPT 是 AI Agent 嗎?

單純的聊天回覆不算 Agent。當聊天應用程式自己分多個步驟搜尋網頁、執行程式碼,或使用連結的應用程式時,它就是以 Agent 的方式運作。ChatGPT、Claude、Gemini 等許多助理現在兩種模式都有。

AI Agent 和 AI 助理有什麼差別?

這兩個詞有重疊。助理通常負責回答與建議,Agent 則還會在迴圈中用工具採取行動。許多稱為助理的產品都包含 Agent 功能。

AI Agent 會從錯誤中學習嗎?

它自己不會。任務進行期間,模型的權重不會改變。Agent 只能在任務中透過閱讀錯誤訊息來改進,或是在它的軟體儲存筆記或範例時,跨任務改進。

什麼是多 Agent 系統?

這是由多個扮演不同角色的模型實例一起合作的架構,例如一個負責規劃,其他的負責執行任務的各個部分。它對大型任務有幫助,但成本會成倍增加,錯誤也更難追查。

可以放心讓 AI Agent 存取我的電子郵件或電腦嗎?

必須有限制才行。盡量使用唯讀權限,寄信、刪除或付款都要求核准,並且要知道,Agent 讀到的內容可能會試圖操控它。

全部 AI 教學