Google documenta esta funcionalidad como Grounding with your search API. El adaptador de esta guía se ejecuta en tu propio proyecto de Google Cloud, y las búsquedas que realiza se facturan a tu cuenta de Firecrawl.
Cómo funciona
- Tu solicitud a Gemini incluye una herramienta de recuperación de tipo
externalApique apunta a tu adaptador. - Cuando Gemini necesita información, envía
POST {"query": "..."}al adaptador con tu clave añadida como?key=. - El adaptador llama al endpoint
/v2/searchde Firecrawl y responde con un array JSON de objetos, cada uno con unsnippety unuri. Un array vacío indica que no hay resultados. - Gemini usa los fragmentos como fuentes de grounding y los incluye en
groundingMetadatadentro de la respuesta.
Requisitos previos
- Una clave de API de Firecrawl
- Un proyecto de Google Cloud con la facturación, Vertex AI y Cloud Run habilitados, y la CLI
gcloudcon la sesión iniciada - Un modelo de Gemini que admita grounding con tu API de búsqueda. Google los enumera en la página enlazada más arriba;
gemini-2.5-flashes uno de ellos.
Construye el adaptador
Crea una carpeta con estos tres archivos.?key=. Envía esa clave a Firecrawl como token de portador, así que el apiKeyString que le proporcionas a Gemini es tu clave de API de Firecrawl. Si falta la clave o se rechaza, devuelve 401. El Dockerfile inicia gunicorn sin registro de acceso, porque un registro de acceso guardaría el valor de ?key=. El adaptador nunca registra la consulta ni la clave.
Desplegar en Cloud Run
/v0/search. Gemini no puede adjuntar un token de identidad de Google a esta llamada, por lo que el servicio admite solicitudes sin autenticar y la comprobación de ?key= funciona como su control de acceso.
Mantén la clave de Firecrawl fuera de las URL
Cloud Run guarda un registro de solicitudes para cada servicio, en el que se registran las URL de las solicitudes. Para que tu clave de Firecrawl no quede expuesta en él, ejecuta el adaptador en modo gateway. Así, seleccionas un secreto compartido que Gemini enviará, y el adaptador usa la clave de Firecrawl almacenada en Secret Manager.roles/secretmanager.secretAccessor en ambos secretos. En este modo, apiKeyString es el secreto del gateway, que puedes leer con gcloud secrets versions access latest --secret grounding-gateway-key.
Comprobar el punto de conexión
snippet y uri. Sin ?key=, el servicio responde con 401.
Fundamentar una solicitud de Gemini
YOUR_SERVICE_URL por el host de tu servicio y YOUR_KEY por tu clave de API de Firecrawl, o por el secreto del gateway si hiciste el despliegue en modo gateway. Para una ubicación regional distinta de global, usa LOCATION-aiplatform.googleapis.com como host, como se indica en la referencia de Google.
En la respuesta, las fuentes que usó Gemini aparecen en candidates[0].groundingMetadata.groundingChunks. En la respuesta REST, el retrievedContext de cada fragmento incluye el uri y el snippet que devolvió tu adaptador.
Opciones
Configúralas como variables de entorno en el servicio de Cloud Run, por ejemplo, congcloud run services update firecrawl-grounding --update-env-vars RESULT_LIMIT=5.
Elegir un fragmento
Gemini fundamenta sus respuestas en el texto del fragmento, por lo que su contenido importa más que el enlace. La opción predeterminada usa la descripción que devuelve la búsqueda de Firecrawl. De forma predeterminada, la búsqueda devuelve en ese campo highlights relevantes para la query y, cuando no puede generarlos, recurre a la descripción simple de la página, de modo que cada fragmento es un pasaje seleccionado para la query. El modomarkdown toma los primeros caracteres del contenido principal de cada resultado, que en algunos sitios corresponden a un banner o a un menú situado antes del artículo, por lo que suele ser la peor opción. Además, aumenta considerablemente el tamaño de cada respuesta de Firecrawl. Úsalo cuando los resultados que te interesan no tengan una descripción útil.
Límites y comportamiento
- Google permite que una solicitud de generación use hasta 10 fuentes de grounding, y puedes combinar esta herramienta con otras, como Google Search.
- La página de Google no especifica un tamaño máximo de respuesta ni un tiempo de espera para tu punto de conexión. Procura que el adaptador sea rápido y que los fragmentos sean breves. Con los valores predeterminados, una respuesta contiene como máximo 10 fragmentos de 1.200 caracteres.
- La búsqueda de Firecrawl acepta consultas de hasta 500 caracteres. El adaptador recorta a esa longitud las consultas que la superen.
- Cada consulta equivale a una solicitud de búsqueda de Firecrawl, por lo que tus límites de tasa y la facturación se aplican a cada búsqueda que realice Gemini.
- Gemini llama al adaptador una vez por cada búsqueda que decide ejecutar, y una sola solicitud puede desencadenar varias.

