[筆記] AI agents for beginners 第四課: What Is the Agent Tool Use Design Pattern 課後心得

TL;DR

第四課主題開始探討 AI Agent 的「工具使用設計模式」(Tool Use Design Pattern)概念,個人覺得這對於理解 Agent 如何透過工具真的與所處的 context 進行互動,並觀察行動之後環境的變化,擬定下一個動作計劃直到完成目標 task 的模式很有幫助

為什麼需要工具?

我們都知道大型語言模型(LLM)很強大,可以直接生成文字內容來回覆我們的問題。但有些任務,光靠 LLM 自己是做不到的,例如:

  • 查看即時的航班狀態
  • 進行精確的數學計算
  • 查詢最新的客戶資料

這時候,就像人類需要工具一樣,AI Agent 也需要「工具」來完成這些超出它們本身能力的任務。

什麼是工具使用設計模式?

簡單來說,「工具使用設計模式」就是一種方法,它讓大型語言模型 (LLM) 能夠與外部工具互動。這些工具可以是:

  • 計算機(calculators)
  • API(例如查詢航班狀態的 API)
  • 應用程式內部的特定功能(例如處理貨幣兌換的 function)

透過這個設計模式,AI Agent 就能夠藉助外部工具來執行或驗證資訊,而不僅僅是依賴它自己學到的訓練資料。

學會使用工具的好處(實際應用範例)

學會這個模式,我們的 AI Agent 能做的事情就更多了:

  • 處理資料查詢:Agent 可以使用生成程式碼的工具來建立資料庫查詢,從客戶資料庫中取得即時資訊。
  • 與現有系統整合:Agent 可以連接到像 CRM(客戶關係管理系統)這樣的系統,直接回答客戶訂位相關問題,減少人工介入
  • 自動化複雜工作流程:Agent 可以組合使用不同的工具來自動化流程,例如處理電子郵件並將資訊轉發,提高效率

工具呼叫的小細節(以 Semantic Kernel 為例)

課程中提到了使用 Semantic Kernel 這個框架來實作工具呼叫。我們學到了一些設定方式:

  • 自動(Auto):讓 Agent 自行判斷是否需要呼叫工具函式。
  • 必要(Required):根據情境,強制要求 Agent 呼叫特定函式

這些設定讓我們可以依需求更靈活地控制 Agent 的行為。

實際操作:一個旅遊 Agent 的例子

影片中展示了一個旅遊 Agent 的工具使用範例。它使用了一個包含兩個功能的 "destinations plugin"

  1. get destinations:取得所有可用的目的地列表。
  2. get availability:查詢特定目的地的可用性。

使用者問「有哪些目的地可用?」時,Agent 呼叫了 get destinations 函式並顯示結果。

使用者問「巴塞隆納還有位置嗎?」時,Agent 呼叫了 get availability 函式並回報結果(不可用)。

LLM 的強大之處與工具的結合

這個例子精彩地展現了 LLM 與工具結合的力量。

當使用者問:「有沒有不在歐洲的目的地可用?」

開發者無需特別寫程式去判斷哪些城市在歐洲,因為 LLM 已擁有這些常識。Agent 會先理解問題意圖,再呼叫工具查詢東京與紐約的可用性,最後回答:紐約可用,東京不可用。

這體現了 LLM 的自然語言理解能力工具調用能力的強大結合,讓 Agent 更聰明、更貼近使用者需求。

建立 Agent 時的其他考量

課程也簡要提到設計 Agent 時需注意的事項:

  • 安全性:確保 Agent 僅擁有執行任務所需的最低權限。
  • 錯誤處理:考慮服務中斷或工具呼叫失敗的應對方式。

這些屬於進階主題,後續課程會進一步介紹。

總結

「工具使用設計模式」讓 AI Agent 從單純的文字生成器,變成能夠與外部世界互動、執行實際任務的智能助手。

對剛入門的我們來說,理解並掌握這個概念,就像是拿到了一把開啟 AI Agent 潛力的鑰匙。

希望這篇心得對新手朋友有幫助!我們下個單元見!

留言

這個網誌中的熱門文章

【海外婚紗】道具行李篇

[Android] 內部儲存體(Internal Storage)的檔案系統讀寫(File I/O)