ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment construire un agent de recherche multi-source
Tutoriel

Comment construire un agent de recherche multi-source

Construisez un agent qui recherche Google, Reddit et YouTube pour un sujet via une seule API, combine les résultats et génère un résumé de recherche structuré.

Obtenez une clé API gratuiteDocumentation API

Un agent de recherche multi-source interroge Google, Reddit et YouTube sur un sujet en utilisant le paramètre platform de l'API Scavio, combine les résultats en un contexte unifié et génère un résumé de recherche à l'aide d'un LLM.

Prérequis

  • Python 3.9+
  • Clé API Scavio
  • SDK anthropic

Parcours

Étape 1: Définir des fonctions de recherche par plateforme

Chaque appel de plateforme utilise le même point de terminaison avec une valeur platform différente.

Python
import requests

API_KEY = "your-scavio-api-key"

def search(query: str, platform: str = "google", n: int = 5) -> list:
    r = requests.post(
        "https://api.scavio.dev/api/v1/search",
        json={"query": query, "platform": platform, "num_results": n},
        headers={"x-api-key": API_KEY},
        timeout=15
    )
    r.raise_for_status()
    return r.json().get("organic_results", [])

search_google  = lambda q, n=5: search(q, "google", n)
search_reddit  = lambda q, n=5: search(q, "reddit", n)
search_youtube = lambda q, n=5: search(q, "youtube", n)

Étape 2: Rassembler les résultats multi-sources

Lancer trois recherches en parallèle avec ThreadPoolExecutor.

Python
from concurrent.futures import ThreadPoolExecutor, as_completed

def gather_sources(topic: str) -> dict:
    sources = {}
    tasks = {
        "google":  (topic + " overview",),
        "reddit":  (topic + " discussion",),
        "youtube": (topic + " tutorial",)
    }
    with ThreadPoolExecutor(max_workers=3) as executor:
        futures = {
            executor.submit(search, query, platform): platform
            for platform, (query,) in tasks.items()
        }
        for future in as_completed(futures):
            platform = futures[future]
            try:
                sources[platform] = future.result()
            except Exception as e:
                sources[platform] = []
                print(f"{platform} search failed: {e}")
    return sources

Étape 3: Formater et générer le résumé de recherche

Combiner les résultats en un bloc de contexte et solliciter Claude pour un résumé structuré.

Python
import anthropic

ANTHROPIC_KEY = "your-anthropic-key"

def format_sources(sources: dict) -> str:
    lines = []
    for platform, results in sources.items():
        lines.append(f"\n### {platform.upper()}")
        for r in results[:3]:
            lines.append(f"- {r.get('title')}\n  {r.get('snippet','')[:150]}")
    return "\n".join(lines)

def research_brief(topic: str) -> str:
    sources = gather_sources(topic)
    context = format_sources(sources)
    prompt = f"""Based on these multi-source search results about '{topic}', write a research brief with:
1. Key findings (3 bullets)
2. Community sentiment from Reddit
3. Top learning resources from YouTube

{context}

Brief:"""
    client = anthropic.Anthropic(api_key=ANTHROPIC_KEY)
    msg = client.messages.create(model="claude-sonnet-4-6", max_tokens=1024,
                                  messages=[{"role": "user", "content": prompt}])
    return msg.content[0].text

print(research_brief("vector databases 2026"))

Exemple Python

Python
import requests
import anthropic
from concurrent.futures import ThreadPoolExecutor, as_completed

SCAVIO_KEY = "your-scavio-api-key"
ANTHROPIC_KEY = "your-anthropic-key"

def search(query, platform="google", n=5):
    r = requests.post("https://api.scavio.dev/api/v1/search",
                      json={"query": query, "platform": platform, "num_results": n},
                      headers={"x-api-key": SCAVIO_KEY}, timeout=15)
    r.raise_for_status()
    return r.json().get("organic_results", [])

def gather(topic):
    tasks = {"google": f"{topic} overview", "reddit": f"{topic} discussion", "youtube": f"{topic} tutorial"}
    results = {}
    with ThreadPoolExecutor(max_workers=3) as ex:
        futures = {ex.submit(search, q, p): p for p, q in tasks.items()}
        for f in as_completed(futures):
            p = futures[f]
            results[p] = f.result() if not f.exception() else []
    return results

def format_ctx(sources):
    parts = []
    for p, items in sources.items():
        parts.append(f"\n### {p.upper()}")
        parts.extend(f"- {i.get('title')}\n  {i.get('snippet','')[:120]}" for i in items[:3])
    return "\n".join(parts)

def research_brief(topic):
    sources = gather(topic)
    ctx = format_ctx(sources)
    prompt = f"Research brief for '{topic}':\n\n{ctx}\n\nWrite: 1) Key findings 2) Reddit sentiment 3) YouTube resources"
    client = anthropic.Anthropic(api_key=ANTHROPIC_KEY)
    msg = client.messages.create(model="claude-sonnet-4-6", max_tokens=1024,
                                  messages=[{"role": "user", "content": prompt}])
    return msg.content[0].text

if __name__ == "__main__":
    print(research_brief("vector databases 2026"))

Exemple JavaScript

JavaScript
const SCAVIO_KEY = 'your-scavio-api-key';

async function search(query, platform = 'google', n = 5) {
  const res = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json', 'x-api-key': SCAVIO_KEY },
    body: JSON.stringify({ query, platform, num_results: n })
  });
  const data = await res.json();
  return data.organic_results ?? [];
}

async function gatherSources(topic) {
  const [google, reddit, youtube] = await Promise.all([
    search(`${topic} overview`, 'google'),
    search(`${topic} discussion`, 'reddit'),
    search(`${topic} tutorial`, 'youtube')
  ]);
  return { google, reddit, youtube };
}

const sources = await gatherSources('vector databases 2026');
for (const [platform, results] of Object.entries(sources)) {
  console.log(`\n${platform.toUpperCase()}:`);
  for (const r of results.slice(0, 2)) console.log(`  - ${r.title}`);
}

Sortie attendue

JSON
Research Brief: vector databases 2026

**Key Findings**
- Pinecone and Weaviate dominate production deployments; Qdrant gaining share for performance-sensitive use cases
- pgvector usage increased significantly as teams prefer staying in PostgreSQL
- Hybrid search (vector + keyword) is now standard; pure vector search is declining

**Reddit Sentiment**
Reddit discussions show frustration with vendor lock-in. r/MachineLearning and r/LocalLLaMA prefer self-hosted options (Qdrant, Chroma). Cost is the top concern.

**YouTube Resources**
- "Vector Databases Explained" by Fireship (2.3M views)
- "Qdrant Tutorial 2026" by TechWithTim (890K views)

Tutoriels associés

  • Comment configurer le RAG avec la recherche au lieu des vecteurs
  • Comment connecter Scavio à LangChain RAG
  • Comment intégrer une API de recherche avec CrewAI

Questions fréquentes

La plupart des développeurs terminent ce tutoriel en 15 à 30 minutes. Vous aurez besoin d'une clé API Scavio (l'offre gratuite suffit) et d'un environnement Python ou JavaScript fonctionnel.

Python 3.9+. Clé API Scavio. SDK anthropic. Une clé API Scavio vous donne 50 crédits gratuits à l'inscription.

Oui. L'offre gratuite comprend 50 crédits à l'inscription, ce qui est largement suffisant pour terminer ce tutoriel et prototyper une solution fonctionnelle.

Scavio dispose d'un package natif LangChain (langchain-scavio), d'un serveur MCP et d'une API REST simple qui fonctionne avec tout client HTTP. Ce tutoriel utilise the raw REST API, mais vous pouvez l'adapter à votre framework de prédilection.

Ressources connexes

Use Case

Recherche Multi-Plateforme de l'Agent de Codage Pi

Read more
Best Of

Meilleures API de données multi-plateformes pour le grounding des agents en mai 2026

Read more
Best Of

Meilleure API de recherche pour agents de recherche approfondie en 2026

Read more
Use Case

Agent de recherche multi-source LangGraph

Read more
Solution

Ajouter la recherche multiplateforme aux agents IA

Read more
Solution

Alimentez votre agent avec six plateformes pour des données fraîches

Read more

Commencer

Construisez un agent qui recherche Google, Reddit et YouTube pour un sujet via une seule API, combine les résultats et génère un résumé de recherche structuré.

Obtenez une clé API gratuiteLire la documentation
ScavioScavio

API de recherche en temps réel pour agents IA. Recherchez sur toutes les plateformes, pas seulement Google.

Produit

  • Fonctionnalités
  • Tarifs
  • Tableau de bord
  • Affiliés

Développeurs

  • Documentation
  • Référence API
  • Démarrage rapide
  • Intégration MCP
  • SDK Python

Alternatives

  • Alternative à Tavily
  • Alternative à SerpAPI
  • Alternative à Firecrawl
  • Alternative à Exa

Outils

  • Formateur JSON
  • cURL vers code
  • Compteur de jetons
  • Tous les outils

© 2026 Scavio. Tous droits réservés.

Featured on TAAFT
Conditions d'utilisationPolitique de confidentialité