Sans KYC — pas de pièce d'identité, pas de selfie, pas de documents. Payez en crypto : BTC, USDT, USDC, ETH, SOL, LTC
Langue: Français
Obtenir une clé API

Cas d'usage · agents IA · nom de l'outil web_search

Un outil de recherche web pour agents IA qui rapporte le texte des pages

Un agent qui peut chercher mais pas lire devine à partir des extraits. Donnez-lui un seul outil qui fait les deux : il cherche sur le web en direct et renvoie les premières pages en Markdown propre, numérotées pour que le modèle puisse les citer.

Dernière mise à jour: · 8 min de lecture

Réponse rapide

Comment donner à un agent IA un outil de recherche web qui renvoie le contenu des pages ?

Enveloppez une API de recherche web comme un outil qui prend une requête et renvoie des sources numérotées avec le texte de leurs pages. LLMWebSearch le fait en un appel : des résultats classés issus d'une recherche en direct, avec les 3 premières pages lues en Markdown, pour un crédit. Les prix commencent à 9,25 $US pour 5 000 requêtes et descendent à 1,20 $US/1K requêtes. Sans KYC ; payez en crypto.

LLMWebSearch comme outil d'agent

Outilweb_search(query, recent) appelant POST https://llmwebsearch.com/api/v1/search
RenvoieJusqu'à 20 résultats classés ; les 3 premiers avec le texte de leur page en Markdown
Contrôle de la longueurmax_chars par page, read pour le nombre de pages, max_results pour la liste
CoûtUn crédit paie une recherche : jusqu'à 20 résultats classés, avec les pages des 3 premiers lues et renvoyées en Markdown. Lire 4 à 10 pages coûte 2 crédits. Un appel qui se termine sur une erreur ne coûte rien
FiltresChoisissez le pays et la langue des résultats, une plage temporelle (jour, semaine, mois ou année écoulés), des résultats web ou news, et des domaines à inclure ou à exclure
Intégrations prêtes à l'emploiServeur MCP, Appel de fonctions OpenAI, LangChain et LlamaIndex, n8n, OpenClaw

Pourquoi un agent a-t-il besoin du texte des pages et pas seulement des snippets ?

Parce que la réponse se trouve rarement dans le snippet. Une page de résultats donne un titre et une ou deux lignes choisies par le moteur de recherche. Le chiffre, la date ou la règle que votre utilisateur demande se trouve plus bas dans la page.

Un agent qui ne voit que des snippets a deux mauvaises options. Il peut répondre à partir d'un fragment et risquer de se tromper, ou appeler un second outil pour récupérer chaque page. La seconde option double les allers-retours et les définitions d'outils.

Avec LLMWebSearch, les premières pages arrivent déjà lues. La navigation, les publicités et les bannières de cookies sont supprimées, donc le modèle dépense ses tokens sur le contenu. Les autres résultats conservent leurs snippets, ce qui aide le modèle à décider s'il doit relancer une recherche.

Comment définir l'outil de recherche ?

Gardez un schéma minimal : un seul query requis et, au maximum, un ou deux commutateurs. Les modèles appellent plus fiablement des outils simples. L'exemple ci-dessous expose un flag recent qui correspond à time_range=month ; tout le reste est fixé dans votre code.

La fonction renvoie du texte brut, pas du JSON. Chaque source commence par un numéro, un titre et une URL, suivis de son Markdown. Cette disposition rend les citations comme [2] naturelles pour le modèle.

Si votre agent embarque déjà un outil nommé web_search, comme c'est le cas de Claude Code et OpenClaw, donnez au vôtre un autre nom, par exemple search_web. Deux outils portant le même nom perturbent le modèle.

Python : un outil web_search pour l'appel de fonctions à la OpenAI
import json
import os

import requests

API = "https://llmwebsearch.com/api/v1/search"
HEADERS = {"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]}

# Tool definition in the OpenAI function-calling format; most agent frameworks accept the same JSON schema.
WEB_SEARCH_TOOL = {
    "type": "function",
    "function": {
        "name": "web_search",
        "description": "Search the live web. Returns numbered sources; the first ones include the page text in Markdown.",
        "parameters": {
            "type": "object",
            "properties": {
                "query": {"type": "string", "description": "A short search query, 3 to 8 words"},
                "recent": {"type": "boolean", "description": "True to keep only results from the past month"},
            },
            "required": ["query"],
        },
    },
}


def web_search(query, recent=False, read=3, max_chars=4000):
    """Run one search (1 credit with read <= 3) and return compact text the model can cite."""
    body = {"q": query, "max_results": 5, "read": read, "max_chars": max_chars}
    if recent:
        body["time_range"] = "month"
    resp = requests.post(API, headers=HEADERS, json=body, timeout=60)
    resp.raise_for_status()
    lines = []
    for r in resp.json()["results"]:
        lines.append(f"[{r['position']}] {r['title']} — {r['url']}")
        if r.get("content_status") == "ok":
            lines.append(r["content"])
        else:
            lines.append(r.get("snippet", ""))
        lines.append("")
    return "\n".join(lines)


def run_tool_call(call):
    """Execute a tool call returned by the model and give back the text for the tool message."""
    args = json.loads(call["function"]["arguments"])
    return web_search(args["query"], recent=args.get("recent", False))

Quand un agent doit-il rechercher, et à quelle fréquence ?

Recherchez lorsque la réponse dépend de faits qui changent ou que le modèle ne peut pas connaître. Les prix, les versions, les lois, les horaires et les événements récents en font partie. Les définitions et les connaissances stables, généralement non.

Écrivez cette règle dans le prompt système, et ajoutez un budget. Trois habitudes aident :

  • Planifier avant de rechercher. Demandez au modèle d'écrire d'abord ses requêtes. Deux requêtes précises valent mieux que cinq vagues.
  • Plafonner les appels. Autorisez, par exemple, quatre recherches par tour utilisateur. Ne relevez le plafond que pour les tâches de recherche approfondie.
  • S'arrêter quand les sources concordent. Si trois pages indépendantes disent la même chose, l'agent peut répondre.

Comment garder la fenêtre de contexte sous contrôle ?

Trois paramètres décident de la quantité de texte qui atteint le modèle. read définit combien de pages sont lues, de 0 à 10. max_chars plafonne chaque page, de 500 à 50 000 caractères. max_results définit combien de résultats sont listés, de 1 à 20.

Pour un agent de chat, read=3 avec max_chars=4000 renvoie environ 12 000 caractères de texte de page par recherche. Cela laisse de la place pour plusieurs recherches dans une même conversation. Pour une tâche de recherche approfondie qui résume au fur et à mesure, des pages plus longues conviennent.

Le champ word_count vous indique la longueur de la page complète avant la coupe. L'agent peut s'en servir pour décider s'il doit récupérer davantage avec l'endpoint extract.

Que se passe-t-il quand une page ne peut pas être lue ?

Le résultat revient quand même, avec son titre, son URL et son snippet, mais sans contenu. Un champ content_status en indique la raison.

  • blocked_by_robots : le robots.txt du site n'autorise pas notre lecteur.
  • blocked_by_site_policy : Un site qui définit Content-Signal: ai-input=no dans son robots.txt garde ses pages hors du contenu de vos résultats.
  • target_refused : le site a répondu par un refus ; son statut est dans target_status.
  • fetch_failed ou fetch_timeout : la page ne s'est pas chargée à temps.

Quand un site refuse notre lecteur, le résultat revient sans contenu et avec le statut du site : nous ne résolvons jamais de CAPTCHA, ne nous connectons pas à des comptes et ne contournons ni un blocage ni un paywall. Dites à l'agent d'utiliser le snippet, ou une autre source, quand une page revient vide. La recherche elle-même coûte toujours un crédit, quel que soit le sort de chaque page.

Pourquoi ne pas utiliser l'outil de recherche intégré au modèle ?

Les outils intégrés sont pratiques mais vous laissent moins de contrôle. Au 22 octobre 2026, l'outil web_search d'OpenAI coûte 10 $ pour 1 000 appels, plus le contenu de recherche facturé comme tokens d'entrée. La recherche web de Claude chez Anthropic coûte aussi 10 $ pour 1 000 recherches, plus les coûts de tokens. Le grounding de Gemini 3 inclut 5 000 recherches gratuites par mois sur l'offre payante, puis coûte 14 $ pour 1 000.

Ces outils renvoient le plus souvent une réponse rédigée avec citations, et non les pages brutes. Ils lient aussi votre recherche à un seul fournisseur de modèle. Un outil autonome fonctionne avec n'importe quel modèle et vous laisse fixer la longueur de chaque page. Le comparatif des outils intégrés contient le tableau complet.

Combien coûte l'exploitation d'un agent sur LLMWebSearch ?

Un crédit par recherche quand read vaut 3 ou moins. Un assistant utilisé par une équipe, qui répond à 100 questions par jour avec 4 recherches chacune, effectue environ 12 000 recherches par mois. 25 000 requêtes à 41,25 $US couvre ce mois-ci et la majeure partie du suivant.

Un agent de code utilisé par un développeur peut rechercher 20 fois par jour, soit environ 600 fois par mois. 5 000 requêtes à 9,25 $US dure alors plusieurs mois, car les crédits n'expirent jamais. Le guide des coûts montre le calcul pour des volumes plus importants.

Quel pack convient à un agent ?

Prototypez avec 5 000 requêtes ; passez à 25 000 requêtes ou 100 000 requêtes une fois l'agent utilisé au quotidien.

Essayez

5 000 requêtes

9,25 $US

1,85 $US/1K requêtes

  • Branchez-le sur un agent
  • La même API que le plus grand pack
  • Les crédits n'expirent jamais
Choisir 5 000 requêtes

Builder

25 000 requêtes

41,25 $US

1,65 $US/1K requêtes

  • Un agent de code ou un assistant de recherche
  • Prêt pour MCP, LangChain et n8n
  • Les crédits n'expirent jamais
Choisir 25 000 requêtes

Production

100 000 requêtes

145 $US

1,45 $US/1K requêtes

  • Agents en production
  • Rate limit plus élevé sur demande
  • Les crédits n'expirent jamais
Choisir 100 000 requêtes

Dans chaque formule: 3 meilleures pages lues en Markdown · Filtres par pays, langue, heure et domaine · Appels échoués non facturés · Les crédits n'expirent jamais

Agents IA : questions fréquentes

Puis-je ajouter LLMWebSearch à Claude Desktop, Cursor ou Claude Code ?

Oui, via un petit serveur MCP qui expose la recherche comme un outil. La page MCP contient le code et la configuration du client.

L'outil fonctionne-t-il avec d'autres modèles que ceux d'OpenAI ?

Oui. Le schéma ci-dessus est du JSON Schema simple, qu'Anthropic, Google, Mistral et les frameworks open source acceptent avec de légères modifications. L'outil appelle uniquement notre endpoint HTTPS.

Comment empêcher un agent de trop rechercher ?

Comptez les appels dans votre wrapper d'outil et renvoyez un court message une fois le budget épuisé. Mettez aussi le budget dans le prompt système, pour que le modèle le prenne en compte.

Le texte d'une page peut-il donner des instructions à mon agent ?

Il peut essayer. Traitez le texte des pages comme des données : dites au modèle dans le prompt système d'ignorer les instructions trouvées dans les sources, et ne laissez jamais une source déclencher des actions de sa propre initiative.

Sources (3)
  1. Tarifs de l'API (outil de recherche web) — OpenAI (read 2026-10-22)
  2. Tarifs (outil de recherche web) — Anthropic (read 2026-10-22)
  3. Tarifs de l'API Gemini Developer — Google (read 2026-10-22)

À partir de 1,20 $US/1K requêtes · sans KYC

Obtenir une clé API