CrewAI 1.0 α : ガイド : Crew – 最初の Crew の構築

CrewAI も 1.0 Alpha のプレリリースが公開されています。
複雑な問題を解決するために協力する協調型 AI チームを作成する、ステップ by ステップなチュートリアルです。

CrewAI 1.0 alpha : ガイド : Crew – 最初の Crew の構築

作成 : クラスキャット・セールスインフォメーション
作成日時 : 10/08/2025
バージョン : 1.0.0a3 (0.201.1)

* 本記事は github.com/crewAIInc/crewAI の以下のページを独自に翻訳した上で、補足説明を加えてまとめ直しています。スニペットはできる限り日本語を使用しています :

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

 

CrewAI 1.0 α : ガイド : Crew – 最初の Crew の構築

複雑な問題を解決するために協力する協調型 AI チームを作成する、ステップ by ステップなチュートリアルです。

 

協調型 (collaborative) AI のパワーを解き放つ

複雑な問題を解決するためにシームレスに協力する専門 AI エージェントのチームがあり、それぞれが共通の目標を達成するためにユニークなスキルを発揮することを想像してください。これが CrewAI のパワーです – 単一の AI が単独で達成できるものを遥かに超えてタスクを達成できる協調型 AI システムの作成を可能にするフレームワークです。

このガイドでは、トピックの調査と分析をしてから、包括的なレポートを作成するのに役立つ、調査 crew の作成を順を追って説明します。この実践的なサンプルは、AI エージェントが複雑なタスクを達成するためにどのように協力できるかを実演しますが、それは CrewAI で実現可能なことの始まりに過ぎません。

 

何を構築して学習するか

このガイドの最後までに、以下のことが成されます :

  1. 明確なロールと責任を持つ 専門の AI 調査チームの作成

  2. 複数の AI エージェント間の オーケストレーション型コラボレーション

  3. 情報の収集、分析とレポート生成を含む 複雑なワークフローの自動化

  4. より野心的なプロジェクトに適用できる 基礎スキルの構築

このガイドでは単純な調査 crew を構築していきますが、以下のようなタスクのために、同じパターンとテクニックがより洗練されたチームを作成するために適用できます :

  • 専門のライター、編集者とファクトチェッカーを持つ他段階のコンテンツ作成

  • 階層化されたサポートエージェントを持つ複雑なカスタマーサービス・システム

  • データを収集し、視覚化を作成し、そして洞察を生成する自律的なビジネスアナリスト

  • アイデアを出し、設計し、そして実装を計画する製品開発チーム

Let’s get started building your first crew!

 

前提条件

始める前に、以下を確認してください :

  • インストールガイドに従って CrewAI をインストール
  • LLM セットアップガイド に従って、環境で LLM API キーをセットアップ
  • Python の基本的な理解

 

Step 1: 新しい CrewAI プロジェクトの作成

まず、CLI を使用して新しい CrewAI プロジェクトを作成しましょう。このコマンドは必要なすべてのファイルを含む完全なプロジェクト構造をセットアップし、ボイラープレート・コードをセットアップするのではなく、エージェントやそれらのタスクを定義することに集中することを可能にします。

crewai create crew research_crew
cd research_crew

これは crew に必要な基本構造を持つプロジェクトを生成します。CLI は自動的に以下を作成します :

  • 必要なファイルを含むプロジェクト・ディレクトリ

  • エージェントとタスク用の構成設定ファイル

  • 基本的な crew 実装

  • crew を実行するための主スクリプト


CrewAI フレームワーク概要

 

Step 2 : プロジェクト構造の探究

CLI により作成されたプロジェクト構造を理解するための時間を少し取りましょう。CrewAI は Python プロジェクトのベストプラクティスに従っていて、crew がより複雑になっても簡単にコードの保守・拡張ができます。

research_crew
├── .env
├── .gitignore
├── knowledge
│   └── user_preference.txt
├── pyproject.toml
├── README.md
├── src
│   └── research_crew
│       ├── __init__.py
│       ├── config
│       │   ├── agents.yaml
│       │   └── tasks.yaml
│       ├── crew.py
│       ├── main.py
│       └── tools
│           ├── __init__.py
│           └── custom_tool.py
└── tests

この構造は Python プロジェクトのベストプラクティスに従っており、コードを整理することを簡単にします。(Python の) 実装コードから (YAML での) 構成設定ファイルを分離することで、基礎的なコードを変更することなく crew の動作を変更することを容易にします。

 

Step 3: エージェントの構成設定

さて楽しいところに入ります – AI エージェントの定義です!CrewAI では、エージェントは特定のロール、目標とそれらの動作を形作る背景 (backstories) を備える特殊な実在 (entity) です。それらを演劇内のキャラクターとして考えてください、各々は独自のパーソナリティと目的を持っています

調査 crew 用に、2 つのエージェントを作成します :

  1. 情報の検索と整理に優れた調査員 (researcher)
  2. 調査結果を解釈し、洞察に優れたレポートを作成できるアナリスト (analyst)

agents.yaml ファイルを変更してこれらの専門エージェントを定義しましょう。llm を使用しているプロバイダーに確実に設定してください :

# src/research_crew/config/agents.yaml
researcher:
  role: >
    {topic} についての上級リサーチ専門家
  goal: >
    {topic} に関する包括的で正確な情報を、最新の動向と主要な洞察にフォーカスして見つけましょう
  backstory: >
    あなたは、様々なソースから関連情報を見つける才能を持つ経験豊富なリサーチ専門家です。
    あなたは、情報を明確に構造化された手法で整理し、複雑なトピックを他の人にわかりやすく伝えることに優れています。
  llm: provider/model-id # provider/model-id  # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude...

analyst:
  role: >
    {topic} に関するデータアナリスト及びレポートライター
  goal: >
    調査結果を分析して、包括的で上手く構造化されたレポートを作成します。これは明確で魅力的な流儀で洞察を提示します。
  backstory: >
    あなたはデータ解釈とテクニカルライティングの経験を持つ熟練したアナリストです。
    あなたは、調査データからパターンを識別し、有意義な洞察を抽出し、
    そして巧みにまとめたレポートを通してそれらの洞察を効果的に伝える才能があります。
  llm: provider/model-id # provider/model-id  # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude...

各エージェントが明確なロール、目標と背景 (backstory) をどのように持つか注目してください。これらの要素は単なる説明ではありません – これらはエージェントがタスクにアプローチする方法を積極的に形作ります。これらを注意深く巧みに作成することで、互いに補完しあう専門スキルと視点を持つエージェントを作成できます。

 

Step 4: タスクの定義

エージェントを定義したら、次に遂行する特定のタスクをそれらに与える必要があります。CrewAI のタスクは、詳細な指示と期待される出力を含む、エージェントが遂行する具体的なワークを表します。

調査 crew のために、2 つの主要なタスクを定義します :

  1. 包括的な情報を収集する 調査タスク (research task)

  2. 洞察に満ちたレポートを作成する 分析タスク (analysis task)

tasks.yaml ファイルを変更しましょう :

# src/research_crew/config/tasks.yaml
research_task:
  description: >
    {topic} について徹底的な調査を実施してください。以下の点に焦点を当ててください :
    1. 主要な概念と定義
    2. 歴史的な発展と最近のトレンド
    3. 主要な課題と機会
    4. 注目すべき応用やケーススタディ
    5. 将来の見通しと潜在的な発展

    調査結果を、明確なセクションを持つ構造化された形式で整理することを確実にしてください。
  expected_output: >
    {topic} の要求されたすべての側面をカバーする、上手く整理されたセクションを備えた、包括的な調査結果の文書。
    関連する場合には、具体的な事実、数値と例を含めてください。
  agent: researcher

analysis_task:
  description: >
    調査結果を分析し、{topic} に関する包括的なレポートを作成してください。
    レポートは以下の点に留意してください :
    1. エグゼクティブサマリーから始める
    2. 調査結果のすべての主要な情報を含める
    3. トレンドとパターンの洞察に満ちた分析を提供する
    4. 推奨事項や今後の検討事項を提示する
    5. 明確な見出しを持つ、読みやすいプロフェッショナルなスタイルでフォーマットする
  expected_output: >
    {topic} に関する洗練された、プロフェッショナルなレポート。これは分析と洞察を加えた調査結果を提示します。
    レポートはエグゼクティブサマリー、主要セクション、結論で構成され、上手く構造化されている必要があります。
  agent: analyst
  context:
    - research_task
  output_file: output/report.md

analysis task の context フィールドに注意してください – これは強力な機能で、analyst が research task の出力にアクセスすることを可能にします。これは、人間のチーム内でそうであるように、エージェント間の情報が自然に流れるワークフローを作成します。

 

Step 5: Crew の構成設定

crew を構成設定して、すべてを一つにまとめるときです。crew は、エージェントがタスクを完了するために協力する方法を指揮編成する (orchestrate) コンテナです。

crew.py ファイルを変更しましょう :

# src/research_crew/crew.py
from crewai import Agent, Crew, Process, Task
from crewai.project import CrewBase, agent, crew, task
from crewai_tools import SerperDevTool
from crewai.agents.agent_builder.base_agent import BaseAgent
from typing import List

@CrewBase
class ResearchCrew():
    """Research crew for comprehensive topic analysis and reporting"""

    agents: List[BaseAgent]
    tasks: List[Task]

    @agent
    def researcher(self) -> Agent:
        return Agent(
            config=self.agents_config['researcher'], # type: ignore[index]
            verbose=True,
            tools=[SerperDevTool()]
        )

    @agent
    def analyst(self) -> Agent:
        return Agent(
            config=self.agents_config['analyst'], # type: ignore[index]
            verbose=True
        )

    @task
    def research_task(self) -> Task:
        return Task(
            config=self.tasks_config['research_task'] # type: ignore[index]
        )

    @task
    def analysis_task(self) -> Task:
        return Task(
            config=self.tasks_config['analysis_task'], # type: ignore[index]
            output_file='output/report.md'
        )

    @crew
    def crew(self) -> Crew:
        """Creates the research crew"""
        return Crew(
            agents=self.agents,
            tasks=self.tasks,
            process=Process.sequential,
            verbose=True,
        )

このコード内で、以下を行っています :

  • researcher エージェントを作成して、Web を検索するために SerperDevTool を装備しています。

  • analyst エージェントを作成しています。

  • research と analysis タスクのセットアップ。

  • crew がタスクを順番に実行するように設定します (analyst は researcher が終了するまで待機します)

ここが魔法が起きるところです – わずか数行のコードで、専門エージェントが協調プロセスで連携する協調型 AI システムを定義しました。

 

Step 6: メイン・スクリプトのセットアップ

次に、crew を実行するメイン・スクリプトをセットアップしましょう。これは、crew に調査して欲しい特定のトピックを提供するところです。

#!/usr/bin/env python
# src/research_crew/main.py
import os
from research_crew.crew import ResearchCrew

# Create output directory if it doesn't exist
os.makedirs('output', exist_ok=True)

def run():
    """
    Run the research crew.
    """
    inputs = {
        'topic': 'AI エージェント・フレームワーク'
    }

    # Create and run the crew
    result = ResearchCrew().crew().kickoff(inputs=inputs)

    # Print the result
    print("\n\n=== FINAL REPORT ===\n\n")
    print(result.raw)

    print("\n\nReport has been saved to output/report.md")

if __name__ == "__main__":
    run()

このスクリプトは環境を準備し、調査トピックを指定し、そして crew の作業をキックオフします。CrewAI のパワーはこのコードがどれほど単純かである点で明らかです – 複数の AI エージェントを管理するすべての複雑さはフレームワークにより処理されます。

 

Step 7: 環境変数のセットアップ

プロジェクト・ルートに API キーを含む .env ファイルを作成します :

SERPER_API_KEY=your_serper_api_key
# Add your provider's API key here too.

See the LLM Setup guide for details on configuring your provider of choice. You can get a Serper API key from Serper.dev.

 

Step 8: 依存関係のインストール

CrewAI CLI を使用して必要な依存関係をインストールします :

crewai install

このコマンドは :

  1. プロジェクト configuration から依存関係を読み取ります。

  2. 必要であれば仮想環境を作成します。

  3. すべての必要なパッケージをインストールします。

 

Step 9: Crew の実行

Now for the exciting moment – 実際に crew を実行して AI コラボレーションを確認するときです!

crewai run

このコマンドを実行すれば、crew が活発に動き始めるのを見るでしょう。researcher は特定のトピックについての情報を収集し、それから analyst はその調査に基づいて包括的なレポートを作成します。エージェントが協力してタスクを完了する間、エージェントの思考プロセス、アクション、出力をリアルタイムで確認できます。

 

Step 10: 出力のレビュー

crew がその作業を完了すれば、output/report.md ファイルで最終的なレポートを見るでしょう。レポートは以下を含みます :

  1. エグゼクティブ・サマリー (executive summary)

  2. トピックについての詳細情報

  3. 分析と洞察

  4. 推奨事項 or 今後の検討事項

少し時間を取って貴方が達成したことを評価しましょう – 複数の AI エージェントが複雑なタスクについて協力し、それぞれが専門スキルを使用して、単一のエージェントが単独で達成することよりも優れた結果を生成するシステムを作成しました。

 
出力例 (output/report.md)

### エグゼクティブサマリー

本レポートでは、AIエージェント・フレームワークの概念とその重要性を探ります。最新のトレンドや歴史的背景を考慮し、主要な課題と機会を評価した上で、特筆すべき応用例やケーススタディを紹介します。さらには、今後の発展について展望し、推奨事項を提供します。AIエージェントは、企業運営効率の向上を促進する手段として今後ますます重要な役割を果たすと見込まれています。

### 1. 主要な概念と定義

AIエージェント・フレームワークは、AIエージェントの作成、管理、展開を可能とするツールやプラットフォームの集合体であり、環境への適応と意思決定能力を持つ自律システムです。企業における業務効率化の核として着実にその地位を確立しつつあります。

### 2. 歴史的な発展と最近のトレンド

AIエージェント技術は、AIと機械学習の発展と共に進化しています。現在のトレンドは、特に大規模言語モデル(LLM)を用いた自律学習と適応能力の強化に焦点を当てています。複数のエージェントによる協調型の問題解決が注目され、2025年までにさらなる普及が期待されています。

### 3. 主要な課題と機会

AIエージェントの導入における課題は、倫理的問題やセキュリティリスク、スケーラビリティにあります。さらに、高精度なデータの確保と複雑な行動の検証手法の確立が求められます。しかし、これらの課題は、新たな業務の効率化やビジネスプロセスへの適応能力向上の機会を提供します。

### 4. 注目すべき応用やケーススタディ

AIエージェントは、ビジネスプロセスの自動化や改善、特に消費者行動の予測やコミュニケーション、マーケットシミュレーションといった複雑なシステムのモデリングにおいて顕著な成果をあげています。先進企業の事例は、AIエージェント導入による組織変革の可能性を強調しています。

### 5. 将来の見通しと潜在的な発展

今後、AIエージェントは更なる自律性と意思決定力を備え、さまざまな産業に広がると期待されます。2025年までには、その応用分野がさらに拡大し、デジタル変革の新たな段階を迎えるでしょう。

### 結論と推奨事項

AIエージェント・フレームワークは、ビジネス効率化に不可欠な要素として、持続的な発展と革新が見込まれます。戦略的な導入と倫理的・セキュリティ的配慮を怠らないことが成功の鍵です。企業はこれを活用し、先進的なビジネスモデルを構築するための準備を進めるべきです。

今後の検討事項としては、倫理規範の強化、データセキュリティの確立、スケーラビリティの向上が挙げられます。さらなる研究と技術革新が、AIエージェントの可能性を一層広げると考えられます。

 

以上