メインコンテンツへスキップ

CrewAI で Firecrawl を使う

Firecrawl は AI エージェント向けのコンテキスト API です。AI エージェントをオーケストレーションするフレームワークである CrewAI には、Firecrawl検索ツール、FirecrawlScrapeWebsiteツール、FirecrawlCrawlWebsiteTool の 3 つの Firecrawl ツールが用意されています。これらを使用すると、クルーがウェブを検索、スクレイピング、クロールして、クリーンなコンテキストを取得できます。

CrewAI 内での Firecrawl Tools のインストール

各ツールは、インスタンス生成時に config dict で Firecrawl のオプションを受け取ります。URL やクエリはエージェントがツールを呼び出す際に渡すため、事前に指定するのはオプションだけです。

ツール

FirecrawlCrawlWebsiteTool

例

エージェントが Web サイトをクロールできるようにするには、次のように FirecrawlCrawlWebsiteTool を利用します:

引数

  • api_key: 任意。Firecrawl APIキーを指定します。デフォルトは環境変数 FIRECRAWL_API_KEY の値です。
  • config: 任意。snake_case 形式のクロールパラメータ。config を渡すと、以下のデフォルト値は置き換えられます。
    • limit: クロールする最大ページ数。デフォルト: 10。
    • max_discovery_depth: ページ探索の最大深度。デフォルト: 2。
    • ignore_sitemap: サイトマップを無視するかどうか。デフォルト: True。
    • allow_external_links: 外部リンクのクロールを許可するかどうか。デフォルト: False。
    • allow_subdomains: サブドメインのクロールを許可するかどうか。デフォルト: False。
    • delay: リクエスト間の待機時間(ミリ秒)。デフォルト: None。
    • scrape_options: クロールした各ページに適用するオプション。デフォルト: {"formats": ["markdown"], "only_main_content": True, "timeout": 10000}。

FirecrawlScrapeWebsiteツール

例

エージェントがウェブサイトを読み込めるようにするには、次のように FirecrawlScrapeWebsiteツール を使用します。

引数

  • api_key: 任意。Firecrawl APIキーを指定します。デフォルトは環境変数 FIRECRAWL_API_KEY の値です。
  • config: 任意。snake_case で指定するスクレイピングパラメータ。config を渡すと、以下のデフォルト値は置き換えられます。
    • formats: 出力形式。"markdown"、"html"、"links"、または構造化抽出用の JSON形式のフォーマットオブジェクトなどを指定します。デフォルト: ["markdown"]。
    • only_main_content: ヘッダー、ナビゲーション、フッターなどを除き、ページのメインコンテンツのみを返します。デフォルト: True。
    • include_tags / exclude_tags: 含める、または除外する HTML タグ。デフォルト: []。
    • max_age: キャッシュの経過時間がこのミリ秒数未満であれば、キャッシュ版を返します。デフォルト: 172800000 (2日) 。
    • wait_for: コンテンツを取得するまでの待機時間 (ミリ秒) 。デフォルト: 0。
    • mobile: モバイルデバイスをエミュレートします。デフォルト: False。
    • timeout: リクエストのタイムアウト (ミリ秒) 。デフォルト: None。

Firecrawl検索ツール

例

エージェントがウェブを検索できるようにするには、次のように Firecrawl検索ツール を使用します:

引数

  • api_key: 任意。Firecrawl APIキーを指定します。デフォルトは環境変数 FIRECRAWL_API_KEY の値です。
  • config: 任意。検索パラメータを snake_case で指定します。config を渡すと、以下のデフォルト値はすべて置き換えられます。
    • limit: 返す検索結果の最大件数。デフォルト: 5。
    • tbs: 期間で絞り込むための検索フィルター。例: 過去1日の場合は "qdr:d"。デフォルト: None。
    • location: 検索結果のロケーション。デフォルト: None。
    • timeout: リクエストのタイムアウト(ミリ秒)。デフォルト: None。
    • scrape_options: 各結果をスクレイピングし、そのコンテンツを返します。デフォルト: {"formats": ["markdown"], "only_main_content": True}。タイトル、URL、説明のみを取得したい場合は省略してください。