Sifthound propose une alternative auto-hébergée et prête à l’emploi pour l’API de recherche Tavily
L’utilisateur GitHub khsarvar a publié Sifthound, une alternative open source à Tavily qui fonctionne sur votre propre infrastructure via SearXNG et prend en charge MCP.
Traduit automatiquement depuis l’original en anglais.
Le 25 septembre 2026, l’utilisateur GitHub khsarvar a publié Sifthound, un projet open source conçu pour servir d’alternative auto-hébergée à l’API de recherche web Tavily. Cette sortie vise les équipes de développement créant des agents IA et des applications basées sur de grands modèles de langage (LLM), qui préfèrent gérer leur propre infrastructure plutôt que de dépendre de fournisseurs externes de logiciels en tant que service (SaaS). L’outil reproduit la fonctionnalité principale de Tavily tout en s’exécutant entièrement sur des serveurs locaux ou privés.
Ce qu’il s’est passé
Sifthound est conçu pour imiter la structure de l’API Tavily, offrant des points de terminaison pour la recherche, l’extraction de contenu, le crawl et la cartographie de sites. En correspondant aux formats de requête et de réponse du service original, il permet aux développeurs de passer de la plateforme hébergée Tavily à leur propre instance avec un minimum de modifications de code. Le projet repose sur SearXNG, un méta-moteur de recherche respectueux de la vie privée, pour collecter des résultats auprès de fournisseurs de recherche publics comme DuckDuckGo et Brave. Pour le traitement du contenu, il utilise trafilatura pour extraire du texte propre et du markdown à partir des pages web, ainsi que des algorithmes BM25 pour le classement par pertinence au lieu d’un reranking neuronal.
La version publiée inclut la prise en charge du Model Context Protocol (MCP), permettant une intégration directe avec des assistants de codage IA tels que Claude Desktop et Cursor. Les développeurs peuvent exécuter Sifthound via Docker Compose, qui regroupe l’instance SearXNG nécessaire, ou l’installer directement via pip. Le projet est sous licence MIT, autorisant l’utilisation et la modification gratuites, bien que le nom lui-même soit protégé par une politique de marque distincte exigeant que les forks utilisent une identité visuelle différente.
Détails clés
- Compatibilité immédiate : L’API accepte les mêmes paramètres que Tavily pour les points de terminaison
/search,/extract,/crawlet/map, fonctionnant avec les SDK Python officiels et les intégrations LangChain en changeant simplement l’URL de base. - Aucune clé d’API de recherche requise : Les requêtes de recherche sont routées via SearXNG, éliminant le besoin de clés API individuelles provenant des moteurs de recherche, bien qu’une clé Anthropic soit optionnelle pour générer des réponses directes.
- Mesures de sécurité : Le système bloque les requêtes vers les adresses privées, loopback et link-local pour prévenir la falsification de requêtes côté serveur (SSRF), y compris des vérifications contre les attaques de rebind DNS lors des redirections.
- Prise en charge MCP : Il expose un serveur MCP via HTTP sur
/mcpet prend en charge l’exécution stdio pour les clients locaux, permettant aux agents IA d’utiliser des outils de recherche directement dans leur flux de travail. - Différences de classement : Les scores de pertinence sont calculés en utilisant un mélange BM25 plutôt que le reranker neuronal de Tavily, et des fonctionnalités comme
include_image_descriptionssont acceptées mais actuellement ignorées. - Gestion des erreurs : Si tous les moteurs de recherche amont limitent le débit ou demandent un CAPTCHA pour l’IP du serveur, Sifthound renvoie une erreur 502 avec des raisons spécifiques plutôt qu’un ensemble de résultats vide, aidant les agents à distinguer l’absence de résultats des échecs temporaires.
Contexte
Tavily est devenu un choix populaire pour les développeurs IA car il simplifie la tâche complexe consistant à récupérer des données web en temps réel pour les grands modèles de langage. Normalement, un agent devrait interroger plusieurs moteurs de recherche, analyser du HTML désordonné, supprimer les publicités et les éléments de navigation, puis classer les résultats par pertinence. Tavily gère ce pipeline en tant que service managé. Cependant, compter sur une API tierce introduit des dépendances vis-à-vis de la disponibilité externe, des modèles tarifaires et des politiques de confidentialité des données. Les solutions auto-hébergées visent à donner aux équipes le contrôle sur ce pipeline de données, en gardant les journaux de requêtes sensibles internes et en évitant les coûts par requête.
SearXNG agit comme l’épine dorsale des capacités de recherche de Sifthound. C’est un méta-moteur de recherche open source qui agrège les résultats de divers fournisseurs sans suivre les utilisateurs. En combinant SearXNG avec des outils d’extraction comme trafilatura, Sifthound recrée la proposition de valeur de Tavily : fournir des données propres et structurées aux modèles IA. L’inclusion de la prise en charge MCP reflète une tendance croissante dans le développement IA où les outils sont standardisés pour permettre une interaction fluide entre différents clients IA et ressources locales.
Pourquoi c’est important
Pour les équipes exploitant leurs propres logiciels, contrôler la couche de recherche d’un agent IA réduit les risques opérationnels et les coûts. Lorsque vous hébergez Sifthound vous-même, vous n’êtes pas soumis aux limites de débit ni aux augmentations de prix d’un fournisseur d’API commercial. Cela est particulièrement important pour les applications effectuant de gros volumes de recherches, où les frais par appel peuvent s’accumuler rapidement. De plus, garder les requêtes de recherche sur site garantit que les recherches propriétaires ou les références aux données internes ne quittent pas votre réseau, répondant aux exigences de conformité de nombreuses entreprises.
La nature « drop-in » de l’API signifie que les équipes d’ingénierie n’ont pas besoin de refactoriser leurs bases de code existantes pour bénéficier de l’auto-hébergement. Si un projet utilise déjà langchain-tavily ou le client Python officiel Tavily, passer à Sifthound ne nécessite qu’un changement de configuration. Cela abaisse la barrière à l’entrée pour les organisations souhaitant s’affranchir des dépendances SaaS sans encourir une dette technique significative. Cela fournit également une solution de repli si les services externes subissent des pannes, assurant la continuité des activités pour les flux de travail IA critiques.
Cependant, l’auto-hébergement comporte des compromis. Sifthound n’offre pas de rendu JavaScript, ce qui signifie qu’il ne peut pas extraire de contenu d’applications monopages (SPA) reposant fortement sur le scriptage côté client. Les équipes ayant besoin de cette fonctionnalité peuvent encore nécessiter des outils comme Firecrawl. Par ailleurs, parce qu’il dépend de moteurs de recherche publics via SearXNG, il est sujet aux mêmes problèmes de CAPTCHA et de limitation de débit qui affectent tout scraper automatisé. Comprendre ces limitations aide les équipes à décider si le compromis entre contrôle et commodité convient à leur cas d’usage spécifique.
Ce que vous pouvez faire
- Tester l’API localement : Clonez le dépôt et exécutez
docker compose uppour démarrer une instance locale, puis utilisez curl ou le SDK Python pour vérifier les capacités de recherche et d’extraction par rapport à votre flux de travail actuel. - Configurer les clés API : Définissez la variable d’environnement
API_KEYSpour restreindre l’accès à votre instance Sifthound, garantissant que seules les applications autorisées peuvent déclencher des opérations de recherche ou de crawl. - Ajuster les paramètres SearXNG : Modifiez le fichier
docker/searxng/settings.ymlpour activer davantage de moteurs de recherche, ce qui aide à atténuer les problèmes de limitation de débit lorsqu’un fournisseur bloque temporairement votre adresse IP. - Intégrer avec les clients MCP : Ajoutez Sifthound à votre configuration Claude Desktop ou Cursor en utilisant l’extrait JSON fourni pour activer la recherche en langage naturel directement dans votre environnement de codage.
- Surveiller les journaux d’erreurs : Surveillez les erreurs 502 indiquant des moteurs défaillants, et implémentez une logique de nouvelle tentative dans votre application pour gérer gracieusement les blocages temporaires des fournisseurs de recherche amont.
- Évaluer les besoins de rendu : Déterminez si vos sites web cibles nécessitent un rendu JavaScript ; si oui, prévoyez d’intégrer un service de rendu séparé parallèlement à Sifthound pour ces domaines spécifiques.



