ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment construire un pont de contexte d'agent pour les résultats de recherche
Tutoriel

Comment construire un pont de contexte d'agent pour les résultats de recherche

Sérialisez les résultats de recherche en JSON structuré pour les workflows d'agents multi-étapes. Optimisez l'utilisation de la fenêtre de contexte avec une compression intelligente des résultats.

Obtenez une clé API gratuiteDocumentation API

Les workflows d'agents multi-étapes transmettent les résultats de recherche entre les étapes, mais les réponses brutes de l'API gaspillent les tokens de la fenêtre de contexte sur des champs non pertinents. Un pont de contexte sérialise les résultats de recherche dans le JSON structuré minimum dont chaque étape d'agent a besoin, réduisant l'utilisation de tokens de 60 à 80 % tout en préservant les données importantes. Ce tutoriel construit un pont qui compresse et formate les résultats de recherche pour la consommation des agents.

Prérequis

  • Python 3.8+
  • bibliothèque requests
  • Une clé API Scavio depuis scavio.dev
  • Un cadre d'agent (LangChain, CrewAI ou personnalisé)

Parcours

Étape 1: Définir les stratégies de compression de contexte

Créer des niveaux de compression pour différentes tailles de fenêtre de contexte d'agent.

Python
import os, requests, json

API_KEY = os.environ['SCAVIO_API_KEY']
SH = {'x-api-key': API_KEY, 'Content-Type': 'application/json'}

def compress_results(results, level='medium'):
    """Compress search results for agent context windows."""
    if level == 'minimal':
        # ~20 tokens per result (for 4K context models)
        return [{'t': r.get('title', '')[:40], 'u': r.get('link', '').split('/')[2] if r.get('link') else ''}
                for r in results[:3]]
    elif level == 'medium':
        # ~60 tokens per result (for 8K-16K context)
        return [{'title': r.get('title', '')[:60], 'domain': r.get('link', '').split('/')[2] if r.get('link') else '',
                 'snippet': r.get('snippet', '')[:100]} for r in results[:5]]
    else:  # full
        # ~120 tokens per result (for 32K+ context)
        return [{'title': r.get('title', ''), 'link': r.get('link', ''),
                 'snippet': r.get('snippet', ''), 'position': r.get('position', 0)}
                for r in results[:10]]

data = requests.post('https://api.scavio.dev/api/v1/search',
    headers=SH, json={'query': 'best serp api 2026', 'country_code': 'us'}).json()
results = data.get('organic_results', [])
for level in ['minimal', 'medium', 'full']:
    compressed = compress_results(results, level)
    tokens_est = len(json.dumps(compressed)) // 4
    print(f'{level:8}: {len(compressed)} results, ~{tokens_est} tokens')

Étape 2: Construire la classe du pont de contexte

Créer un pont qui gère le contexte de recherche à travers les étapes de l'agent.

Python
class ContextBridge:
    def __init__(self, max_tokens=4000):
        self.max_tokens = max_tokens
        self.context = []
        self.token_count = 0
        self.searches = 0
        self.cost = 0.0

    def search(self, query, platform=None):
        body = {'query': query, 'country_code': 'us'}
        if platform: body['platform'] = platform
        data = requests.post('https://api.scavio.dev/api/v1/search',
            headers=SH, json=body).json()
        self.searches += 1
        self.cost += 0.005
        results = data.get('organic_results', [])
        # Auto-select compression based on remaining budget
        remaining = self.max_tokens - self.token_count
        if remaining < 500: level = 'minimal'
        elif remaining < 2000: level = 'medium'
        else: level = 'full'
        compressed = compress_results(results, level)
        entry = {'query': query, 'platform': platform or 'google',
                 'results': compressed, 'level': level}
        tokens = len(json.dumps(entry)) // 4
        self.context.append(entry)
        self.token_count += tokens
        return entry

    def get_context(self):
        return json.dumps(self.context, indent=None)

    def stats(self):
        return f'{self.searches} searches, ~{self.token_count} tokens, ${self.cost:.3f}'

bridge = ContextBridge(max_tokens=4000)
bridge.search('best serp api 2026')
bridge.search('serp api user reviews', platform='reddit')
print(f'Stats: {bridge.stats()}')

Étape 3: Ajouter l'extraction de fonctionnalités SERP

Extraire les données de l'aperçu IA et de l'extrait en vedette pour le contexte de l'agent.

Python
def extract_features(data):
    """Extract SERP features into agent-friendly format."""
    features = {}
    if data.get('ai_overview'):
        ao = data['ai_overview']
        features['ai_overview'] = {
            'present': True,
            'text': json.dumps(ao)[:200] if isinstance(ao, dict) else str(ao)[:200]
        }
    if data.get('answer_box'):
        ab = data['answer_box']
        features['answer_box'] = {
            'title': ab.get('title', '')[:60],
            'answer': ab.get('answer', ab.get('snippet', ''))[:150]
        }
    paa = data.get('related_questions', [])
    if paa:
        features['people_also_ask'] = [q.get('question', '')[:80] for q in paa[:4]]
    return features

def search_with_features(query):
    data = requests.post('https://api.scavio.dev/api/v1/search',
        headers=SH, json={'query': query, 'country_code': 'us', 'include_ai_overview': True}).json()
    results = compress_results(data.get('organic_results', []), 'medium')
    features = extract_features(data)
    return {'query': query, 'results': results, 'features': features}

context = search_with_features('best python framework 2026')
print(json.dumps(context, indent=2)[:500])

Étape 4: Sérialiser le contexte pour les workflows multi-étapes

Formater le contexte accumulé pour le transfert entre les étapes de l'agent.

Python
def format_for_agent(bridge, task_description):
    """Format accumulated search context for the next agent step."""
    context_str = bridge.get_context()
    prompt = f"""Based on the following search results gathered across {bridge.searches} searches:

{context_str}

Task: {task_description}

Provide your analysis based solely on the search data above. Note any gaps."""
    token_est = len(prompt) // 4
    print(f'Context prompt: ~{token_est} tokens ({bridge.stats()})')
    return prompt

# Example multi-step workflow
bridge = ContextBridge(max_tokens=6000)
bridge.search('serp api pricing comparison 2026')
bridge.search('serp api developer reviews', platform='reddit')
bridge.search('serp api python tutorial', platform='youtube')

prompt = format_for_agent(bridge,
    'Compare the top 3 SERP APIs by pricing, developer experience, and community sentiment.')
print(f'\nPrompt preview:\n{prompt[:300]}...')
print(f'\nTotal search cost: ${bridge.cost:.3f}')

Exemple Python

Python
import os, requests, json
SH = {'x-api-key': os.environ['SCAVIO_API_KEY'], 'Content-Type': 'application/json'}

def bridge_search(query, max_results=3):
    data = requests.post('https://api.scavio.dev/api/v1/search',
        headers=SH, json={'query': query, 'country_code': 'us'}).json()
    compressed = [{'title': r['title'][:50], 'snippet': r.get('snippet', '')[:80]}
                  for r in data.get('organic_results', [])[:max_results]]
    tokens = len(json.dumps(compressed)) // 4
    print(f'{query}: {len(compressed)} results, ~{tokens} tokens. Cost: $0.005')
    return compressed

bridge_search('best serp api 2026')

Exemple JavaScript

JavaScript
const SH = { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' };
async function bridgeSearch(query, maxResults = 3) {
  const data = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: SH,
    body: JSON.stringify({ query, country_code: 'us' })
  }).then(r => r.json());
  const compressed = (data.organic_results || []).slice(0, maxResults)
    .map(r => ({ title: r.title.slice(0, 50), snippet: (r.snippet || '').slice(0, 80) }));
  const tokens = Math.ceil(JSON.stringify(compressed).length / 4);
  console.log(`${query}: ${compressed.length} results, ~${tokens} tokens`);
  return compressed;
}
await bridgeSearch('best serp api 2026');

Sortie attendue

JSON
minimal :  3 results, ~45 tokens
medium  :  5 results, ~190 tokens
full    : 10 results, ~520 tokens

Stats: 2 searches, ~380 tokens, $0.010

Context prompt: ~450 tokens (3 searches, ~520 tokens, $0.015)

Prompt preview:
Based on the following search results gathered across 3 searches:
[{"query": "serp api pricing comparison 2026", "platform": "google", "results": [...

Total search cost: $0.015

Tutoriels associés

  • Comment construire un agent de recherche LangGraph avec contrôle budgétaire
  • Comment créer un outil de recherche Scavio pour CrewAI
  • Comment construire une couche de recherche pour les agents en tant que service

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.8+. bibliothèque requests. Une clé API Scavio depuis scavio.dev. Un cadre d'agent (LangChain, CrewAI ou personnalisé). 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

Gestion du contexte d'agent

Read more
Use Case

Passerelle de recherche MCP pour systèmes multi-agents

Read more
Best Of

Meilleur outil de recherche multi-agents en 2026

Read more
Best Of

Meilleures API de recherche pour les stacks agentiques en 2026

Read more
Solution

Vérifier les résultats de recherche avant que l'agent n'agisse

Read more
Solution

Pont de contexte de recherche entre les étapes de l'agent

Read more

Commencer

Sérialisez les résultats de recherche en JSON structuré pour les workflows d'agents multi-étapes. Optimisez l'utilisation de la fenêtre de contexte avec une compression intelligente des résultats.

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é