UC-AI-003AILv4Lv5
Deep Research(多段・複数ソース調査)
複数ソースを横断して多段の調査を行い、根拠付きの調査レポートを自動生成する。
Deep ResearchSERP APICrawl API
KPI 例
- 根拠引用数
- 検証通過率
- 調査時間
Deep Research は、「1 回検索して終わり」ではなく、問いを複数の小さな取得ステップに分解する設計です。Bright Data の一次情報でも AI 向けの深掘り調査ユースケースとして位置づけられており、実務では 検索で候補を集める -> 重要 URL をクロールする -> 要約と出典を残す という流れに落とすと扱いやすくなります。
誰の課題か
- 市場調査や競合調査を短時間で回したいリサーチ担当
- LLM に調査レポートを書かせたいが、出典を必ず残したい AI 開発者
- 人手でタブを開き直しながら調査している事業企画チーム
深掘り調査で失敗しやすいのは、最初から対象 URL を増やしすぎることです。検索とクロールを分け、クロール対象は上位数件に絞るだけで、コストも検証負荷も下げられます。
推奨製品セット
| 製品 | 役割 | 使い分け |
|---|---|---|
| Deep Research | ユースケース全体の枠組み | 多段調査フローの設計単位 |
| SERP API | 入口の検索 | 候補 URL の収集 |
| Crawl API | 詳細本文の取得 | 上位 URL を Markdown 化して読む |
| MCP | AI クライアント連携 | エージェントから検索を呼ぶ |
- 1 段目は検索、2 段目はクロール、3 段目は要約に固定すると再現性が上がります。
- 検索結果すべてをクロールせず、調査意図に合う URL だけに絞ることが重要です。
最小実装イメージ
1. MCP で検索候補を集める
import os
import requests
API_KEY = os.getenv("BRIGHTDATA_API_KEY")
def search_candidates(query: str) -> list[str]:
response = requests.post(
"http://localhost:8080/v1/search",
headers={
"Content-Type": "application/json",
"X-API-KEY": API_KEY,
},
json={
"query": query,
"engine": "google",
"num_results": 5,
},
timeout=30,
)
response.raise_for_status()
return [item["url"] for item in response.json().get("results", [])]2. Crawl API の対象 URL を決める
def pick_urls(urls: list[str]) -> list[str]:
return urls[:3]
if __name__ == "__main__":
urls = search_candidates("Bright Data llm grounding use cases")
for url in pick_urls(urls):
print(url)クロール実行自体は ハンズオン Step 3: Crawl API で RAG 前処理 のジョブ例に合わせるのが安全です。このページでは「多段に分ける」ことを主眼に置き、専用 API スキーマの断定は避けています。
運用ポイント
- 検索クエリは 1 回で完成させようとせず、調査テーマ、地域、期間などの軸で分割します。
- クロール対象の採用理由を残します。出典 URL だけでなく「なぜその URL を調査に含めたか」があると再実行しやすくなります。
- レポート本文と根拠データを別テーブルで持ち、出典 URL と取得日時を必ず保持します。
- 調査用途では Markdown 出力が扱いやすい一方、差分確認や再解析では HTML が必要になることがあります。保存形式を 1 つに決め打ちしないほうが安全です。
- 期間指定や鮮度条件がある調査では、スナップショット日時を回答本文に埋め込んでおきます。