CrewAI で Firecrawl を使う
Firecrawl は AI エージェント向けのコンテキスト API です。AI エージェントをオーケストレーションするフレームワークである CrewAI には、Firecrawl検索ツール、FirecrawlScrapeWebsiteツール、FirecrawlCrawlWebsiteTool の 3 つの Firecrawl ツールが用意されています。これらを使用すると、クルーがウェブを検索、スクレイピング、クロールして、クリーンなコンテキストを取得できます。CrewAI 内での Firecrawl Tools のインストール
- firecrawl.dev のダッシュボードから API キーを取得し、環境変数 (
FIRECRAWL_API_KEY) に設定します。 crewai[tools]パッケージとあわせて Firecrawl SDK をインストールします。
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ツール
例
引数
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、説明のみを取得したい場合は省略してください。

