AI agent 跟直接呼叫 LLM 所提供的 API,到底差異在哪?

featured image

相信現在的多數職業,如果 AI 玩得很深入,在工作上非常頻繁地使用到 LLM,無論你是使用哪家的 AI 產品。在寫程式還是做資料整理時,我都發現 LLM 幫助大到驚人。不過最近 AI Agent 這麼的熱門,使用 AI agent 和直接呼叫 LLM API,到底差別在哪裡?

目前,Anthropic 的定義對於兩者的差異內容如下:

Workflow 是一種系統,會透過預先定義好的程式流程,去協調 LLM 與各種工具的使用。另一方面,Agent 則是一種系統,由 LLM 動態地自行決定其執行流程與工具使用方式,並持續掌控它要如何完成任務。

從 AI 的角度來看,一個 agent 應該具備自主判斷能力,能夠決定何時以及要呼叫多少次可用工具,來完成某個指定任務。使用者提供這些工具的存取權限,但 AI 必須根據任務的具體需求,自行決定是否要呼叫 API、執行外部工具、跑腳本,或使用其他輔助工具。所以,AI agent 基本上就是依照 prompt 指示,根據工具呼叫的需求去重新導向它的查詢,這其實就是我們平常做的 function calling

不過,「重新導向查詢」這種說法通常比較像是在描述 multi-agent architecture(多代理架構)。這個概念目前被炒作得很厲害,但本質上仍然是以 workflow 為主。目前一般的 API 請求,呼叫內容通常是比較單純的一次性請求,所有需要完成的事情都包含在那一次呼叫裡。

而 agent 的核心,基本上是在於先建立一個計畫。這個計畫當然會包含一連串步驟,而且每個步驟裡可能不只會有一次呼叫。

例如:

  • 步驟 1:讀取檔案並找出變數 a(這裡可能就需要多次呼叫,也就是 tool calling)
  • 步驟 2:把它重新命名成 a1
  • 步驟 3:編譯原始碼,檢查改名後是否導致任何錯誤(這裡同樣也可能涉及很多次工具呼叫)
  • 步驟 4:如果出現錯誤,就去查看出錯的那些程式碼行,並嘗試修正,修正方式也會像前面那些步驟一樣逐步進行,以此類推。

這比較像是一連串會持續推進的「連鎖反應式步驟」,直到任務的最終目標達成,或 agent framework 判斷自己已經卡在迴圈中,應該停止為止(近期知名的 Ralph loop 概念)。