Le problème
Les agents de codage (Cursor, Windsurf, Claude Code, agents ReAct personnalisés) refusent parfois d'utiliser les outils de recherche Web ou les utilisent incorrectement. Les échecs courants incluent : le schéma de l'outil ne correspond pas à ce que le modèle attend, le format de réponse perturbe le modèle, les résultats de recherche manquent de contexte suffisant pour les requêtes de code, ou la description de l'outil n'explique pas clairement quand appeler la recherche. Le débogage de ces échecs nécessite de comprendre à la fois le comportement d'appel d'outil du LLM et le format de réponse de l'API de recherche.
La solution Scavio
Corrigez les échecs de l'outil de recherche d'agent de codage en utilisant la sortie JSON structurée de Scavio qui correspond proprement aux schémas d'appel de fonctions. La réponse inclut des champs typés que les LLM peuvent analyser de manière fiable : résultats organiques avec titre/extrait/lien, Knowledge Graph pour les données d'entité, et People Also Ask pour les requêtes connexes. Associez cela à une description d'outil bien conçue qui indique exactement au modèle quand et comment rechercher.
Avant
Avant : Un agent de codage avec un outil de recherche ne l'utilisait que 30 % du temps où il aurait dû. Le schéma de l'outil avait des champs facultatifs qui perturbaient le modèle. Les résultats de recherche renvoyaient des fragments HTML que le modèle ne pouvait pas analyser de manière fiable. Le débogage nécessitait la journalisation de chaque tentative d'appel d'outil.
Après
Après : Le même agent utilise la recherche de manière fiable 95 % du temps. Le schéma JSON cohérent de Scavio garantit la stabilité de la définition de la fonction. Le taux d'invocation de l'outil est passé de 30 % à 95 % en corrigeant la description de l'outil et en utilisant des résultats structurés. La précision moyenne des réponses fondées sur la recherche est passée de 60 % à 88 %.
À qui cela s'adresse
Ingénieurs en IA construisant des agents de codage qui utilisent des outils de recherche Web. Toute personne déboguant pourquoi son agent refuse de chercher ou renvoie des réponses de mauvaise qualité fondées sur la recherche.
Avantages clés
- La sortie JSON structurée élimine les échecs d'analyse dans les appels d'outil d'agent
- Un schéma cohérent signifie que la définition de la fonction n'a jamais besoin d'être mise à jour
- Modèle de description d'outil testé avec les modèles GPT-4, Claude et Gemini
- Les résultats multiplateformes donnent aux agents de codage accès à la documentation, aux tutoriels et aux discussions
- Déboguez les échecs de l'outil de recherche en quelques minutes au lieu d'heures avec des réponses prévisibles
Exemple Python
import requests
import json
API_KEY = "your_scavio_api_key"
# Well-structured tool definition for any LLM
SEARCH_TOOL = {
"name": "web_search",
"description": "Search the web for documentation, code examples, error solutions, and API references. Use this tool when you need current information about libraries, frameworks, or error messages.",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "Search query (include language/framework name for better results)"},
},
"required": ["query"],
},
}
def web_search(query: str) -> dict:
r = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": query},
timeout=10,
)
data = r.json()
return {
"results": [{"title": o["title"], "snippet": o.get("snippet", ""), "url": o["link"]} for o in data.get("organic", [])[:5]],
"knowledge_graph": data.get("knowledge_graph"),
}
result = web_search("python requests timeout best practice 2026")
print(json.dumps(result, indent=2))Exemple JavaScript
const API_KEY = "your_scavio_api_key";
// Well-structured tool definition for any LLM
const SEARCH_TOOL = {
name: "web_search",
description: "Search the web for documentation, code examples, error solutions, and API references. Use this tool when you need current information about libraries, frameworks, or error messages.",
parameters: {
type: "object",
properties: {
query: { type: "string", description: "Search query (include language/framework name for better results)" },
},
required: ["query"],
},
};
async function webSearch(query) {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ platform: "google", query }),
});
const data = await res.json();
return {
results: (data.organic || []).slice(0, 5).map(o => ({ title: o.title, snippet: o.snippet || "", url: o.link })),
knowledgeGraph: data.knowledge_graph || null,
};
}
const result = await webSearch("python requests timeout best practice 2026");
console.log(JSON.stringify(result, null, 2));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
Communauté, publications et commentaires imbriqués de n'importe quel subreddit