1. CrewAI 簡介與其在 AI 代理領域的定位 [1]

CrewAI 是一個基於角色的協調框架,旨在簡化多代理系統的建構,使其比其他框架更容易上手。

1.1. CrewAI 的核心概念與優勢 [24]

  1. CrewAI 協助建構多代理系統 [24]
    1. CrewAI 是一個基於角色的協調框架,專為建立多代理系統而設計 [24]。
    2. 它的設計理念是「基於規則的協調,客製化程度較低」,因此比 LangChain 更容易建構 [39]。
    3. 在 CrewAI 中,「Crew」代表代理工作流程,而「Crew 成員」則是底層的代理 [49]。

1.2. AI 代理框架的比較 [26]

  1. AI 代理的定義 [43]
    1. 當大型語言模型(LLM)獲得呼叫工具的能力時,就形成了一個代理 [43]。
    2. 例如,當使用者詢問大阪的天氣時,LLM 會存取天氣 API 工具,理解意圖並呼叫該工具 [44]。
    3. 工具會回傳輸出(例如大阪約 19°C 且有小雨),這就是代理的輸出 [46]。
    4. 將多個代理結合在一起,就形成了代理式 AI 工作流程 [48]。
  2. 其他代理式 AI 框架 [26]
    1. AutoGen:輕量且快速,適合概念驗證專案 [30]。
    2. Google SDK 或 LangGraph:如果公司與 Google 產品(尤其是 GCP)緊密結合,則建議使用這些框架 [32]。
    3. LangGraph:適用於基於圖形、有狀態協調且需要高度客製化的使用案例 [33]。
      1. LangGraph 處理非線性流程,與 LangChain 的線性執行方式不同 [36]。
    4. LangChain:雖然傳統上不專為代理式 AI 設計,但仍可實作相關程式碼,不過程式碼行數會非常多 [27]。

2. 使用 CrewAI 建構天氣與貨幣轉換代理的實作 [52]

本節將逐步展示如何使用 CrewAI 建立一個能夠處理天氣查詢和貨幣轉換的多代理系統。

2.1. 應用案例與工具設定 [53]

  1. 應用案例概述 [53]
    1. 目標是建立一個代理工作流程系統,當使用者提問時,系統會根據問題類型採取不同行動 [54]。
    2. 如果是與工具無關的隨機問題,LLM 會直接提供答案 [57]。
    3. 如果問題與天氣相關,LLM 會呼叫天氣工具並回傳結果 [58]。
    4. 如果問題與貨幣兌換相關,LLM 會呼叫貨幣兌換工具並回傳結果 [59]。
  2. 工具定義 [61]
    1. 系統將使用兩個工具:天氣工具和貨幣兌換工具 [61]。
    2. 天氣工具:使用 Open-Meteo,免費且無需 API 金鑰 [79]。
      1. 該工具透過特定連結獲取天氣資訊,並設定相關參數 [102]。
      2. 例如,當訊息是「Get the weather in Osaka」時,它能將「Osaka」解析為城市輸入 [110]。
    3. 貨幣轉換工具:使用 Frankfurter,同樣免費且無需 API 金鑰 [80]。
      1. 輸入參數包括金額、來源貨幣和目標貨幣 [106]。
      2. 例如,當問題是「Can you convert 100 USD to INR?」時,AI 模型能解析出金額、來源貨幣和目標貨幣作為參數 [107]。
  3. 大型語言模型(LLM)配置 [64]
    1. 範例中將使用 XAI Grok 作為 LLM [64]。
    2. 如果要切換到其他模型,例如 Llama 或 OpenAI 的 ChatGPT,只需更改模型名稱即可 [65]。

2.2. 環境設定與代理建構 [82]

  1. 安裝與環境設定 [82]
    1. 首先需要安裝 CrewAI 函式庫,這大約需要 2 分鐘 [82]。
    2. 安裝完成後,匯入所需的模組並設定環境 [84]。
    3. 匯入的模組包括 Agent、Task 和 Crew [92]。
      1. Agent:自主實體 [93]。
      2. Task:代理要完成的目標 [94]。
      3. Crew:不同工具的組合,也是 LLM [95]。
  2. 定義代理 [115]
    1. 代理的主要任務是意圖分類 [117]。
    2. 如果問題與天氣相關,代理會呼叫天氣 API;如果與貨幣相關,則呼叫貨幣 API [119]。
    3. 代理的目標是「透過提供準確的即時天氣資訊和執行精確的貨幣轉換來幫助使用者」 [121]。
    4. 天氣工具和貨幣轉換工具都綁定到這個代理上 [123]。

2.3. 代理執行流程 [125]

  1. 天氣查詢範例 [125]
    1. 任務設定為:「What is the current weather in Tokyo right now?」 [125]。
    2. 呼叫 CrewAI,將助理代理與天氣任務(使用者輸入)結合 [128]。
    3. 執行流程:
      1. CrewAI 執行開始 [134]。
      2. 任務處理開始 [135]。
      3. 代理啟動 [135]。
      4. 工具執行開始,工具回傳回應 [135]。
      5. 工具執行完成,代理提供最終答案 [136]。
      6. 任務完成,Crew 完成 [137]。
  2. 貨幣轉換範例 [138]
    1. 任務設定為:「500 USD to INR」 [138]。
    2. 執行流程與天氣查詢類似:
      1. Crew 執行開始,任務開始,代理被觸發 [139]。
      2. 貨幣轉換工具被觸發,代理理解並觸發該工具 [140]。
      3. 工具回傳回應,回應傳給代理,代理寫出最終答案 [142]。
      4. 任務完成,CrewAI 完成 [143]。

3. 結論與進階應用 [145]

本節總結了 CrewAI 的易用性,並提供了關於如何修改 LLM 的提示。

3.1. CrewAI 的易用性與程式碼獲取 [145]

  1. CrewAI 的易用性 [145]
    1. 影片中展示了一個簡單的天氣和貨幣代理應用程式 [144]。
    2. 程式碼將提供給觀眾自行執行和客製化 [145]。
    3. 影片強調,使用 CrewAI 進行開發「非常非常容易」 [148]。
  2. 程式碼獲取條件 [152]
    1. 如果影片達到 100 個讚和 50 條評論,程式碼將會分享 [152]。

3.2. 更換大型語言模型 (LLM) 的方法 [154]

  1. 更換 LLM 的方式 [154]
    1. 影片中已解釋如何更換 LLM,例如從 GPT-4 切換到其他模型 [154]。
    2. 在 CrewAI 中,只需直接呼叫 LLM,例如指定為「Grok」即可 [157]。
  2. 範例:切換到 Llama 模型 [160]
    1. 如果想切換到 Llama 3.2 等模型,只需設定 model 參數或提供 base_URL 即可 [160]。
    2. 影片中展示了如何透過簡單的程式碼設定來實現模型切換 [165]。