Descrizione
Ricerca sul web con cascata 2-provider per high-availability senza vendor lock-in. Primary: Brave Search API (free tier 2k query/mese, ottima qualità per IT/EU SERP — richiede env BRAVE_SEARCH_API_KEY in vault tenant). Fallback: DuckDuckGo HTML scraping (gratis always-on, nessuna key, qualità leggermente inferiore ma sempre disponibile). Switch automatico su 429/5xx Brave. Differenza con i sibling: action_web_search = SERP-style {title, url, snippet} structured (entry point discovery). Per cercare aziende verticali con LLM query expansion + anti-directory blocklist usa action_company_search (lead-gen). Per cercare email su un dominio già noto usa action_contact_discovery (crawler multi-path). Output unificato indipendente dal provider: array di {title, url, snippet} normalizzato — un workflow downstream non deve sapere se sta consumando Brave o DDG. Cache LRU in-memory 5min per query identiche evita doppi hit su workflow batch ripetitivi (es. monitor giornaliero su 100 keyword). Locale-aware: parametro country (IT/US/DE/...) influenza ranking (Brave) e localized HTML (DDG). Lingua auto-derivata dal locale tenant. Safe-search configurabile (off/moderate/strict). Use case: (1) discovery siti vendor per cold outreach B2B con keyword verticali (input a action_company_search downstream), (2) raccolta news settimanale su parole chiave brand per digest management, (3) verifica menzioni competitor su SERP (alert se ranking scende), (4) primo step di pipeline RAG che poi fetcha top-N pagine con action_fetch_url + indicizza. Safety budget: cap 50 risultati per query, timeout 10s per provider con fallback istantaneo, audit log con provider used + query hash + result count per cost monitoring Brave.
