# Herramientas del agente. # # La búsqueda web usa DuckDuckGo como primario: no exige API key ni cuenta, así # que no hay credenciales que gestionar ni un tercero al que se le informe qué # busca la familia. # # Aclaración sobre el endpoint: la API oficial de DuckDuckGo ("Instant Answer") # solo devuelve definiciones y fichas de entidades, no resultados web. Los # resultados reales salen del endpoint lite, que no es una API con contrato: el # HTML puede cambiar y hay límite de tasa. Por eso existe la cadena de respaldo. search: backend: duckduckgo # Se prueban en orden, y solo ante un error real del anterior. Cero # resultados no dispara el respaldo: si el primario respondió bien y no # encontró nada, esa es la respuesta correcta. # # Brave sí es una API con contrato y límites claros, pero cada consulta pasa # por un tercero asociado a una cuenta — por eso va de respaldo y no de # primario. SearxNG autoalojado es el destino natural cuando el volumen lo # justifique: agrega DuckDuckGo entre sus fuentes sin exponer las consultas. fallbacks: [brave] region: es-es # DuckDuckGo country: uy # Brave language: es # Presupuesto de contexto. Con seq_len 2048 hay que repartir entre resultados # de búsqueda, memoria recuperada y el turno del usuario: cinco resultados # recortados le sirven más al modelo que diez completos. max_results: 5 snippet_chars: 240 timeout: 10.0 retries: 2 # En una casa las mismas preguntas se repiten muchas veces por día. La caché # es de comportamiento, no de rendimiento: evita repetir consultas externas # idénticas en pocos minutos. cache_ttl: 300.0 # Credenciales, desde .env. Quedan vacías si la variable no está definida. brave_api_key: ${oc.env:ENLACE_BRAVE_API_KEY,""} searxng_url: ${oc.env:ENLACE_SEARXNG_URL,""}