CrewAI(クルーAI)入門として、役割を持った複数のAIエージェントを「クルー(船の乗組員)」のように協調させるPython製マルチエージェントフレームワークの使い方を解説します。

CrewAIは、調査担当・執筆担当・レビュー担当といった役割を自然言語で定義し、それぞれにツールと目標を与えてチームとしてタスクを完了させる仕組みです。GitHubで57,000star超、月間検索数も高水準で推移しており、2026年のマルチエージェント入門の定番になっています。

本記事は、Crew/Agent/Task/Processの4概念・インストールから実行までの使い方・料金体系・LangGraphやAutoGenとの違い・本番運用・落とし穴までを一枚で俯瞰できる入門ガイドとしてまとめます。

公式READMEが「Getting Started」の入口として案内するCrewAI公式チュートリアル動画。出典: crewAIInc/crewAI README
30秒でわかるこの記事のポイント
  • ・CrewAIとは、役割(role)を持つエージェントを「クルー」として協調させるPython製マルチエージェントフレームワーク。
  • ・中核はAgent(役割)・Task(仕事)・Crew(チーム)・Process(進め方)の4概念。
  • ・使い方は2系統:`pip install crewai`の直接コードと、`crewai create crew`のYAMLプロジェクト生成。
  • ・料金はOSS版が無料(MIT)、チーム運用向けの有償CrewAI AMPは別軸。
  • ・LangGraphが「厳密な制御」、AutoGenが「保守モード」なのに対し、CrewAIは「宣言的な役割分担」が強み。

AIエージェントそのものの仕組みや代表的フレームワークの全体比較は AIエージェントフレームワーク比較2026|LangGraph・CrewAI・Dify等9種をStar数・実コードで検証 をご覧ください。本記事はその中の「マルチエージェント協調」を担うCrewAIに絞った各論です。

要点まとめ:CrewAIとは何か

CrewAIは、役割(role)・目標(goal)・背景(backstory)を持つ複数のAIエージェントを「クルー」として編成し、分業でタスクを完了させるPython製フレームワークです。中核はAgent・Task・Crew・Processの4概念だけで、pip install crewaiから数十行で動きます。使い方は素のPythonコードで書く方法と、公式CLI crewai create crew でYAML構成のプロジェクトを生成する方法の2系統があります。料金はOSS本体が無料・MITライセンスで、チームでの運用管理には有償のCrewAI AMP(旧Enterprise)があります。LangGraph・AutoGen・Mastra・OpenAI Agents SDKといった競合とは設計思想が異なり、「宣言的な役割分担のしやすさ」がCrewAIの強みです。

CrewAIの概念マインドマップ(公式README掲載、Crew/AI Agents/Process/Task/Outcomeの関係図)
Crew・AI Agents・Process・Task・Outcomeの関係を1枚にまとめた公式マインドマップ。出典: crewAIInc/crewAI README

背景と文脈:なぜCrewAIがマルチエージェント入門の定番なのか

CrewAIが2026年のマルチエージェント入門の定番になっている背景には、単一LLMの限界があります。1つのプロンプトに「調査して」「書いて」「校正して」を全部詰め込むと、指示が長くなるほど精度が落ちます。これを「役割ごとに専門化したエージェントへ分業する」ことで解決しようとするのがマルチエージェント設計で、CrewAIはその中でも学習コストの低さを武器にしています。

flowchart LR A["1つのプロンプトに
調査・執筆・校正を全部詰め込む"] -->|指示が長いほど精度低下| B["単一LLMの限界"] B --> C["役割ごとに専門化した
エージェントへ分業"] C --> D["CrewAI:Agentごとに
role/goal/backstoryを分離"]

公式は CrewAI を「LangChainや他のエージェントフレームワークから完全に独立した、ゼロから作られた軽量で高速なPythonフレームワーク」と説明しています。初期バージョンはLangChainに依存していましたが、現在は独立実装に移行しており、依存が軽く起動が速いのが実装上の特徴です。公式の学習コースには100,000人超の開発者が認定を受けており、「まず動かして概念を掴む」入門用途での採用が広がっています。

同じ「制御フローを書く」系のフレームワークである LangGraph入門|とは?状態遷移でマルチエージェントを作る基本とLangChainとの違い・比較 も合わせて読むと、CrewAIの「宣言的な役割分担」とLangGraphの「グラフで厳密に状態遷移を書く」設計思想の違いがはっきりします。

詳しく見ていく:4つの基本概念とインストール〜実行

Crew/Agent/Task/Processの4概念

CrewAIは、たった4つの概念を理解すれば全体像が掴めます。

Agent(エージェント):役割(role)・目標(goal)・背景設定(backstory)を持つ自律ユニット。ツールを装備でき、自分の担当タスクを判断しながら実行する
Task(タスク):エージェントに渡す具体的な仕事。説明(description)と期待する成果物(expected_output)、担当エージェントを指定する
Crew(クルー):エージェントとタスクをまとめたチーム。kickoff()で実行を開始する
Process(プロセス):クルーがタスクをどの順序・体制で進めるか。SequentialとHierarchicalの2種類がある

この4つの関係は「Agentが人、Taskが仕事、Crewがチーム、Processが進め方のルール」と覚えると直感的です。

CrewAIのCrew概念図(公式README掲載)
Crew=役割ベースで自律協調するエージェントチームのイメージ図。出典: crewAIInc/crewAI README

Crews と Flows

CrewAIにはもう一段上のレイヤーとして「Flows」があります。CrewとFlowsは目的が異なります。

Crews:自律的に協調するエージェントのチーム。役割ベースで柔軟に判断する。”任せる”側
Flows:イベント駆動の本番向けワークフロー。状態の永続化・条件分岐・実行制御をPythonで厳密に書ける。”制御する”側

実務では、Flowsで全体の流れ(入力→Crew実行→保存)を管理し、判断が要る部分だけCrewに委譲する組み合わせが定石です。入門段階ではまずCrewだけで十分動きます。

CrewAIのFlows概念図(公式README掲載)
Flows=状態管理・条件分岐を厳密に書けるイベント駆動ワークフロー。出典: crewAIInc/crewAI README

インストール(pip / uv)

CrewAIはPython 3.10〜3.13が対象です。公式はパッケージ管理に高速な uv を推奨していますが、通常の pip でも導入できます。

# uvを使う場合(公式推奨・高速)
uv pip install crewai

# 通常のpipでも導入可能
pip install crewai

# ツール群(検索・ファイル読み込み等)も含める場合
uv pip install 'crewai[tools]'

ModuleNotFoundError: No module named 'tiktoken' のようなエラーが出た場合は uv pip install 'crewai[embeddings]' を試す、というトラブルシューティングも公式READMEに明記されています。

使い方1:CLIでYAMLプロジェクトを生成する

公式が「Getting Started」の標準手順として案内しているのは、CLIでプロジェクト一式を生成する方法です。

crewai create crew my_project

このコマンドで、agentsとtasksをYAMLで定義する以下の構成が自動生成されます。

my_project/
├── pyproject.toml
├── .env
└── src/my_project/
    ├── main.py          # 実行のエントリーポイント
    ├── crew.py          # Crewの定義
    ├── config/
    │   ├── agents.yaml  # エージェントの役割・目標を定義
    │   └── tasks.yaml   # タスクの説明・期待成果物を定義
    └── tools/
        └── custom_tool.py

役割やゴールをコードでなくYAMLに書けるため、非エンジニアともエージェント設計をレビューしやすいのが利点です。

使い方2:Pythonで直接定義する最小コード

概念を素早く試したい場合は、Pythonコードで直接Agent/Task/Crewを定義する書き方も使えます。

from crewai import Agent, Task, Crew, Process

researcher = Agent(
    role="シニアAIリサーチャー",
    goal="{topic} に関する最新動向を正確に調べる",
    backstory="あなたは技術トレンドの調査に長けた専門家です。",
)
writer = Agent(
    role="技術ライター",
    goal="調査結果を初心者向けの日本語記事にまとめる",
    backstory="あなたは難しい技術を平易に書くのが得意なライターです。",
)

research_task = Task(description="{topic} について主要な動向を3点調べる",
                      expected_output="箇条書き3点のリサーチメモ", agent=researcher)
write_task = Task(description="リサーチメモをもとに初心者向け記事を書く",
                   expected_output="見出し付きのMarkdown記事", agent=writer)

crew = Crew(agents=[researcher, writer], tasks=[research_task, write_task],
            process=Process.sequential)
result = crew.kickoff(inputs={"topic": "CrewAI"})
print(result)

Sequentialなのでresearch_taskの出力が自動的にwrite_taskの文脈に渡り、「リサーチャーが調べ、その出力を受けてライターが記事を書く」分業がこの十数行で動きます。

Process・Tools・Memory・Knowledge

入門の最小例を超えて、実務で使う4つの機能を押さえます。

Process.hierarchical:マネージャーエージェントがどのエージェントに何を任せるかを動的に判断して委譲する。manager_llmまたはmanager_agentの指定が必須
Toolstools=[...]でAgentに装備させる「手足」。crewai_toolsパッケージにWeb検索・ファイル読み込み・コード実行など多数が用意されている
Memorymemory=Trueで有効化。CrewAIはメモリアーキテクチャを単一のMemoryクラスに統合しており、remember(content, scope, source)で保存、recall(query, scope, depth, limit)で意味的類似度・新しさ・重要度を加味した検索ができる。既定の保存先はLanceDBで./.crewai/memoryCREWAI_STORAGE_DIRで変更可)
Knowledge:エージェントが参照する「事前に与える参考資料」。Memoryが「過去の経験」なのに対しKnowledgeは「事前知識」という違いがある。PDF/CSV/JSON/テキストなど多様なソースに対応

crew = Crew(
    agents=[researcher, writer, reviewer],
    tasks=[research_task, write_task, review_task],
    process=Process.hierarchical,
    manager_llm="gpt-4o",   # マネージャー役のLLM
    memory=True,            # Memoryを有効化
)

エージェント数が増え、割り当てを動的に最適化したいときはHierarchicalが効きますが、その分トークン消費と非決定性が増えます。最初はSequentialから始めるのが無難です。

Tip: MemoryとKnowledgeは「経験」と「知識」で区別する
Memoryはエージェントが実行中に得た「過去の経験」(remember/recallで保存・検索)、Knowledgeは実行前に人間が与える「事前の参考資料」です。両方を`memory=True`と`knowledge_sources=[...]`で同時に有効化しても役割は競合しません。迷ったら「これはエージェントが自分で学んだことか、こちらが渡した資料か」で切り分けます。

CrewAIのアーキテクチャと仕組み

CrewAIの動作を1枚の図で押さえます。ユーザーが目標を渡すと、Crewが各Agentに割り当てられたTaskをProcessのルールに従って実行し、成果物を返します。

flowchart TB U["ユーザーの入力
kickoff inputs"] --> C["Crew
チームの司令塔"] C -->|Processに従い割当| P{"Process"} P -->|sequential| S["定義順に1つずつ実行"] P -->|hierarchical| H["Manager Agentが動的委譲"] S --> A1["Agent 1
role / goal / tools"] H --> A1 H --> A2["Agent 2
role / goal / tools"] A1 --> T1["Task 1
description / expected_output"] A2 --> T2["Task 2"] T1 -->|出力を文脈に| T2 A1 -.参照.-> K["Knowledge
外部資料"] A1 -.記憶.-> M["Memory
remember/recall"] T2 --> R["最終成果物
CrewOutput"]

図のポイントは3つです。

・Crewが入力を受け取り、Processの種類に応じてタスクをエージェントに割り当てる
・Sequentialなら定義順、Hierarchicalならマネージャーエージェントが動的に委譲先を決める
・各AgentはTaskをこなしながらToolsで外部に働きかけ、KnowledgeとMemoryを参照する

このループを通じて、単一LLMでは難しい「分業による複雑タスクの完遂」を実現するのがCrewAIの本質です。実運用では、この図の一連の流れをさらに大きな「Flow」の1ステップとして組み込み、状態管理や条件分岐をFlowsが担う構成が一般的です。CloudflareのAIコードレビューシステム解剖|7専門エージェント並列実行の仕組みと実績は、CrewAIとは別実装ながら「複数の専門エージェントを並列実行して1つの成果物にまとめる」設計思想が共通する実例として参考になります。

他の選択肢との比較:LangGraph・AutoGen・Mastra・OpenAI Agents SDK

主要なエージェントフレームワークとCrewAIを比較します。どれも「マルチエージェント」を謳いますが、設計思想と得意分野が異なります(Star数は2026-08-17時点のGitHub実測値)。

フレームワーク 提供元 言語 GitHub Stars 設計思想 得意分野
CrewAI CrewAI Inc. Python 約57.2K 役割ベースの宣言的な協調(Crew) 調査→執筆→レビュー等の分業を最短コードで
AutoGen Microsoft Python / .NET 約60.5K 会話ベースのマルチエージェント(GroupChat) 既存資産の保守。新規はMicrosoft Agent Frameworkへ移行推奨
LangGraph LangChain Python 約39.9K グラフで状態遷移を厳密に定義 分岐・ループ・中断再開を細かく制御する本番フロー
OpenAI Agents SDK OpenAI Python / TS 約28.7K handoffs(委譲)とguardrails(検証) OpenAIモデル中心の軽量な委譲型エージェント
Mastra Mastra TypeScript 約27.2K TSネイティブのワークフロー TS/Next.jsアプリにエージェントを組み込む

ざっくり選び分けると次の通りです。

役割分担を宣言的に最短で組みたい → CrewAI
制御フローを厳密に書きたい → LangGraph
既存のAutoGen資産を保守したい/新規は後継を検討 → AutoGen/Microsoft Agent Framework
TypeScript/フロント統合 → Mastra
OpenAIモデル中心で軽量に → OpenAI Agents SDK

flowchart LR subgraph 設計思想の軸 direction LR X1["会話ベースで
解を探索"] --- X2["宣言的に
役割分担"] --- X3["グラフで
状態遷移を厳密制御"] end AutoGen["AutoGen
(保守モード)"] -.位置.-> X1 CrewAI["CrewAI"] -.位置.-> X2 Mastra["Mastra"] -.位置.-> X2 OpenAISDK["OpenAI Agents SDK"] -.位置.-> X2 LangGraph["LangGraph"] -.位置.-> X3
注意:AutoGenは保守モードに移行済み
Microsoftは公式READMEで「AutoGenはメンテナンスモードに入り、新機能は追加されずコミュニティ管理となる」と明言し、新規ユーザーには後継のMicrosoft Agent Framework(★約12.9K)への移行ガイドを案内しています。AutoGenの★数が大きいのは過去の蓄積であり、これから新規に学ぶ場合はこの位置づけを踏まえて選択してください。

CrewAIが選ばれる理由は「制御の厳密さ」ではなく「立ち上がりの速さ」です。LangGraphのような明示的な状態機械を書かずに済むぶん、複雑な分岐が必要な本番フローでは設計の柔軟性が下がるトレードオフがあります。

実務への影響:料金・本番運用・落とし穴・実例

料金の考え方

CrewAIの本番コストは大きく2系統です。

LLM API課金:OpenAIやAnthropic等の従量課金。自律ループは消費が読みにくいので、上限とアラートを必ず張る
CrewAI AMP(旧CrewAI Enterprise):デプロイ・監視・スケーリングをマネージドで提供する有償プラン。クルーをAPIとしてデプロイし、実行履歴やバージョンを一元管理できる。OSS版を自前インフラで動かす限りCrewAIへの課金は発生しない

個人開発や検証はOSS版+API従量で十分です。チーム運用や可観測性が必要になった段階でAMPを検討する流れが現実的です。ローカルLLM(Ollama)へ切り替えてAPIコストをゼロに近づける選択肢もありますが、ツール呼び出しの精度はモデルサイズに依存するため、まずクラウドの高性能モデルで設計を固めてから置き換えるのが安全です。モデル選定や量子化の基礎を先に押さえたい場合は LLMとは?仕組み・主要モデル比較・ローカル実行・量子化を一気にまとめる2026年版 が参考になります。

可観測性とチェックポイント

エージェントは非決定論的に動くため、「なぜその判断をしたか」を追える可観測性が本番では必須です。CrewAIはAMP上のダッシュボードで各Agent/Taskの実行タイムラインとLLM呼び出しの入出力をトレース表示する機能を備えており、verbose=Trueのログだけでは追いにくいタスク間の依存関係やレイテンシを可視化できます。

CrewAI公式ダッシュボードのトレース画面(Events/Timeline、公式README掲載)
CrewAI AMPのトレースダッシュボード。Agentごとのタスク実行とLLM呼び出しの詳細を時系列で確認できる。出典: crewAIInc/crewAI README

長時間実行するCrewやFlowでは、途中経過を保存して失敗地点から再開できるチェックポイント機能も用意されています。CLIツール(TUI)でチェックポイント履歴をツリー表示し、任意の時点からResume(再開)やFork(分岐)ができるため、途中でエラーが起きても最初からやり直す必要がありません。

実例・サンプルコード集

「まず動くコードを見たい」場合は、公式のcrewAI-examplesリポジトリが最短です。Landing Page Generator(LP自動生成)・Trip Planner(旅行プラン作成)・求人票ライティングなど、実行可能なCrewの実例がYouTube解説動画付きで公開されています。いずれも「調査→生成→レビュー」の分業パターンを異なる題材で示しており、自分のユースケースに近い例から読み始めると設計の勘所を掴みやすくなります。

よくある落とし穴

入門者がつまずきやすいポイントを先回りで挙げます。

roleやgoalが曖昧で出力がブレる:抽象的な役割定義は出力品質を直接下げる。「優秀なライター」より「IT初心者向けに専門用語を噛み砕く技術ライター」のほうが出力が安定する
いきなりHierarchicalにして制御不能:マネージャー委譲は便利だが非決定性が増す。まずSequentialで挙動を固める
トークン消費の暴走:自律ループや多エージェントは想定の数倍消費しうる。max_iter・予算アラートを最初から組み込む
MemoryとKnowledgeの混同:Memoryは「過去の経験」、Knowledgeは「事前に渡す参考資料」。役割が違うので使い分ける
バージョン差での書き方の食い違い:CrewAIは更新が速く、Memory周りなどAPIが変わる。2026-08-14に1.15.15、2026-08-17時点で1.15.16と週単位でパッチが出ており、uv pip show crewaiでバージョンを確認し、そのバージョンの公式ドキュメントを参照するのが確実

特に最後の「バージョン差」は実害が出やすい点です。記事やチュートリアルのコードが動かないときは、まず自分の環境のCrewAIバージョンを疑うと早く解決します。キャリアパス全体でマルチエージェント設計がどう位置づけられるかは バイブコーディングは終わった?2026年版Agentic AIエンジニアのロードマップと進化の全体像 でも扱っています。

まとめ:CrewAIの使い方を最短で押さえる

CrewAIは、役割を持つエージェントを「クルー」として協調させるマルチエージェントフレームワークです。覚えるべきはAgent・Task・Crew・Processの4概念だけで、使い方はCLI(crewai create crew)でYAMLプロジェクトを生成する方法と、Pythonコードで直接定義する方法の2系統があります。料金はOSS本体が無料・MITライセンス、チーム運用にはCrewAI AMPという棲み分けです。制御を厳密に書きたいならLangGraph、TS統合ならMastraという使い分けを押さえつつ、まずはSequentialな最小クルーで「分業が動く」感覚を掴むのが最短の入門ルートです。

まとめ
CrewAIは役割ベースの宣言的な協調が強みのPython製マルチエージェントフレームワーク。4概念・2つのインストール経路・料金の無償/有償ライン・競合との違いを押さえれば、最短でCrewを動かせます。

参照ソース

CrewAI 公式サイト — フレームワークの概要・AMP情報
crewAIInc/crewAI(GitHubリポジトリ・README) — インストール手順・Getting Started・Key Features・ソースコード
CrewAI 公式ドキュメント:Memory — 統合Memory API(remember/recall)・LanceDBストレージの一次情報
crewAIInc/crewAI-examples(GitHubリポジトリ) — 実行可能なCrewの実例集
Microsoft AutoGen(GitHub) — 比較対象。メンテナンスモード移行の公式告知
Microsoft Agent Framework(GitHub) — AutoGenの後継として公式が案内する移行先