CrewAI on Ubuntu — 役割分担AIエージェントチームの構築と実行

ローカルLLM


「複数のAIエージェントに役割を与えて、チームとして協調させたい」——そんな要求に応えるのが CrewAI です。リサーチャーが調べ、ライターがまとめる、といった役割分担を数十行のPythonで組めます。

本記事では、Ubuntu 24.04 LTS に CrewAI をインストールし、ローカルLLMの Ollama と組み合わせてAPIキー不要で実際に2体のエージェントを動かすところまでを解説します。掲載しているバージョンやログは、すべて 2026-06-14 に Docker の ubuntu:24.04 と手元の Ollama で実際に動かして取得した実測データです。

この記事のポイント

  • pip install crewai で入るのは crewai 1.14.7(Python 3.10 以上が必須)— 2026-06-14 実測
  • crewai 1.x は langchain も litellm もインストールしません。一緒に入るのは crewai-core / openai 2.41.1 / chromadb / instructor など(よくある解説と違う重要点)
  • Ollama と組み合わせれば LLM(model="ollama/...") だけでローカル推論でき、OpenAI APIキーは不要
  • Agent / Task / Crew の3概念を理解すれば役割分担チームが組める
  • 落とし穴:Python 3.9 のまま入れると古い crewai 0.5.0 が入る。必ず python3 --version を確認すること

目次

  1. 動作確認済み環境
  2. CrewAI とは何か
  3. インストール手順(Ubuntu 24.04)
  4. Python のバージョンに注意(実測の落とし穴)
  5. CrewAI の3つのコア概念
  6. Ollama でローカルLLMを接続する
  7. 最初のCrew を作って動かす
  8. よくあるエラーと解決策
  9. 本格運用するなら VPS
  10. まとめ

動作確認済み環境

本記事のコマンドは、以下の環境で実際に動かして検証しています。インストール手順とバージョン確認は Docker 公式イメージ ubuntu:24.04 内で、エージェントの実行は手元で稼働中の Ollama に対して行いました。

項目 バージョン / 値 備考
OS Ubuntu 24.04.4 LTS(noble) Docker 公式イメージ ubuntu:24.04 で確認
Python 3.12.3 Ubuntu 24.04 標準。CrewAI は 3.10 以上が必須
pip 24.0 apt で導入される python3-pip のバージョン
CrewAI 1.14.7 2026-06-14 時点の最新版
Ollama 0.30.8 ローカルLLM実行エンジン(localhost:11434)
確認日 2026-06-14

注意

CrewAI はアップデートが頻繁なライブラリです。本記事の執筆時点(2026-06-14)では 1.14.7 が最新ですが、API の一部が変わる場合があります。crewai --versionpip show crewai でバージョンを確認してから進めてください。

CrewAI とは何か

CrewAI は、複数の AI エージェントを「役割分担」で協調させる Python フレームワークです。単一のプロンプトで一つの答えを得る従来の使い方と違い、「情報を調べる担当」「文章を書く担当」「品質をチェックする担当」のように専門ロールを与えたエージェントがチームを組みます。

特徴的なのが、エージェント間での context の自動引き渡しです。前のエージェントが出力した結果を、次のエージェントが自動的に受け取って処理を続けます。この連鎖によって、複雑な多段階タスクをコードで組み立てられます。

CrewAI の実行フロー(Crew → Agent → Task の連鎖・概念図)
CrewAI の実行フロー(Crew → Agent → Task の連鎖・概念図)

もう一つの大きな特徴が LLMの切り替えが容易な点です。OpenAI の GPT 系はもちろん、Ollama 経由でローカルの llama3.2 や gemma3 を使うこともできます。本記事では Ollama を使って APIキー不要で動かす方法を中心に解説します。

よくある解説との違い(実測で判明)

ネット上の CrewAI 解説では「crewai を入れると langchain や litellm も一緒に入る」と書かれていることが多いですが、crewai 1.14.7 を実際にインストールしても langchain も litellm も入りません。これらは crewai 0.x 系の古い情報です。現在の crewai は crewai-core が独自にLLM接続を担っています。次章で実測ログを示します。

インストール手順(Ubuntu 24.04)

手順1:Python のバージョンを確認する

CrewAI は Python 3.10 以上が必要です。Ubuntu 24.04 では Python 3.12 が使えますが、公式の最小イメージ(ubuntu:24.04)には python3 自体が入っていません。まず確認してみましょう。




ubuntu@linuxlab: ~ (ubuntu:24.04)
$ lsb_release -d
Description: Ubuntu 24.04.4 LTS
$ python3 –version
bash: python3: command not found
# 最小イメージでは未インストール

$ sudo apt update && sudo apt install -y python3 python3-pip python3-venv
Setting up python3.12 (3.12.3-1ubuntu0.13) …
Setting up python3-pip (24.0+dfsg-1ubuntu1.3) …

$ python3 –version
Python 3.12.3
$ pip3 –version
pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)

正直、apt update なしでいきなり apt install すると「E: Unable to locate package」が出やすいです。必ず apt update を先に実行してください。

手順2:仮想環境を作成する(Ubuntu 24.04では必須)

Ubuntu 24.04 では PEP 668 により、システムの Python に pip install しようとすると externally-managed-environment エラーで止められます。venv(仮想環境)での隔離が事実上必須です。CrewAI は依存パッケージも多いので、なおさら venv で分けましょう。




ubuntu@linuxlab: ~
$ mkdir crewai-project && cd crewai-project
$ python3 -m venv .venv
$ source .venv/bin/activate
(.venv) $
# 以降のコマンドはこの venv 内で実行

手順3:pip install crewai を実行する

CrewAI のインストールは pip 一発です。依存パッケージが多く、初回は数分かかります。下の図は ubuntu:24.04 コンテナ内で実際に実行したインストールログです。

pip install crewai の実行ログ(crewai 1.14.7 / Ubuntu 24.04 実測)
pip install crewai の実行ログ(crewai 1.14.7 / Ubuntu 24.04 実測)



ubuntu@linuxlab: ~/crewai-project
(.venv) $ pip install crewai
Collecting crewai
Collecting crewai-core … crewai-cli …
Collecting openai chromadb instructor lancedb pydantic …
Successfully installed crewai-1.14.7 crewai-core-1.14.7 crewai-cli-1.14.7
openai-2.41.1 chromadb-1.1.1 instructor-1.15.1 pydantic-2.12.5 …

(.venv) $ crewai –version
crewai, version 1.14.7

2026-06-14 時点で pip install crewai によって入る主要パッケージは次のとおりです。実測してみると、langchain と litellm はどちらもインストールされませんでした。

pip install crewai で入る主要パッケージ一覧(PyPI/pip show 実測)
pip install crewai で入る主要パッケージ一覧(PyPI/pip show 実測)
著者アイコン
著者アイコン

「crewai = langchain ラッパー」というのは古いイメージです。crewai 1.x は crewai-core という独自エンジンに移行していて、langchain や litellm には依存していません。古い記事のコマンドをコピペすると ModuleNotFoundError: langchain で詰まるので注意です。

Python のバージョンに注意(実測の落とし穴)

ここが一番ハマりやすいポイントです。pip install crewai という同じコマンドでも、使っている Python のバージョンによって入る crewai がまったく別物になります

試しに Python 3.9 の venv で実行したところ、最新の 1.14.7 ではなく、はるか昔の crewai 0.5.0(langchain 0.1.0 を同梱した旧式)がインストールされました。crewai 1.x が Python 3.10 以上を要求するため、pip が「3.9 でも入るバージョン」まで巻き戻してしまうのです。エラーは出ないので、気づかないまま古いAPIで悩むことになります。

Python 3.9 と 3.12 で入る crewai の違い(実測比較)
Python 3.9 と 3.12 で入る crewai の違い(実測比較)

注意

macOS や少し古い Linux 環境では python3 が 3.9 系を指していることがあります。venv を作る前に必ず python3 --version を確認し、3.10 未満なら新しい Python を入れてください。Ubuntu 24.04 の標準は 3.12.3 なので問題ありません。

CrewAI の3つのコア概念

CrewAI を使いこなすには、Agent / Task / Crew の3つを理解することが重要です。

①Agent(エージェント)— 役割を持つ AI

Agent は「特定の役割を担うAI」です。role(役職名)・goal(目標)・backstory(専門性の背景)の3つを与えて定義します。




ubuntu@linuxlab: ~/crewai-project/agents.py
from crewai import Agent

researcher = Agent(
role=’Senior Researcher’,
goal=’Find one concise, accurate fact about {topic}’,
backstory=’You are an expert at finding reliable facts.’,
llm=llm, # 後述の Ollama LLM を渡す
allow_delegation=False,
verbose=False,
)

②Task(タスク)— エージェントが実行する仕事

Task は「何を実行し、何を出力するか」を定義します。description(指示内容)と expected_output(期待する出力形式)が必須で、agent で担当を指定します。




ubuntu@linuxlab: ~/crewai-project/tasks.py
from crewai import Task

research_task = Task(
description=’State one key fact about {topic}. Keep it under 30 words.’,
expected_output=’One factual sentence.’,
agent=researcher, # このタスクを担当する Agent
)

③Crew(クルー)— エージェントをまとめるチーム

Crew は複数の Agent と Task を束ねて、実行順序(Process)を決めます。Process.sequential は直列実行(前のタスクが終わってから次へ)で、最もシンプルな選択肢です。




ubuntu@linuxlab: ~/crewai-project/crew.py
from crewai import Crew, Process

crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential, # タスクを順番に実行
verbose=False,
)
result = crew.kickoff(inputs={‘topic’: ‘Ubuntu 24.04 LTS’})
print(result)

Ollama でローカルLLMを接続する

CrewAI はデフォルトで OpenAI のモデルを使おうとしますが、Ollama を使えば APIキーなしでローカル実行できます。VPS 上で動かすなら Ollama が最も手軽な選択肢です。

手順1:Ollama の起動を確認する

Ollama が localhost:11434 で動いているか確認します。下の画像は Ollama API のルートエンドポイントをブラウザで開いた実際のスクリーンショットです(Playwright で実撮影)。「Ollama is running」というプレーンテキストが返ってきます。

Ollama API ルート(localhost:11434)—「Ollama is running」が返る・Playwright実撮影
Ollama API ルート(localhost:11434)—「Ollama is running」が返る・Playwright実撮影



ubuntu@linuxlab: ~
$ curl http://localhost:11434
Ollama is running

$ curl http://localhost:11434/api/version
{“version”:”0.30.8″}

Ollama が未インストールの場合は curl -fsSL https://ollama.com/install.sh | sh でインストールできます。インストール後に ollama pull llama3.2 でモデルを取得してください。

手順2:利用可能なモデルを確認する

下の画像は Ollama の /api/tags エンドポイントをブラウザで開いた実際のスクリーンショットです。インストール済みモデルの一覧がJSONで返ってきます。

Ollama /api/tags(モデル一覧 JSON)— Playwright 実撮影
Ollama /api/tags(モデル一覧 JSON)— Playwright 実撮影



ubuntu@linuxlab: ~
$ ollama list
NAME ID SIZE MODIFIED
llama3.2:1b … 1.3 GB 2 days ago
gemma3:1b … 0.8 GB 3 days ago

$ ollama pull llama3.2 # 未取得の場合
pulling manifest …
success

手順3:CrewAI から Ollama を呼び出す設定

CrewAI から Ollama を使う場合、crewai.LLM クラスに model="ollama/<モデル名>"base_url を渡します。litellm が入っていなくても、crewai-core がこの ollama/ プレフィックスを解釈してローカルの Ollama に接続します(実測で確認済み)。




ubuntu@linuxlab: ~/crewai-project/main.py
from crewai import LLM

# crewai 1.x からは crewai.LLM を使う(langchain の Ollama クラスは不要)
llm = LLM(
model=”ollama/llama3.2:1b”,
base_url=”http://localhost:11434″,
)

最初のCrew を作って動かす

ここでは「Ubuntu 24.04 についての調査 → 一文へ整形」を題材に、最小構成のCrew を作って実際に crew.kickoff() を実行します。下の図は、手元の Ollama(llama3.2:1b)に対して実際に走らせたときの実行結果です。

CrewAI 最小構成 Crew の実行結果(Ollama・実測)
CrewAI 最小構成 Crew の実行結果(Ollama・実測)



(.venv) ubuntu@linuxlab: ~/crewai-project
(.venv) $ python3 main.py
# Researcher → Writer の2エージェントが順に実行された
Ubuntu 24.04 LTS is built on top of the free and open-source Linux
kernel …, based on Debian Linux, featuring a comprehensive
collection of software packages including GCC …

# token_usage: total=768 prompt=558 completion=210 / requests=4 / 3.2s

2エージェント・2タスクの直列Crew が、合計 768 トークン(4リクエスト)・約 3.2 秒で完走しました。前段の Researcher が出した一文を、後段の Writer が受け取って整形している点に注目してください。これが CrewAI の context 自動引き渡しです。

小さいモデルの精度に注意

上の出力で llama3.2:1b は「カーネルのバージョン」など細部を取り違えています(1Bモデルの限界です)。役割分担の仕組みを学ぶ・試作する用途には十分ですが、事実の正確さが必要な本番用途では llama3.2(3B)以上や、より大きなモデルを使ってください。

ここだけは順番を間違えると動きません。crew.kickoff() を呼ぶ前に、全エージェントと全タスクが正しく Crew に登録されていること、各 Agent に llm=llm が渡っていることを確認してください。

よくあるエラーと解決策

①LLM接続エラー: Connection refused

エラーメッセージ

httpx.ConnectError: [Errno 111] Connection refused — Ollama が起動していない、またはポートが違う




ubuntu@linuxlab: ~
$ curl http://localhost:11434
curl: (7) Failed to connect to localhost port 11434
# Ollama を起動していない → systemd で起動
$ sudo systemctl start ollama
$ sudo systemctl enable ollama # 自動起動を有効に
$ curl http://localhost:11434
Ollama is running

②ModuleNotFoundError: No module named ‘crewai’

venv を有効化し忘れていることが原因です。source .venv/bin/activate を実行してから再度 python3 を起動してください。プロンプト先頭に (.venv) が付いているかが目印です。

③古い記事のコード(langchain)で動かない

from langchain.llms import Ollama が ModuleNotFoundError になる」というのは、crewai 0.x 時代の古い記事をコピペしたときの典型です。crewai 1.x では langchain は入りません。from crewai import LLM を使い、LLM(model="ollama/...") で接続してください。

④モデルが見つからない: model not found

ollama pull <モデル名> でモデルを事前にダウンロードしていないと発生します。ollama list でダウンロード済みモデルを確認し、未取得なら ollama pull llama3.2 を実行してください。LLM(model="ollama/llama3.2:1b") のようにタグまで指定するのが確実です。

本格運用するなら VPS

CrewAI + Ollama をローカルPCで動かすと、モデルのダウンロード(1〜数GB)とメモリ消費でマシンが重くなりがちです。VPS を使えば24時間稼働のエージェントチームをクラウドに持てます。1Bモデルなら RAM 4GB でも動きますが、実用なら 8GB 以上が安心です。

VPS プラン(RAM 8GB〜) 東京リージョン CrewAI+Ollama適性
Vultr $48/月〜(8GB) あり ★★★★★
DigitalOcean $48/月〜(8GB) なし(最寄シンガポール) ★★★★☆
ConoHa VPS 〜3,600円/月(8GB) あり(東京・大阪) ★★★★☆

Ollama を使った VPS セットアップの手順はこちらで詳しく解説しています:

まとめ

本記事では、Ubuntu 24.04 LTS に CrewAI 1.14.7 をインストールし、Ollama(0.30.8)と組み合わせてローカルLLMで実際にエージェントチームを動かす手順を、実測データとともに解説しました。

  • pip install crewai で crewai 1.14.7 が入る(Python 3.10 以上が必須・Ubuntu 24.04 標準は 3.12.3)
  • crewai 1.x は langchain も litellm も入れない。crewai-core / openai / chromadb などが一緒に入る
  • Agent / Task / Crew の3概念を組み合わせれば役割分担型のAIチームが作れる
  • Ollama を LLM(model="ollama/llama3.2:1b") で指定すれば APIキー不要でローカル推論ができる(litellm 不要)
  • Python 3.9 のままだと古い crewai 0.5.0 が入る落とし穴に注意

CrewAI はバージョンアップが頻繁です。動かなくなったら pip install --upgrade crewai で最新版に更新し、crewai --version で確認してみてください。

コメント

タイトルとURLをコピーしました