Un asistente de IA consciente del mapa es una interfaz conversacional que usa contexto cartográfico estructurado —ventana visible, lugar seleccionado, filtros y ubicación autorizada— para interpretar una pregunta y devolver tanto una respuesta fundamentada como una acción sobre el mapa. Puede colocar marcadores, encuadrar resultados, resaltar un área, solicitar una ruta o enfocar una entidad. Mantenga separadas cuatro responsabilidades: el host controla estado y permisos; los sistemas fiables, los hechos; las herramientas espaciales, los cálculos geográficos; y la capa de IA interpreta la intención y propone acciones admitidas.
Las secciones siguientes abordan estado compartido, vocabulario de acciones, adaptadores de renderizado, conexión de Kaleidr Chat, fundamentación y errores comunes. El contexto del producto está en Kaleidr Spatial AI. Para la arquitectura del SDK, consulte ¿Qué es un SDK de mapas con IA?. Para montajes del renderizador, consulte Chat de IA en Mapbox, Google Maps y MapLibre. Para credenciales y registros privados, consulte Autenticación de API de mapas y Datos privados de ubicación para flujos de mapas con IA.
Fundamentos del asistente
- Comparta estado, no píxeles: pase límites, ID de selección, filtros e ID de resultados; no pida al modelo que lea el mapa como imagen.
- La ventana es contexto: los límites visibles influyen en el ranking salvo que el usuario pida buscar en esta zona.
- Solo acciones semánticas: emita
show_placesofit_places, nunca JavaScript del renderizador.- Etiquete el origen: los desplazamientos del usuario y los movimientos de cámara del asistente no deben reactivar el modelo.
- Fundamente los hechos: horarios, identidad, geometría y tiempo de viaje proceden de sistemas autorizados.

¿Qué diferencia a un asistente de IA consciente del mapa?
Un asistente solo textual junto a un mapa puede saber que París está en Francia. Un producto consciente del mapa también sabe qué hace el usuario: centro, límites visibles, zoom, entidad seleccionada, filtros, ruta actual, resultados anteriores, ubicación autorizada y estado de la aplicación host. Una petición como «¿cuál de estos está más cerca del hotel?» es ambigua sin ese contrato. «Estos» corresponde al conjunto actual de resultados, «el hotel» al hotel seleccionado o al origen de sesión, y «más cerca» a una operación de distancia o tiempo de viaje. La salida útil es una respuesta más un lugar seleccionado, un enfoque del mapa y una razón.
La búsqueda cartográfica tradicional parte de controles estructurados como categoría, radio y abierto ahora. La conversación ayuda cuando la petición mezcla condiciones difíciles de representar con filtros fijos: «cafeterías tranquilas por esta zona, apropiadas para reunirse con un cliente y abiertas después de las 7». La IA interpreta categoría, zona, preferencia, hora y uso previsto. Los sistemas deterministas deben seguir controlando identidad, horarios, geometría, tiempos, rutas y elegibilidad. Use el modelo para interpretar la petición, no como única fuente de hechos geográficos.
| Capacidad | Asistente textual junto al mapa | Asistente consciente del mapa |
|---|---|---|
| Lee lenguaje natural | Sí | Sí |
| Conoce el área visible | No necesariamente | Sí, si se proporciona |
| Conoce el lugar seleccionado | No necesariamente | Sí |
| Usa filtros actuales | Normalmente no | Puede hacerlo |
| Aplica acciones al mapa | Suele ser limitado | Sí |
| Comparte estado del host | Débil | Explícito |
¿Cómo deben diseñar los equipos el estado compartido del mapa?
Un ciclo de producción es: pregunta del usuario, instantánea del contexto host, interpretación de intención, recuperación autorizada, cálculo espacial, respuesta fundamentada, acción validada y actualización del renderizador. Empiece con un contrato explícito de estado, sin esperar que el modelo infiera lo que aparece en pantalla. Incluya solo lo necesario: ID de entidad seleccionada, ID de resultados actuales, filtros relevantes, límites visibles cuando sean útiles, contexto de ruta, origen autorizado y versión del estado. Defina precedencia: un lugar seleccionado supera una lista antigua, y un destino indicado por el usuario supera el origen predeterminado.
No trate la ventana como filtro rígido oculto. Los límites visibles pueden ordenar o sesgar resultados sin excluir silenciosamente todo lo que queda fuera. Mantenga ID estables entre turnos para que «la segunda cafetería» siga resolviendo el mismo registro después de desplazar el mapa. Separe identidad y explicación generada: el host almacena place_id y campos de origen; el modelo puede explicar por qué encaja un lugar, pero no inventar un identificador.
El estado bidireccional es más sólido que un chat unidireccional. Desplazamientos, zoom, selecciones y filtros actualizan un almacén del host etiquetado como eventos de usuario. Acciones como mostrar lugares, encuadrar resultados, abrir un lugar o mostrar una ruta pasan por validación y un adaptador, etiquetadas como eventos del asistente. Devuelva una nueva instantánea al modelo solo cuando la siguiente interacción la necesite. Una protección de bucle debe impedir que los movimientos de cámara generados por el asistente inicien otra solicitud automáticamente.

¿Cómo mantener las acciones independientes del renderizador?
Diseñe un vocabulario pequeño: mostrar lugares, encuadrarlos, abrir un lugar, resaltar una entidad, mostrar una ruta y borrar resultados. Valide cada acción con un esquema, compruebe permisos del objeto y traduzca después la tarjeta semántica a llamadas de Mapbox, Google Maps o MapLibre en un adaptador. No permita JavaScript arbitrario. La guía de OWASP de 2025 sobre inyección de instrucciones señala que el contenido recuperado o conversacional puede intentar alterar herramientas; incluso un modelo manipulado debe ser incapaz de ejecutar código no aprobado o recuperar objetos no autorizados.
Mantenga las capas temporales de resultados separadas de los datos persistentes del host, para poder limpiar la conversación sin borrar lugares guardados. Gestione ausencia de resultados y ambigüedad con un conjunto vacío explícito y una pregunta de seguimiento, no con un marcador inventado. El ranking debe explicarse con campos autorizados. Preserve el control del usuario: el asistente puede proponer mover la cámara, pero un desplazamiento posterior del usuario tiene prioridad. Transmita tokens para reducir latencia y retrase la cámara hasta resolver lugares, evitando saltos con respuestas parciales.

¿Cómo se conecta Kaleidr Chat a un mapa existente?
La documentación actual de Chat indica que el SDK puede conectarse a un mapa activo de Mapbox, MapLibre, Google Maps o Leaflet, representar lugares resueltos y encuadrar la cámara conforme la conversación resuelve ubicaciones (Chat attach). El host sigue renderizando el mapa; Chat añade la capa espacial conversacional. Hay guías para Mapbox, Google Maps y MapLibre. El navegador usa una clave publicable con alcance ai, intercambiada por una sesión breve ligada al origen (Auth & Scopes). El modo headless omite la opción map para pruebas o interfaces solo de chat. Cargue el kaleidr.js actual y monte después de que exista el objeto de mapa activo.
// myMap must already be a live supported map instance
const chatHandle = Kaleidr.mount("#map-chat", {
product: "chat",
publishableKey: "kld_pk_live_REPLACE_ME",
map: myMap,
enabled: true
});
Los datos empresariales privados siguen detrás de la autorización del host y de una recuperación mínima (Endpoints). La ubicación del usuario debe ser voluntaria. No envíe coordenadas precisas ni registros de conversación innecesarios al navegador o a analítica. Almacene en caché hechos públicos estables, no decisiones de permisos. Mida si los usuarios completan una tarea —seleccionar un lugar, abrir indicaciones o preseleccionar una propiedad— en vez de contar solo turnos de chat. Pruebe carreras de estado, ambigüedad geográfica y cargas adversarias antes del lanzamiento.

¿Qué errores deben evitar los equipos?
| Error | Riesgo | Mejor enfoque |
|---|---|---|
| Poner un asistente textual junto a un mapa inconsciente | «Esto» y «aquí» ambiguos | Compartir estado estructurado |
| Usar la ventana como filtro silencioso | Perder resultados válidos cercanos | Tratar límites como contexto salvo petición |
| Permitir JavaScript del renderizador | Inyección y dependencia del proveedor | Acciones semánticas + adaptador |
| Reactivar el modelo con cada movimiento | Bucles y coste | Etiquetas de origen y protección de bucle |
| Inventar ID de lugares en el texto | Registros duplicados o falsos | ID estables de datos fiables |
| Mover la cámara con el primer token | Mapa inestable | Esperar lugares resueltos |
| Mezclar capas de IA y datos guardados | Borrados accidentales | Separar capas temporales |
| Enviar una clave de servidor al navegador | Robo de credenciales | Clave publicable + alcance ai |
| Omitir el estado sin resultados | Marcadores inventados | Conjunto vacío + seguimiento |
| Medir solo volumen del chat | Métricas vanidosas | Finalización de tareas en el mapa |
Veredicto final
Un asistente consciente del mapa funciona cuando conversación y mapa activo comparten un contrato explícito de estado y acciones. El host controla permisos y llamadas al renderizador. Los sistemas fiables controlan identidad y hechos operativos. Los motores espaciales controlan distancia, rutas y geometría. El modelo interpreta la intención, coordina el ranking y explica resultados dentro de esos límites. Kaleidr Chat conecta actualmente esa capa conversacional a un mapa que el host ya renderiza, con clave publicable y guías para Mapbox, Google Maps y MapLibre. Diseñe primero el contrato de estado; el panel de chat es la última superficie, no la arquitectura.
Añada chat de IA a su mapa existente
Conecte Kaleidr Chat a un mapa activo de Mapbox, Google Maps, MapLibre o Leaflet y mantenga el host como renderizador oficial. Lea la documentación de Kaleidr Chat para opciones de montaje, pruebas headless y alcances actuales.
Preguntas frecuentes
¿Qué es un asistente de IA consciente del mapa?
Es una interfaz conversacional que recibe contexto estructurado de un mapa —lugares seleccionados, área visible, filtros u origen— y devuelve resultados fundamentados y acciones admitidas.
¿Cómo se diferencia de un asistente solo textual?
El asistente textual intercambia principalmente prosa. El consciente del mapa comparte estado y coordina recuperación geográfica, cálculos, marcadores, cámara, rutas y selecciones.
¿Debe la IA leer el mapa como imagen?
Normalmente no para el estado de la aplicación. Proporcione límites, ID de entidad, filtros e ID de resultados. La visión puede servir en otros flujos, pero el estado debe ser explícito.
¿Debe la ventana visible limitar siempre los resultados?
No. Puede aportar contexto sin ser filtro rígido. Úsela como límite solo cuando el usuario o producto invoque explícitamente «buscar en esta zona».
¿Qué estado debe conocer el asistente?
Solo el requerido: entidad seleccionada, ID de resultados, filtros, límites si hacen falta, contexto de ruta y origen autorizado.
¿Cómo debe controlar el mapa una IA?
Use un vocabulario estructurado como show_places, fit_places, open_place o show_route. Valide y traduzca las acciones en la aplicación host.
¿Debe el modelo generar JavaScript de Mapbox o Google Maps?
No como mecanismo principal. Las acciones semánticas son más seguras e independientes del renderizador.
¿Puede usar datos empresariales privados?
Sí, si el host autentica al usuario, aplica permisos de inquilino, objeto y campo, y recupera solo los registros autorizados necesarios.
¿Puede Kaleidr Chat conectarse a un mapa existente?
Sí. La documentación indica que se conecta a mapas activos de Mapbox, MapLibre, Google Maps o Leaflet, representa lugares y encuadra la cámara.
¿Kaleidr Chat sustituye mi renderizador?
No. El host sigue renderizando el mapa; Kaleidr Chat añade la capa espacial conversacional.
¿Qué clave usa Kaleidr Chat en el navegador?
Una clave publicable con alcance ai, intercambiada por una sesión breve ligada al origen.
¿Funciona la IA consciente del mapa sin mapa?
La capa conversacional sí. El modo headless omite map, útil para pruebas o interfaces solo de chat.
¿Cómo debe medirse?
Mida tareas útiles completadas: seleccionar o guardar un lugar, abrir indicaciones, preseleccionar una propiedad, elegir una tienda, completar una reserva u otro resultado específico.
Referencias
- Kaleidr. AI Maps You Can Talk To — Spatial AI. Consultado el 20 de agosto de 2026. https://kaleidr.com/ai
- Kaleidr. Attach Kaleidr AI to a Google Map. Kaleidr Developer Docs. Consultado el 20 de agosto de 2026. https://docs.kaleidr.com/guides/attach-ai-to-google-maps
- Kaleidr. Attach Kaleidr AI to a Mapbox Map. Kaleidr Developer Docs. Consultado el 20 de agosto de 2026. https://docs.kaleidr.com/guides/attach-ai-to-mapbox
- Kaleidr. Attach Kaleidr AI to a MapLibre Map. Kaleidr Developer Docs. Consultado el 20 de agosto de 2026. https://docs.kaleidr.com/guides/attach-ai-to-maplibre
- Kaleidr. Auth & Scopes. Kaleidr Developer Docs. Consultado el 20 de agosto de 2026. https://docs.kaleidr.com/platform-api/auth-and-scopes
- Kaleidr. Chat — Attach AI to Your Map. Kaleidr Developer Docs. Consultado el 20 de agosto de 2026. https://docs.kaleidr.com/sdk/chat-attach
- Kaleidr. Endpoints. Kaleidr Developer Docs. Consultado el 20 de agosto de 2026. https://docs.kaleidr.com/platform-api/endpoints
- Kaleidr. kaleidr.js — the Loader. Kaleidr Developer Docs. Consultado el 20 de agosto de 2026. https://docs.kaleidr.com/sdk/kaleidr-js
- Google. Load the Maps JavaScript API. Google Maps Platform documentation. Consultado el 20 de agosto de 2026. https://developers.google.com/maps/documentation/javascript/load-maps-js-api
- Mapbox. Get started with Mapbox GL JS using a CDN. Mapbox GL JS documentation. Consultado el 20 de agosto de 2026. https://docs.mapbox.com/mapbox-gl-js/guides/get-started/use-with-cdn/
- MapLibre. Display a map. MapLibre GL JS documentation. Consultado el 20 de agosto de 2026. https://maplibre.org/maplibre-gl-js/docs/examples/display-a-map/
- OWASP Gen AI Security Project. LLM01:2025 Prompt Injection. Consultado el 20 de agosto de 2026. https://genai.owasp.org/llmrisk/llm01-prompt-injection/
@misc{kaleidr_chat_attach_2026,
title = {Chat -- Attach AI to Your Map},
author = {{Kaleidr}},
note = {Kaleidr Developer Docs; accessed 20 August 2026},
url = {https://docs.kaleidr.com/sdk/chat-attach}
}
@misc{kaleidr_spatial_ai_2026,
title = {AI Maps You Can Talk To -- Spatial AI},
author = {{Kaleidr}},
note = {Accessed 20 August 2026},
url = {https://kaleidr.com/ai}
}
@misc{kaleidr_auth_scopes_2026,
title = {Auth and Scopes},
author = {{Kaleidr}},
note = {Kaleidr Developer Docs; accessed 20 August 2026},
url = {https://docs.kaleidr.com/platform-api/auth-and-scopes}
}
@misc{kaleidr_attach_mapbox_2026,
title = {Attach Kaleidr AI to a Mapbox Map},
author = {{Kaleidr}},
note = {Kaleidr Developer Docs; accessed 20 August 2026},
url = {https://docs.kaleidr.com/guides/attach-ai-to-mapbox}
}
@misc{kaleidr_attach_google_2026,
title = {Attach Kaleidr AI to a Google Map},
author = {{Kaleidr}},
note = {Kaleidr Developer Docs; accessed 20 August 2026},
url = {https://docs.kaleidr.com/guides/attach-ai-to-google-maps}
}
@misc{kaleidr_attach_maplibre_2026,
title = {Attach Kaleidr AI to a MapLibre Map},
author = {{Kaleidr}},
note = {Kaleidr Developer Docs; accessed 20 August 2026},
url = {https://docs.kaleidr.com/guides/attach-ai-to-maplibre}
}
@misc{kaleidr_endpoints_2026,
title = {Endpoints},
author = {{Kaleidr}},
note = {Kaleidr Developer Docs; accessed 20 August 2026},
url = {https://docs.kaleidr.com/platform-api/endpoints}
}
@misc{kaleidr_js_loader_2026,
title = {kaleidr.js -- the Loader},
author = {{Kaleidr}},
note = {Kaleidr Developer Docs; accessed 20 August 2026},
url = {https://docs.kaleidr.com/sdk/kaleidr-js}
}
@misc{google_maps_js_loader_2026,
title = {Load the Maps JavaScript API},
author = {{Google}},
note = {Google Maps Platform documentation; accessed 20 August 2026},
url = {https://developers.google.com/maps/documentation/javascript/load-maps-js-api}
}
@misc{mapbox_cdn_guide_2026,
title = {Get started with Mapbox GL JS using a CDN},
author = {{Mapbox}},
note = {Mapbox GL JS documentation; accessed 20 August 2026},
url = {https://docs.mapbox.com/mapbox-gl-js/guides/get-started/use-with-cdn/}
}
@misc{maplibre_display_map_2026,
title = {Display a map},
author = {{MapLibre}},
note = {MapLibre GL JS documentation; accessed 20 August 2026},
url = {https://maplibre.org/maplibre-gl-js/docs/examples/display-a-map/}
}
@misc{owasp_llm01_prompt_injection_2025,
title = {LLM01:2025 Prompt Injection},
author = {{OWASP Gen AI Security Project}},
note = {Accessed 20 August 2026},
url = {https://genai.owasp.org/llmrisk/llm01-prompt-injection/}
}