La compétence web_search intégrée d'Hermes Agent utilise le scraping DuckDuckGo qui échoue fréquemment avec des résultats vides, des limitations de débit ou des délais d'attente. Ce tutoriel le remplace par un backend d'API de recherche fiable via MCP, corrigeant définitivement l'erreur 'web_search n'a renvoyé aucun résultat'.
Prérequis
- Hermes Agent installé (v0.10+)
- Une clé API Scavio depuis scavio.dev
Parcours
Étape 1: Diagnostiquer le problème
Le web_search d'Hermes échoue car DuckDuckGo limite les requêtes automatisées. Vérifiez vos journaux Hermes pour le motif d'erreur.
# Common error in Hermes logs:
# [WARN] web_search: DuckDuckGo returned 0 results for query 'python fastapi'
# [ERROR] web_search: Request timed out after 10s
# [WARN] web_search: Rate limited by DuckDuckGo (429)
# Check your Hermes config:
cat ~/.hermes/config.yaml | grep -A5 web_searchÉtape 2: Ajouter Scavio MCP comme fournisseur de recherche
Configurez Hermes pour utiliser le serveur Scavio MCP pour la recherche web au lieu de DuckDuckGo.
# In ~/.hermes/config.yaml, add MCP server:
mcp_servers:
scavio:
url: "https://mcp.scavio.dev/mcp"
headers:
x-api-key: "your_scavio_api_key"
tools:
- google_search
- reddit_search
- youtube_searchÉtape 3: Créer une substitution de compétence de recherche
Remplacez la compétence web_search par défaut pour utiliser l'outil google_search fourni par MCP.
# Create ~/.hermes/skills/reliable_search.yaml:
name: reliable_search
description: Web search using Scavio API (replaces DuckDuckGo)
trigger: "search for|look up|find information about|web search"
action: |
Use the google_search tool from the scavio MCP server.
For Reddit-specific queries, use reddit_search instead.
For video content, use youtube_search.
Always return the top 5 results with title, URL, and snippet.Étape 4: Désactiver le web_search par défaut
Empêchez Hermes de revenir au scraper DuckDuckGo défaillant.
# In ~/.hermes/config.yaml, disable built-in web_search:
skills:
disabled:
- web_search # Disable DuckDuckGo-based search
# reliable_search skill (above) will handle search queries insteadÉtape 5: Tester la correction
Vérifiez que la recherche fonctionne de manière fiable avec le nouveau backend.
# In Hermes chat:
> Search for best Python web framework 2026
# Expected: Hermes uses scavio google_search tool, returns results
# Previously: Empty results or timeout from DuckDuckGo
# Test Reddit search:
> Search Reddit for Python framework recommendations
# Test YouTube search:
> Find YouTube tutorials about FastAPIExemple Python
import requests, os
def hermes_search(query: str, platform: str = 'google') -> list:
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': os.environ['SCAVIO_API_KEY'], 'Content-Type': 'application/json'},
json={'platform': platform, 'query': query}, timeout=10)
return resp.json().get('organic', [])[:5]Exemple JavaScript
async function hermesSearch(query, platform = 'google') {
const resp = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
body: JSON.stringify({platform, query})
});
return (await resp.json()).organic?.slice(0, 5) || [];
}Sortie attendue
Hermes Agent with reliable web search via Scavio MCP, replacing the broken DuckDuckGo scraper with a managed API backend.