
CrewAI 與 João Moura:用「角色扮演」讓 AI 團隊真正分工合作
AI 系列-深入介紹 CrewAI 創辦人 João Moura 與他打造的多智能體協作框架,從 Agent 角色設計、Task 指派、到 Crew 流程控制,一次看懂這套把「AI 組織行為」工程化的框架。
WRITTEN BY

- Name
- Harry Chang
如果 LangChain 解決的是「怎麼接管道」,那 CrewAI 解決的是**「怎麼帶團隊」**。
2023 年底,巴西工程師 João Moura 把一個問題想清楚了:當你有多個 AI Agent,最難的不是讓每一個 Agent 更聰明,而是讓它們知道自己的角色是什麼、該做什麼事、以及如何把結果傳給下一個人。
CrewAI 的答案是:把企業組織的運作邏輯直接搬進 AI 框架。每個 Agent 有職稱、有目標、有背景故事——它不只是在執行指令,它在扮演一個角色。
- 為什麼你需要認識 João Moura?
- CrewAI 的核心哲學:AI 版的「職責分明」
- 兩種協作模式
- CrewAI vs LangGraph:同樣是 Multi-Agent,差在哪?
- 實戰範例:三人 AI 寫作團隊
- 經典語錄
- 實用建議:三個起步行動
- 我的反思
- 參考資料 (References)
為什麼你需要認識 João Moura?
在 CrewAI 之前,João Moura 在 Clearbit(B2B 數據智能公司,後被 HubSpot 以 1.5 億美元收購)擔任工程師。他長期處理的問題是:如何讓系統自動化地完成需要多個步驟、多個決策點的複雜任務。
這段經歷讓他對「工作流程設計」有深刻的直覺。當大型語言模型開始成熟,他看到的不是一個更聰明的聊天機器人,而是一個可以被角色化、組織化、協作化的工作單元。
2023 年 10 月,CrewAI 開源發布。三個月內,GitHub Stars 突破 10,000,成為當年 Multi-Agent 框架中成長最快的專案之一。
2024 年,CrewAI 完成 1,800 萬美元種子輪融資,投資方包含 Boldstart Ventures。Moura 的目標清晰:讓企業能像管理員工一樣管理 AI Agent 團隊。
CrewAI 的核心哲學:AI 版的「職責分明」
傳統的 Agent 框架問的是:「這個 AI 能做什麼工具?」
CrewAI 問的是:「這個 AI 是誰?它的職責是什麼?」
這個思維轉換帶來了根本性的差異。
1. Agent:不只是工具呼叫者,而是有身份的角色
from crewai import Agent
researcher = Agent(
role='資深市場研究員',
goal='找出 AI Agent 框架市場中最具競爭力的三個玩家',
backstory="""你在科技產業工作超過十年,
擅長從海量資訊中找到真正有價值的洞察。
你不相信表面數字,你要挖掘背後的原因。""",
verbose=True,
allow_delegation=False,
tools=[search_tool, scrape_tool]
)
role、goal、backstory 三個欄位,讓 Agent 不只是功能的載體,更是一個有脈絡的虛擬員工。Backstory 尤其關鍵——它讓 LLM 在回應時有明確的視角與風格,輸出品質遠比通用提示詞穩定。
2. Task:把工作拆成可交付的任務單
from crewai import Task
research_task = Task(
description="""分析以下 AI Agent 框架的市場定位:
LangChain、CrewAI、AutoGen。
重點:各自的差異化優勢、目標客群、商業模式。""",
expected_output='一份 500 字的比較分析報告,含結論建議',
agent=researcher
)
expected_output 是 CrewAI 的獨特設計——它明確告訴 Agent「什麼叫做完成」,大幅減少輸出漂移(output drift)的問題。
3. Crew:把 Agent 與 Task 組成協作單元
from crewai import Crew, Process
crew = Crew(
agents=[researcher, analyst, writer],
tasks=[research_task, analysis_task, writing_task],
process=Process.sequential, # 或 Process.hierarchical
verbose=True
)
result = crew.kickoff()
Crew 是整個框架的核心。它定義了誰做什麼、以什麼順序、用什麼方式協作。
兩種協作模式
CrewAI 目前支援兩種 Process,對應不同的組織結構:
Sequential(循序模式)
Task 1(研究員)→ Task 2(分析師)→ Task 3(撰稿人)→ 輸出
前一個 Task 的輸出自動成為下一個 Task 的輸入。適合有明確流程順序的工作,例如:研究 → 分析 → 撰寫。
Hierarchical(階層模式)
Manager Agent(規劃 & 分配)
/ | \
研究員 分析師 撰稿人
↓ ↓ ↓
報告回傳 → Manager 整合 → 最終輸出
由一個 Manager Agent 負責任務分配與結果整合。適合需要動態調整、任務之間有複雜依賴的場景。Manager 會根據各 Agent 的回報決定下一步——這正是 Andrew Ng 四大模式中 Multi-Agent + Planning 的完整體現。
| 模式 | 適合場景 | 控制程度 |
|---|---|---|
| Sequential | 固定流程、步驟明確 | 高(可預測) |
| Hierarchical | 動態任務、需要決策 | 中(彈性高) |
CrewAI vs LangGraph:同樣是 Multi-Agent,差在哪?
這是目前最常被問到的問題。兩者都能做 Multi-Agent,但出發點完全不同:
| 面向 | CrewAI | LangGraph |
|---|---|---|
| 設計語言 | 角色 / 組織(人類比喻) | 節點 / 圖(工程比喻) |
| 上手門檻 | 低(產品經理也能讀懂) | 中高(需要理解圖論概念) |
| 流程控制 | Sequential / Hierarchical | 任意圖結構(最靈活) |
| 狀態管理 | 內建(隱性) | 顯式 State 物件(透明) |
| 適合誰 | 快速原型、業務自動化 | 複雜工作流、需要精細控制 |
| 底層 | 可搭配任何 LLM | LangChain 生態系 |
簡單記:CrewAI 是高層抽象,LangGraph 是低層精控。兩者不互斥,甚至有人用 LangGraph 實作 CrewAI 的 Hierarchical 模式底層。
實戰範例:三人 AI 寫作團隊
from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool
search_tool = SerperDevTool()
# ── 定義三個角色 ──
researcher = Agent(
role='科技趨勢研究員',
goal='收集最新、最可靠的 AI Agent 市場數據',
backstory='你是一位資深科技記者,有嚴格的事實查核習慣。',
tools=[search_tool]
)
analyst = Agent(
role='商業策略分析師',
goal='從研究數據中萃取可執行的商業洞察',
backstory='你在麥肯錫工作過五年,習慣用數字說話。'
)
writer = Agent(
role='科技部落客',
goal='把複雜的技術分析寫成讀者願意讀完的文章',
backstory='你的文章在 HackerNews 多次登上首頁。'
)
# ── 定義三個任務 ──
research = Task(
description='研究 CrewAI、LangGraph、AutoGen 的 2025 年最新發展',
expected_output='含來源的重點摘要,500 字以內',
agent=researcher
)
analysis = Task(
description='基於研究報告,分析哪個框架最適合台灣中小企業導入',
expected_output='SWOT 分析表 + 一句話結論',
agent=analyst
)
writing = Task(
description='將分析結果寫成一篇繁體中文技術部落格文章',
expected_output='800-1000 字,含標題、小標、結語',
agent=writer
)
# ── 組成 Crew 並執行 ──
crew = Crew(
agents=[researcher, analyst, writer],
tasks=[research, analysis, writing],
process=Process.sequential
)
result = crew.kickoff()
print(result)
三個 Agent,各有身份,各司其職,輸出自動串接——這段程式碼在生產環境中可以實際運行,不是示意圖。
經典語錄
"The future of work is not humans replaced by AI. It's humans managing crews of AI agents."
工作的未來不是人類被 AI 取代,而是人類管理 AI Agent 團隊。
"Give your AI a role, a goal, a backstory — and watch it perform."
給你的 AI 一個角色、一個目標、一段背景故事——然後看它發揮。
實用建議:三個起步行動
步驟 1:從 Role + Goal + Backstory 開始思考
在寫程式之前,先用自然語言定義你需要哪些「虛擬員工」。這不是技術問題,而是組織設計問題。拿出一張紙,寫下:這個 Agent 的職稱是什麼?它的目標是什麼?它有什麼獨特的工作風格?
步驟 2:用 expected_output 定義「完成的標準」
每個 Task 都必須有清晰的 expected_output。模糊的輸出定義會讓 Agent 反覆修改、浪費 Token。把它想成你寫給員工的驗收標準。
步驟 3:先用 Sequential,需要時再升級 Hierarchical
Sequential 可預測、好除錯。Hierarchical 彈性高但 Token 消耗大(Manager 需要額外的推理成本)。先用最簡單的模式跑通,再依需求升級。
我的反思
讀完 CrewAI 的設計,我最大的感受是:João Moura 根本不是在做 AI 框架,他是在做組織設計工具。
role、goal、backstory——這三個欄位不是技術參數,它們是管理學的語言。這讓我想到上一篇提到的 Harrison Chase:Chase 的 LangChain 是給工程師的工具,Moura 的 CrewAI 是給所有人的工具。
這種「把複雜技術翻譯成人類語言」的能力,本身就是一種深刻的技術洞見——它不是簡化,而是找到了問題的正確抽象層。
回到這個系列的脈絡:Andrew Ng 定義框架,Shunyu Yao 設計推理引擎,Harrison Chase 工程化落地,João Moura 則把整件事組織化、人性化。四個人,四個視角,共同拼出了現代 AI Agent 生態系的輪廓。
參考資料 (References)
官方資源
延伸閱讀
推薦影片