1. AI 代理框架概述 [1]

thumbnail 本節介紹了四種主要的 AI 代理框架,並強調了 CrewAI 作為初學者友善的選擇。

1.1. 主要的 AI 代理框架 [15]

  1. CrewAI 是其中一個受歡迎的框架,特別適合初學者使用 [18]。
  2. LangChain 是一個功能強大的框架,但對於初學者來說可能不那麼友善 [18]。
  3. Google Agent 是一個代理到代理的協議,旨在促進開放語言模型的發展 [21]。
  4. AutoGen 是一個生產級的代理框架,支援 .NET 語言 [23]。

2. CrewAI 的核心概念與代理類型 [25]

thumbnail

本節深入探討了 CrewAI 的核心優勢、代理流程類型以及如何建構代理的基本組成部分。

2.1. CrewAI 的優勢與代理流程 [25]

  1. CrewAI 的主要優勢 在於其簡潔性和易用性,使其成為建立協作 AI 代理的理想選擇 [24]。
  2. 三種不同的代理流程 決定了代理如何協同工作 [27]:
    1. 研究概念:代理首先進行研究 [28]。
    2. 工作流程:接著,代理會遵循一個定義好的工作流程,例如研究、編輯和最終確定 [29]。
    3. 專案經理團隊:這種類型涉及一個專案經理團隊來協調任務 [31]。
  3. 代理的協作 允許它們在工作流程中相互提供回饋,例如客戶代理可以提供回饋給其他代理 [34]。

2.2. 建立 CrewAI 代理的基本組成部分 [38]

  1. 從 Crew 導入代理 是建立代理的第一步,例如導入 agent 來建立一個媒體文章代理 [39]。
  2. 代理的定義 包含以下關鍵元素 [40]:
    1. 角色 (Role):定義代理的職責,例如「內容寫手」或「編輯」 [40]。
    2. 目標 (Goal):代理的最終目標,例如「撰寫一篇引人入勝且事實準確的內容」 [44]。
    3. 背景故事 (Backstory):提供代理的背景資訊,例如「你正在規劃一篇關於某個主題的部落格文章」 [45]。
    4. 預期輸出 (Expected Output):代理完成任務後應產生的結果,例如「一份包含大綱、受眾分析、SEO 關鍵字和資源的綜合內容規劃文件」 [52]。
  3. 任務的定義 類似於代理的定義,包含任務描述和預期輸出 [54]:
    1. 任務描述:詳細說明代理需要完成的具體工作,例如「優先考慮最新趨勢、關鍵參與者和值得注意的新聞」 [51]。
    2. 預期輸出:任務完成後應產生的結果,例如「一篇以 Markdown 格式撰寫的部落格文章,每節應有兩到三個段落」 [55]。
  4. 代理與任務的連結 透過將代理(例如 planner、writer、editor)與其各自的任務(例如 write_task、edit_task)連結起來,形成一個工作流程 [58]。
  5. 最終步驟 涉及執行代理團隊來處理特定的主題,例如「汽車產業中的人工智慧」 [64]。
    1. 內容規劃:首先,代理會根據 SEO 關鍵字和重要點來規劃內容結構 [66]。
    2. 編輯與校對:接著,代理會檢查語法錯誤和拼寫錯誤 [67]。
    3. 顯示結果:最後,結果會以 Markdown 或 HTML 格式顯示 [68]。

3. CrewAI 中的工具與整合 [70]

thumbnail

本節探討了 CrewAI 如何利用內建工具和自訂工具來擴展代理的功能,使其能夠處理即時資訊和複雜的文字分析任務。

3.1. 內建工具的使用 [70]

  1. 代理的優勢 在於它們能夠自動化大型語言模型的工作流程,例如處理「汽車產業中的人工智慧」 [70]。
  2. 即時資訊的限制:大型語言模型通常無法提供即時或最新的數據,例如詢問「印度目前的確切時間」時,模型會表示無法提供即時資訊 [74]。
  3. 工具的引入 解決了大型語言模型的限制,允許代理存取外部資訊 [76]。
    1. 內建工具:CrewAI 提供了許多內建工具,例如用於搜尋的工具 [77]。
    2. Google 搜尋工具:代理可以使用 Google 搜尋來獲取最新資訊,例如搜尋「汽車產業中的人工智慧 2025」 [81]。
    3. 工具的定義:工具可以透過 from tool import tool 導入,並定義其名稱、描述和查詢次數等參數 [83]。
    4. 整合到代理:這些工具可以整合到現有的代理(例如 planner、writer、editor)中,讓它們能夠執行搜尋任務 [86]。

3.2. 自訂工具的建立 [94]

  1. 自訂工具的導入 允許開發者根據特定需求建立工具,例如導入 tools 模組 [94]。
  2. 工具輸入的定義:自訂工具需要定義輸入參數,例如 tool_input,它是一個包含 name 欄位的文字輸入 [98]。
    1. 資料驗證:CrewAI 支援資料驗證,確保輸入資料的正確性,例如檢查 required_field 是否有輸入文字 [100]。
  3. 文字分析工具 是一個自訂工具的範例,用於分析文字的情緒和極性 [106]。
    1. 導入 TextBlob:這個工具使用 TextBlob 庫來計算文字的主觀性和極性分數 [109]。
    2. 範例應用:文字分析工具可以分析不同的句子,例如「這是一個簡單的分析句子」、「CrewAI 是一個很棒的框架」或「這是一次糟糕的經歷」,並提供情緒分析結果 [112]。

4. 代理專案實作:履歷與面試準備系統 [117]

thumbnail

本節介紹了一個實際的 CrewAI 專案,該專案旨在建立一個自動化的履歷和面試準備系統,展示了多個代理如何協同工作以完成複雜任務。

4.1. 專案概述與代理角色 [117]

  1. 專案目標 是根據職位描述自動生成精煉的履歷和面試準備材料 [117]。
  2. 四個核心代理 協同工作以完成此專案 [119]:
    1. 研究員 (Researcher):負責搜尋相關資訊 [121]。
    2. 分析師 (Profiler):分析職位要求和候選人資料 [121]。
    3. 履歷策略師 (Resume Strategist):根據分析結果制定履歷策略 [121]。
    4. 面試準備代理 (Interview Preparation Agent):生成面試問題和準備材料 [121]。
  3. 代理的工作流程 涉及研究、分析、策略制定和面試準備,其中每個代理都負責特定的任務 [122]。
  4. 關鍵元素 包括搜尋和抓取資訊,以及一個專門的播放列表來解釋代理流程 [124]。

4.2. 專案程式碼解釋與執行 [128]

  1. 本地系統部署:專案可以在本地系統上運行,並使用 uv 作為套件管理器 [128]。
  2. 工作流程與工具:整個工作流程涉及四個不同的工具,這些工具整合到一個完整的網站應用程式中 [130]。
    1. 環境設定:應用程式可以在本地環境中運行,並使用深度模型進行處理 [131]。
    2. 內建工具:專案利用了內建工具,例如 scrape 和 file_read,以及 mdx 格式 [132]。
  3. 代理的執行流程:
    1. 職位研究員:首先,職位研究員代理會使用 Google 搜尋來獲取職位相關資訊 [134]。
    2. 履歷策略師:接著,履歷策略師代理會根據職位角色制定策略 [136]。
    3. 面試準備:最後,面試準備代理會根據職位任務描述和預期輸出生成常見問題 [137]。
  4. 任務與輸出:每個代理都有明確的任務和預期輸出,例如履歷和面試準備材料 [139]。
    1. 最終輸出:最終輸出包括面試材料的 Markdown 格式文件 [141]。
  5. 程式碼功能:程式碼實現了職位申請的功能,並提供了詳細的解釋 [143]。