初心者エンジニアがCrewAIを活用して情報収集を自動化してみた

0. はじめに


 

こんにちは。NTT西日本の武田です。

「AI」という言葉が日常に浸透し、最近では、「AIエージェント」という新たなキーワードを耳にする機会が増えてきました。AIエージェントは、単に質問に答えるだけでなく、自らタスクを計画し、環境と相互作用しながら自律的に働いてくれる賢いアシスタントです。

本記事では、AIエージェントに興味を持つ方を対象に、その基本的な仕組みから、簡単な実装までを解説します。

1. 対象読者


 

本記事が想定する対象読者は以下の通りです。

  • AIエージェントを使って開発をしてみたい方
  • CrewAIに興味がある方

2. 執筆の背景


 

実は、この記事を書いている私自身まだまだ経験の浅いエンジニアです。しかし、AIの急速な進展には非常に興味があり、「AIエージェント」という新しい技術を試してみたいという思いから、この開発に挑戦しました。本記事が「AIエージェントに興味はあるけれど、よく分からない」と感じている方にとって、少しでも参考になれば幸いです。

3. AIエージェントとは?


 

「AIエージェント」と従来の生成AIとの違いは何でしょうか?
一言でいうと、生成AIは「受動的に答える」のに対し、AIエージェントは「自律的に行動」します。

従来の生成AIは、ユーザーの質問に対して学習済みの知識から最適な答えを返すことに特化していました。これは、あくまで受動的な「応答」です。

一方、AIエージェントは、与えられた目標を達成するためにタスクを分解し、外部システムと連携しながら自律的に「行動」するインテリジェントシステムです。例えば営業支援を行うAIエージェントなら、潜在顧客の探索から情報収集、提案書作成、メール送信までの一連のワークフローを自動で実施することができます。

3-1. AIエージェントのコアコンポーネント

AIエージェントは、主に以下の4つの要素で構成されています。

コンポーネント 役割 機能
LLM (Large Language Model) エージェントの「脳」として機能する中核 ユーザーの目標を理解し、論理的に推論する。
計画 目標達成のための具体的な手順を決定する 複雑な目標を小さなタスクに分割する。現在の状態と目標に基づき、次にどのツールを使うか、応答を行うかを決定する。
メモリ 過去の経験や情報を保持し、行動に活かす 短期記憶: 現在の会話やタスクの履歴を保持する。
長期記憶: 過去の知識やドキュメントを保存し、必要に応じて検索・参照する。
ツール 外部システムと連携する 外部のAPIや関数を呼び出し、LLM単体ではできない操作を実行する。

これらのコンポーネントは、以下の流れで連携し、エージェントの自律的な行動を可能にします。

3-2. 代表的なAIエージェントフレームワーク

AIエージェントを効率的に開発するための代表的なフレームワークを3つご紹介します。それぞれ異なる機能と得意分野を持っているので、用途に合わせて選択してください。

フレームワーク 機能 得意分野
LangGraph   エージェント間のワークフローをグラフ構造で管理 複雑な条件分岐やループを含む、柔軟な意思決定プロセス
AutoGen   複数エージェントの対話(チャット)をベースにタスクを進める 探索的な問題解決や、コード生成・実行を伴うタスク
CrewAI   役割ベースのエージェントチームを簡単に構築できる 明確な役割分担とエージェント間の連携

3-3. 今回活用したAIエージェント:CrewAIについて

今回は、役割が明確なフローの実践を取組のテーマ(=「ユーザニーズに基づく家電購入リストの作成」)としたため、3-2で示したフレームワークの中でも特にCrewAIを活用して開発を行いました。CrewAIは、複数のAIエージェントを「チーム」として編成し、役割分担しながらタスクを遂行することを得意としています。

CrewAIの構造はシンプルです。基本的な仕組みは以下の通りです。

CrewAIは、現実世界のプロジェクトチームをモデルにしており、プロジェクトの立ち上げから、タスクの定義、エージェントへの割り当て、そしてプロセスに沿った段階的な実装を行います。以下の要素を組み合わせることで、役割ベースのエージェントチームを簡単に構築することができます。

  • Crew(プロジェクトチーム)
    • 複数のエージェントをまとめる単位
  • Agent(チームメンバー)
    • 役割と専門性を持つAI(例:Planner、Coder、Reviewer)
  • Task(作業)
    • エージェントに割り当てる作業

4. AIエージェントの実装


 

4-1. 実装の目的

今回の実装のきっかけは、引っ越しです。私が最近引っ越しを経験し、家電の購入を検討した際、予想以上の時間と労力がかかったため、この課題を解決したいと考えました。家電の購入は、情報収集・比較・予算調整といった複数のタスクが含まれる複雑なワークフローであると言えます。そこで、役割ベースのエージェントチームを構築できるCrewAIの特性を活かし、この問題を解決しようと考えました。

4-2. プロセスと実装アーキテクチャ

本実装では、家電購入リストの作成というワークフローを以下の4つのプロセスに分割し、プロセス(=タスク)ごとにAIエージェントを作成しました。また、各AIエージェントが互いに連携するよう構成しました。

プロセス① 要件定義: ユーザーの生活環境(部屋の広さ、家族構成、予算)に基づく必要な家電リストの作成
プロセス② 情報収集: Web検索を通じたリアルタイムな市場データ(価格、レビュー、在庫)の収集
プロセス③ 意思決定: 収集データに基づく多角的な比較と最適化
プロセス④ 成果物生成: 最終結果をレポートとして出力

上記のプロセス1〜4に対応するAIエージェントを下記のように作成しました。

エージェント名 役割 入力 出力 タスク
Planning Agent 引っ越し家電プランナー ユーザーの引っ越し条件 必要な家電リスト 引っ越し条件をもとに必要な家電を洗い出し
Research Agent 家電市場リサーチャー 家電リスト 市場データ 家電ごとに価格、レビュー、在庫情報をWeb検索して収集
Comparison Agent 家電最適化アナリスト 市場データ 最適な購入候補リスト 価格、性能、レビューを評価し、最適な候補を選定
Report Agent レポートジェネレーター 最適な購入候補リスト レポート 購入候補リストをレポートにまとめる

4-3. 動作環境

要件 詳細
ライブラリ crewai, crewai-tools
LLM API OPENAI_API_KEY
Web検索 API SERPER_API_KEY
コードエディタ Visual Studio Code

4-4. 構築手順

4-4-1. 事前準備

まず、PythonとVS Codeをインストールし、プロジェクトフォルダを作成します。

crewai-appliance-project/
├── .env
└── appliance_purchase_crew.py

4-4-2. 必要なライブラリのインストール

必要なライブラリをインストールします。

pip install crewai crewai-tools python-dotenv

4-4-3. APIキーの取得

本実装では、2つのAPIを利用します。(LLM API(OpenAI)とWeb検索 API(Serper))
それぞれのウェブサイトでアカウントを作成し、APIキーを取得します。

OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
SERPER_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

4-4-4. コードファイルの作成と実行

今回は、appliance_purchase_crew.pyというpythonファイルを作成し、実行しました。

4-5. 結果

今回構築したプログラムの構成と各AIエージェントの応答、最終成果物について示します。

4-5-1. 全体構成

4-2で示した4つのプロセスごとにそれぞれ専門のAIエージェントを作成し、前のタスクの出力を次のタスクの入力とすることで互いに情報を渡し、最終成果物を作成するという構成にしました。

4-5-2. 各AIエージェントの応答

Planning Agent(引っ越し家電プランナー)

ユーザの条件から引越しに必要な家電を洗い出すエージェントです。

タスクを以下のように提示します。 ここでは、家電の購入条件を指定します。

AIエージェントの応答は以下です。 この出力を次のResearch Agent(家電市場リサーチャー)の入力とします。

Research Agent(家電市場リサーチャー)

プランナーが作成したリストをもとに、情報収集を行うエージェントです。

Planning Agent(引っ越し家電プランナー)の出力を入力として、各家電(テレビ、洗濯機、冷蔵庫など)ごとにSerperを用いて検索します。ここでは、冷蔵庫の検索結果を示します。

Comparison Agent(家電最適化アナリスト)

リサーチャーが収集した情報をもとに、最適な家電を選択するエージェントです。

Research Agent(家電市場リサーチャー)の出力を入力として、最適なモデルを選択します。

Report Agent(レポートジェネレーター)

アナリストの結果をもとに、最終成果物としてレポートを作成するエージェントです。

Comparison Agent(家電最適化アナリスト)の出力を入力として、レポートを作成します。

4-5-3. 最終成果物

以上のプロセスを経て作成された最終成果物がこちらです。

4-6. 評価

本取り組みでは、「最適な家電購入リストの自動生成」を、AIエージェントが自律的に判断し、最終レポートとしてまとめることに成功しました。また、複数の専門エージェント(プランナー、リサーチャー、アナリスト、ジェネレーター)が役割ごとにタスクを分担し、連携しながら結果を導く仕組みを構築できました。

5. 課題


 

今回、CrewAIを用いたシステム実装の過程でいくつかの課題が明らかになりました。今後はこれらの課題を解消し、より利便性の高いシステムの構築を目指します。

課題① UIを作成していないため、ユーザビリティが低い
- CLIによる実行のみで、非エンジニアには使いにくい
課題② データ品質の低さ(精度やリアルタイム性)
- 検索結果の構造化が不十分で、比較ロジックが曖昧になることがある
- 最終アウトプットに販売終了製品を含むなど、古い情報を取得してしまうケースがある
課題③ 最終成果物の高度化
- PDF形式への変換や、購入リンクの付与など、より実用的なレポートの生成を行う

6. 今後取り組みたいこと


 

今回実装したのは非常にシンプルなAIエージェントですが、この仕組みを応用することで、データ分析やマーケティングなど、さまざまなワークフローを自動化することが可能だと感じました。今後は、実業務でも活用できるAIエージェントを実装してみたいと思います。

7. まとめ


 

本記事では、AIエージェントの基本的な仕組みから、CrewAIを用いた簡単な実装までを解説しました。
AIエージェントは、私たちの働き方を大きく変える可能性のある、非常に興味深い技術分野です。
本記事が皆さんのAIエージェント開発の一助となれば幸いです。
ぜひ、自分だけのオリジナルAIエージェントを作成してみてください。

執筆者

武田 海渡(NTT西日本 ビジネス営業部所属)
関西エリアの広域支援(教育、防災案件)に携わっています。

商標について

本記事で言及されている製品名・サービス名は、各社の商標または登録商標です。

  • OpenAIは、OpenAI, Inc.の商標または登録商標です
  • LangChainは、LangChain, Inc.の商標または登録商標です
  • AutoGenは、Microsoft Corporationの商標または登録商標です
  • CrewAIは、CrewAI, Inc.の商標または登録商標です

免責事項

本記事に記載された情報は、2025年12月時点での公開情報および筆者の検証・ヒアリング結果に基づくものです。

  • 各サービスの機能、制限事項等は予告なく変更される場合があります
  • 本記事の内容を実践される際は、必ず各サービスの最新の公式ドキュメントをご確認ください
  • 本記事の情報に基づいて行われた意思決定や実装により生じた損害について、筆者および所属組織は一切の責任を負いかねます

参考資料・出典

www.crewai.com

ai-market.jp

www.nvidia.com

© NTT WEST, Inc.