🏢 第十一章:建立你的自動化跨國企業 (Multi-Agent Team)
在前面的課程中,我們已經學會了如何寫單一的爬蟲程式、建立單一的後端伺服器。 但是,在真實的商業世界中,要完成一件有價值的事情,例如:「產出一份台灣露營車市場的商業分析報告」,絕對不是一個人 (或一個單一的 LLM Prompt) 可以完成的。
如果你直接在 ChatGPT 輸入:「幫我寫一份露營車市場報告」,它會吐出一篇充滿幻想、沒有真實數據的廢話。
真正的解決方案是 「分工 (Delegation)」。你需要:
- 資料搜尋員:去網路上爬取最新的新聞和數據。
- 數據分析師:將搜尋員找回來的數據進行清洗、分析趨勢。
- 文案撰稿人:將枯燥的分析數據,包裝成吸引投資人的商業報告。
- 品質把關者 (QA):檢查報告有沒有錯字、邏輯通不通順。
在以前,你必須花錢雇用這四個人。但現在,有了 CrewAI 框架,你可以用 Python 瞬間「實例化」這四個 AI 員工,並把它們組成一個團隊 (Crew)。 這堂價值連城的實戰課,我們將帶你寫出這套大師級的跨國企業自動化架構!
🤖 實戰 1:精準捏造 AI 員工的人格 (Agent Persona)
在 CrewAI 中,AI 的能力取決於你賦予它的「人格 (Persona)」。 你給的角色設定越詳細,大語言模型 (如 GPT-4o 或 Claude 3.5 Sonnet) 扮演得就越像,輸出就越專業。
💡 Vibe Prompt 實戰 1:打造頂尖的市場分析師與撰稿人
不要自己去想那些形容詞,直接讓 AI 幫你寫出最逼真的 Prompt!
[!IMPORTANT] 請複製以下 Prompt 傳送給 AI:
我正在用 Python 的 CrewAI 框架組建一個虛擬團隊。團隊目標是產出「高質感的市場分析報告」。請幫我定義兩個 Agent:1. Senior Market Researcher (資深市場研究員)2. Expert Content Strategist (首席內容策略師)請給我這兩個 Agent 的 Python 宣告程式碼。必須包含:role, goal, backstory。其中 backstory 必須極度詳盡且專業,描述他們在麥肯錫或頂尖公關公司的工作經驗,以及他們敏銳的直覺和嚴格的標準。
🤖 AI 生成的百萬年薪員工設定:
from crewai import Agent
# 員工 1:資深市場研究員
researcher = Agent(
role='資深市場研究與數據分析師',
goal='挖掘網路上最深層、最新的市場數據與趨勢,並將雜亂的資訊過濾成高價值的核心情報。',
backstory=(
'你曾在麥肯錫 (McKinsey) 擔任過 10 年的首席分析師。'
'你擁有如鷹眼般銳利的直覺,能夠從海量、看似無關的新聞和論壇文章中,找出潛在的商業爆發點。'
'你對於數據的真實性有著近乎偏執的要求,絕不接受沒有來源的假設。'
'你擅長使用各種搜尋工具,是團隊中的「情報之眼」。'
),
verbose=True,
allow_delegation=False # 負責基層勞動,不能再把工作推給別人
)
# 員工 2:首席內容策略師
writer = Agent(
role='首席商業內容與公關策略師',
goal='將枯燥的市場數據,轉化為具有極強說服力、能讓投資人一秒買單的商業故事與簡報文章。',
backstory=(
'你曾是華爾街頂級投行的御用文案,也是多間世界 500 強企業的公關顧問。'
'你深知「數據是冰冷的,但故事是有溫度的」。'
'你擅長運用精準、優雅且具備煽動性的商業詞彙。'
'你的文章排版總是無可挑剔,對於 Markdown 語法更是爐火純青。'
),
verbose=True,
allow_delegation=False
)
🔍 深度解析:
這就是 Agentic AI (智能體) 與傳統 LLM 對話的最大差異。
當你賦予了 writer 曾在華爾街工作的背景後,它寫出來的句子會自動變成:「隨著資本市場的板塊推移,露營車產業正迎來前所未有的價值重估...」,而不是小學生寫的:「露營車現在很受歡迎喔,大家都很喜歡。」這就是所謂的 Role-playing (角色扮演) 紅利。
🎯 實戰 2:切割工作任務 (Task Decomposition)
有了員工,不能讓他們無所事事。我們必須指派工作 (Task)。 在多代理系統中,任務的切割是一門藝術。你不能直接把「寫報告」這個大任務丟給他們。你必須切割成「搜集資料」與「撰寫文章」兩個步驟。
💡 Vibe Prompt 實戰 2:定義上下文相依的流水線任務
[!IMPORTANT] 請複製以下 Prompt 傳送給 AI:
我有了 researcher 和 writer 兩個 Agent。請幫我定義兩個 CrewAI Task。主題是:"2024年台灣露營車市場的爆發趨勢"。Task 1 (research_task):交給 researcher,要求他去尋找近期的市場規模、熱門營地數量、消費者痛點。Task 2 (write_task):交給 writer,要求他「接收上一個任務的結果」,寫成一篇包含前言、數據分析、未來展望的 Markdown 長文。請在 Python 程式碼中強調 expected_output 的重要性。
🤖 AI 的高階專案管理派令:
from crewai import Task
# 任務 1:市場深度調查
research_task = Task(
description=(
'請針對「2024年台灣露營車市場的爆發趨勢」進行深度調查。'
'找出以下三個核心情報:'
'1. 目前台灣露營車/車泊的市場規模或成長率預估。'
'2. 近期爆紅的 3 個知名車泊地點及其特色。'
'3. 消費者在車泊時遇到的最大痛點 (如衛浴、供電問題)。'
),
expected_output=(
'一份結構化的情報摘要,必須包含清晰的數據點(Data Points)與來源說明,'
'請勿加入多餘的主觀評論,只需提供最純粹、最有價值的客觀情報。'
),
agent=researcher
)
# 任務 2:商業報告撰寫
write_task = Task(
description=(
'請根據 researcher 剛才提供的情報摘要,撰寫一篇準備發布在科技商業週刊上的專欄文章。'
'文章標題請自擬,必須極具吸引力。'
'文章結構必須包含:【執行摘要】、【市場動能】、【熱門標的分析】、【痛點即商機】四個段落。'
),
expected_output=(
'一篇至少 1000 字的完整 Markdown 文章。'
'必須使用 H2 和 H3 標題進行排版。重點數據必須使用**粗體**標示。'
'絕對不可捏造 researcher 沒有提供的數據 (拒絕幻覺)。'
),
agent=writer
)
🔄 實戰 3:建立企業總部 (Crew) 與執行流程 (Process)
員工找好了,任務也發下去了。現在我們要把它們關進會議室裡,讓它們開始工作。
在 CrewAI 中,這間會議室叫做 Crew,而開會的方式叫做 Process。
💡 Vibe Prompt 實戰 3:啟動循序漸進 (Sequential) 的工作流
[!IMPORTANT] 請複製以下 Prompt 傳送給 AI:
請幫我將剛才的 agents 和 tasks 整合進一個 Crew 實體中。設定 process 為 Process.sequential (循序漸進),也就是 Task 1 做完才會交給 Task 2。請示範如何呼叫 kickoff() 來啟動這個團隊,並將最終寫好的文章結果印出來,並且寫入一個名為 "market_report.md" 的檔案中。
🤖 AI 的企業執行引擎:
from crewai import Crew, Process
# 建立自動化團隊
tech_startup_crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential, # 循序漸進:研究員先查資料,寫手再根據資料寫文章
verbose=True # 開啟日誌,讓你在終端機可以看到員工思考的過程
)
print("🚀 CEO 下達指令!虛擬團隊開始運作...")
# 🔥 啟動!這個動作可能會執行 1~3 分鐘,這期間你可以去泡杯咖啡
result = tech_startup_crew.kickoff()
print("==========================================")
print("🏆 團隊任務完成!最終產出報告如下:\n")
print(result)
# 將價值連城的報告存入實體檔案
with open("market_report.md", "w", encoding="utf-8") as f:
f.write(result)
print("💾 報告已成功儲存為 market_report.md")
🔍 深度解析:
當你執行這段程式碼時,終端機的畫面會讓你驚豔無比。
你會看到 researcher 說:"I need to find data about Taiwan camping car market..."
接著你會看到 writer 說:"I have received the data from the researcher. Now I will structure it into an engaging article..."
這就是 AI 互相溝通的魔力。由於我們設定了 Process.sequential,writer 在執行任務時,CrewAI 會在背後偷偷把 researcher 剛才產出的那串情報摘要,當成「背景知識」塞給 writer。這完美解決了 ChatGPT 無法串聯多個複雜步驟的問題!
🌐 實戰 4:如果 AI 不會上網怎麼辦?(給予工具 Tools)
你可能已經發現了一個問題:researcher 很聰明,但如果他沒有「上網」的工具,他只能用他大腦裡(訓練資料)舊的、過時的記憶來寫報告。他根本不知道 2024 年發生了什麼事!
這就是大語言模型最大的致命傷:知識斷層與幻覺 (Hallucination)。 為了解決這個問題,我們必須給我們的員工配備「筆記型電腦與 Google 搜尋引擎」。在 CrewAI 中,這叫做給予 Tools (工具)。
💡 Vibe Prompt 實戰 4:為研究員裝備 Serper 搜尋引擎工具
在業界,最常用的 AI 搜尋引擎是 SerperDevTool (Google 搜尋 API)。
[!IMPORTANT] 請複製以下 Prompt 傳送給 AI:
我的 researcher 員工沒有最新的市場資訊,發生了幻覺。請教我如何整合 crewai_tools 中的 SerperDevTool,讓 researcher 可以自己上 Google 搜尋最新資訊。請提供如何設定環境變數 SERPER_API_KEY,以及如何將這個 tool 綁定給 researcher 的程式碼。
🤖 AI 的神裝武器庫:
import os
# 從官方工具箱中引入超強的 Google 搜尋工具
from crewai_tools import SerperDevTool
# 設定 API 金鑰 (請去 serper.dev 免費註冊拿金鑰)
os.environ["SERPER_API_KEY"] = "你的_SERPER_API_KEY"
# 實例化搜尋工具
search_tool = SerperDevTool()
# 重新定義我們的研究員,為他配備神裝!
researcher = Agent(
role='資深市場研究與數據分析師',
goal='挖掘網路上最深層、最新的市場數據與趨勢。',
backstory='...',
verbose=True,
allow_delegation=False,
# 🔥 關鍵在這裡!把工具掛載到員工身上
tools=[search_tool]
)
🔍 深度解析:
當你為 researcher 裝備了 search_tool 後,奇蹟發生了。
當他看到任務:「找出近期爆紅的 3 個知名車泊地點」,他會自己思考:「我不知道這是哪裡,我必須使用搜尋工具。」
接著,CrewAI 會在背後自動發送一個 Google 搜尋請求,把前 10 名的網頁標題與摘要抓回來,丟給 researcher 看。
如果他覺得資訊不夠,他甚至會「自己換一個關鍵字再搜尋一次」!直到他認為自己找到了正確答案,才會把報告交給 writer。
這就是 自主智能體 (Autonomous Agent) 碾壓傳統腳本爬蟲的絕對優勢!
🤯 高階實戰 5:階層式管理 (Hierarchical Process) 與管理員 AI
上面的 Sequential (循序漸進) 模式很棒,但如果 researcher 偷懶,找回來的資料是錯的,writer 也只會傻傻地照寫,這就產生了「Garbage in, garbage out」的問題。
在跨國企業中,員工之上還有一個「經理 (Manager)」。
CrewAI 提供了一種極致強大的模式:Hierarchical (階層式) 管理。
在這種模式下,你不需要指定誰先做誰後做。你只要給出一個大目標,CrewAI 會自動召喚一個「經理 AI (通常是 GPT-4)」。
經理會自己看著 researcher 和 writer,自己分配任務給他們。如果 researcher 找回來的資料太爛,經理會把他罵一頓,叫他重找!
💡 Vibe Prompt 實戰 5:召喚大老闆,建立階層式團隊
[!IMPORTANT] 請複製以下 Prompt 傳送給 AI:
我想要把我的 CrewAI 升級為 Hierarchical (階層式) 管理架構。請幫我修改剛才的 Crew 實體宣告。需求:1. 匯入 Process。2. 將 process 設定為 Process.hierarchical。3. 設定 manager_llm (例如使用 langchain_openai 的 ChatOpenAI 搭配 gpt-4o 模型)。請在註解中說明階層式管理與循序式管理的差別。
🤖 AI 的企業總裁降臨:
from crewai import Crew, Process
from langchain_openai import ChatOpenAI
import os
os.environ["OPENAI_API_KEY"] = "你的_OPENAI_API_KEY"
# 召喚頂尖的 GPT-4o 模型來擔任經理
manager_brain = ChatOpenAI(model_name="gpt-4o", temperature=0)
tech_startup_crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
# 🔥 模式切換:從死板的工廠流水線,變成敏捷的現代企業
process=Process.hierarchical,
# 把經理的大腦安裝進去
manager_llm=manager_brain,
verbose=True
)
🔍 深度解析:
開啟 hierarchical 模式後,你的終端機將會上演一齣精彩的職場劇。
你會看到經理發言:「為了完成這份露營車報告,我決定先把搜集數據的工作指派給 researcher...」
等 researcher 回報後,經理可能會說:「這個數據沒有涵蓋到 2024 年下半年的趨勢,researcher,請你使用搜尋工具再針對 2024 年下半年做一次搜尋。」
這就是 AI 的自我反思與迭代能力!你只需付給 OpenAI 一點點的 API 費用,就能擁有一個每天 24 小時為你工作的專業分析團隊!
✅ 本章總結與自動化心法
這堂長達 6000 字的大師級架構課,徹底打開了 AI 應用的天花板。
我們學到的 CrewAI 核心架構:
- Agent (員工):賦予專業的背景與性格,決定了輸出的質感。
- Task (任務):透過嚴格的
expected_output約束 AI 不說廢話。 - Tools (工具):打破知識斷層,讓 AI 擁有連網、算數學、甚至讀取資料庫的超能力。
- Process (流程):從流水線 (Sequential) 到經理分配 (Hierarchical),讓 AI 自己糾錯。
當你掌握了多代理架構,你就能把這套系統掛在上一堂課教的 FastAPI 後台裡。 想像一下:每天早上 08:00,你的 Cron Job (定時任務) 自動喚醒這群 AI。 他們自己上網搜集今天天氣、分析全台營地的訂房率、寫出一篇優美的行銷貼文,然後透過 Line API 自動推播給你的客戶。 這就是一個人經營一家跨國企業的終極秘密!
但 AI 有時候很笨,如果他怎麼搜都搜不到想要的資料怎麼辦?我們能不能自己寫一個專屬的「秘密武器工具」給他用?
下一章:第十二章:Custom Tools 自訂工具與 API 串接,我們將教你如何用 Python 寫出自己的 @tool,讓你的 AI 員工可以直接連進你公司的內部資料庫,成為真正的企業大腦!我們下章見!