Le problème
Les systèmes multi-agents (AutoGen, CrewAI, LangGraph) ont besoin d'un outil de recherche partagé que tous les agents peuvent utiliser sans conflits de clés API, formats de résultat incohérents ou logique de recherche dupliquée entre les définitions d'agents.
La solution Scavio
Créez une fonction d'outil de recherche Scavio unique que n'importe quel agent du système peut invoquer. L'outil gère l'authentification, la sélection de plateforme et la normalisation des résultats, donnant à chaque agent un accès cohérent aux données web en direct.
Avant
Chaque agent du système multi-agents a sa propre implémentation de recherche avec différentes API, formats de résultat et gestions d'erreurs. Déboguer les échecs de recherche nécessite de vérifier plusieurs bases de code d'agents.
Après
Un outil de recherche partagé sert tous les agents avec une authentification, une gestion des erreurs et un format de résultat cohérents. Ajouter une capacité de recherche à un nouvel agent nécessite une seule ligne d'enregistrement d'outil.
À qui cela s'adresse
Développeurs construisant une orchestration multi-agents avec DeerFlow, LangGraph ou CrewAI.
Avantages clés
- Outil de recherche unique partagé entre tous les agents
- Format de résultat cohérent quelle que soit la plateforme
- Authentification et gestion des erreurs centralisées
- Enregistrement d'outil en une ligne pour les nouveaux agents
Exemple Python
import requests
from typing import Optional
def scavio_search(
query: str,
platform: str = "google",
limit: int = 10,
context: Optional[str] = None
) -> dict:
"""Universal search tool for multi-agent systems.
Register this function with any agent framework."""
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": SCAVIO_API_KEY, "Content-Type": "application/json"},
json={"query": query, "platform": platform, "limit": limit}
)
if resp.status_code != 200:
return {"error": f"Search failed: {resp.status_code}", "results": []}
data = resp.json()
return {
"query": query,
"platform": platform,
"result_count": len(data.get("results", [])),
"results": [
{
"title": r.get("title", ""),
"url": r.get("link", ""),
"snippet": r.get("snippet", ""),
"position": r.get("position")
}
for r in data.get("results", [])
],
"agent_context": context
}
# AutoGen: register as tool
# assistant.register_function({"scavio_search": scavio_search})
# CrewAI: add as tool
# search_tool = Tool(name="web_search", func=scavio_search, description="Search the web")Exemple JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
fetch('https://api.scavio.dev/api/v1/search', {method: 'POST', headers: H, body: JSON.stringify({query: 'example', country_code: 'us'})}).then(r => r.json()).then(d => console.log(d.organic_results?.length + ' results'));Plateformes utilisées
Recherche web avec graphe de connaissances, PAA et aperçus IA
YouTube
Recherche de vidéos avec transcriptions et métadonnées
Amazon
Recherche de produits avec prix, notes et avis
Communauté, publications et commentaires imbriqués de n'importe quel subreddit